// Management · RimWorld Mod
RimBug Report
RimBug Report One-click structured bug report for any installed mod.
RimBug Report
One-click structured bug report for any installed mod. Select a mod, press a button — and you get a clean, AI-agent-readable report with errors, mod settings, save data, and live game state. Copy to clipboard and send to the developer.Why
- Players don't know where to find logs. RimBug Report puts it one click away.
- Logs are full of Unity/Harmony noise. RimBug Report strips it, leaving only relevant errors.
- Modders need save data to debug serialization. RimBug Report extracts the exact XML snippet from the loaded save — no need to send 50 MB save files.
- Reports are structured for AI agents (Copilot, Claude, Cursor) — they can cross-reference PackageId with source code and diagnose problems instantly.
Report sections
- System info (toggle) — OS, CPU, RAM, GPU. Helps rule out hardware-related issues.
- Game state — tick count, active mods, biome, colonists, wealth, season. Context for reproducing the bug.
- Active mods (toggle) — load order with versions. Essential for conflict diagnosis.
- Mod settings — the user's actual config for the selected mod, via reflection.
- Save data snippet (toggle) — XML from the currently loaded save, filtered to the selected mod's types.
- Harmony patches (toggle, cap adjustable) — all patches applied by the selected mod, with full method signatures. See exactly what's patched and what else patches the same methods.
- Live GameComponents (toggle, cap adjustable) — runtime state of game components, complementing the save data snippet. Detect desync between persisted and live state.
- Diagnostics (auto-hide) — modders can register custom diagnostic providers via the DiagnosticRegistry API. Hidden when no provider is registered.
- Log errors — session-filtered, deduplicated error log with stack traces.
For mod developers
- DiagnosticRegistry API — register a Func
to expose custom diagnostic info in the report: DiagnosticRegistry.Register("YourMod.PackageId", () => $"state={myState}, cache={cacheCount}"); - The
Register(id, provider, maxChars)overload sets a per-provider truncation budget (4000 chars by default) — for mods whose diagnostics legitimately run longer. - One provider per id: re-registering under the same id silently replaces the previous provider (logged as a warning). Need multiple sections from one mod? Concatenate them into a single string inside one provider.
- Adjustable caps — Harmony and Component dump sizes are adjustable via sliders in mod settings (1000–15000 chars). Increase for local debugging, reset for Workshop reports.
- Report preset — "Reset to report defaults" button disables verbose options and resets caps, preparing a clean report for Steam Workshop.
- Embeddable API — call BugReportAPI.GenerateReport(packageId, ...) from your mod to generate reports programmatically.
How
- In-game: click the bug icon in the Play Settings bar (bottom-right).
- Main menu: "RimBug Report" button in the bottom-right corner.
- Choose a mod from the filterable list, or leave unselected for a full-system report.
- Press "Generate & Copy" — the report is in your clipboard.
Features
- Zero dependencies except Harmony (optional for the main menu button).
- Lightweight, no HugsLib needed.
- Remembers last selected mod across sessions.
- Reads the actually loaded save (not newest by file time) via Harmony tracking.
- Privacy: system info is included by default and can be excluded; save name is the opposite — off by default, opt in if you need it.
- Full localization: English, Русский, 简体中文.
Requirements
- Harmony
- RimWorld 1.6