CleverRaven/Cataclysm-DDA — pull request #5953 by BevapDin (2014-02-03 14:25:08+00:00)
Title: Load, apply and store default mod list (CR)

In response to #5920

Adding flags to mods seemed a bit cumbersome, it also requires changing existing mods (add/modify the flag in their definition), or invent another, parallel infrastructure to save these flags. One has to prevent third-party mods to add this flag without he users knowledge. And in the end one does not need a flag, but a list of default mods.

The solution that I propose uses dependencies instead. When a world is created it loads a special mod named "user:default" (or if that mod does not exist "dev:default") and adds the dependencies of that mod as the list of active mods of the new world. Than when the mod manager window appears it already contains those mods.

The dev:default mod is a normal mod, that comes with the normal release. This mod does not even need to be in a separate file. It can be build into the code to be absolutely static.

Its list of dependencies contains all the mods, that the developers think should be activated by default.

The user can now press `S` in the mod manager window to save the list of currently activated mods as their default. This will create a mod "user:default", which is similar to "dev:default" and works the same way (and is stored to disk).
This feature is not visible to the user as I have no idea where to put a hint about this.

Both "dev:default" and "user:default" are not shown to the user, they are only used internally, and they have no content at all and add no game data.