
CoreProtect Community Edition
CoreProtect is a fast, efficient data logging and anti-griefing tool. Inspect, lookup, rollback, and restore any amount of damage without impacting your server performance.
CoreProtect is the #1 anti-griefing plugin, and has been actively developed since early 2012.
| Quick Links | |
|---|---|
| CoreProtect Discord: | discord.gg/b4DZ4jy |
| CoreProtect Patreon: | patreon.com/coreprotect |
| CoreProtect Documentation: | docs.coreprotect.net |
| Downloads for MC 1.14 - 26.3: | coreprotect.net/latest |
| Downloads for MC 1.8 - 1.12: | coreprotect.net/legacy |
| Downloads for Fabric: | coreprotect.net/fabric |
| Downloads for Hytale: | coreprotect.net/hytale |
Donation Keys
To support the project and obtain a donation key, visit coreprotect.net/donate.
Other Plugins
- DarkerNights: spigotmc.org/resources/darkernights.87814
- TransitTubes: patreon.com/posts/75731668
Video Tutorial
Core Features
- Fast, efficient data logging.
- Rollbacks and restores with lag-free processing.
- Multi-threaded to ensure server performance is never impacted.
- No configuration required. Install the plugin, and you're good to go.
- Embedded DuckDB columnar storage by default, with optional ClickHouse, SQLite, and MySQL support.
- Supports Bukkit, Spigot, Paper, Folia, MultiPaper, and more.
- Permission system support and advanced lookup permissions.
- Easy-to-use commands and inspector.
- Advanced lookup filters and operation limits by radius, world, or WorldEdit selection.
- Paginated results with clickable pagination.
- Preview rollbacks and restores, and undo rollbacks by restoring the same data.
- Rollback or restore specific users, multiple users, or global activity.
- Inventory rollback support.
- Purge old data by time, world, and block type.
- Multi-world support.
- Configurable global and per-world logging settings.
- Safe default parameters.
- Include or exclude specific blocks, items, entities, or users, plus logging blacklists.
- WorldEdit and supported FAWE logging.
- Enhanced item lookup tooltips.
- Localization and translation support.
- Automatic update checking and error reporting.
- Developer and networking API support.
- ...and much more!
What does it log?
Blocks and World Changes
- Blocks placed or broken by players.
- Natural block breakage, such as attached blocks breaking when their support is removed.
- Block movement, including falling sand, gravel, and piston movement.
- Water and lava placement, removal, and flow.
- Liquid tracking, associating flowing liquids with the player who placed the source.
- Fire ignition from flint and steel or fire charges, block burning, and fire fade.
- Optional natural fire extinguishing.
- TNT, Creeper, Ghast, and other explosions, plus primed TNT removal.
- Entities changing blocks, including Endermen, Ender Dragons, and zombies breaking doors.
- Leaf decay.
- Tree growth linked back to the player who planted the sapling.
- Mushroom, vine, amethyst, chorus, and bamboo growth.
- Sculk spread from sculk catalysts.
- Nether portal and other natural portal generation.
- Crops trampled by players and turtle eggs trampled by players or entities.
- Snow generated by snow golems.
- Liquid-formed blocks such as obsidian, cobblestone, and concrete.
- Flowers placed in flower pots.
- Dragon egg teleportation.
- Suspicious sand and gravel brushing or destruction.
- Custom blocks, such as CraftEngine blocks.
Containers, Inventories, and Items
- Items taken from or placed into vanilla or supported third-party containers.
- Hopper, dropper, and dispenser transactions, including container transfers.
- Player inventory transactions, including items dropped, thrown, shot, or picked up.
- Items broken, created, destroyed, deposited, or withdrawn by players.
- Items placed on campfires and lectern book transactions.
- Chiseled bookshelf, decorated pot, and shelf inventory transactions.
- Copper Golem chest and jukebox transactions, plus crafter slot changes.
- Bundle actions through the
#bundletag. - Items crafted or traded with villagers.
- Allay item exchanges.
- Paintings and item frames.
Entities and Player Activity
- Entity deaths and detailed death reasons.
- Player-caused entity kills, including animals and monsters.
- Armor stands and End Crystals.
- Villagers killed by lightning, gossip data, and job-site memories.
- Thrown eggs, snowballs, potions, ender pearls, tridents, and wind charges.
- Player interactions with doors, buttons, levers, containers, bookshelves, and jukeboxes.
- Sign text, color, glow, wax, and modern double-sided signs.
- Player chat messages and commands.
- Player sessions including logins and logouts, player deaths, and username changes.
- Skull skin texture data on Paper servers and custom skull textures.
- WorldEdit changes and supported FAWE clipboard pastes.
- ...and more!
How to use the inspector
Once you have the inspector enabled with /core inspect or /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 while placing a block in a location to see what block was removed at that location.
- Right-click while placing a block in another block to see who placed it. For example, place dirt in water to see who placed the water.
- Right-click a door, button, lever, container, or similar block 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."
- Featured on Linus Tech Tips.
Useful Links
Documentation
https://docs.coreprotect.net
Commands
https://docs.coreprotect.net/commands/
Permissions
https://docs.coreprotect.net/permissions/
API Documentation
https://docs.coreprotect.net/api/
Feedback & Support
https://github.com/PlayPro/CoreProtect/issues
Discord
Join us on Discord: https://discord.gg/b4DZ4jy
Donate
Enjoy using CoreProtect and want to show your support? Join our Patreon!
Sponsors
Thanks to HostHorde for sponsoring CoreProtect!
Bug Reports
For any bug reports, please submit a ticket here:
https://github.com/PlayPro/CoreProtect/issues
Thanks for your support!
bStats
All Versions
+ Add Version- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).*
- Patrons receive early access to builds with exclusive functionality**, as well as other exclusive benefits.*
### Changelog
- Added support for Minecraft 26\.2\.
- Fixed incorrect item counts during rapid hopper transfers and container interactions\.
- Fixed missing hopper logs during container breaks, rollbacks, WorldEdit changes, or shutdowns\.
- Fixed incorrect hopper logs for containers at the same coordinates in different worlds\.
- Fixed false block\-break logs when dispensers use buckets, including on waterlogged blocks\.
- Fixed missing tab\-completion options when paging through results or searching containers\.
- Fixed other plugins' chat and command searches for specific players on SQLite\.
\* _Denotes functionality exclusive for Patreon subscribers._
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
- Patrons receive early access to builds with exclusive functionality**, as well as other exclusive benefits.*
### Changelog
- Added support for Minecraft 26.1.
- Added support for automatic purges* .
- Added support for custom blocks (e.g. via CraftEngine).
- Added support for the #bundle tag.
- Added Action, actionId, material, entityType, and message metadata to CoreProtectPreLogEvent.
- Added argument validation to the purge command.
- Added logging for zombies breaking doors.
- Added logging for flowers being placed in flower pots.
- Added logging for dropping items into hoppers.
- Added logging for removal of primed TNT and fire fade.
- Added logging for thrown eggs (@Warriorrrr).
- Added logging for villager gossip data.
- Added logging for villager job-site memories.
- Added logging for villagers killed by lightning.
- Added logging for custom skull textures.
- Added logging for all Silverfish infestations.
- Added 8 new API methods for lookups.
- Added typed API helpers and shared LookupOptions support.
- Added option to give items from lookups into inventory (@MrSteppy).
- Added & color code support for language files (@1wairesd).
- Added additional validation for armor stand damage events.
- Added fireball attribution for Ghasts.
- Added automatic error reporting.
- Improved blacklist handling (@guss-alberto).
- Improved MySQL index handling.
- Improved Folia support.
- Improved WorldEdit / FAWE version parsing.
- Improved sand and gravel logging to prevent phantom blocks.
- Improved de-dupe logic for droppers, dispensers, fluids, and entity kills.
- Improved performance for hopper and container transaction logging.
- Improved rollback performance (approximately 80% faster).
- Changed entity explosions to always log damage under entity names.
- Changed minimum supported MC version to 1.16.5.
- Fixed colored bundles not rolling back properly (@guss-alberto).
- Fixed waterlogged buckets being incorrectly logged (@guss-alberto).
- Fixed wind charge logging (@Warriorrrr).
- Fixed water incorrectly being logged in the Nether.
- Fixed crimson and warped fungus growth not respecting mushroom-growth.
- Fixed AdvancedChests causing a circular load order.
- Fixed incorrect string value errors on legacy MySQL databases.
- Fixed books placed in lecterns not being logged.
- Fixed note blocks rolling back in invalid state.
- Fixed a Folia crash when logging entity deaths.
- Fixed update notice not always displaying correctly.
- Fixed beds not always rolling back in the correct state.
- Fixed villagers not restocking trades after rollbacks.
- Fixed FAWE commands not logged by CoreProtect (@TWME-TW).
- Fixed MySQL warnings when logging paintings on Minecraft 1.21+.
- Fixed MysqlDataTruncation error when logging large bundles.
- Fixed IllegalStateException when logging falling blocks on Folia servers.
- Fixed NoSuchElementException caused by invalid byte data.
- Fixed NoSuchMethodError on transaction events when using Arclight.
- Fixed IllegalArgumentException for lava and water in inventory rollbacks.
- Fixed NullPointerException when generating a new database on MC 26+.
- Fixed NullPointerException on Purpur servers when a destination hopper has moved.
- Fixed NullPointerException when performing a preview with invalid data.
- Fixed ConcurrentModificationException when using queueLookup in the API.
\* _Denotes functionality exclusive for Patreon subscribers._
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
- Patrons receive early access to builds with exclusive functionality**, as well as other exclusive benefits.*
### Changelog
- Added support for Minecraft 1.21.11.
- Added logging for copper golem chest transactions.
- Added logging for shelf inventory transactions (@guss-alberto).
- Fixed wind burst explosions being incorrectly logged (@guss-alberto).
- Fixed UnsupportedOperationException in Folia.
\* _Denotes functionality exclusive for Patreon subscribers._
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
- Patrons receive early access to builds with exclusive functionality**, as well as other exclusive benefits.*
### Changelog
- Added preliminary support for Minecraft 1.21.10.
- Added support for MultiPaper servers.
- Added support for extended copper chest logging.
- Adds support for logging enabling/disabling Crafter slots (@stufyerface).
- Added location information to CoreProtectPreLogEvent API event.
- Improved & extended localization (@Halogly, @shotadft, @crexlight, @malpkakefirek, @hwangsihu, @JoMiNovi)
- Fixed startup error on Minecraft versions without minor version information.
\* _Denotes functionality exclusive for Patreon subscribers._
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
- Patrons receive early access to builds with exclusive functionality**, as well as other exclusive benefits.*
### Changelog
- Added extended support for Minecraft 1.21+.
- Added ability to migrate data between SQLite and MySQL*.
- Added support for AdvancedChests (@DeadSilenceIV).
- Added container transaction logging for decorated pots.
- Added logging for droppers adding items to other containers.
- Added logging for dispensers removing blocks from the world.
- Added more detailed entity death reasons (such as suffocation).
- Added ability to specify specific block types in the purge command.
- Added ability to exclude specific block types in blacklist.
- Added #button, #container, #door, #pressure_plate, and #shulker_box tags.
- Added CPU & RAM information to "/co status" command.
- Added logging for skull skin textures on Paper servers.
- Added primary thread error when running a rollback via API.
- Added "include" parameter to purge tab completion.
- Changed minimum supported MC version to 1.16.
- Changed "#endercrystal" to now log as "#end_crystal".
- Changed namespace remapping to no longer trigger on Paper 1.20.5+.
- Changed deserialization errors to no longer display on stable branches.
- Improved safety block handling during rollback teleports.
- Improved MySQL index handling on radius lookups.
- Improved performance of hopper transaction logging.
- Fixed logging of invalid drowning glow squid data.
- Fixed anvil inventory transactions not being properly logged.
- Fixed wind charges incorrectly logging false #explosion data.
- Fixed inventory sorting mods generating unnecessary threads.
- Fixed purge "include" parameter not functioning correctly for SQLite databases.
- Fixed NullPointerException when processing unknown entity types.
- Fixed IllegalStateException error on some servers during server shutdowns.
- Fixed NullPointerException on some servers when processing inventory transactions.
- Fixed NullPointerException when hopper destination block is missing.
- Fixed NotSerializableException when killing certain entities.
\* _Denotes functionality exclusive for Patreon subscribers._
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Added thread-safe logPlacement and logRemoval API methods.
- Fixed FAWE changes not being logged when using newer builds (@Telesphoreo).
- Fixed unnecessary database transactions when consumer is empty.
- Fixed obfuscation formatting in item names making tooltips unreadable.
- Fixed occasional NullPointerException while processing hopper transactions.
- Fixed NoSuchMethodError when shooting or dropping arrows in MC 1.20/1.20.1.
- Fixed MysqlDataTruncation error when logging custom skull data.
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Improved hopper logging to prevent infinite attempts on failed pushes.
- Fixed hopper pulls performing container validation on wrong block.
- Fixed hopper transactions not always being logged.
- Fixed teleports not working on some systems.
- Fixed teleport shortcut not properly handling extremely large numbers.
- Fixed zombies killed by wither roses not always being logged.
- Fixed entity deaths not always being logged in MC 1.19 and earlier.
- Fixed placing items in item frames logging incorrect item amounts.
- Fixed region halts on player quits when using Folia (@NahuLD).
- Fixed block spread cache not always being properly utilized.
- Fixed legacy short grass data rolling back as air in MC 1.20.3+.
- Fixed lookups on legacy data not matching against legacy materials.
- Fixed ConcurrentModificationException with queueLookup API method.
- Fixed NoSuchMethodError when shooting or dropping arrows in MC 1.20.5+.
- Fixed NullPointerException when rolling back player heads.
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Fixed entity data not being logged when using SQLite on MC 1.20.2+.
- Fixed item names containing vertical bars displaying incorrectly.
- Fixed rollbacks not checking world when teleporting players.
- Fixed internal block cache not being cleared for inactive players.
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Added support for displaying lore in item tooltips.
- Added hidden "enable-ssl" database option (default: false).
- Fixed dropper transactions not being logged when using Paper.
- Fixed tree growth still being logged when disabled in config file.
- Fixed hasPlaced and hasRemoved API methods always returning false. (@takejohn)
- Fixed CoreProtectPreLogEvent not implementing Cancellable. (@takejohn)
- Fixed IndexOutOfBoundsException when modifying signs on Paper 1.17-1.19
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Added support for Folia.
- Added tooltips to lookups that display item names and enchantments.
- Added extended support for Minecraft 1.20 blocks/items/entities.
- Added logging and rollback support for all double sided signs.
- Added inventory transaction logging for chiseled bookshelves.
- Added inventory transaction logging for placing items on a campfire.
- Added logging for brushing and destruction of suspicious sand/gravel.
- Added logging and rollback support for jukebox transactions.
- Added logging and rollback support for dragon egg teleportation.
- Added player interaction logging for chiseled bookshelves.
- Added player interaction logging for jukeboxes.
- Added legacy component serialization support for signs in Paper 1.17+.
- Added logging for clipboard pastes when using FAWE. (@Boothin)
- Added hidden "unknown-logging" logging option. (@Radiant)
- Added hidden "maximum-pool-size" database option. (@C0Nd3Mnd)
- Improved performance of ItemStack merging. (@asdanjer)
- Improved performance of structure growth processing. (@s-yh-china)
- Improved detection of new wood types for future Minecraft updates.
- Improved CoreProtectPreLogEvent to now be cancellable.
- Improved MySQL database connection handling.
- Changed minimum required version to Minecraft 1.15.
- Updated HikariCP dependency from 4.0.3 to 5.0.1.
- Fixed performLookup in API not returning valid block data.
- Fixed sign lookups displaying incorrectly when containing hex colors.
- Fixed incorrect amounts when dispensing items in Paper 1.19.3+.
- Fixed networking API connections being reset when reloading config.
- Fixed logging and lookup issues after performing "/co reload".
- Fixed mushroom growth logging invalid data when using bonemeal.
- Fixed tree/mushroom growth not respecting config file when using bonemeal.
- Fixed NullPointerException while processing transactions for dyed armor.
- Fixed NullPointerException while logging container transactions.
- Fixed NullPointerException while breaking/placing a spawner.
- Fixed NullPointerException while performing rollbacks.
- Fixed InventoryClickEvent exception when using Magma.
- Fixed ConcurrentModificationException in ProjectileLaunchEvent.
- If you enjoy using CoreProtect, please consider supporting the project on [Patreon](https://coreprotect.net/patreon/) and joining us on [Discord](https://coreprotect.net/discord/).
### Changelog
- Added logging for player inventory transactions with allays.
- Added logging for sculk catalyst block spread. (@Gungadean)
- Added logging for frog, tadpole and goat metadata.
- Added extended support for mangrove blocks.
- Added networking API for third-party clients. (@vacla)
- Improved database index handling for faster lookups.
- Improved HikariCP database connection handling.
- Improved Spanish and Chinese translations. (@KrazyxWolf, @DreamVoid)
- Fixed tab completion not fully respecting player permissions.
- Fixed queueLookup API method returning data in wrong order.
- Fixed NullPointerException when killing NPCs.
- Fixed NullPointerException on disable if plugin failed to load.
- Fixed NullPointerException when processing hopper transactions.
- Fixed NumberFormatException when using certain WorldEdit builds.
- Fixed IllegalStateException when modifying containers using FAWE.
- Fixed IllegalArgumentException when processing corrupt data.
- Fixed NoSuchMethodError when stopping server using Paper 1.14.
