[1.21.*] ⚠️ EzClean ⚠️ Entity Clearing - Death Chest - Anti Lag icon

[1.21.*] ⚠️ EzClean ⚠️ Entity Clearing - Death Chest - Anti Lag -----

Configurable recurring entity clear for lag prevention



EzClean
Hands-off entity sweeps with countdown alerts, pay-to-cancel safety nets, and live scheduler monitoring
Paper/Purpur 1.21+ • Java 17+ • Multi-profile scheduler • Dynamic MiniMessage broadcasts • WorldGuard bypass flag • Vault (optional)

Why EzClean?
  • Profile-based scheduling – Define multiple cleaner profiles with their own intervals, worlds, entity rules, and broadcast copy.
  • Interactive countdowns – Send themed warnings, summary recaps, and staff-only cancel prompts using MiniMessage placeholders for `{minutes}`, `{count}`, `{cleaner}`, and `{cost}`.
  • Granular removal rules – Toggle hostile mobs, passive mobs, villagers, vehicles, drops, orbs, projectiles, TNT, and clouds while protecting players, armor stands, displays, tamed pets, and named mobs.
  • World targeting – Aim cleanups at specific worlds or cover the entire network with the wildcard "*" entry.
  • Force keep/remove lists – Override defaults by tagging any `EntityType` to always stay or go for event arenas or custom mechanics.

Feature Highlights
  • MiniMessage ready – Ship themed warning, interval, dynamic, and cancel broadcasts using Adventure MiniMessage tags for minutes, count, cleaner id, and cancel costs.
  • WorldGuard integration – Regions flagged with `ezclean-bypass` are automatically skipped during sweeps.
  • Pay-to-cancel safety net – Optional Vault hooks let you charge players to cancel a cleanup, complete with hover tooltips and refund protection.
  • Safe defaults – Critical entities stay untouched until you explicitly opt into removing them.
  • Lightweight configuration – Cleaners, MiniMessage copy, and death chests live in tidy YAML files inside the plugin data folder.
  • Hot reload friendly – Use your favorite plugin manager or `/reload confirm` to apply profile changes on the fly.
  • Smart pile detection – Automatically cull stacks of drops or other spammy entities that exceed your per-block limit.
  • Optional death chests – Capture player drops in temporary containers that despawn on a timer instead of scattering items everywhere.

Configure What Gets Cleaned
  • Create as many cleaner profiles as you need with their own world targets, countdown cadence, and broadcast copy.
  • Toggle entity groups like hostile mobs, passive mobs, villagers, vehicles, drops, orbs, projectiles, clouds, falling blocks, and TNT on a per-profile basis.
  • Fine-tune specific `EntityType` values using the `keep`/`remove` arrays to protect custom mobs or purge event clutter.
  • Mix profiles for global sweeps, world-specific cleanups, or niche arenas without touching other schedules.
  • Reload the plugin to immediately apply your adjustments and monitor `/ezclean time` for updated countdowns.

Pay-to-Cancel Cleanups
  • Clickable countdown broadcasts let staff with `ezclean.cancel` delay the next cleanup without typing commands.
  • Charge an optional Vault-backed fee per cleaner profile and automatically refund players if the cancellation cannot proceed.
  • Customize hover, success, broadcast, and error copy with MiniMessage placeholders for `{player}`, `{cleaner}`, `{minutes}`, and `{cost}`.
  • Players without permission still see the standard warning, keeping the interaction 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.

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.

Admin Commands
  • /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`).

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.


Code (yml (Unknown Language)):

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: []
 

Code (yml (Unknown Language)):

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>"
    interval:
      message: "<yellow>⚠ Cleanup in <gold>{minutes}</gold> minutes. Clear valuables!</yellow>"
    dynamic:
      message: "<gold>⏳ {cleaner} cleanup in <yellow>{minutes}</yellow> minute(s)!</gold>"
  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: {}
 

Code (yml (Unknown Language)):

enabled: false
despawn-minutes: 30
inventory-title: "<gold>Death Chest</gold>"
 

Requirements
  • Java 17 or newer (matches the Paper 1.21 API baseline).
  • Paper or Purpur 1.21+ server build.
  • Vault + economy provider (only if you enable pay-to-cancel cleanups).
  • Optional: A plugin manager if you prefer in-game reloads instead of full restarts.

Support & Links
  • Questions or feature requests? Join our Discord and open a ticket under the EzClean category.
  • Share performance feedback or suggestions on your resource discussion thread so we can keep tuning the defaults.

Ready for spotless worlds?
Install EzClean today and let automated cleaners do the grunt work while staff focus on players!
Resource Information
Author:
----------
Total Downloads: 29
First Release: Oct 27, 2025
Last Update: Oct 31, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings