Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Snitch
A performance profiler - measure the cost + state of NPCs, trash, quests and your own mods, with an in-game HUD and a live web dashboard.
CHANGELOG
Changelog
All notable changes to Snitch are documented here. Format based on Keep a Changelog.
[1.0.2] - 2026-06-22
Less code in mods, more profiling for free. No change to the host data/wire protocol or the bridge ABI, so existing integrations keep working.
Added
- Auto-instrumentation: while sampling, every other loaded mod's per-frame methods (
OnUpdate,OnFixedUpdate,OnLateUpdate,OnGUI) are timed automatically and shown as<Mod>.OnUpdate- per-mod frame cost with zero code on the mod's side. Toggle with theAutoInstrumentpreference. - Zero-wiring registration: a mod's
SnitchProbe.Register()is now discovered and called by the host automatically when sampling starts, so a mod no longer wires a registration call into itsOnInitializeMelon.
Changed
- Modder API shim class renamed
Snitch.Api.Snitch->Snitch.Api.Profiler(drops theusing Prof = ...alias; justusing Snitch.Api;thenProfiler.Sample(...)). The bridge contract is unchanged, so previously shipped shims still bind and report. - Cheaper no-op path: the shim's pre-bind host lookup no longer scans every loaded assembly each call.
[1.0.1] - 2026-06-22
Internal cleanup. No functional or behavioural changes.
Changed
- Removed leftover development scaffolding: the dev-only verification probes and all internal "phase"-process references in code comments, console help, and docs.
[1.0.0] - 2026-06-22
Initial release. Feature-complete and verified in-game.
Added
- Frame-time + GC sampler (the load-bearing measurement layer).
- Stopwatch section timer (
Snitch.Sample), backing both the modder API and vanilla probes. - Built-in state providers: NPCs (movement/visibility), trash (physics), quests (state).
- Vanilla CPU cost attribution via Harmony accumulators (
snitch vanilla on) - e.g.NPCMovement.Update/FixedUpdate. - Ablation A/B harness with a stability gate + lever registry (
snitch ablate <lever>), built-innpclever. - Local HTTP + WebSocket data server (loopback
:6140) with CORS/PNA/Origin/token. - SnitchWeb live dashboard (React + uPlot), bundled offline at
http://localhost:6140/. - Zero-overhead modder API (
Snitch.Api) - copy-in source or referenced DLL, no hard dependency. - In-game HUD, periodic telemetry, and Markdown/CSV report export.