Modscraper Modscraper Minecraft
Entity Detective logo

Entity Detective

Mod

A server-side Fabric mod that gives admins commands to find, count, profile and locate entities across all dimensions

Type

Mod

Modrinth Downloads

17

Modrinth ID

75dttuA0

Last Updated

Apr 26, 2026

Description

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 z directly 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
  • 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 │ ├── profile <type> [ticks] │ │ Measure MSPT cost over a tick window (default 100 ticks / 5 s; max 6 000 ticks / 5 min) │ │ --range <chunks> │ └── 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

--detail must always be the last flag. --range and --world are mutually exclusive.

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-only to get a type-count table of what's building up, then add --detail for chunk-grouped clickable /tp links 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 --persistent to 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

Compatibility

Mod Loaders

Fabric

Game Versions

26.1 26.1.1 26.1.2

Screenshots

Similar Mods

External Resources