Mini Logo

CoreProtect 2

CoreProtect - Fast, efficient block logging, rollbacks, and restores

Version: v2.13.1

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.

Latest 1.10.2:
Latest 1.8.8:
Tekkit Classic: (Old, works with CB 1.2.5)

Video Tutorial: (by jfreeze256)

Core Features

  • 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 username changes
  • Log changes done by 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."

Plugin Metrics

This plugin utilizes Hidendra's plugin metrics system, which anonymously collects and sends the following information to

  • A unique identifier
  • The server's version of Java
  • Whether the server is in offline or online mode
  • The plugin's version
  • The server's version
  • The OS version/name and architecture
  • The core count for the CPU
  • The number of players online
  • The Metrics version

Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.



Guides & Resources

API Documentation


Join #coreprotect on | EsperNet Web IRC


Thanks to HostHorde for sponsoring CoreProtect!

Have a question, a suggestion, or just want to tell us thanks? Post below!

Thanks for your support!

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Evgeniy_Lebedev Evgeniy_Lebedev Oct 03, 2016 at 16:34 UTC - 0 likes

    Hello. Can you make the time in inspector mode more convenient, for example, how many days, months or years old, not just the number of hours?

  • Avatar of DelboyDylan DelboyDylan Sep 27, 2016 at 15:50 UTC - 0 likes

    @JP3ACE: Go

    I'm personally unaware of a public guide on the database structure; at least I haven't found one. I just figured some stuff out by looking at the database in conjunction with my SQL knowledge, and tried a few things.

    What I've been able to ascertain in regard to the 'type' and 'data' fields of the 'co_block' table is this. The 'type' is a foreign key, both to the 'co_material_map' and 'co_entity_map' tables. When the 'action' is '0' (Break Block), '1' (Place Block) or '2' (Interact with Block), then this links with the 'id' field on the 'co_material_map' table. If the action is '3' (Kill Entity), then this links with the 'id' field on the 'co_entity_map' table.

    As for the 'data' field, when in relation to blocks, then this will be the data value of the block. For example, if the block is 'minecraft:stone' and the 'data' value is '2', then this would indicate the block was Polished Granite. If in relation to an entity, then this will be a foreign key to the 'rowid' field on the 'co_entity' table. Each individual entity that is killed will get an entry on this table with all the relevant data needed to bring it back to life if rolled-back.

    I expect the database structure would the same between servers (provided you are using the same version of CoreProtect). However, the data itself is dynamically created. Each time a new block/entity is logged within CoreProtect, the metadata is recorded at that point in time. Therefore, the 'id' of a block type is highly unlikely to be the same across databases, unless you discovered blocks/entities in the exact same order. My view is that an instance of a CoreProtect database should be considered to be an extension of a specific minecraft world, at a specific time. I would therefore treat it in the same way as a log file.

    Last edited Sep 27, 2016 by DelboyDylan: Typo
  • Avatar of JP3ACE JP3ACE Sep 26, 2016 at 20:00 UTC - 0 likes

    @DelboyDylan: Go

    Thanks for the info DelboyDylan!

    But is there a document, list, source code, or something that will clearly tell the values for all of the tables.

    Specifically the 'type' and 'data' of the coblock table?

    Also are the values and their meanings constant across multiple JARs/Servers or are they dynamically created. (If I run a separate Coreprotect plugin on a separate server will all the values and meanings still be the same for both Coreprotect databases)?

  • Avatar of DelboyDylan DelboyDylan Sep 21, 2016 at 06:42 UTC - 0 likes

    @JP3ACE: Go

    The users won't necessarily be players. The 'user' field in the 'co_block' table is a foreign key to the 'rowid' field in the 'co_user' table. So joining the tables on those fields will tell you what the 'user' is. If the user is a player, then the 'uuid' field in the user table will contain a value, instead of being null.

    As for the 'action' field, I was able to figure this out through trial and error. '0' is removing a block, '1' is placing a block, '2' is interacting with something (e.g. opening a door) and '3' is killing an entity.

  • Avatar of semirotta semirotta Sep 20, 2016 at 13:12 UTC - 0 likes

    I don't think it would work with Sponge?

  • Avatar of JP3ACE JP3ACE Sep 19, 2016 at 18:07 UTC - 0 likes

    Hello, I am new to all of this, I was looking into my sql lite to see what information was being stored on my private minecraft server.

    Can someone please tell me where to find a guide to how to read the database.

    I am the only user on my server, but the database shows other user ids doing things? I just started it to test it out and I have over a thousand entries, most of which arent from me.

    also under the wid, action, and data tabs, i don't know what any of these numbers represent or where to find out.

    Please help!

  • Avatar of semirotta semirotta Sep 16, 2016 at 08:43 UTC - 0 likes

    @SuperPyroManiac: Go

    I was told that the Cauldron, Sponge etc. are buggy? we are switching to beefier server after this payment ends so we might look into Cauldron or something then. :)

  • Avatar of sakura_blades sakura_blades Sep 16, 2016 at 00:35 UTC - 0 likes

    @semirotta: Go

    @SuperPyroManiac: Go

    Forge isn't plugins. There was MCPC And Cauldron, which HAD forge AND Bukkit functions. So it could support Mods AND Plugins.

    However if you have a server that runs on "FORGE", then no.. Coreprotect or any other plugin cannot run on that server. You'd need Cauldron, or MCPC or whatever the new hybrid system is these days...

  • Avatar of SuperPyroManiac SuperPyroManiac Sep 15, 2016 at 19:36 UTC - 0 likes

    @semirotta: Go

    About a year ago I used this on a cauldron server if that's what you mean. Using forge, and it worked pretty well.

  • Avatar of semirotta semirotta Sep 15, 2016 at 08:17 UTC - 0 likes

    @sakura_blades: Go

    There are Forge plugins too. Thats why I was wondering if this was working with it :S


Date created
Mar 09, 2012
Last update
Jul 29, 2016
Development stage
All Rights Reserved
Curse link
Reverse relationships
Recent files