The Cleaner

A simple, focused/fun utility plugin: a custom shovel that instantly clears every block within a configurable radius.
What It Does
The Cleaner adds a single custom item: an unbreakable Diamond Shovel that, when right-clicked on a block, clears every block within a spherical radius of that point. Unlike vanilla tools that only affect specific block types, The Cleaner removes any non-blacklisted block: stone, dirt, ore, logs, leaves, all of it.
Each shovel remembers its own radius independently, so you can hand out multiple Cleaners set to different sizes for different jobs a radius-5 for detail work, a radius-15 for major terraforming all governed by the same server-wide maximum.
How It Works
- Right-click a block with The Cleaner equipped.
- The shovel arms, and you'll see a warning in your action bar confirming the radius that's about to be cleared.
- Right-click again within the confirmation window to execute the clear. Any other action, or letting the window expire, cancels it safely nothing is cleared on a single accidental click.
- Made a mistake?
/tclean undorestores your most recent clear exactly, block for block.
Blocks are cleared based on true spherical distance from the clicked point, not a cube, so the affected area is a clean sphere rather than a blocky box.
Screenshots

Commands
| Command | Description | Permission |
|---|---|---|
/tclean give [player] [radius] |
Gives a Cleaner shovel, optionally to another player and/or with a specific starting radius | thecleaner.give (default: op) |
/tclean radius <number> |
Sets the radius of the Cleaner shovel currently in your hand | thecleaner.radius (default: all players) |
/tclean max radius <number> |
Sets the server-wide maximum radius and saves it to config.yml |
thecleaner.maxradius (default: op) |
/tclean undo |
Restores the blocks from your most recent clear | thecleaner.undo (default: all players) |
/tclean reload |
Reloads config.yml without a server restart |
thecleaner.reload (default: op) |
Aliases: /thecleaner, /cleaner
Safeguards
- Confirmation required -> every clear requires two right-clicks in succession (configurable timeout), preventing accidental use near valuable builds. Can be disabled in the config if you prefer instant clearing.
- Hard radius cap -> a configurable server-wide maximum radius that individual shovels can never exceed, even if a player tries to set their own radius higher or edit the item's data directly.
- Block blacklist -> a configurable list of materials that will never be cleared regardless of radius or permissions. Bedrock is blacklisted by default.
- One-step undo -> every clear is snapshotted (exact block data, not just block type) so it can be fully reversed with
/tclean undo. - Per-player cooldown -> a short cooldown between uses to prevent rapid-fire spam clearing.
- Unbreakable item -> the shovel has no durability, so it can't be lost to breaking mid-use.
- World height respected -> clearing never attempts to touch blocks above or below the world's build limits.
Configuration
All settings are adjustable in config.yml and reloadable live with /tclean reload:
radius.max-> the hard ceiling for any shovel's radius (default:20)radius.default-> starting radius for newly given shovels (default:10)blacklist-> list of materials that can never be cleared (default:[BEDROCK])cooldown-seconds-> seconds between uses per player (default:3)confirmation.enabled/confirmation.timeout-seconds-> toggle and timing for the double-click confirmation (default: enabled,5seconds)effects.enabled/effects.sound/effects.particle-> sound and particle feedback on clear (default: enabled)
Dependencies
None. The Cleaner is built entirely on the vanilla Paper API with no external libraries, no NMS/reflection, and no soft dependencies. It works out of the box on any Paper 26.1.2 server with no additional plugins required.
Permission nodes are standard Bukkit permissions, so any permissions plugin (LuckPerms, PermissionsEx, etc.) will work with it automatically no special integration needed.
If you enjoy this plugin consider leaving a donation: