CoreProtect is a flight recorder for your world. It quietly logs who placed and broke every block, opened every chest, and killed every mob — so when someone tears up spawn, you can see exactly what they did and roll it back like it never happened. It's the plugin you'll be most glad you installed before you needed it.
| At a glance | |
|---|---|
| You need | A plugin-capable server (Purpur, PaperSpigot, or another Plugin Servers option) |
| Plan | Any |
| Time | ~15 minutes to learn, then it just runs |
| Install | from the Plugins page |
⚠️ Heads up: CoreProtect can only roll back what it recorded. Install it early — ideally on day one — because it can't undo grief that happened before it was logging. It's insurance, and insurance only pays out if you had it first.
The one command to remember: the inspector
Turn on the inspector, then just click blocks:
/co inspect
(or the short form /co i). With it on:
- Left-click a block to see who broke what was there and when.
- Right-click a block to see who placed it, and the history of that spot.
- Left-click a chest/door to see who opened or used it.
The history prints in chat with player names and timestamps. Run /co i again to turn the inspector back off. This alone answers "who did this?" for 90% of incidents.
Looking up an area
When you don't want to click every block, /co lookup (short: /co l) queries by filters:
/co lookup user:Griefer time:2h radius:10
/co lookup time:1d radius:20 action:-block
/co lookup user:Griefer block:diamond_ore
The filters combine, and these are the stable, long-standing ones:
| Filter | Meaning |
|---|---|
user:<name> |
Only this player (comma-separate several) |
time:<n>h / <n>d / <n>m |
How far back — hours, days, minutes |
radius:<n> |
Blocks around where you're standing (radius:global = everywhere) |
action:<type> |
Filter by block, click, container, kill, +block/-block for place/break |
block:<name> |
Only a specific block/item type |
Rolling it back
A rollback undoes actions matching your filters. A rollback is just a lookup with rollback instead of lookup — so preview with a lookup first, then run the rollback with the same filters:
/co lookup user:Griefer time:3h radius:30
/co rollback user:Griefer time:3h radius:30
The world snaps back to before that player's changes in that area. Got the filters slightly wrong? Undo the rollback itself:
/co restore user:Griefer time:3h radius:30
💡 Tip: Always run the lookup first with the exact filters you plan to roll back. It shows you precisely what will change, so a too-wide
radiusortimedoesn't quietly revert legitimate builds along with the grief.
The config, and keeping the database healthy
CoreProtect's settings are in /plugins/CoreProtect/config.yml, and it keeps its logs in its own database (a local file by default). Two things a beginner actually cares about:
# A comfortable default radius for lookups/rollbacks
default-radius: 10
# Whether to log each kind of action — turn OFF what you don't need
# to keep the database smaller (e.g. block-movement, item-transactions)
block-place: true
block-break: true
The database grows with activity. On a busy server you occasionally trim old data you'll never need to roll back:
/co purge time:30d
That deletes logs older than 30 days. Take a backup before a big purge, and never purge more than you're willing to lose the history for.
Verify it works
Place a block, break it, then /co i and left-click where it was — you should see your own placement and break with timestamps. If the history shows up, CoreProtect is logging correctly.
The honest limits
- CoreProtect is not protection. It records and undoes; it does not prevent grief. To stop damage happening at all, pair it with WorldGuard region flags. The two together are the classic combo.
- It only knows what it logged. No logging before install, and anything you turned off in config, simply isn't there to roll back.
- Rollbacks aren't always perfect — complex interactions (some container contents, blocks other plugins manage) can restore imperfectly. Review the result after a big rollback.
- The database costs disk. On the free plan's shared storage, log the actions you care about and purge old data periodically.
- Command syntax has been stable for years; for the full, current filter list check CoreProtect's own documentation.
Troubleshooting
- A lookup returns nothing — CoreProtect wasn't logging yet when it happened, or your
time/radius/userfilter is too narrow. Widen the filters. - A rollback reverted too much — run
/co restorewith the same filters to undo it, then redo the rollback with a tighterradiusortime. - The plugin won't enable — usually a
config.ymlYAML error; the console names the line. See editing configs safely. - Server disk is filling up — CoreProtect logs add up; disable actions you don't need and
/co purgeold data.