Patch Auto-Merging Approach

Dynamic patch loading, ordering, and auto-merging

To further lessen the programming activity required when modding using the auto script, it supports dynamic loading of patch files described above. All patch files should be placed inside the patches directory of the script working directory. They can be organized in a hierarchy of tree-structured folders.

The script loads them in a depth-first orderly manner to provide a systematic, convention-based patch merging method. That is, patch files/directories at the same level are loaded/traversed based on their string name ordering, and patch files at lower levels will be loaded after their ancestors.

Note that files/folders whose name starts with a dot (.) are ignored to conveniently enable/disable patch files.

For example, for the following patches folder/file structure:

patches-structure

The loading and patch application ordering is as follows:

  1. patches\EffectTable.toml

  2. patches\1\EffectTable.toml

  3. patches\2\EffectTable.toml

with patches\3\.EffectTable.toml ignored.