Advanced Topics

These pages go past day-to-day patching. You do not need them to write a working patch, but they matter once you ship to other people, share code across files, or want to understand what PatchManager is doing under the hood.

  • Sharing Lua with require covers splitting a patch set across files and pulling in shared helpers, including from another mod.

  • Cross-mod compatibility covers writing patches that coexist with other mods through namespacing, ordering, and dependency declarations.

  • Converters explained covers what a converter actually is, why PM:Patch takes one, and how the typed modules pick one for you.

  • Caching and invalidation covers the patch cache of each feature set, the changes that cause a rebuild, and how to read the final patched assets from the cache.

  • Patching from C# covers writing and running patches from a C# mod with the C# patching API, the mirror of the Lua surface.

  • Extending in C# covers writing your own converter, module data adapter, or typed submodule in a C# mod so other patch authors can use it from Lua.