dk-doctor
Static analyzer · RPG Maker MV / MZ

Find the bugs in your game before your players do.

dk-doctor reads your RPG Maker project and reports real bugs and risks — broken transfers, dead switches, dangling references, plugin conflicts — each with its exact location and the fix. Never a wall of statistics.

$cargo install dk-doctor
Free & offline — deterministic engine, honest confidence.
Built on DKPlugins RPG Maker MV & MZ Rust-fast, runs offline Deterministic · honest confidence
What it finds

Every line is a bug and its exact place.

dk-doctor states cause and symptom — and, where it can, the treatment. No event counts, no graphs to interpret. Just findings you can act on.

data/Map007.jsonMap007/EV012/page1/cmd8(broken-transfer)

Transfer Player → Map099, which does not exist — the game crashes when the event fires.

Map099 missing — did you mean Map009?
data/Classes.jsonClass03/learnings(dangling-reference)

Skill #44 is learned by Hero at level 12 but is absent from Skills.json — crash on level-up.

data/Map003.jsonMap003/EV005/page2(uninitialized-symbols)(likely)

Switch #14 is read by 3 page conditions but never set by any event — those pages are unreachable.

Set Switch #14 somewhere, or delete the gated pages.
js/pluginsABMZ_Core · QInput(plugin-conflict)(likely)

Both alias Game_Battler.prototype.gainHp; load order clobbers ABMZ_Core's logic.

Reorder them in the Plugin Manager.
img/charactersHero2.png(orphan-asset)

Imported but referenced by no event or database row — safe to remove.

data/CommonEvents.jsonCE017(dead-common-event)

Never called by command 117 and not autorun or parallel — dead code.

The Atlas

Not a wall of errors — a map of your project.

The same deterministic findings, placed where they happen. Open straight into a severity heatmap of every map, then walk into one and read each event in context.

Overview heatmap

Every map lit by its worst finding — see what's on fire before you open a single one.

Walk the map

Events are drawn where they live, over real tiles. Click one to read its findings in place.

What changed

Events with findings new since the last run get a marker — triage a fresh scan at a glance.

Jump from any finding

“Show on map” from the list lands you on the exact event and centres it.

Regions & minimap

Toggle a region overlay; a minimap and “go to worst” keep huge maps navigable.

Export the map

Save an annotated PNG of any map to share a bug report or a to-do list.

Overview — the landing heatmap
How it works

Point it at your project. Read the diagnosis.

No config and no changes to your game. dk-doctor reads, runs every rule in parallel, and hands back a triaged report.

01
Run it on your project

Point dk-doctor at any RPG Maker MV/MZ folder — dk-doctor ./MyGame. It reads the files, never writes them.

02
It reads everything

Maps, events, the database, assets and plugins are parsed into one engine-agnostic model — then every deterministic rule runs at once.

03
Read the findings

Triaged errors → warnings → info, grouped by category and map, each with its exact location, confidence, and the fix.

Coverage

Categories of problem, one severity language.

Color always means severity — never decoration. Every finding is tagged certain or likely, so you always know how much to trust it.

datadata
9

DB referential integrity — skills, items, traits, troops, encounters that point at nothing.

252
referencereference
7

Event and database cross-references that resolve to a missing target.

331
assetasset
12

Broken and orphaned images, audio and tilesets across the project.

129
dead-codedead-code
6

Orphan common events, unreachable pages and dead conditional branches.

24
plugin-orderplugin
3

Load-order hazards between plugins that alias the same method.

3
plugin-conflictplugin
3

Plugins that silently clobber each other's logic at runtime.

12
Plugin findings come from static analysis of your plugins' JS — load order, conflicts, and unknown commands, all without running the game.

Run it on your project. Read the diagnosis.

dk-doctor is free and offline — a deterministic engine with honest confidence that reads your project and never touches your files.