Get an Epic Experience with Premium


Anti-Griefing Tools Login to Add Favorites
  • Minecraft
  • 11,586 Monthly Downloads
  • Supports: 1.8.1
  • 737,015 Total Downloads
  • Updated 07/02/2015
  • Created 03/09/2012
  • 79 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: CoreProtect v2.12.0

About CoreProtect

CoreProtect 2

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

Version: v2.12.0

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.8.7:
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!

CoreProtect now has an official IRC channel! Join #coreprotect on | EsperNet Web IRC

CoreProtect 2.12.0

  • Added logging for adding/removing items on armor stands.
  • Added logging for sticky pistons pulling blocks.
  • Added a logChat function to the API.
  • Added a logCommand function to the API.
  • Fixed the "coreprotect.inspect" permission not granting access to the "/co l <page>" command.
  • Fixed the blockLookup API function returning incorrectly formatted data.

CoreProtect 2.11.3

  • Added performPurge method to API.
  • Added previously removed methods back into API, for compatibility with abandoned plugins.
  • Added ability to restrict users, exclude users, and specify actions, for lookups/rollbacks/restores within the API.
  • Improved lookup/rollback/restore commands, so that they now fail if an invalid block or entity name was entered.
  • Fixed sapling growth failure being logged as sapling placement.
  • Fixed broken ParseResult.getType() function in API.

CoreProtect 2.11.2

  • Fixed several ClassCastException and NullPointerException errors.
  • Fixed broken ParseResult.getTypeId() function in API.
  • Fixed named pets not retaining names after a rollback.

CoreProtect 2.11.1

  • Fixed plugin refusing to register with WorldEdit v6+.
  • Fixed broken WorldEdit sign logging.

CoreProtect 2.11.0

  • Added logging for changes made by WorldEdit v6.
  • Added logging for new (Minecraft 1.8) door types.
  • Added logging for new (Minecraft 1.8) fence gate types.
  • Added logging for banner colours and patterns.
  • Added logging for armor stands.
  • Added custom block names for lookups (granite, polished_granite, diorite, polished_diorite, andesite, and polished_andesite).
  • Improved core logging; now uses block and entity names rather than block IDs.
  • Improved lookups; they now use block and entity names rather than block IDs.
  • Fixed MySQL not properly supporting UTF-8 characters.
  • Fixed banners placed in chests not being logged.
  • Fixed logging of paintings relying on Bukkit enum values.
  • Fixed paintings not being able to rollback or restore in Minecraft 1.8+.
  • Fixed item frames not being able to rollback or restore in Minecraft 1.8+.

CoreProtect 2.10.0

  • Fixed killing horses not logging correct data, such as the horse color.
  • Fixed firing an arrow at an item frame logging as "#arrow", rather than the username of the player.
  • Fixed server operators being unable to use "/co l u:#container".
  • Fixed new MySQL installs not using UTF-8 as the default character set.
  • Improved CoreProtect's internal versioning system.
  • Added internal support for UUIDs.
  • Added name change logging and lookups (action:username).
  • Added a new config.yml option for disabling name change logging.

CoreProtect 2.9.0

  • Fixed EntityDeathEvent errors occurring when using the "MyPet" plugin.
  • Fixed StructureGrowEvent errors occurring when another plugin creates a badly formed event.
  • Fixed blocks visually disappearing from player inventories when using the inspector.
  • Improved management of deprecated Bukkit methods.
  • Added logging for items taken out of item frames.
  • Added logging for snow generated by Snow Golems.
  • Added logging for fire punched out by players.
  • Added logging for crops trampled by players.
  • Added logging for carpet and double plants broken by water/lava.
  • Added support for rolling back & restoring double plants, such as sunflowers.
  • Added description information for Minecraft 1.7 block types.

CoreProtect 2.8.0

  • Fixed "/co reload" not being able to switch between SQLite and MySQL.
  • Fixed "coreprotect.lookup.block" permission controlling page lookups.
  • Fixed placing stairs not logging the direction they were placed.
  • Fixed rolling back a container not setting the correct container direction.
  • Improved version system to better reflect the current version number.
  • Improved API to use its own versioning system. Code changes are required to utilize the CoreProtect v2.0.8+ API. Updated example code can be found here:
  • Added support for usernames containing special characters.
  • Added description information for Minecraft 1.6 block types.

CoreProtect 2.7.0

  • Fixed version system not working with non-standard number formats.
  • Fixed replacing a block (ex: snow) not always logging the block removal.
  • Fixed rare instances of "Asynchronous entity track" error on rollbacks/restores.
  • Improved time taken for performing rollback/restore previews.
  • Improved preview interface, now displays block count.
  • Added "coreprotect.lookup.block" permission, for blocking block data lookups.
  • Added "" permission, for blocking interaction lookups.
  • Added "coreprotect.lookup.container" permission, for blocking container lookups.
  • Added "coreprotect.lookup.kill" permission, for blocking kill lookups.

CoreProtect 2.6.0

  • Fixed it so upgrades are able to continue if the enchantment data is invalid.
  • Fixed entity data not being properly filtered out for rollback/restore previews.
  • Fixed water from an ice block not logging as the person who broke the block.
  • Fixed piston movement logging the piston extension as a placed block.
  • Fixed placing pistons/chests/repeaters not logging the direction the block is facing.
  • Fixed asynchronous entity tracking error on the player chat event.
  • Fixed rare instances of starting a purge causing the plugin to lock up.
  • Fixed not being able to exclude non-standard block IDs in commands.
  • Fixed running a purge showing "database busy" instead of "purge in progress".
  • Fixed version managing system enforcing arbitrary limits on the version number.
  • Fixed custom potions in containers throwing NotSerializableException errors.
  • Fixed ClassCastException errors for rollbacks/restores when a container type is changed.
  • Fixed killing an entity with a splash potion not logging the username of the killer.

CoreProtect 2.5.0

  • Fixed player names not always linking to broken item frames / paintings.
  • Fixed skulls, cobwebs and tripwire broken by water/lava not being logged.
  • Fixed null pointer when accessing API if CoreProtect hasn't yet initialized.
  • Fixed TNT minecart explosions logging as "#explosion" instead of "#tnt"
  • Fixed multiple users modifying a container at once causing discrepancies in the logs.
  • Fixed not being able to do a "#container" rollback after inspecting a chest.
  • Fixed custom pagination on container lookups not persisting across pages.
  • Fixed a single user being able to start conflicting rollbacks simultaneously.
  • Added automatic patching system for CoreProtect database changes.
  • Added support for non-standard text length (for usernames/signs).
  • Added container transaction support for droppers, hoppers and trapped chests.
  • Added support for logging commands stored in command blocks.
  • Added complete support for Minecraft 1.5 block types.

CoreProtect 2.4.0

  • Fixed flower pots not being logged when the block under them is broken.
  • Fixed item frames / paintings not logging if destroyed by an obstruction.
  • Improved item frame / painting rollback accuracy, by making them run delayed.
  • Added player interaction logging for note blocks.
  • Added logging for blocks destroyed by Silverfish.

CoreProtect 2.3.0

  • Fixed it so errors aren't shown on startup if the update server is down.
  • Fixed breaking both sides of a double chest quickly causing discrepancies in the logs.
  • Fixed TNT destroying double chests logging double the amount of items removed.
  • Fixed WorldEdit logging not working if CoreProtect initialized before WorldEdit.
  • Fixed certain SNAPSHOT versions of WorldEdit not being compatible with CoreProtect.
  • Fixed falling sand/gravel (etc) from above a broken block not being logged.
  • Fixed interaction logging so it only works for right clicks.
  • Added interaction logging for repeaters, wooden buttons, anvils, hoppers and droppers.
  • Improved error message if WorldEdit logging is unable to initialize.
  • Further improved performance of event processing.

CoreProtect 2.2.0

  • Fixed errors being thrown if an arrow is shot by a non-entity.
  • Fixed no error message displaying when invalid command entered.
  • Added ability to use aliases for help commands (ex: "/co help l")
  • Added "/co ro", "/co re", "/co rb" and "/co rs" as command shortcuts.
  • Sped up rollbacks/restores, making them run nearly twice as fast.
  • Sped up event processing, for even less time spent in the main server thread.

CoreProtect 2.1.0

  • Fixed errors on startup for systems using non-standard decimal formatting.
  • Fixed "coreprotect.*" permission not giving access to reload command.
  • Fixed bug with rolled back redstone torches (etc) not always putting out power.
  • Fixed bug with rolled back glowstone blocks (etc) not always lighting up surrounding area.
  • Fixed MySQL upgrades so invalid enchantment data is filtered out.
  • Fixed it so the upgrade still continues properly if the config.yml file is missing.
  • Fixed it so if the upgrade fails, database connections are closed so the server doesn't lock up.
  • Fixed it so "apply", "cancel", "undo", and "near" aliases use parent permissions.
  • Changed it so any child permission can be used as a negative permission against "coreprotect.*"
  • Added "" permission, for blocking chat lookups.
  • Added "coreprotect.lookup.command" permission, for blocking command lookups.
  • Added "coreprotect.lookup.session" permission, for blocking session lookups.

CoreProtect 2.0.0

  • Changed it so MySQL databases use a more efficient database structure.
  • Made it so flat file storage is now done via a single SQLite database.
  • Future proof. Can now properly handle non-standard data types.
  • Made it so all logging events now use a consumer, rather than generating new threads.
  • Made it so block names now display on the lookup page.
  • Made it so chests broken in explosions log the items that were in the chest.
  • Cleaned up the interface and implemented a new colour theme.
  • Made it so using the inspector now does a full block lookup.
  • Made it so item transactions now log ALL item data (enchantments, item names, etc)
  • Made it so all skull data, such as skull owners and skull rotation, is logged.
  • Made it so radius lookups no longer require a time parameter (ex: "/co l r:10" for all nearby data).
  • Made it so lookups can now do block-type only searches (ex: "/co l b:56 t:1d")
  • Added a default radius of 10, which is auto added if you don't specify a radius. Changeable in config.yml
  • Added a maximum radius of 100. Use "r:#global" to do a global search. Changeable in config.yml
  • Made it so if you're inside a block that gets rolled back or restored, you get teleported on top of it.
  • Added ability to specify number of results shown on lookup pages by using "/co l <page>:<results>".
  • Added "/co reload" command for reloading configuration. Permissions can be set with "coreprotect.reload" node.
  • Changed "noisy" to "#verbose". Also added a "#silent" option tag for rollback/restores if verbose mode is enabled.
  • Added ability to specify multiple users in a rollback/restore/lookup (ex: "/co l u:Notch,Intelli t:1d")
  • Added ability to exclude users (ex: "/co l r:5 e:Notch"). Can be used in combination with block ID's.
  • Added ability to do global world lookups/rollbacks/restores. (Ex: "/co l u:Notch t:1d r:#nether")
  • Made it so purges now use regular time syntax, but require a minimum time of 30 days unless run via console.
  • Added ability to create per-world config files, that match the world folder name (ex: world_the_end.yml).
  • Added "a:<action>" option for rollback/restores/lookups. See "/co help actions" for info.
  • Added ability to search the last inspected container by using "/co l u:#container <params>".
  • Added ability to rollback/restore the last inspected container (ex: "/co rollback u:#container,Notch t:1d").
  • Added ability to have items taken from containers (etc) rollback by enabling "rollback-items" in config.yml
  • Made it so adding "#count" to the end of a lookup command returns the # of rows found.
  • Added ability to preview rollbacks/restores by adding "#preview" to the end of your command.
  • Added "/co undo" alias as a shortcut to undo a rollback/restore via the opposite action.
  • Added "/co near" alias as a shortcut to do a lookup with a radius of 5.
  • Added chat logging. Search using "/co l u:Notch a:chat" or "/co l a:chat"
  • Added command logging. search using "/co l u:Notch a:command" or "/co l a:command"
  • Added login/logout logging. Search using "/co l u:Notch a:login" (etc).
  • Made it so all new configuration values are by default enabled for less confusion.
  • Added entity kill logging. Search using "/co l u:Notch t:1d a:kill" (etc).
  • Added ability to rollback entity kills (ex: "/co rollback a:kill r:5 t:1d")
  • Added ability to automatically rollback/restore mob deaths by enabling "rollback-entities" in config.yml
  • Added ability to use worldedit selections by using "r:#worldedit" (or just "r:#we").
  • Created a Tekkit version of CoreProtect 2.0
  • Improved the base code and fixed a ton of minor bugs.


First Previous Page 1 of 3 Next Last
  • #32

    I trusted this too much, and it has screwed me over. Even though the time is well before any and all griefing, CoreProtect fails to roll everything back to how it was before. Loads of blocks are missing, items are dropped, and it seems to default to 10 blocks radius and it isn't clear how I can make the changes to the entire world at once.

    Don't bother with this plugin, it's not worth your time. Instead, stick with regular backups. I trusted this too much and just lost a shit ton of work and no way to get it back.

  • #31

    Big problem. If the datasbase is not reachable on server restart, then the server is not connectable (times outs trying to connect). The server does start, but no one can connect. Disabling the CoreProtect plugin allows players to connect once more.

    This is a huge problem in the plugin, to deny connectivity to the server simply if the database connection is not available. Please correct.

    Thank you.

  • #30

    Do you need an SQL Database

  • #29
    Worldedit not getting logged

    Worldedit isn't getting logged on my server, i dont get any error report or anything, it just dosent get logged. Help?

  • #28

    works with my Bukkit 1.8.3 server. 

    Have just 1 problem: i tried  /co rollback r:#global t:30m and it says 'CoreProtect - You did not specify a rollback radius.'

    i tried #global changing with #world and then it said to type user, but the problem is that i want everything to be undone in last 30 mins :/

  • #27

    Could this plugin be updated to 1.8 please?

  • #25

    Erm, how do I inspect World Edits?

  • #26

    This definitely used to work with WorldEdit; it acted like the person just placed the blocks manually, but I think this broke recently.

  • #24

    can this be used on spigot 1.8?

  • #23

    I want CoreProtect for 1.8, if N/A for 1.8 can I use this plugin (1.7.9) for a 1.8 server???

  • #22

    is possible to log actions only in some worlds?

  • #21

    do you need an sql database to use this plugin?

  • #20

    Thanks for the update! Item frames logging will be a huge help since its been a challenge protecting them!

  • #19

    Please answer this @ imcool105 on skype. How do i disable claims in a specific world?

  • #17

    First I have to thank the dev team for making such a nice checking addon! And I have a question; Is there a way to check who was creeper/ghast following when it exploded something? And if it is not possible yet, will it be possible to check that in the future?

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Darkest Dungeon Wiki Editing Contest