Assets for the game — images, sounds, even the game codes are packed into Modules.
Modules in Terrarum is divided into two categories: the Internal Module and the User Module.
The Internal Modules
Internal Modules comprises the "base game" of your own game that are not expected to be modified by the end user. When your game is packaged (e.g. via AppImage), the Internal Modules become read-only.
Internal Modules are stored under <game exec dir>/assets/mods/.
The User Modules
User Modules are "mods" for your game, and can be modified by the end user.
User Modules are stored under <appdata>/Modules/.
Configurations Generated by Modules
Modules' default config must be found under <module root>/default.json. Any config changed by the user will be stored onto the <appdata>/config.json, along with the engine's base config.
The user config will have a key with <module name>: prepended: for example, if the module basegame contains config key gameplay_max_crafting, the user-modified config will be named as basegame:gameplay_max_crafting on the <appdata>/config.json.
Managing Modules
Making Modules
Dirty Deeds
Recondite References