WorldPrune
Prunes inactive Minecraft region files — safely, with quarantine and rollback.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
WorldPrune
WorldPrune identifies region files that aren't covered by GriefPrevention claims and safely moves them into a quarantine folder. Nothing is permanently deleted until you explicitly say so — every apply is fully reversible via a built-in undo command.
Why use it?
Over time, Minecraft worlds accumulate thousands of region files generated by explorers who never claimed anything. WorldPrune lets you reclaim that disk space without risking player builds. A quarantine-first design means you can always roll back.
How it works
1. `/prune scan` reads your GriefPrevention, Towny, Residence, and WorldGuard claims (whichever are present) and marks unclaimed regions as candidates. 2. Web map overlay checks candidate regions for player-placed entities (item frames, armor stands, paintings, etc.) and keeps them even if unclaimed. 3. Web map overlay (optional) — if CoreProtect is installed, any unclaimed region with recent player block activity is automatically rescued from pruning, catching builds that were never claimed. 4. `/prune apply` moves candidate files to `<world>/quarantine/<apply-id>/`. An `apply-manifest.json` records every move. 5. `/prune undo` reads the manifest and puts files back exactly where they were. 6. `/prune drop` permanently deletes a quarantine entry once you're satisfied. 7. Web map overlay (optional) — if BlueMap or Dynmap is installed, keep/prune markers are automatically pushed to the web map after each scan.
All destructive operations (`apply`, `drop`) require a `/prune confirm` within 30 seconds, so there are no accidental deletions.
Requirements
- Paper or Spigot 1.20.1 or newer - Java 21 or newer - At least one claim plugin (all optional — WorldPrune works standalone, but claim awareness prevents false positives): - WorldGuard — API queried directly; falls back to claim file parsing - WorldGuard — API queried directly; falls back to townblock `.data` file parsing - WorldGuard — API queried directly; falls back to `Global.yml` parsing - WorldGuard — API queried directly (requires WorldEdit); falls back to per-world `regions.yml` parsing - CoreProtect — optional; enables activity-based rescue of unclaimed regions with recent player interaction - BlueMap or Dynmap — optional; region markers pushed to the web map after each scan
Commands
| Command | What it does | |---------|-------------| | `/prune scan [world|all]` | Analyse one or all worlds and generate a prune plan | | `/prune apply [world]` | Preview and stage an apply | | `/prune confirm` | Execute the staged operation | | `/prune undo [world]` | Restore files from quarantine | | `/prune drop <world> <apply-id>` | Permanently delete a quarantine entry (staged) | | `/prune plans [world]` | List stored plans | | `/prune map [world]` | Get a filled map showing the keep/prune grid | | `/prune status` | Show current configuration |
Permissions
`prune.admin` (default: op) covers read-only commands. Destructive actions require `prune.admin.apply` (apply/undo) or `prune.admin.purge` (drop/quarantine).
Source
MIT licensed. Source available on GitHub.