-
Notifications
You must be signed in to change notification settings - Fork 10
On Importing Mods
Andre Issa edited this page May 11, 2020
·
5 revisions
This is not a tutorial on how to install mods, for that see Installing Mods | The Mods Folder
| Advantages |
| Limitations |
This is a page discussing the methods and motivations behind the format and its advantages and limitations
to be expanded upon
- Base lua files do not need to be overwritten aside from the one import statement
- ^ Multiple mods can edit the same base file without needing to be merged
- Mods are encouraged to be built in a way that makes them more customisable using standard configs.
- Feature Control means that compatibility issues can be partially resolved in a modular way.
- Updates will not force reinstallation of mods (may only mean that the import statement needs to be added back)
- Updates will not force mods to update as often
- Mods do not need to include all the things that they did not edit from the base
- Mods can edit eachother
- The loader can map sjson and xml files so many of the advantages for lua scripts also apply to that too:
- Same capabilities as mapping data tables
- Don't need to include things not edited from the base
- Mods can edit eachother
- Re-installation is simple (but not as simple as for lua files)
There are limitations to this format:
- It is not possible to delete specific hook calls from the base files or other mod files
(or overwrite/replace/modify specific hook calls) - Changes to other asset files cannot be incorporated into this format directly
(sjson and xml are among incorporable asset files) - It is not possible to add your own code to the middle of an existing function without overwriting it entirely
(use feature control and store the old reference to better manage this) - Raw (umnergable) assets like images/audio/font seemingly can't be imported/swapped from within the code so would need to be swapped by a loader
It remains a priority to eliminate/mitigate them as soon as possible, however they will probably require intervention by the devs or patching the game executables.