CoreProtect is your server's memory. It records who placed or broke which block and when, who opened a chest and what they took out. When a house gets destroyed you neither guess nor restore a full backup: you ask the log, read the name and revert exactly those changes. Everything other players built in the meantime stays in place. The screenshots come from a test server running Paper 1.21.1 and CoreProtect 24.0. For the demonstration a second test player damaged the house front, and a real rollback restored it.

Requirements

Install CoreProtect in the panel under Plugins → Browser. After the restart, /co version confirms the installation. Logging runs automatically from that moment; there is nothing to switch on. That is why the plugin has to be installed before the first damage: CoreProtect knows nothing about what happened earlier.

The commands belong to a moderation group only. The node coreprotect.* covers everything; helpers who should only look need coreprotect.inspect and coreprotect.lookup. Regular players need no node at all. How groups work is explained in LuckPerms: permissions setup.

By default CoreProtect writes to an SQLite file at plugins/CoreProtect/database.db. On a busy server it grows quickly, so checking disk space in the panel belongs to the routine. Old entries are removed with /co purge t:30d, which keeps the last 30 days and deletes the rest.

Finding the culprit: the inspector

The fastest way to a single block is the inspector. /co inspect (short /co i) turns it on; the same command turns it off again. While it is active, a left click on a block shows its history: who placed or broke it and when. A right click on a surface shows what once stood in the adjacent position, even if it is air now. A right click on a chest lists who put items in or took them out.

For a destroyed house that is often enough: click the gap in the wall and read the name.

Searching precisely: lookup

When several blocks are affected you query the log directly. The lookup takes the same parameters as the rollback, so you use it first to check what a rollback would touch at all:

/co lookup u:Wave1Builder t:1h r:15 a:-block

The parameters: u: is the player name, t: the time window (30m, 2h, 7d), r: the radius in blocks around your position, a: the action. a:-block means broken blocks, a:+block placed ones, a:container chest access, a:kill killed animals and players. b: narrows the search to specific blocks, for example b:chest. Long result lists are paged with /co l 2.

CoreProtect lookup: time, player, action and block per entry
CoreProtect lookup: time, player, action and block per entry

In the example the lookup shows that the test player broke white concrete and light blue glass out of the front within the last minute, with coordinates for each entry.

Restoring: rollback

The rollback takes exactly the parameters of the lookup you just checked:

/co rollback u:Wave1Builder t:1m r:15 a:-block

CoreProtect reports in chat how many blocks and chunks it changed and repeats the time window, radius and action. The front is back afterwards without anyone having to place a single block.

Rollback completed: six blocks in two chunks restored
Rollback completed: six blocks in two chunks restored
The house front after the rollback from the same camera position
The house front after the rollback from the same camera position

If something went wrong, /co restore with the same parameters reverts the rollback, and /co undo takes back the last rollback or restore. A rollback is not a leap without a net.

Common mistakes

  • The rollback touches too much. Without u: and r: it affects every player in the whole world. Always give player, radius and action, and read the lookup first.
  • "No results found". The time window is too small, the radius too tight, or the damage happened before CoreProtect was installed.
  • Chests stayed empty. Withdrawals belong to the container action; a:-block only restores blocks. For both, run two commands or omit a:.
  • The database keeps growing. Run /co purge with a time window regularly, ideally on an empty server.
  • Killed animals do not come back. a:kill lists them, but a rollback only restores blocks and chest contents.

Related guides

To prevent the damage in the first place, protect important areas with WorldGuard: create regions. Which group gets which commands is handled with LuckPerms. For everything CoreProtect does not know about, the panel backup remains.

Sources

CoreProtect: view an example

Our own captures from a demonstration environment. The version and setup shown may differ from your server.

The house front before the damage, fixed camera.
The house front before the damage, fixed camera.

CoreProtect 24.0 · Paper 1.21.1 · 2026-09-14

A second player breaks blocks out of the front. CoreProtect logs every break.
A second player breaks blocks out of the front. CoreProtect logs every break.

CoreProtect 24.0 · Paper 1.21.1 · 2026-09-14

/co lookup shows who broke which block and when.
/co lookup shows who broke which block and when.

CoreProtect 24.0 · Paper 1.21.1 · 2026-09-14

After /co rollback the front is restored; chat lists time range, radius and block count.
After /co rollback the front is restored; chat lists time range, radius and block count.

CoreProtect 24.0 · Paper 1.21.1 · 2026-09-14

  1. The house front is intact.
  2. A second player breaks blocks out.
  3. /co lookup shows who broke what.
  4. /co rollback restores the front.