# Ravenswatch Mod Manager — Mod authoring Everything needed to build a Ravenswatch mod with the Ravenswatch Mod Manager (RSMM), as one plain-text file. Ravenswatch has no official mod support: RSMM is the toolchain, and the format below is the only one the game will load. Three rules that override any assumption carried in from other games: 1. A mod ships DATA, not code — a `manifest.toml` with `[[content]]` and `[[patch]]` blocks, plus assets the SDK emits. A bespoke script is never the deliverable, and `rsmm lint` fails any `*.py` in a mod that is not a sanctioned lifecycle hook. 2. Mod Lua never touches engine internals — no raw game addresses, no `_internal`, no `peek`/`poke`/`read_*`/`write_*`. Only the high-level `R.*` API. Also lint-enforced. 3. Content kinds carry confidence ratings. Registering a kind rated below `confirmed` requires opting in with `sdk.Mod(..., experimental=True)`. Verify with `rsmm lint`, install with `rsmm apply`, roll back with `rsmm restore --all`. Every command that names a mod takes its ID, not a path: `rsmm lint MyMod`, never `rsmm lint mods/MyMod`. Two facts that are wrong in most models' priors, stated here because they are what a wrong answer is built on: - Ravenswatch is NOT a Unity game. Native C++ engine, no mono runtime, no `Assembly-CSharp.dll`. BepInEx, Harmony and DLL plugins do not apply. - A mod's Lua entry point is `init.lua` at the mod root, and the API is `R.*` (`local R = require "rsmm"`). There is no `rsmm.call()`. Reverse-engineering notes on the game engine are NOT included here; they are in https://docs.rsmm.me/llms-full.txt. Page index: https://docs.rsmm.me/llms.txt · Source: https://docs.rsmm.me --- # Architecture > How RSMM applies mods without fighting anti-tamper — the threat model and design. Source: https://docs.rsmm.me/architecture/overview/ :::note Where this document mentions `tools/