ModsJava
zMInspector - Smart Lag Protection
Java mod listed for Minecraft 1.20–26.x. Downloads from the MC Java Mods app on Android.
⬇ Download on Spigot
zMInspector
Finds the real cause of lag. Shows what it fixed. Removes nothing.
✓ Nothing deleted by default │ ✓ Reports its own cost │ ✓ Reverts everything
Paper 1.20 → 1.21 → 26.x · Java 17+ · 18 modules · PlaceholderAPI optional
Finds the real cause of lag. Shows what it fixed. Removes nothing.
✓ Nothing deleted by default │ ✓ Reports its own cost │ ✓ Reverts everything
Paper 1.20 → 1.21 → 26.x · Java 17+ · 18 modules · PlaceholderAPI optional
Most "lag fixers" delete your players' items and hope for the best.
zMInspector measures, explains, and asks first.
Three reasons it stays installed
1 · It can't eat your server by accident
Nothing destructive is on by default, and turning any of it on takes two separate switches.
2 · It tells you what it costs you
Its own ms/tick, its peak, and the most expensive module — with a warning when it overspends.
3 · It explains the lag instead of hiding it
/zmi diagnose ranks the 7 likely causes, shows the evidence, and recommends an action.
Want proof before you trust it?
Set observe-only: true and it reports everything it would do while changing absolutely nothing. Every module honours it — no exceptions.
Spoiler: What it actually does
Understands
TPS · MSPT (TPS alone lies) · CPU · RAM · disk · per-chunk workload heatmap with decay · lag prediction · player impact attribution (SOLO / GROUP / EVENT) · time-of-day learning · farm detection · illegal chunk-loader detection · plugin conflict detection
Mitigates
Mob AI by distance tier (48 / 32 / 16 blocks) · chunk-priority AI pause · redstone · fluids · hoppers · dynamic view & simulation distance · exploration firework throttle
Protects
Explosion, spawn and item intake guards · lag-machine redstone detection · automatic escalation when TPS collapses · auto-recovery when it stabilises
TPS · MSPT (TPS alone lies) · CPU · RAM · disk · per-chunk workload heatmap with decay · lag prediction · player impact attribution (SOLO / GROUP / EVENT) · time-of-day learning · farm detection · illegal chunk-loader detection · plugin conflict detection
Mitigates
Mob AI by distance tier (48 / 32 / 16 blocks) · chunk-priority AI pause · redstone · fluids · hoppers · dynamic view & simulation distance · exploration firework throttle
Protects
Explosion, spawn and item intake guards · lag-machine redstone detection · automatic escalation when TPS collapses · auto-recovery when it stabilises
Spoiler: A real diagnosis
Example output. The evidence line tells you why it blamed what it blamed — so you fix the cause, not the symptom.
Code (Text):
━━━━━ ☀ DIAGNOSIS ☀ ━━━━━
▪ State: CRISIS | TPS: 14.2 | MSPT: 78.4
▪ Cause: Entity AI / density (confidence 62%)
Evidence:
• 4820 entities in 391 loaded chunks
▪ Action: Use AI pause and check persistent hotspots.
▪ Mitigation: Entity: AI pause 32b | View: 6 chunks @ CRISIS
▪ Result: MSPT 78.4 → 41.2
▪ State: CRISIS | TPS: 14.2 | MSPT: 78.4
▪ Cause: Entity AI / density (confidence 62%)
Evidence:
• 4820 entities in 391 loaded chunks
▪ Action: Use AI pause and check persistent hotspots.
▪ Mitigation: Entity: AI pause 32b | View: 6 chunks @ CRISIS
▪ Result: MSPT 78.4 → 41.2
Spoiler: The safety model
Nothing is deleted by default.
Entity removal, item sweeping and vehicle removal all ship OFF.
Turning them on takes two locks.
The module switch and a master switch (emergency-sweeps). One mistaken edit can never start deleting player property.
Everyone near the action is exempt.
No destructive action touches a chunk a player is standing in or next to — fights, grinders and farms stay intact while someone is using them.
Named, enchanted, diamond, netherite and shulker items are protected on top of that. Villagers, pets, leashed mobs, players, the Wither and the Ender Dragon are never touched. Any entity can opt out forever with /tag <entity> add zmi_protected.
The dry-run switch is global.
observe-only and exempt-worlds are honoured by every module — including view distance and chunk priority, which is where most plugins quietly ignore them.
Forced levels expire on their own after 300 seconds, so a forgotten /zmi crisis emergency cannot leave your server throttled forever.
Entity removal, item sweeping and vehicle removal all ship OFF.
Turning them on takes two locks.
The module switch and a master switch (emergency-sweeps). One mistaken edit can never start deleting player property.
Everyone near the action is exempt.
No destructive action touches a chunk a player is standing in or next to — fights, grinders and farms stay intact while someone is using them.
Named, enchanted, diamond, netherite and shulker items are protected on top of that. Villagers, pets, leashed mobs, players, the Wither and the Ender Dragon are never touched. Any entity can opt out forever with /tag <entity> add zmi_protected.
The dry-run switch is global.
observe-only and exempt-worlds are honoured by every module — including view distance and chunk priority, which is where most plugins quietly ignore them.
Forced levels expire on their own after 300 seconds, so a forgotten /zmi crisis emergency cannot leave your server throttled forever.
Spoiler: It will not become the lag
A performance plugin that cannot prove its own cost is asking for trust it has not earned. So:
- Self-cost reporting — ms/tick, peak and worst module, with a warning over 2 ms/tick.
- Tick budgets — entity scanning has a hard ms-per-tick deadline; chunk ranking is spread across cycles.
- Circuit breaker — a module that keeps throwing is quarantined with one clear message instead of 20 stack traces a second.
- Bounded everything — every map, queue and history buffer has a hard cap.
- Atomic, off-thread saves — no YAML is ever serialised on the tick loop.
- Log rotation — actions.log rotates instead of filling your disk.
Spoiler: Commands
- /zmi status — TPS, MSPT, CPU, entities, crisis level
- /zmi dashboard — graph, risk score, hotspots and self-cost
- /zmi diagnose — ranked cause + evidence + recommended action
- /zmi doctor — config check, platform capabilities, self-cost
- /zmi log [1-50] — every automatic action it took
- /zmi crisis <level> — force a level (auto-expires)
- /zmi module <name> <enable|disable> — toggle a module live
- /zmi alerts [on|off|status] — your own notification preference
- /zmi reload — reload without restarting
Spoiler: Permissions
- zmi.use — base access (help, personal alerts)
- zmi.notify — receive alerts
- zmi.admin — parent node granting everything below
- zmi.command.status / dashboard / diagnose / log / crisis / module / doctor / reload — one node per command
- zmi.alerts.others — change another player's preference
- zmi.bypass — exempt from chunk-load ratio detection
Spoiler: PlaceholderAPI
35 placeholders, all language-file driven:
Plus aliases such as health, status, primary_cause and status_line.
Code (Text):
%zminspector_tps% %zminspector_performance_score%
%zminspector_mspt% %zminspector_lag_score%
%zminspector_cpu% %zminspector_lag_source%
%zminspector_memory% %zminspector_lag_trend%
%zminspector_entities% %zminspector_workload_pressure%
%zminspector_chunks% %zminspector_protection_status%
%zminspector_players% %zminspector_summary%
%zminspector_mspt% %zminspector_lag_score%
%zminspector_cpu% %zminspector_lag_source%
%zminspector_memory% %zminspector_lag_trend%
%zminspector_entities% %zminspector_workload_pressure%
%zminspector_chunks% %zminspector_protection_status%
%zminspector_players% %zminspector_summary%
Spoiler: Installation & requirements
Verified on 1.20.x, 1.21.x and the 26.x line from a single jar — every version-sensitive call is resolved at startup and degrades gracefully, and there is zero deprecated API in the build.
Folia is not supported. This is declared in the plugin file, so Folia refuses to load it instead of misbehaving.
- Drop the jar in /plugins and restart.
- Run /zmi doctor — it tells you what your server supports.
- Set observe-only: true for the first week.
- Read /zmi log to see what it would have done.
- Turn it back to false when you are comfortable.
Verified on 1.20.x, 1.21.x and the 26.x line from a single jar — every version-sensitive call is resolved at startup and degrades gracefully, and there is zero deprecated API in the build.
Folia is not supported. This is declared in the plugin file, so Folia refuses to load it instead of misbehaving.
Spoiler: FAQ
Will it delete my players' items?
No. Not unless you enable two separate switches. Even then, players within 12 blocks are untouched and valuable items are protected.
Will it lag my server?
It budgets itself and reports its own cost. /zmi doctor warns you if it goes over 2 ms/tick.
Does it work on the newest version?
One jar for 1.20 → 26.x. No recompile, no deprecated API, no version-specific build.
Can I try it with zero risk?
Yes — observe-only: true. It reports everything and changes nothing.
Why not just delete entities like other plugins?
Because that is how servers lose players. zMInspector pauses, throttles and reduces instead — all of it reversible, all of it logged.
No. Not unless you enable two separate switches. Even then, players within 12 blocks are untouched and valuable items are protected.
Will it lag my server?
It budgets itself and reports its own cost. /zmi doctor warns you if it goes over 2 ms/tick.
Does it work on the newest version?
One jar for 1.20 → 26.x. No recompile, no deprecated API, no version-specific build.
Can I try it with zero risk?
Yes — observe-only: true. It reports everything and changes nothing.
Why not just delete entities like other plugins?
Because that is how servers lose players. zMInspector pauses, throttles and reduces instead — all of it reversible, all of it logged.
Statistics
zMInspector — Monitor. Diagnose. Protect.
Questions, bugs or feature requests? Reply in the discussion thread — I read everything.
zMInspector — Monitor. Diagnose. Protect.
Questions, bugs or feature requests? Reply in the discussion thread — I read everything.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20, 1.20.6, 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
zMInspector - Smart Lag Protection is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.6, 1.21, 26.1 and newer. Downloaded 36 times (via Spigot). Download it and open it directly in the game.