WorldGuard integration – Regions flagged with ezclean-bypass are automatically skipped during entity sweeps.
Pay-to-cancel safety net – Optional Vault hooks let you charge players to cancel a cleanup, with hover tooltips and refund protection.
Safe defaults – Critical entities are protected until you explicitly opt in to remove them.
Lightweight configuration – Cleaners, MiniMessage copy, and death chests in tidy YAML files.
Hot reload friendly – Reload profile changes instantly with your favorite plugin manager or /reload confirm.
Smart pile detection – Automatically cull stacks of drops or other spammy entities that exceed your per-block limit.
Entity merging – Merge nearby same-type entities before removal to reduce packet spam and improve sweep efficiency.
Optional death chests – Capture player drops in temporary containers that despawn on a timer instead of scattering items everywhere.
Language / i18n support – Ships with bundled English, Dutch, and Spanish translations; drop any <lang>.yml into the lang/ folder to add your own locale.
Discord webhook notifications – Post cleanup summaries to a Discord channel by setting a webhook URL in config.yml. No bot token or extra plugins required.
PlaceholderAPI support – Expose live stats as %ezclean_<stat>% placeholders for scoreboards, holograms, and chat formatters.
Spark integration – Use Spark's precise TPS/MSPT rolling averages for smarter scheduling and trigger automatic profiler sessions when entity counts spike.
EzCountdown integration – Drive pre-cleanup countdowns through EzCountdown for richer, theme-able announcements.
Storage-backed stats – Persist cleanup statistics across restarts with the bundled SQLite database or an external MySQL/MariaDB instance.
Update notifier – Ops receive a clickable in-chat notice when a newer EzClean version is available.
Interactive setup GUI – Configure cleaner profiles through a point-and-click inventory wizard without touching YAML.
Configure What Gets Cleaned 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.
Create unlimited cleaner profiles, each with unique world targets, countdown cadence, and broadcast messages.
Toggle entity groups (hostile mobs, passive mobs, villagers, vehicles, drops, orbs, projectiles, clouds, falling blocks, TNT) per profile.
Fine-tune specific EntityType values using keep/remove arrays to protect custom mobs or purge event clutter.
Mix profiles for global sweeps, world-specific cleanups, or niche arenas, without affecting other schedules.
Reload the plugin to instantly apply changes and monitor /ezclean time for updated countdowns.
Pay-to-Cancel Cleanups Let staff delay scheduled cleanups with a single click, optionally charging a Vault-backed fee and showing dynamic MiniMessage prompts.
Clickable countdown broadcasts let staff with ezclean.cancel permission delay the next cleanup instantly.
Charge an optional Vault-backed fee per profile and automatically refund players if cancellation fails.
Customize hover, success, broadcast, and error messages with MiniMessage placeholders: {player}, {cleaner}, {minutes}, {cost}.
Players without permission see the standard warning, keeping the feature gated to trusted ranks.
Monitor Async Scheduler Load
Use `/ezclean usage` for instant snapshots of pending sync/async tasks and the busiest plugins on your server.
Run `/ezclean usage live` in-game to stream chat updates plus an action bar graph, perfect for catching spikes as they happen.
Stop the feed anytime with `/ezclean usage stop` or filter the output to a specific plugin name.
Tracking the Cause of Lag 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: Run `/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: Use `/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: Add a plugin name to `/ezclean usage` or `/ezclean usage live` to focus on a specific plugin's scheduler activity.
Stopping the Feed: Use `/ezclean usage stop` to end a live monitoring session at any time.
Visual Feedback: The action bar graph and chat output make it easy to spot sudden increases in scheduled tasks, which often correlate with lag events.
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.
Optional Death Chests
Convert player drops into a 54-slot chest near the death location instead of littering the ground with items.
Set a despawn timer (or keep chests indefinitely) and auto-drop leftovers if the chest breaks or expires.
Customize the MiniMessage inventory title and toggle the feature on the fly without restarting the server.
Keeps messy drop piles off the ground so your cleanup cycles have less to sweep in the first place.
Advanced Death Chest Options (Optional)
Per-player chest limits – Restrict the number of active death chests each player can have at once to prevent abuse and clutter.
Code (yml (Unknown Language)):
max-chests-per-player: 2
Players exceeding the limit will have their oldest chest removed automatically. Usage:Set this value in death-chests.yml to control how many chests each player can have at once. Useful for preventing clutter and abuse on busy servers. Permission:ezclean.deathchest.limit.bypass lets a player ignore the chest limit.
Configurable loot protection – Only the owner can open their death chest for a configurable time after death (e.g., 5 minutes), after which anyone may access it.
Prevents looting by others until the timer expires. Great for PvP servers! Usage:Enable this to give players a grace period to recover their items before others can access the chest. Adjust the timer as needed for your server's play style. Permission:ezclean.deathchest.protection.bypass lets a player open any chest regardless of protection.
Hologram or particle effects above chests – Display a floating label or visual effect above each death chest for easy spotting.
Customizable text and particle type. Helps players find their chests quickly. Usage:Set these options to make death chests more visible. Holograms and particles can be themed to match your server and help players locate their chests easily.
Admin Commands
/ezclean help – List all available subcommands and their required permissions.
/ezclean setup – Open the interactive inventory GUI to configure a cleaner profile without editing YAML.
/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.
Quick Start
Drop `EzClean.jar` into your Paper or Purpur `plugins/` directory and restart the server.
Let EzClean generate `cleaners/default.yml`, `messages.yml`, and `death-chests.yml` inside its data folder on first launch.
Duplicate `cleaners/default.yml` for world-specific schedules, then adjust world lists, removal toggles, broadcast cadence, and cancel costs per profile.
Theme broadcasts in `messages.yml`, tweak death chest timers in `death-chests.yml`, and reload the plugin (or restart) to apply changes before checking `/ezclean time`.
WorldGuard Bypass Tag
Install WorldGuard alongside EzClean to unlock region-based exclusions.
EzClean automatically registers the `ezclean-bypass` state flag during startup. No manual flag setup required.
Use `/rg flag <region> ezclean-bypass allow` to mark safe zones (spawn, showcases, redstone labs) that should never be swept.
Switch the flag back to `deny` (or remove it) when you want EzClean to resume removing entities from that region.
Entities inside an `allow` region are skipped while the rest of the server is tidied normally.
Cleanup Scope at a Glance
Category
Default
Notes
Hostile mobs
Enabled
Removes Enemy instances unless explicitly kept.
Passive mobs
Disabled
Culls Animals, WaterMob, Ambient, Golem, and Allay entities when enabled.
Villagers & traders
Disabled
Targets villagers and wandering traders (AbstractVillager) on opt-in profiles.
Vehicles
Disabled
Removes Vehicle entities such as boats and minecarts when explicitly enabled.
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 to keep TPS stable.
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 enabled.