Pack Doctor - Modpack Diagnostics
Your pack crashed. Which mod did it? Pack Doctor reads your mods, logs, crash reports and configs and tells you what is wrong, where it is written and how sure it is. In one screen, inside the game, or even when the game does not start at all.
Welcome to the first beta of the mod! Please leave your feedback in the comments. It will help us fix bugs faster, add the features you need, and keep improving the mod. Thanks ❤
What it finds
| Area | What Pack Doctor checks |
|---|---|
| Mods & dependencies | Missing required mods, wrong versions, mods made for another Minecraft or NeoForge, incompatible pairs, the same mod installed twice, identical copies, Fabric and old Forge jars in a NeoForge pack, damaged jars. Jar-in-jar libraries are taken into account, so there are no false alarms about bundled libraries. |
| Logs & crashes | 49 known error signatures: missing classes and methods, mixin failures, mod loading errors, registry errors, recipes and data packs, JSON and codecs, network packets, memory, graphics drivers, watchdog. Repeats are grouped with their count and the lines around them. |
| Root cause | In a crash report Pack Doctor follows the exception chain to the innermost cause and marks it Root cause. Follow-up errors like "Could not initialize class" are marked Consequence. In a plain log the last serious error before the crash is only a Possible cause: it never claims more than the log proves. |
| Configs | TOML and JSON syntax with the exact line and column, using the same TOML parser NeoForge uses. Values are checked against the rules the mods registered themselves (ModConfigSpec), so "level = 50" in a 1–10 setting is caught. Unknown keys are never called errors. |
| Data & recipes | Recipe, tag, loot table, advancement and function errors, captured live from the game while a world loads, with the mod or data pack they come from. A recipe is never called broken just because a recipe viewer does not show it. |
| Performance | FPS, frame time, slowest frame, JVM memory, client tick and server tick (MSPT) with a 60-second graph. Measured values only: it does not pretend to know which mod causes lag. |
| Changes | With your permission it keeps a local snapshot of the pack (mod id, version, file hash) and shows what was added, removed, updated or silently replaced since the last check. "It broke after the update" becomes a short list. |
Every finding has a severity (critical, error, warning, info), a separate confidence (high, medium, low), its source (file, line, column, metadata) and plain advice on what to check. If a check cannot run, it says Check unavailable and why. It is never shown as passed.



When the game does not start
The same jar runs on its own. Double-click it (or run java -jar os-pack-doctor-neoforge-1.21.1-1.0.0.jar in the game folder), choose the game folder and press Check the pack. You get the full report about mods, dependencies, configs and logs without launching Minecraft. Perfect for "the game closes before the menu".
Command line: java -jar os-pack-doctor-neoforge-1.21.1-1.0.0.jar <game folder> [--json] [--out file] [--log file] [--server] [--lang ru|en]
Reports you can share

- TXT or JSON, UTF-8. Choose the sections, see the exact text before saving, copy a short summary for Discord.
- Privacy: your user name and home folder in paths, access tokens, API keys, passwords and (if you want) server addresses are hidden. Full configs, world data, chat and inventories are never included.
- A report is never written over another file. If a folder is not writable, you see why and can choose another place.
- Nothing is sent anywhere. Pack Doctor has no network code at all.
Read only
Pack Doctor only reads and explains. It never deletes mods, never changes configs, recipes or worlds, never downloads or updates anything. A damaged config is never rewritten. An analyzer bug can't take your game down: the check is marked unavailable and the rest goes on. Heavy work runs in the background with a progress bar and a Cancel button.
How to open it
- Mods menu → O.S Pack Doctor → Config.
- Or assign a key in Controls → Key Binds → O.S Pack Doctor (no key by default, so it never conflicts).
- Optional: open the diagnostics automatically after a crash (off by default).
- Servers:
/packdoctor scan(operators) saves a masked report toospackdoctor/reports.
For modpack makers
- Your own rules. Put JSON files into
config/ospackdoctor/rules/. Each rule is a pattern with an id, severity, confidence and texts in any language; a rule with a built-in id replaces it. A broken rule is skipped and reported, never fatal. - Settings for every check, sampling rate, log size limit, snapshots, privacy and report sections.
- Fully translated into English and Russian.

Platform: Minecraft 1.21.1, NeoForge 21.1.250 (or newer 21.1.x, with a warning), Java 21. Install it on the client, the server or both; it does not need to be on both sides.

