Anti-Griefing Tools Login to Add Favorites
  • Minecraft
  • 9,686 Monthly Downloads
  • Supports: 1.10
  • 830,940 Total Downloads
  • Updated Jul 29, 2016
  • Created Mar 9, 2012
  • 92 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: CoreProtect v2.13.1

About CoreProtect

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!

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

CoreProtect 2.13.1

  • Added check to determine if server is running Java 1.7 or higher before starting plugin.
  • Changed MySQL connection handler to use a connection timeout instead of a network timeout.
  • Fixed dynamic patching system failing to detect JAR file under certain conditions.

CoreProtect 2.13.0

  • Added logging for all 1.9/1.10 block and entity types.
  • Improved internal patching system to dynamically detect new patches.
  • Improved purges by having them defragment/recreate the entire database.
  • Improved MySQL connection handling & SQLite index handling.
  • Changed minimum requirements from Java 1.6 to Java 1.7.
  • Fixed internal caches becoming corrupted if the database format (MySQL/SQLite) is switched via "/co reload".
  • Fixed lookups with invalid radius parameters returning confusing results.
  • Fixed being unable to use "block:skull" as a valid lookup parameter.
  • Fixed "/co l u:<user> a:username" randomly failing due to an issue with the UUID cache.
  • Fixed purges on SQlite databases failing under certain conditions. [TICKET-536]
  • Fixed items dragged across slots in chests not being logged. [TICKET-550]
  • Fixed right clicking with the inspector performing a lookup twice. [TICKET-539]
  • Fixed slanted rails not being logged as broken when the adjacent block is removed. [TICKET-421]

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.
  • 1
  • 2
  • 3
  • 4
  • Next


  • To post a comment, please or register a new account.
Posts Quoted:
Clear All Quotes