Configurable recurring entity clear and other advanced tools for lag prevention
Automated entity sweeps, live countdowns, pay-to-cancel, and async scheduler monitoring for SpigotMC, Paper, and Purpur 1.21+
SpigotMC/Bukkit, Paper, Purpur 1.21+, Java 17+, Multi-profile scheduler, MiniMessage broadcasts, WorldGuard bypass, Vault (optional)
EzClean is designed for modern Minecraft servers that demand performance, flexibility, and safety. Here’s why it stands out:
{minutes}, {count}, {cleaner}, {cost}.* for network-wide sweeps.EntityType to always keep or remove for custom events or mechanics.EzClean offers powerful features to keep your Minecraft server running smoothly and your players happy:
minutes, count, cleaner id, cancel costs.ezclean-bypass are automatically skipped during entity sweeps./reload confirm.Take full control over what entities are removed or protected on your Minecraft server. Mix and match profiles, entity groups, and custom rules for ultimate flexibility.
EntityType values using keep/remove arrays to protect custom mobs or purge event clutter./ezclean time for updated countdowns.Let staff delay scheduled cleanups with a single click—optionally charging a Vault-backed fee and showing dynamic MiniMessage prompts.
ezclean.cancel permission delay the next cleanup instantly.{player}, {cleaner}, {minutes}, {cost}.
EzClean makes it easy to diagnose and track down the source of server lag, especially when it is related to scheduled tasks or plugin activity. Use the following features to pinpoint lag causes:
Scheduler Usage Snapshots:
/ezclean usage to instantly view a breakdown of all pending sync and async tasks, sorted by plugin. This helps you identify which plugins are scheduling the most work and may be contributing to lag.Live Usage Monitoring:
/ezclean usage live to start a real-time feed in chat and action bar, showing task counts and the busiest plugins as they change. This is ideal for catching lag spikes as they happen and correlating them with plugin activity.Plugin Filtering:
/ezclean usage or /ezclean usage live to focus on a specific plugin's scheduler activity.Stopping the Feed:
/ezclean usage stop to end a live monitoring session at any time.Visual Feedback:
Tip: If you notice a spike in scheduled tasks or a particular plugin dominating the scheduler, investigate that plugin's configuration or recent activity. EzClean's tools are especially useful during peak times or after adding new plugins.

max-chests-per-player: 2
Players exceeding the limit will have their oldest chest removed automatically.ezclean.deathchest.limit.bypass lets a player ignore the chest limit.loot-protection:
enabled: true
owner-only-minutes: 5
ezclean.deathchest.protection.bypass lets a player open any chest regardless of protection.hologram:
enabled: true
text: "<gold>Death Chest</gold>"
particles:
enabled: true
type: VILLAGER_HAPPY
/ezclean run [cleaner] – Trigger any configured profile instantly when staff need a manual sweep./ezclean cancel [cleaner] – Delay the next cleanup cycle (and optionally charge a Vault fee) via command or the clickable broadcast prompt./ezclean time [cleaner] – Check how many minutes remain before the next scheduled cleanup runs./ezclean reload – Reload EzClean's configuration bundle without restarting to apply new profiles, messages, or entity rules./ezclean usage [plugin|live|stop] [plugin] – Diagnose heavy scheduler usage, start a live monitor, or cancel an active session (ezclean.usage)./ezclean stats [cleaner] – View detailed statistics for a cleaner profile, including run counts, total entities removed, average duration, TPS impact, and top affected worlds/groups.ezclean.deathchest.limit.bypass – Allows a player to ignore the per-player death chest limit.ezclean.deathchest.protection.bypass – Allows a player to open any death chest regardless of loot protection timer.EzClean.jar into your Paper or Purpur plugins/ directory and restart the server.cleaners/default.yml, messages.yml, and death-chests.yml inside its data folder on first launch.cleaners/default.yml for world-specific schedules, then adjust world lists, removal toggles, broadcast cadence, and cancel costs per profile.messages.yml, tweak death chest timers in death-chests.yml, and reload the plugin (or restart) to apply changes before checking /ezclean time.ezclean-bypass state flag during startup—no manual flag setup required./rg flag <region> ezclean-bypass allow to mark safe zones (spawn, showcases, redstone labs) that should never be swept.deny (or remove it) when you want EzClean to resume removing entities from that region.allow region are skipped while the rest of the server is tidied normally.| Category | Default | Notes |
|---|---|---|
| Hostile mobs | Enabled | Removes Enemy instances unless explicitly kept. |
| Passive mobs | Disabled | Culls Animals, WaterMob, Ambient, Golem, and Allay entities |
| Villagers & traders | Disabled | Targets villagers and wandering traders (AbstractVillager) |
| Vehicles | Disabled | Removes Vehicle entities such as boats and minecarts |
| Dropped items | Enabled | Clears loose Item entities server-wide |
| Projectiles & orbs | Enabled | Targets arrows, snowballs, thrown potions, and experience orbs |
| Area effect clouds | Enabled | Sweeps lingering potion clouds from combat-heavy areas |
| Falling blocks & TNT | Enabled | Removes rogue falling blocks and primed TNT |
| Players, armor stands & displays | Protected | Stay intact unless you toggle the protect.* switches off |
| Tamed mobs | Protected | Ignored while protect.tamed-mobs stays enabled |
| Named mobs | Protected | Skip entities with custom names when protect.name-tagged-mobs is on |
interval-minutes: 60
warning:
enabled: false
minutes-before: 5
broadcast:
start:
enabled: true
summary:
enabled: true
interval:
enabled: false
every-minutes: 15
dynamic:
enabled: false
minutes: [30, 15, 10, 5]
cancel:
enabled: true
cost: 50000.0
worlds:
- "*"
pile-detection:
enabled: true
max-per-block: 120
entity-types:
- ITEM
- EXPERIENCE_ORB
ignore-named-entities: true
remove:
hostile-mobs: true
passive-mobs: false
villagers: false
dropped-items: true
projectiles: true
experience-orbs: true
area-effect-clouds: true
falling-blocks: true
primed-tnt: true
protect:
players: true
armor-stands: true
display-entities: true
tamed-mobs: true
name-tagged-mobs: true
entity-types:
keep: []
remove: []
defaults:
warning:
message: "<yellow>⚠ Entity cleanup in <gold>{minutes}</gold> minutes. Clear valuables!</yellow>"
broadcast:
start:
message: "<red><bold>✦ Entity cleanup commencing...</bold></red>"
summary:
message: "<gray>✓ Removed <gold>{count}</gold> entities. Next cleanup in <gold>{minutes}</gold> minutes.</gray>"
pre-clean:
message: ""
interval:
message: "<yellow>⚠ Cleanup in <gold>{minutes}</gold> minutes. Clear valuables!</yellow>"
dynamic:
message: "<gold>⏳ {cleaner} cleanup in <yellow>{minutes}</yellow> minute(s)!</gold>"
stats-summary:
message: "<gray>Cleanup stats for <aqua>{cleaner}</aqua>: <gold>{runs}</gold> runs, <gold>{total_removed}</gold> removed total. Avg duration: <gold>{avg_duration}</gold>. Avg TPS impact: <gold>{avg_tps_impact}</gold>. Top groups: {top_groups}. Top worlds: {top_worlds}.</gray>"
cancel:
hover-message: "<yellow>Click to pay <gold>{cost}</gold> to cancel this cleanup.</yellow>"
success-message: "<green>You paid <gold>{cost}</gold> to cancel the <aqua>{cleaner}</aqua> cleanup.</green>"
broadcast-message: "<gold>{player}</gold> canceled the <aqua>{cleaner}</aqua> cleanup. Next cleanup in <yellow>{minutes}</yellow> minutes."
insufficient-funds-message: "<red>You need <gold>{cost}</gold> to cancel the cleanup.</red>"
disabled-message: "<red>This cleanup cannot be canceled.</red>"
no-economy-message: "<red>Economy is unavailable. Cleanup cannot be canceled.</red>"
cleaners: {}
enabled: false
despawn-minutes: 30
inventory-title: "<gold>Death Chest</gold>"
Ready for spotless worlds?
Install EzClean today and let automated cleaners do the grunt work while staff focus on players!