EntityManager
Intelligent Entity Limiting. Zero Lag. Full Control.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6-Row GUI ◆ 26 Languages ◆ Per-Type Limits ◆ Day/Night Rules ◆ Paper 1.21
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What EntityManager Solves
Entity lag is the silent killer of Minecraft servers. One player with 200 chickens, another with 50 minecarts, a third with an item frame wall pushing 300 entities - and suddenly your TPS tanks from 20 to 12. Vanilla offers no tools to prevent this. Most "solutions" are either global entity caps that break farms or console-only commands that require an admin to be online and watching.
EntityManager changes that. It monitors entity density within a configurable radius around every tracked entity, compares it against per-type limits you define, and removes excess automatically. It does not scan every tick. It does not load chunks. It uses a spatial index for O(log n) lookups. When entities pile up, EntityManager removes them before anyone notices the lag. Not after.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The Control Panel
Open /em from anywhere. No console required. Everything is one click away.
The Control Panel
Open /em from anywhere. No console required. Everything is one click away.
◆ Entity Grid
- 7x4 grid (28 per page) showing every configured entity type with live tracked counts
- Color-coded usage bars: green below 75%, yellow at 75-100%, red when exceeding limit
- Left-click opens a detail panel with Clear, Teleport to nearest entity, and per-world Info
- Right-click instantly clears that entity type across all worlds
- Unconfigured entity types appear as suggestions - click to see what you could be tracking
◆ Smart Filtering
- Click the header star to cycle through worlds - view entity counts per world or globally
- Click the page indicator to cycle sort modes: Name, Count, or Usage Percentage
- Right-click the page indicator to open the detailed /em stats breakdown in chat
◆ Dashboard Footer
- Live TPS display with color: green above 18, yellow 15-18, red below 15
- Tracked chunks counter and total removed counter with lifetime statistics
- One-click Toggle to enable or disable the limiter without reloading
- Force Check button runs an immediate entity scan and refreshes the GUI
- Purge All button removes every tracked entity across all worlds in one click
- Reload button applies config changes live with audible confirmation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Configuration Depth
Simple to start. Powerful when you need it. Every mechanic is exposed in config.yml.
Configuration Depth
Simple to start. Powerful when you need it. Every mechanic is exposed in config.yml.
◆ Entity Limits
- Per-type limits for any entity: ZOMBIE, ARMOR_STAND, ITEM_FRAME, DROPPED_ITEM, and more
- Group limits aggregate entire categories: MONSTERS, ANIMALS, MINECARTS, BOATS, PROJECTILES
- DEFAULT fallback catches any entity type not explicitly listed
- Per-world overrides let farm_world run at higher limits than survival_world
◆ Removal Intelligence
- Four removal priority modes: oldest first, newest first, farthest from center, or random
- Minimum threshold prevents aggressive cleanup of small groups
- Grace period warns players before removing their entities
- Custom name bypass protects renamed mobs from ever being removed
◆ Per-Entity Settings
- Each entity type can override its own radius, removal priority, and minimum threshold
- Conditional day/night limits - allow more monsters at night, fewer animals during day
- Per-player entity limits restrict how many of a type one player can place within range
◆ Region Protection
- Detects WorldGuard and PlotSquared regions automatically
- Entities inside protected regions are never removed
- Exempt entire worlds from tracking: spawn, lobby, minigame worlds
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Notifications That Matter
Know when entities are removed without watching the console.
Notifications That Matter
Know when entities are removed without watching the console.
◆ Admin Alerts
- Delivered as title, action bar, or chat message - configurable per type
- Target ops only, or anyone with entitymanager.admin permission
- Shows count, entity type, exact coordinates, and world name
◆ Player Notifications
- Notify players when their own entities are removed nearby
- Configurable alert radius - only warn players within range of the removal
◆ Discord Webhooks
- Full embed support: title, description, world, location, count fields
- Rate-limited per world and entity type to avoid Discord API abuse
- Configurable cooldown between notifications for the same world and type
◆ Public Broadcast
- Optional chat broadcast when a removal threshold is met
- Configurable minimum count before broadcasting
◆ Visual Feedback
- Particle effects spawn at removal locations
- Configurable particle type, count, offset, and spread
- Falls back gracefully if a particle is unavailable on your server version
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Multi-Language Support
Every string in the GUI, chat, and Discord is translatable. No hardcoded English anywhere.
Multi-Language Support
Every string in the GUI, chat, and Discord is translatable. No hardcoded English anywhere.
EntityManager ships with 26 built-in languages: English, Polish, German, French, Spanish, Italian, Russian, Chinese, Portuguese, Turkish, Indonesian, Vietnamese, Dutch, Korean, Czech, Thai, Hungarian, Arabic, Japanese, Ukrainian, Swedish, Danish, Romanian, Slovak, Hebrew, and Lithuanian. Each language file contains over 80 translated keys covering every menu, button, lore line, and chat message. Switching languages is a single line in config.yml. Missing keys fall back to English automatically. Server admins can add custom languages by dropping a new .yml file into the lang folder.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How EntityManager Compares
How EntityManager Compares
| Feature | EntityManager | Basic ClearLag |
| Control panel | Full 6-row GUI with sorting, world filter, detail views | Console commands only |
| Per-type limits | Individual limits per entity type or group | Global entity cap or all-or-nothing clearance |
| Removal logic | Radius-based, priority-ordered, minimum threshold, region-aware | Bulk clear on a timer, no intelligence |
| Day/night rules | Separate limits for day and night cycles | Not available |
| Region protection | WorldGuard + PlotSquared support | Not available |
| Notifications | Admin, player, Discord webhook, public broadcast, particles | Basic console log or none |
| Multi-language | 26 languages, 80+ translatable keys, zero hardcoded strings | English only, hardcoded messages |
| Toggle live | Enable or disable without reload, from GUI or command | Requires plugin reload or restart |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Who This Is For
Who This Is For
- Survival and SMP servers Prevent farm overpopulation without breaking farms. Your cow farm can have 16 cows per chunk, not 200. Pigs at 16, chickens at 16. Players learn to build smarter, not bigger.
- Faction and PvP servers Block entity-based griefing. No more 500 armor stands lagging spawn. No more entity cramming exploits. Set strict limits and let EntityManager enforce them silently.
- Network hubs Exempt your lobby and spawn worlds entirely. Apply aggressive limits to game worlds only. Toggle the limiter off during events, back on when they end.
- Performance-focused admins If you have ever typed /tps and winced at the number, this plugin is for you. It does not replace profiling or proper server configuration. It gives you one less thing to worry about.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Commands
Commands
| Command | Description | Permission |
| /em | Opens the control panel GUI | Everyone |
| /em stats [world] [type] | Detailed per-type entity breakdown with usage bars | Everyone |
| /em info <type> | Per-world statistics for a specific entity type | Everyone |
| /em status [world] | Quick overview of entity and chunk counts per world | Everyone |
| /em clear <type|all> [world] | Removes entities of the specified type or all types | entitymanager.admin |
| /em toggle | Enables or disables the entity limiter without reloading | entitymanager.admin |
| /em reload | Reloads configuration, language files, and restarts the checker | entitymanager.admin |
| /em migrate <plugin> | Migration guide for EntityLimiter and ArmorStandLimiter users | entitymanager.admin |
| /em help | Displays the command reference | Everyone |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Technical Specs
Technical Specs
| Platform | Paper 1.21+, Java 21 |
| Dependencies | None. WorldGuard and PlotSquared are optional integrations. |
| PlaceholderAPI | Optional. 10 placeholders: tracked chunks, total removed, uptime, per-type counts, per-world counts |
| Performance | Spatial index for O(log n) entity lookups. Configurable check interval in ticks. Zero chunk loading. |
| Languages | 26 built-in. Add custom languages by dropping a .yml into the lang folder. |
| Config Migration | Automatic. New config keys are added to existing files without overwriting user values. |
| Analytics | bStats, optional |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Get EntityManager
Your server's TPS is not a suggestion.
EntityManager keeps it where it belongs.
One plugin. 26 languages. Zero hardcoded strings. Full GUI control.
Download. Drop into plugins. /em. Done.
Questions? Reviews and feature requests are always read.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Get EntityManager
Your server's TPS is not a suggestion.
EntityManager keeps it where it belongs.
One plugin. 26 languages. Zero hardcoded strings. Full GUI control.
Download. Drop into plugins. /em. Done.
Questions? Reviews and feature requests are always read.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
