CoreProtect is a fast, efficient, data logging and anti-griefing tool. Rollback and restore any amount of damage. Designed with large servers in mind, CoreProtect will record and manage data without impacting your server performance.
CoreProtect is the #1 most-used anti-griefing plugin, and has been actively developed since early 2012.
- Spigot 1.11 - Spigot 1.12:
- Spigot 1.9 - Spigot 1.10:
- Spigot 1.8:
- Fast efficient data logging.
- Fast rollbacks - no lag while performing rollbacks/restores.
- Multi-threaded to ensure server performance is never impacted
- No configuration required. Put the plugin on your server, and you're good to go.
- SQLite based data storage.
- Optional MySQL support.
- Easy to use commands.
- Perform rollbacks AND restores. Undo any rollback, anytime.
- Easy to use block inspector
- Advanced search-based lookup tool.
- Paginated logs.
- Automatic update checker.
- Multi-world support.
- Enable or disable any aspect of logging in the configuration file.
- Rollback per-player, or just do a global rollback to all damage around you.
- Specify certain block types to skip in rollbacks/restores.
- Restrict rollbacks/restores to specific block types
- Log basic player actions (such as when a player opens a door)
- Liquid tracking. Associate liquid flow with players
- Tree tracking. Trees grown from saplings show who originally planted the sapling.
- Restrict rollbacks/restores to a radius area.
- Supports bucket permission system.
- Able to track blocks that fall off of other blocks. If a player breaks a block that had a sign on it, both the block and the sign can be rolled back.
- Easily delete old log data.
- Safe default parameters.
- Rollback or restore multiple players at once.
- Create per-world configuration files.
- Lookup, rollback, or restore by a specific action.
- Exclude multiple users or blocks.
- Preview rollbacks or restores.
- Use WorldEdit selections.
- An easy to use API.
- Works with Tekkit servers
- ...and much more!!
What does it log?
- Log blocks broken by players
- Log blocks placed by players
- Log natural block breakage (ex: if a sign pops off a dirt block that was broken)
- Log bucket usage
- Log liquid flow
- Log tree growth
- Log mushroom growth
- Log vine growth.
- Log explosions (TNT, Creepers, Ghasts, etc)
- Log flint & steel and fire charge usage.
- Log fire igniting blocks
- Log blocks burning up in fires
- Log entities changing blocks (Endermen/Enderdragons)
- Log block movement (Falling sand/gravel)
- Log leaf decay
- Log player interactions
- Log Nether portal generation
- Log blocks moved by pistons
- Log crops trampled by players
- Log snow generated by snow golems
- Log items taken or placed in chests, furnaces, dispensers, etc.
- Log paintings and item frames. (With rollback support!)
- Log entities killed by players (animals/monsters)
- Log chat messages and commands used by players.
- Log player sessions (logins/logouts)
- Log player deaths
- Log username changes
- Log changes made via WorldEdit
- ...and the list is still expanding!
How to use the inspector.
Once you have the inspector enabled ("/core inspect", or just "/co i"), you can do the following:
- Left-click a block to see who placed that block.
- Right-click a block to see what adjacent block was removed.
- Right-click (place) a block in a location to see what block was removed at that location.
- Right-click (place) a block in another block to see who placed it. (ex: place dirt in water to see who placed the water)
- Right-click on a door,button,lever,chest,etc, to see who last used it.
A Few Reviews
- "It's easy to use and lightning fast when it comes to rollbacks."
- "I've been running a MC server since before Bukkit, so I've used just about every block logger out there. CoreProtect is the best and the fastest."
- "Go with CoreProtect. It's fast, updated frequently, and logs WorldEdit."
- "Overall it felt more natural, simpler, and much faster to use CoreProtect than Prism, which just doesn't compare."
- "CoreProtect brings complex logging and rollbacks, whilst at the same time keeping a low profile."
Guides & Resources
Feedback & Support
IRC & Discord
Join #coreprotect on irc.esper.net | EsperNet Web IRC
Discord server: https://discord.gg/H7HyPxz
Enjoy using CoreProtect and want to show your support? Donate here!
Thanks to HostHorde for sponsoring CoreProtect!
For any bug reports, please submit a ticket here: http://dev.bukkit.org/bukkit-plugins/coreprotect/tickets/
Thanks for your support!
Fast, efficient block logging, rollbacks, and restores
Excellent plugin. After some thorough testing I definitely consider this to be a 'must have' plugin because of all the things it can do. For me CP is the "last line of defense". I have some other not to be mentioned plugin which helps prevent griefing but there are always situations which it cannot solve. For example when a player trusts another player but is then betrayed. Well... that's where CP comes in.
For me CP is the kind of plugin which you hope you won't have to use, but when the situation does arise it's usually a life (or block) saver :)
ChatGuard cooldown chate ERROR
ERROR]: Could not pass event AsyncPlayerChatEvent to CoreProtect v2.14.2
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-4bd94dc-015bda4]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-4bd94dc-015bda4]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot.jar:git-Spigot-4bd94dc-015bda4]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:482) [spigot.jar:git-Spigot-4bd94dc-015bda4]
at net.minecraft.server.v1_12_R1.PlayerConnection.chat(PlayerConnection.java:1319) [spigot.jar:git-Spigot-4bd94dc-015bda4]
at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1257) [spigot.jar:git-Spigot-4bd94dc-015bda4]
at net.minecraft.server.v1_12_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot.jar:git-Spigot-4bd94dc-015bda4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_151]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_151]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
Caused by: java.lang.NullPointerException
at net.coreprotect.listener.PlayerListener.onPlayerChat(PlayerListener.java:299) ~[?:?]
at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-4bd94dc-015bda4]
... 11 more