Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Entity Detective
Entity Detective is a server-side Fabric mod that gives admins surgical visibility into entity accumulation โ find exactly where mobs, persistent creatures, and dropped items are piling up across every loaded dimension, without needing a client mod. Works in singleplayer without enabling cheats.
What it does
- Per-dimension summaries โ See every entity type sorted by count, one block per dimension, across overworld, nether, and end simultaneously
- Clickable teleport links โ Every chunk header and individual entity line is clickable in chat and pastes
/tp @s x y zdirectly to the chunk centre or exact entity location - Lazy mob detection โ Pinpoint mobs stranded in chunks with no player within 128 blocks โ the exact threshold Minecraft uses for despawn checks โ where the server will never clean them up naturally
- Persistent mob detection โ Find name-tagged mobs, item-holders, leashed animals, and vehicle riders that will never despawn even when they do tick
- MSPT profiling โ Measure how many milliseconds per tick any entity type is consuming, or profile every type at once sorted by cost, over a configurable rolling window
- Chunk loader detection โ List all active portal chunk loaders (paired OW โ Nether) and ender pearl stasis chambers across every dimension. Coordinates are clickable
/tplinks when you're in the right dimension. - Block entity ticking audit โ Use
--ticking-onlyto find which block entities in a large farm actually ticked during an observation window, and--debugto see per-position tick counts instead of aggregate MSPT. - Live mob cap โ Check current vs. maximum entities per category with colour-coded saturation so you can spot mob cap pressure at a glance
Command structure
/entitydetective
โโโ mob <category>
โ โ category: monster | creature | ambient | axolotls | water_creature | water_ambient
โ โ (bare) โ Type-count summary per dimension
โ โ --lazy-only โ Type-count table, non-persistent mobs in lazy chunks
โ โ --persistent โ Type-count table, persistent mobs only
โ โ --world <dim> โ Scope to overworld | nether | end
โ โ --range <chunks> โ Scope to (2N+1)ร(2N+1) chunk square (0 = single chunk)
โ โ --detail โ Expand to chunk-grouped entity list with clickable /tp links
โ โโโ cap โ Live mob cap (current vs max, colour-coded)
โ
โโโ entity
โ โ (bare) โ Summary of all entity types by count, per dimension
โ โ --lazy-only โ Type-count table, non-persistent entities in lazy chunks
โ โ --persistent โ Type-count table, persistent entities only
โ โ --world <dim> โ Scope to a specific dimension
โ โ --detail โ Expand to chunk-grouped entity list with clickable /tp links
โ โโโ --range <chunks> โ Instant census of every entity type within range (0 = single chunk; no tick window)
โ โโโ locate <type> โ Locate any entity type (tab-complete from live world, substring match)
โ โ --lazy-only, --world <dim>, --range <chunks>, --detail
โ โ --ticking-only (block entities only) โ filter to positions that actually ticked
โ โโโ profile <type> [ticks]
โ โ Measure MSPT cost over a tick window (default 100 ticks / 5 s; max 6 000 ticks / 5 min)
โ โ --world <dim>, --range <chunks>
โ โ --debug (block entities only) โ per-position tick counts instead of aggregate MSPT
โ โโโ profile all [ticks]
โ Profile every entity type simultaneously, sorted by MSPT cost descending
โ (bare): all dimensions | --world <dim>: one dimension | --range <chunks>: local
โ
โโโ item
โ (bare) โ Dropped item summary per dimension, colour-coded by severity
โ --lazy-only โ Type-count table, lazy chunks only
โ --world <dim> โ Scope to a specific dimension
โ --range <chunks> โ Scope to chunk square around your position
โ --detail โ Expand to chunk-grouped item list with clickable /tp links
โโโ locate <item_id>
Find chunks with a specific item type (tab-complete, substring match)
--lazy-only, --world <dim>, --range <chunks>, --detail
chunks โ Detect active chunk loaders across all dimensions
Portal loaders shown as paired OW โ Nether lines; stasis chambers listed separately
Coordinates are clickable /tp when you're in the matching dimension
--detail must always be the last flag. --range and --world are mutually exclusive. Use /ed as a shorthand alias for /entitydetective.
Why lazy and persistent mobs matter
Lazy mobs are non-persistent mobs in chunks with no player within 128 blocks โ the exact threshold Minecraft's despawn logic uses. Because those chunks never tick entities, the normal despawn check never runs. Mobs accumulate there indefinitely. Use
--lazy-onlyto get a type-count table of what's building up, then add--detailfor chunk-grouped clickable/tplinks to teleport directly to the problem.
Persistent mobs are flagged by the game engine to never despawn, even in fully-ticking chunks. This includes name-tagged mobs, any mob that has picked up a dropped item off the ground, leashed animals, and mobs riding vehicles. Because they never despawn, they accumulate over time and increase the server's tick cost. Use
--persistentto see where they are building up.
Sample output
/entitydetective mob monster --lazy-only (type-count table)
-- lazy monster [overworld]: 45 entities --
minecraft:zombie 28
minecraft:skeleton 12
minecraft:creeper 5
Total: 45 entities across 3 types
/entitydetective mob monster --lazy-only --detail (chunk-grouped, clickable)
-- monster [overworld] (lazy, --detail): 45 entities in 2 chunks --
Chunk (12, -4) ร 31 โ /tp @s 192 ~ -64
[196, 63, -61] โ minecraft:zombie
[191, 64, -68] โ minecraft:skeleton "Bob" (name tagged)
...
/entitydetective entity profile all --range 10
-- Base Profile: 10-chunk range (100 ticks) --
3.636mspt TOTAL ร102
1.779mspt avg: 0.040ms piglin ร44
1.188mspt avg: 0.043ms hoglin ร28
0.402mspt avg: 0.040ms strider ร10
3.636mspt TOTAL ร102
/entitydetective item (severity-coloured)
-- Item Types [overworld]: 2 847 items --
2 130 items (142 entities) minecraft:cobblestone โ red
480 items ( 48 entities) minecraft:gravel โ yellow
12 items ( 4 entities) minecraft:diamond โ green
No client mod required ยท Works cross-dimension ยท Singleplayer compatible ยท Respects LuckPerms
Singleplayer world owner has full access without enabling cheats. On servers, requires op level 2 or the entitydetective.command LuckPerms node.
Releases ยท Source ยท License: MIT


