Mod Support Devlog 5: Mod Menu (and status update)
I'm currently working on the mods menu, the plan is to allow the player to activate/deactivate and move mods in the main menu before starting to play (new game or loading a save).
- Enable/Disable a mod is self-explanatory
- Moving a mod will determine the priority of that mod (so other mods can overwrite or be overwritten by other mods)
Mod menu (all mods enabled)
View attachment 3891302
example_mod and
example_mod_3 are disabled
View attachment 3891306
The game will also allow to save the current mod order as a profile, as well as loading a saved profile, the current mod order will persist between game sessions using the default (active_profile.cfg) user profile file.
Load profile file selection window
View attachment 3891304
Save profile text input window
View attachment 3891305
I also created the
text input and file selection windows that are shown above, to allow modders use it too.
It is taking more time than expected because I'm currently changing the way the mod packages were created to allow this as well as creating a database where every mod's content will be saved so the game will be able to get the content at no performance cost. The plan is to allow mods overwrite both the base game's contents other mods contents.
And I still need to decide how to handle save games with mod data saved for mods that does not exist in the game anymore (something that will happen if you create save file with a mod active and uninstall or deactivate it later), for game items (armors, weapons, items, skills...) I will perform a clean up on the actor's information and just remove any invalid elements but the problem comes when the game is saved when the player is on a game map that does not exist anymore, I think I'll just teleport the player to a specific map or something like that
So basically, what is left to do is:
1. Implement a database where mods (and the base game) will save the contents that are added to the game to allow overwriting data
2. Make the mod menu apply the changes to the mod manager when the user exits the menu so the database is rebuilt
3. Handle save files with missing mods (ongoing)
4. Redirect all RPG Maker functions to use the mod database, instead of the vanilla database (ongoing)
5. Adapt the game interpreter (used by the game to process an event) to allow processing an event contents using a mod context and/or implement functions to interact directly with the mod database, like moving the player to a modded map, add a mod item, etc... (ongoing)
The tasks that has an "ongoing" label (task 3, 4 and 5) are tasks that
are not planned for the v0.2 version because they are time consuming, I'll work on these continuously "in the background" during all test releases, the plan is to fully complete the mod support module before v1.0 is released.