Miscellaneous
This category is in relation to side things that don't have a specific category.
Version Format
The game is using a custom version format cause why not, half inspired by Geometry dash's version system.
[!NOTE]
Non Pre-Release version tags are saved as_.__awhile Pre-Release version tags are saved as
_.__b#for sorting reasons.
Major versions
Major versions are big content updates, adding new levels or just a bunch of shit
Major versions reset the second version number to 00 and increment the first version number by 1.
Example (existing) Versions
1.002.003.00
Minor versions
Minor versions are small content updates, adding a QOL feature, or just some bonus content not initally planned.
Minor versions increment the second version number by 10.
Example (existing) Versions
1.101.212.102.20
Patch versions
Patch versions are simple bug fix updates that add a missing feature, fix a broken feature or unintended side-effect.
Patch versions increment the second version number by 1.
Example (existing) Versions
1.112.21
Pre-Release versions
Pre-Release versions are versions that are released before a major (or maybe a big minor) update, intended to test the update before a release.
Pre-Release versions add "Pre-Release #" to the end of the version number.
Example (existing) Versions
1.00 Pre-Release 12.00 Pre-Release 13.00 Pre-Release 13.00 Pre-Release 23.00 Pre-Release 3
Changelogs
This subcategory is dedicated to all the changelog files
1.00 Pre-Release 1 - 2/16/2026
Technically the inital release, no changes in the changelog
1.00 - 2/16/2026
Added
- BACKGROUND TRACK : "dungeon drif"
- BG tracks play every once and awhile
- The ability to pause
- Little animation before true death
- little anim kinda transition thingy with enemies when they spawn and now they do like a bouncy kinda thing when they spawn
- HIGH SCORE!
- SAVE FILE
- Enemy Direction... animations? Do you wanna call it that?
- Player Sprite
- SOUND EFFECTS!
- Bullet Sprite
Changed
- Enemy is now SLIGHTLY brighter
- Enemies spawning in the same direction after spawning multiple around the same time is a rarer chance now (10% chance)
- Bullets now fade in half the time
- The bullet sprite is scaled up
Fixed
- The cursor is now invisible
- Enemies spawned later are now behind enemies spawned earlier
1.10 - 2/16/2026
Added
- CREDITS... MENU?
- MAIN MENU
- You can leave to the main menu from gameplay in the pause menu via the back key
- "back" control
Changed
- Moved Version Text to Main menu
- Direction arrow sprite has been updated
Fixed
- Fixed Off-Centered Arrows (#1)
1.11 - 2/17/2026
Removed
- Disabled / Removed Lost Focus Screen (#3)
Added
- You can press the back keys to leave to the main menu in the game over
- Github Contributors to credits
Changed
- Credits format has changed slightly
1.21 - 2/17/2026
Fixed
- Fixed Enemies spawning in the same direction not being a 10% chance
Added
- Added Application Icon
- Added BG to Level 1
Changed
- Changed "Play" to "Level 1" in the Main Menu
2.00 Pre-Release 1 - 2/17/2026
Added
- [DESKTOP] ADDED MOD SUPPORT
api_versionshould be 1.0+ for the mod to not be labelled as outdated- WITH A MOD MENU!!!!!!!
- Just asset replacement and addition stuff right now, no scripts, sry
- ADDED LEVEL 2!!
- ADDED LEVEL SELECT!
- Added support for level JSONS (
assets/data/levels/_.json) to change gameplay values - You can leave the credits menu now via the back key (ESCAPE)
- Added level to the score text
- Added Panning and Pitching depending on what direction an enemy spawns in
Fixed
- Fixed blank credits lines being added as text
Removed
- Removed
_-goes-here.txtfiles - Removed bullet sprite
Changed
- Updated Level 1 BG
- It's possible to append credits to the credits list via a mod now
- BG Tracks are now softcoded and moddable via
assets/data/songs.txt - The
highscoresave field has been removed and replaced withhighscores(your highscore for level1 will persist however) - Sized up score and highscore text in gameplay
2.00 - 2/18/2026
Added
- ADDED LEVEL 3!!
- ADDED NEW BG SONG: "MASTERY"
- ADDED NEW BG SONG: "INVASION"
- [DESKTOP] Log files are generated when running the game now
- You can press "R" on any state to go to the github issues page
Fixed
- Gameover sending you back to level 1
Changed
- The song list updates when the song list text file updates now (including when mods update it)
[1.21 - 2.00] - 2/18/2026
Added
-
ADDED LEVEL 3!!
-
ADDED NEW BG SONG: "MASTERY"
-
ADDED NEW BG SONG: "INVASION"
-
[DESKTOP] Log files are generated when running the game now
-
You can press "R" on any state to go to the github issues page
-
[DESKTOP] ADDED MOD SUPPORT
api_versionshould be 1.0+ for the mod to not be labelled as outdated- WITH A MOD MENU!!!!!!!
- Just asset replacement and addition stuff right now, no scripts, sry
-
ADDED LEVEL 2!!
-
ADDED LEVEL SELECT!
-
Added support for level JSONS (
assets/data/levels/_.json) to change gameplay values -
You can leave the credits menu now via the back key (ESCAPE)
-
Added level to the score text
-
Added Panning and Pitching depending on what direction an enemy spawns in
Fixed
- Fixed blank credits lines being added as text
Removed
- Removed
_-goes-here.txtfiles - Removed bullet sprite
Changed
- Updated Level 1 BG
- It's possible to append credits to the credits list via a mod now
- BG Tracks are now softcoded and moddable via
assets/data/songs.txt - The
highscoresave field has been removed and replaced withhighscores(your highscore for level1 will persist however) - Sized up score and highscore text in gameplay
- The song list updates when the song list text file updates now (including when mods update it)
2.10 - 2/18/2026
Fixed
- [DESKTOP]
api_versionshould be 2.0+ for mods to not be labelled as outdated (this is a fix cause the change was intended for 2.00)
Added
- [DESKTOP] Discord RPC Support
2.20 - 2/20/2026
Added
- Added Option to shoot with the directionals instead of
gameplay_fire- Added SWD Highscores
- CONTROLS REMAPPING
- OPTIONS MENU
Fixed
- Fixed the back keybind not allowing you to leave the level select
Removed
- All support for the "highscore" save field has been cut off and if your save is from 1.00 to 1.21 you will lose your level 1 high score
2.21 - 2/20/2026
Fixed?
- Crashes when shooting enemies too fast
3.00 Pre-Release 1 - 2/21/2026
Added
- ADDED ENEMY VARIATIONS!
- They work via the new
enemy_variationsfield in level JSONs.speed_multipliergraphic
- They work via the new
- ADDED 3 NEW LEVELS!
- Level 4 is complete
- Level 5 and 6 are still Work in Progresses
- Added
settingsfield to level JSONscamera_zoombg_scale_modifier
- Added Level BGs in the BG of the level select
Changed
- [DESKTOP]
api_versionshould be 3.0+ for mods to not be labelled as outdated - Changed directory of the (now default) enemy asset to
assets/images/enemies/default(this is where all enemy assets will go obv)
Removed
- Removed Panning and Pitching depending on what direction an enemy spawns in
3.00 Pre-Release 2 - 2/21/2026
Hello! Nice little message for ya since the changelog format has changed to be more like minecraft.
New Options
- Added "Extra Health" Option : Gives you extra health in gameplay
Modding Changes
- [DESKTOP]
api_versionshould be3.1+for mods to not be labelled as outdated
Level Changes
- Enemy Spawning values have been tweaked
- Levels 5 and 6 and basically complete and only minor tweaks will most likely happen from now
Technical Changes
-
Added(?) bg track caching
-
Death is now based on a health value in gameplay
-
Renamed Level Data
enemyVariationsfield toenemy_variations -
Renamed Level Data
enemySpawningfield toenemy_spawning -
Added optional
difficultyfield to the level settings data : Controls the difficulty number displayed on the Level Select (Can changes depending on settings) -
The
PRE_RELEASEdefine is checked to be 1 or more for it to count as a pre release -
The game's
PRE_RELEASEdefine is now defined in the Project XML -
Added Enemy Variation Presents system
- Current existing presents:
speed-tier1speed-tier2
- When
presentis set in enemy variation data it will look for the present indata/enemy_variation_presents
- Current existing presents:
-
Added optional
presentfield to enemy variation data : Controls what the base enemy variation data is -
Added optional
variation_chancefield to enemy variation data : Overrides the chance of the variation being selected
General Changes
- The Direction arrow that is your current direction is now fully visible while the others are faded
- Direction arrows are now updated only when the player moves
- Shrunk time survived text a little bit
- Leaving gameplay through the pause menu now sends you to the survival mode state or the level select state
- Added tip text about the Shift + R keyboard shortcut
- You have to press "SHIFT + R" now to go to the github issues
- Game over text is centered in alignment now
- Removed Flixel Splash
- Added "Loading Screen" that appears before going to the main menu where the player is spinning for a random amount of time
- Added hurt sound that plays when... well hurt, in gameplay
- The level select now displays level difficulty and highscore
- The window title is now the game name and then the version
Asset Changes
- The changelog file is no longer included in release build
- Added
speed-tier2enemy graphic (Usable in enemy variations)
Github changes
- Added "Github Issue" Issue Template
- The mdbook has been updated
- The mdbook now includes changelogs
- The mdbook now has pages for level data fields
Fixed Github Issues
- #6 : Fixed Missing "Game version" label in bug report form
Fixed Game Bugs
- #5 : Fixed Input not being paused when selecting a menu option
3.00 Pre-Release 3 - 2/21/2026
Quick just, hotfix cause I don't like that I credited myself as MAOCHI.
Modding changes
- [HTML5] The
modsfolder is no longer included - Upgraded dummyMod
api_versionto3.1
MDBook changes
- Removed finished roadmap entries
- Added
2.00cpage : 2.00 changelog compared to 1.21
Github changes
- Changed
Game Versiontextarea to an input in thebug-reportform - Added
Compiledentry tobug-reportplatform dropdown
Fixed Issues
- #7 : Fixed Macohi credited as MAOCHI.
3.00 - 2/22/2026
I'm finally fucking done with this shit.
MDBook changes
- Removed roadmap page
Level Changes
- Added Level 7
Technical Changes
- If
variation_chancewasn't successful with any enemy varient then a random enemy is picked properly now- if there isn't a default / null enemy in
enemy_variationsthen a default enemy should no longer appear
- if there isn't a default / null enemy in
- If
enemy_variationshas only 1 entry then that entry is sent through - Added support for enemy variation presents to use presents of their own
- Added
healthfield to enemy variation death : Controls how many hits until the enemy is truely defeated
Asset Changes
-
Added
healthy-tier2enemy present -
Added
healthy-tier1enemy present -
Added
healthy-tier2enemy graphic (Usable in enemy variations) -
Added
healthyenemy graphic (Usable in enemy variations)
[2.21 - 3.00] - 2/22/2026
I'm finally fucking done with this shit.
MDBook changes
- Removed roadmap page
- Added
2.00cpage : 2.00 changelog compared to 1.21
New Options
- Added "Extra Health" Option : Gives you extra health in gameplay
Modding Changes
- [HTML5] The
modsfolder is no longer included - [DESKTOP]
api_versionshould be3.1+ for mods to not be labelled as outdated
Level Changes
- ADDED 4 NEW LEVELS!
Technical Changes
-
Added(?) bg track caching
-
Death is now based on a health value in gameplay
-
Renamed Level Data
enemyVariationsfield toenemy_variations -
Renamed Level Data
enemySpawningfield toenemy_spawning -
Added optional
difficultyfield to the level settings data : Controls the difficulty number displayed on the Level Select (Can changes depending on settings) -
The
PRE_RELEASEdefine is checked to be 1 or more for it to count as a pre release -
The game's
PRE_RELEASEdefine is now defined in the Project XML -
Added Enemy Variation Presents system
- Current existing presents:
healthy-tier1healthy-tier2speed-tier1speed-tier2
- When
presentis set in enemy variation data it will look for the present indata/enemy_variation_presents
- Current existing presents:
-
ADDED ENEMY VARIATIONS!
- They work via the new
enemy_variationsfield in level JSONs.presentvariation_chancespeed_multipliergraphichealth
- if there isn't a default / null enemy in
enemy_variationsthen a default enemy should never appear
- They work via the new
-
Added
settingsfield to level JSONscamera_zoombg_scale_modifierdifficulty
-
Removed Panning and Pitching depending on what direction an enemy spawns in
General Changes
-
Added Level BGs in the BG of the level select
-
The Direction arrow that is your current direction is now fully visible while the others are faded
-
Direction arrows are now updated only when the player moves
-
Shrunk time survived text a little bit
-
Leaving gameplay through the pause menu now sends you to the survival mode state or the level select state
-
Added tip text about the Shift + R keyboard shortcut
-
You have to press "SHIFT + R" now to go to the github issues
-
Game over text is centered in alignment now
-
Removed Flixel Splash
-
Added "Loading Screen" that appears before going to the main menu where the player is spinning for a random amount of time
-
Added hurt sound that plays when... well hurt, in gameplay
-
The level select now displays level difficulty and highscore
-
The window title is now the game name and then the version
Asset Changes
-
Added
healthy-tier2enemy graphic (Usable in enemy variations) -
Added
healthyenemy graphic (Usable in enemy variations) -
The changelog file is no longer included in release build
-
Added
speed-tier2enemy graphic (Usable in enemy variations) -
Changed directory of the (now default) enemy asset to
assets/images/enemies/default(this is where all enemy assets will go obv)
Github changes
-
Changed
Game Versiontextarea to an input in thebug-reportform -
Added
Compiledentry tobug-reportplatform dropdown -
Added "Github Issue" Issue Template
-
The mdbook has been updated
- The mdbook now includes changelogs
- The mdbook now has pages for level data fields
Fixed Issues
- #7 : Fixed Macohi credited as MAOCHI.
- #6 : Fixed Missing "Game version" label in bug report form
- #5 : Fixed Input not being paused when selecting a menu option
Source Code
Compiling
This page will cover all the steps needed to download and compile the source code for Dirifin on your device.
Requirements
Instructions
- Run
cd where\you\want\the\sourceto change your directory to where you wish to download the source. - Run
git clone https://github.com/macohi/Dirifin.gitto clone the repository. - Run
cd Dirifinto enter the source code directory. - Run
git submodule update --init --recursive. - Run
.\source\macohi\install.batto install the necessary dependencies. - To test that everything is working, run
lime test <your platform>(e.g.,lime test windowsorlime test html5)
Modding
This category is in relation to the new modding system added in 2.00 and heavily expanded in updates afterwards
Softcoding
This is in relation to things that don't require source code compiling.
Creating your mod
Okay, you wanna make a Dirifin mod? It's easy.
Instructions
- Make a folder in the mods folder
- Make
meta.jsonfile - Fill out
meta.json
Use dummyMod (or this) as a base:
{
"name": "Dummy Mod",
"description": "Dummy mod to explain stuff ig",
"authors": [
"Macohi"
],
"mod_version": 2,
"api_version": 3.0
}
And boom, now you've got your mod and it's in the mods menu.
Adding a Level
- make .json in
data/levels/with ur data- You dont HAVE to do it but if you dont change some of the level data it'll basically be a level 1 reskin
- add the .json name to the
levels.txtfile via appending or overriding - add level icon in
images/levelIcons/ - add level BG in
images/levelsBG/
Check out the sub categories for explanations on the .json stuffs
Enemy Spawning Data
The enemy_spawning field in level JSONS.
dupe_direction_chance: Possibility of enemies spawning in the same directionspawn_chance: Generated random chance of enemies spawningmax: Maximum random valuemin: Minimum random value
Enemy Variation Data
Entries of the enemy_variations level JSON field.
Can be null in which a default enemy will be spawned.
All the data fields provided are optional.
-
speed_multiplier: Multiplies the enemy’s speed- example:
2.4533would be 2.4533x regular speed
- example:
-
graphic: Changes what the enemy looks like (its sprite/image) and will look for the asset inimages/enemies/jerrywould look forimages/enemies/jerry.png
-
variation_chance: Overrides the chance of the variation being selected- example:
23.5would be a 23.5% chance
- example:
-
health: Controls how many hits until the enemy is truely defeated- example:
4requires 4 hits until death
- example:
-
present: Controls what the base enemy variation data is- example:
super-saiyanwould look fordata/enemy_variation_presents/super-saiyan.jsonand use that as the present if found
- example:
Level Settings Data
All the data fields provided are optional
difficulty: Controls the difficulty number displayed on the Level Selectregular: This is the default difficulty displayedswd: This is the difficulty displayed for the "Shoot With Directional" option enabled
camera_zoom: Zoom overridebg_scale_modifier: Array of scale value modifiers- Value 1 : scale X modifier
- Value 2 : scale Y modifier
- Any other values added in the array won't be parsed
Adding a Song
Adding a song / background track to the game via the softcoding system is a VERY easy process.
Instructions
- Add your song file to the music folder of your mod
- Add your song file name to the
songs.txtfile in your modsdata/songs.txtor_append/data/songs.txt
Adding Credits
If you want to add credits to your mod, there are 2 ways of doing so: Overriding, or Appending.
Overriding
If you want to override the credits text file
then you just have to create a text file named credits
in the data directory of your mod.
Appending
If you want to append credits to the game's credits,
then in the _append/data folder
you'll wanna create a text file named credits.
After
and then after you do either one of those you're done!