This article will show you how to create a Mod Loader compatible mod
You can get Parless and RyuModManagerCLI here
1. Creating A New Mod
To create a new mod, put all of your modified files inside a new folder (that has the name of your mod) in a way that they mirror the original game files inside the /data/ folder. Your mod folder must NOT contain a folder named /data/.
Example: files inside /data/battle_lexus2/ are put in the same path inside your mod folder, excluding the /data/ part.
After adding all of your files, zip the folder and upload it. For users to use your mod, all they have to do is unpack your zip into their /mods/ folder inside the game path, add the mod’s name to the ModLoadOrder.txt file, and run RyuModManagerCLI to generate the mod load order (MLO) file used by Parless. After that, the mods will be loaded whenever the game is launched.
Keep in mind that the final layout of the /mods/ directory should look like this:
So when creating the zip, make sure it includes the mod folder you created, not just the files.
Example: the zip should look like this
and not like this
2. Adding Loose Files
You can also put files that were originally inside a par into a new folder with the same name of the par. Loose files will always override files inside pars. This means that including whole pars in your mod is no longer necessary, and you should only include the files that you modified.
Example: files from chara.par will be put in /chara/
Files do not have to originally exist in a par to be loaded. They can be new files, provided that the game has a method to load them.
Example: character_model_model_data.bin file modified to replace a character with c_cm_nagoshi
Loose files that were inside nested pars also work.
Example: instead of having hact files inside nested pars
/MyMod/hact_lexus2/h25210_headlock_punch.par -> 000.par -> h25210_000_3.gmt
you can put them as loose files inside their respective folders
3. Adding Pars
Pars can also be included inside your mod in their correct path. While it is bad practice and not recommended to include both a par AND the loose files inside that par in your mod, it might be helpful to learn about it to keep file load order in mind when creating your mod.
Example: both of /db.par and /db/en/ExampleFile.bin exist in your mod
/MyMod/db.par -> will override /data/db.par
/MyMod/db/en/ExampleFile.bin -> will override ONLY /en/ExampleFile.bin inside /MyMod/db.par
4. Old Engine Mesh.par
In some cases, it might be a good idea to include a par. This is mostly the case for Old Engine model swaps. If your mod replaces a model that is inside a mesh.par (or mesh_hires.par), you should pack the par yourself and include it in your mod. This is recommended because Old Engine mesh.par files will load the first GMD inside them. So if the GMD in your mod does not have the same name as the original GMD, the new model might not be loaded.
Example: only ONE of the following paths exist in your mod
/MyMod/chara/auth/c_am_kiryu/mesh_hires.par -> will guarantee that your new model gets loaded
/MyMod/chara/auth/c_am_kiryu/mesh_hires/Example.gmd -> original model might be loaded instead
However, if you are simply modifying original GMD/DDS files, or adding new DDS textures, using loose files is fine.
Example: both paths exist in your mod
/MyMod/chara/auth/c_am_kiryu/mesh_hires/c_am_kiryu.gmd -> original model will be replaced
/MyMod/chara/auth/c_am_kiryu/mesh_hires/c_am_kiryu_suit_mt.dds -> original texture will be replaced
/MyMod/chara/auth/c_am_kiryu/mesh_hires/c_am_kiryu_jacket_mt.dds -> new texture will be added, and will be used only if the modified GMD references it
Your mod folder’s name must be shorter than 64 characters (63 is ok, 64 is not).
Example: You cannot include more than 2 and a half lines of Bakamitai lyrics in your mod name
/Baka mitai kodomo na no ne Yume o otte kizutsuite Uso ga heta/minigame/karaoke/fumen/bakamitai_lyric.klc
6. Using “.parless” Paths
In addition to loading mods from the /mods/ directory, Parless can also load loose files from inside the game’s /data/ folder. This should help mod makers test files without having to create a new mod. To use this feature, set LooseFilesEnabled in the INI file to 1, create a folder with the name of the .par and append “.parless” to it. After creating a .parless path, RyuModManagerCLI should be run again to generate a new MLO file.
Any files inside the .parless path will override the files inside the original par AND any corresponding mod files.
Example: instead of loading the file from the /data/ par
/data/chara.par -> lexus2/tops/c_cm_kiryu/c_cm_kiryu.gmd
or from the mods
the file will be loaded from the .parless path of that par
The .parless folder doesn’t have to be overriding a par, it can be overriding a folder that originally contained loose files.
Example: instead of loading the file from the original folder
it can be loaded from the .parless folder
For any given path in the /data/ folder, there can be only ONE .parless inside the path. For example, if you want to override nested pars, .parless only needs to be added to the top folder/par.
Example: when overriding this file
/data/hact_lexus2/h25210_headlock_punch.par -> 000.par -> h25210_000_3.gmt
this should be done