Roll back grief with CoreProtect

CoreProtect logs who placed and broke every block, so you can inspect history, look up what happened, and roll back grief like it never occurred — the insurance you install before you need it.

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 radius or time doesn'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/user filter is too narrow. Widen the filters.
  • A rollback reverted too much — run /co restore with the same filters to undo it, then redo the rollback with a tighter radius or time.
  • The plugin won't enable — usually a config.yml YAML 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 purge old data.

Next steps

Was this guide helpful?