// 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

Feedback

Found a bug, have a suggestion? Welcome to the comments!