Codename Logo Codename Logo

Modding The Engine - Softcoding

APIWikiTools

Modding The Engine - Softcoding

No matter what you do, editing the ./assets/ folder is not recommended, as it's used as your Backup folder / Mod if assets or data cannot be found, it will use the ./assets/ as a saftey catch. You should only make Mods in the ./mods/ folder.

There is also an ./addons/ folder which is somewhat similar to the way ./mods/ works, but it has it's own set of rules and best practices to follow.

TODO: Add a link to know how to make an Addon.

THIS IS NOT A GUIDE FOR SOURCE MODDING!!

If you want to know how to make a Mod in Source, [TODO: Write a Doc.md for seting up a Source Project and link it from here!]

How should I structure my folders

For starters, this is what an average Mod Folder will contain. We will go over some folders that require more explanation later.

Click to expand

└─ 📂 My Mod/                                
   ├─ 📂 data/                                # Usually contains configuration, or information you want to store.
   │  ├─ 📂 characters/                       # Contains your Character's XML data.
   │  ├─ 📂 config/                           # Configuration stuff.
   │  │  └─ 📄 modpack.ini                   
   │  ├─ 📂 dialogue/                        
   │  │  ├─ 📂 boxes/                        
   │  │  └─ 📂 characters/                   
   │  ├─ 📂 events/                           # Contains your Custom Events.
   │  │  ├─ 📄 Example Event.hx              
   │  │  ├─ 📄 Example Event.json            
   │  │  └─ 📄 Example Event.ui.hx           
   │  ├─ 📂 library/                          # This is where you put Scripts for ScriptedAssetLibrary! We Will go over this later.
   │  ├─ 📂 notes/                            # Custom NoteType Scripts (And adds them in the Charter!)
   │  │  └─ 📄 Example Note.hx               
   │  ├─ 📂 splashes/                        
   │  ├─ 📂 stages/                           # Where your Stage `.xml` and/or `.hx` file for your stage is located.
   │  ├─ 📂 states/                           # Scripts that run when States are switched to, or when loading a ModState!
   │  ├─ 📂 titlescreen/                     
   │  ├─ 📂 weeks/                           
   │  │  ├─ 📂 weeks/                        
   │  │  │  ├─ 📄 Example Week.xml           
   │  │  │  └─ 📂 characters/                
   │  │  ├─ 📂 characters/                   
   │  │  │  └─ 📄 Example Character.xml      
   │  │  └─ 📄 weeks.txt                     
   │  └─ 📄 global.hx                         # This script runs all the time, above any state switching, and never deloads (unless you switch mods).
   ├─ 📂 fonts/                              
   ├─ 📂 images/                             
   │  ├─ 📂 characters/                       # Contains your Character Spritesheet `.png` and `.xml` Animation.
   │  ├─ 📂 game/                             # Stuff usually found for global PlayState graphics.
   │  ├─ 📂 icons/                            # Where your Character's icons will be located.
   │  └─ 📂 stages/                           # Images of your stage can go here, but it's not required.
   ├─ 📂 languages/                           # Custom Languages support for your mod!
   │  └─ 📂 en/                               # The language you want to edit / create
   │     ├─ 📄 config.ini                    
   │     ├─ 📄 Editors.xml                   
   │     ├─ 📄 Main.xml                      
   │     └─ 📄 Options.xml                   
   ├─ 📂 music/                              
   ├─ 📂 shaders/                            
   ├─ 📂 songs/                               # Where songs are located, along with charts, events, scripts, audio, meta, etc.
   │  ├─ 📄 Example Global Song Script.hx     # Scripts inside the `./songs/` folder will load for every song.
   │  └─ 📂 example-song-here/               
   │     ├─ 📂 charts/                       
   │     │  └─ 📄 hard.json                  
   │     ├─ 📂 song/                          # Supports `Inst.ogg` / `Voices.ogg` and suffixes like `-bf`. Also supports difficulties.
   │     │  ├─ 📄 Inst.ogg                   
   │     │  ├─ 📄 Inst-hard.ogg              
   │     │  ├─ 📄 Voices-bf.ogg              
   │     │  ├─ 📄 Voices-bf-hard.ogg         
   │     │  ├─ 📄 Voices-dad.ogg             
   │     │  └─ 📄 Voices-dad-hard.ogg        
   │     ├─ 📂 scripts/                       # Scripts loaded for this specific song.
   │     ├─ 📄 events.json                   
   │     └─ 📄 meta.json                     
   ├─ 📂 sounds/                             
   ├─ 📂 source/                              # Custom Classes go here.
   └─ 📂 videos/                             

NOTE!

This might not be EVERYTHING, but it's a good chunk of the folders Codename Engine interacts with.

Don't be scared by the amount of folders, usually you only mess with the ./songs/, ./data/, and ./images/ folders most of the time.
It's good to have a reference of what you can do at least, so this will be updated from time to time with new updates (hopefully 😭).

Sections

These areas will split up into their own sub-pages, and they will explain to you what each folder is for, what files you can add, and how to effectively use them.

All of those above are for Softcoding, if you want to learn how to mod Source, you can check out the Introduction here

Written by: ItsLJcool
Last updated: 2025-11-15