Compatibility
Minecraft: Java Edition
26.3
Platforms
Tags
Creators
Details
Licensed ARR
Published 1 hour ago
Updated yesterday
exProtect logs every change on your server: blocks, containers, entities, items, chat and commands and rolls griefing back with a preview and undo. Changes are written through a crash-safe journal, so nothing is lost when the server dies.
Features
- Block logging – breaks, placements, signs, buckets, liquids, fire, explosions, pistons and physics, attributed to players or sources like
#tnt - Containers and items – what players add or remove from chests, hoppers and other containers, plus drops, pickups and inventory clicks
- Entities – kills and entity changes such as armor stands and item frames, restorable with their full data
- Chat, commands and sessions – who said, ran and joined what, with sensitive commands like
/loginhidden - Inspector –
/inspectand click any block or container to see its history - Lookup menu –
/lookupbrowses logged changes in an inventory menu, with teleport to the location; Bedrock players get native forms through Floodgate - Rollback with preview – see the result as a client-side preview first, then apply it; queue several rollbacks without blocking the server
- Restore and undo –
/restorere-applies rolled back changes,/exprotect undoreverts your last rollback or restore – even after a restart - WorldEdit and FastAsyncWorldEdit – edits are logged and roll back, including block entity data such as chest contents and sign text
- Grief alerts – staff are warned when a player breaks many foreign blocks or empties foreign containers, optionally with a Discord webhook
- Crash-safe logging – a write-ahead journal keeps every entry until it is in the database; a killed server loses nothing and duplicates nothing
- SQLite or MySQL/MariaDB – works out of the box with a local file, or use a database server for large networks
- CoreProtect import – bring your existing history over, resumable
- Retention – old entries are purged automatically after a configurable number of days
- Developer API – query history, log your own changes and subscribe to batches
- Fully customizable – every message lives in
language.yml, every sound inconfig.yml - Folia support – runs on Paper and Folia
Commands
| Command | Description | Permission |
|---|---|---|
/inspect |
Toggle the block inspector | exprotect.inspect |
/lookup [filter] |
Browse logged changes | exprotect.lookup |
/rollback <filter> |
Roll back changes | exprotect.rollback |
/restore <filter> |
Restore rolled back changes | exprotect.restore |
/exprotect undo |
Revert your last rollback or restore | exprotect.rollback |
/exprotect status |
Show database and queue status | exprotect.status |
/exprotect purge t:30d [filter] |
Delete matching entries older than the given time | exprotect.purge |
/exprotect import coreprotect |
Import CoreProtect history | exprotect.import |
/exprotect reload |
Reload config and language | exprotect.reload |
Teleporting from the lookup menu requires exprotect.teleport. Grief alerts go to exprotect.alerts; exprotect.alerts.exempt never triggers them.
Filters
| Parameter | Example | Meaning |
|---|---|---|
u: |
u:Steve,#tnt |
Players or sources |
t: |
t:1d12h |
Time span, required for rollbacks |
r: |
r:20, r:#world, r:#global |
Radius or world, global if u: is set |
a: |
a:block, a:container, a:entity, a:chat |
Action |
b: |
b:diamond_ore,villager |
Block, item or entity |
e: |
e:tnt,Steve |
Exclude blocks or players |
Example: /rollback u:Steve t:2h r:50 undoes everything Steve changed within 50 blocks in the last two hours.
Requirements
- Paper or Folia 26.3 or newer
- Java 25
- MySQL or MariaDB – optional
- Floodgate – optional, native forms for Bedrock players
- WorldEdit or FastAsyncWorldEdit – optional, logs edits
Installation
- Drop
exProtect.jarinto yourpluginsfolder and start the server. - Adjust
plugins/exProtect/config.yml(storage, what to log, retention, alerts, sounds) andlanguage.yml(texts). - Run
/exprotect reload– done.


