# 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](/doc/sharing-lua-with-require-hXbW2HK8Ep) covers splitting a patch set across files and pulling in shared helpers, including from another mod.
* [Cross-mod compatibility](/doc/cross-mod-compatibility-Kprr92mfVd) covers writing patches that coexist with other mods through namespacing, ordering, and dependency declarations.
* [Converters explained](/doc/converters-explained-f5m0BgJz50) covers what a converter actually is, why `PM:Patch` takes one, and how the typed modules pick one for you.
* [Caching and invalidation](/doc/caching-and-invalidation-QifFi4oev9) 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#](/doc/patching-from-c-729VnFfTeV) covers writing and running patches from a C# mod with the C# patching API, the mirror of the Lua surface.
* [Extending in C#](/doc/extending-in-c-hryD9IMiN8) covers writing your own converter, module data adapter, or typed submodule in a C# mod so other patch authors can use it from Lua.

---

**Documents**

- [Sharing Lua with require](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/sharing-lua-with-require-hXbW2HK8Ep)
- [Cross-mod compatibility](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/cross-mod-compatibility-Kprr92mfVd)
- [Extending in C#](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/extending-in-c-hryD9IMiN8)
- [Patching from C#](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/patching-from-c-729VnFfTeV)
- [Caching and invalidation](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/caching-and-invalidation-QifFi4oev9)
- [Converters explained](https://docs.ksp2redux.org/s/0a4a3e31-0b40-48e0-bd81-e14856f80d3d/doc/converters-explained-f5m0BgJz50)