Core Concepts

This is the part of the docs worth understanding well. Once these pages click, every typed module is just a thin layer of convenience on top of what is here.

  • The patch lifecycle is the one genuinely non-obvious topic: how passes and ordering buckets decide when your patch runs. Read this before you fight with ordering.

  • Targeting assets covers labels and the Named and NotNamed filters that decide which assets a patch touches.

  • The Do callback is where you actually change data, including how to delete an asset.

  • Creating assets covers adding brand new content instead of editing existing content, including copying an asset with Duplicate.

  • Features describes how to declare campaign features and how to gate patches, created assets and prefab patches on them. Your content is then only in the campaigns that enable it.

  • Gates (Requires, Has, HasNo) skip a patch when its preconditions are not met and report the skip cleanly.

  • Dependencies and ordering covers Needs, Conflicts, and the before and after relationships that let patches coexist.

  • Working with JSON covers the JSON value you are handed, the methods on it, and the J helpers for the cases plain Lua tables cannot express.

  • Config integration describes the settings of your mod and the relation between settings and patches.

  • Reading the summary is how you debug: where to find what ran, what was skipped, and what errored, plus logging from a patch with the Log global for the cases the summary cannot cover.