Bolt : The modern protection solution for individual blocks and entities.
A classic revisited; Bolt aims to expand on the ideas that inspired plugins that came before it, such as LWC and Lockette. However, Bolt has been completely redesigned to better support newer Minecraft features and provide more flexible configuration to suit the needs of today's servers.
Bolt allows your players to protect valuable blocks and entities on your server to protect them from griefers, while avoiding the intrusiveness of region-based protection plugins. It also includes powerful access management capabilities.
Features
- Supports protecting any block or entity
- Easy to use, with redesigned commands
- Configurable protection types and access
- Efficient SQLite and MySQL storage options
- Full MiniMessage translation support
Getting Started
First time using Bolt?
Simply download the plugin, and drop it in your plugins folder. Once you restart the server, items such as chests and item stands should automatically lock when placed. You can also lock and unlock via commands.
You can add or remove blocks and entities from the configuration to change what can be protected on your server. It is also possible to change what protection type things are automatically protected as when placed, or disable automatic protections entirely if you want!
For more advanced configuration and usage, as well as a list of commands and permissions that Bolt offers, see the wiki.
Support
For support join us on Discord!
All Versions
+ Add Version- Added support for copper torches and sulfur spikes ([@rymiel](https://github.com/rymiel))
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Improved performance for items moving between protected inventories ([@rymiel](https://github.com/rymiel))
- Fixed nether and end portal activation being able to destroy protections ([@rymiel](https://github.com/rymiel))
- Fixed an interaction with protected shelves that could cause items to be removed without permission ([@rymiel](https://github.com/rymiel))
- Fixed spears being able to knock back protected entities ([@rymiel](https://github.com/rymiel))
- Fixed permission check for interacting with protected blocks to waterlog them ([@rymiel](https://github.com/rymiel))
- Fixed block replacement by the protection owner being incorrectly cancelled
- Fixed an interaction with protections that could cause invalid block placement ([@rymiel](https://github.com/rymiel))
- Fixed block modification from causing auto protect to trigger ([@rymiel](https://github.com/rymiel))
- Fixed shulkers dispensing from droppers locking air ([@rymiel](https://github.com/rymiel))
- Fixed protected iron doors not being breakable ([@rymiel](https://github.com/rymiel))
- Fixed protected doors not being toggleable on Folia ([@ian171](https://github.com/ian171))
- Added support for copper chests, copper golems, and shelves ([@rymiel](https://github.com/rymiel))
- Added /bolt admin storage (import|export) command to convert between database types ([@rymiel](https://github.com/rymiel))
- Added a warning that will display if hopper protections are configured with disable-move-event enabled
- Updated community translations from Crowdin
- Fixed an error that could occur when protecting item frames on a Folia server
- Fixed a performance issue related to Paper being detected as Folia ([@HaHaWTH](https://github.com/HaHaWTH))
- Removed Spigot compatibility ([@rymiel](https://github.com/rymiel))
- Added support for resin clumps, pale moss, pale hanging moss, bush, firefly bush, short dry grass, tall dry grass, leaf litter, wildflowers, and cactus flowers ([@rymiel](https://github.com/rymiel))
- Added "disable" tab completion when applicable to the admin report command ([@rymiel](https://github.com/rymiel))
- Updated adventure version to fix use-action-bar feature for 1.21.8
- Updated locked piston protections to be able to break other locked blocks from the same owner ([@rymiel](https://github.com/rymiel))
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Improved door sound playback to better match vanilla ([@rymiel](https://github.com/rymiel))
- Improved handling of protections when filling and emptying buckets ([@rymiel](https://github.com/rymiel))
- Improved handling of armor being dispensed from locked dispensers ([@rymiel](https://github.com/rymiel))
- Improved interaction of locked dispensers and dispensed shulker boxes ([@rymiel](https://github.com/rymiel))
- Fixed tab completion working for admin commands players don't have access to ([@rymiel](https://github.com/rymiel))
- Fixed blocks being placed inadvertently when opening a locked iron door ([@rymiel](https://github.com/rymiel))
- Fixed an issue where a click action was required even when there was no valid modification target for the bolt modify command ([@rymiel](https://github.com/rymiel))
- Fixed protections being removed when a block is not destroyed if another plugin cancels the event ([@rymiel](https://github.com/rymiel))
- Fixed a bug where protected blocks could be replaced when they shouldn't ([@rymiel](https://github.com/rymiel))
- Fixed a bug where modifying a locked block was always cancelled when it sometimes shouldn't ([@rymiel](https://github.com/rymiel))
- Fixed a bug where bolt admin report command could give inaccurate results ([@rymiel](https://github.com/rymiel))
- Fixed a bug where the incorrect sound would play opening some types of double doors
- Fixed an issue where profile lookups for players that haven't joined the server would fail ([@rymiel](https://github.com/rymiel))
- Added /bolt admin trust <player> which allows admins to edit players' trust lists ([@rymiel](https://github.com/rymiel))
- Added /bolt admin nearby <radius> which displays nearby protections ([@rymiel](https://github.com/rymiel))
- Updated /bolt admin find to also display protected entities in addition to blocks ([@rymiel](https://github.com/rymiel))
- Updated protections for beehives to always allow bees to interact with them ([@rymiel](https://github.com/rymiel))
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed bundles not working inside of locked containers ([@rymiel](https://github.com/rymiel))
- Fixed empty messages being sent when a translation message is blank ([@rymiel](https://github.com/rymiel))
- Fixed an issue where entity protection access would not be checked properly with other plugins ([@LOOHP](https://github.com/LOOHP))
- Fixed right clicking copper trapdoors not working ([@rymiel](https://github.com/rymiel))
- Fixed right clicking iron trapdoors working when iron door config is disabled ([@rymiel](https://github.com/rymiel))
- Fixed issue with waxed blocks sometimes being removed by admin cleanup ([@rymiel](https://github.com/rymiel))
- Removed trapdoor matcher which was not needed since trapdoors do not require a supporting block ([@rymiel](https://github.com/rymiel))
- Updated to support Minecraft 1.21.4
- Updated chest boat entity type IDs in the default config
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Added Norwegian translation ([@erlpil](https://crowdin.com/profile/erlpil))
- Fix an issue where door autoclose no longer worked with fence gates and trapdoors
- Fix an issue where iron trapdoors would no longer open even with the open-iron setting enabled
- Fix an issue when migrating LWC protections that use SQL timestamps instead of dates
- Fix an issue with profile lookups being made to invalid players when migrating Lockette protections
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed a bug with the trust command not accepting non-default access types
- Fixed an issue where protection and access types in the config were case-sensitive
- Fixed double copper doors not opening together when at different oxidation levels
- Fixed default command permissions not being registered for some commands
- Fixed minimum API version not being correct leading to loading with errors on 1.20.4 and lower
- Changelog**
- Added support for Java 21 instead of Java 17
- Improved server startup time by opting out of remapping on Paper
- Updated protectable entity names in the default config
- Updated adventure version for 1.20.6
- Fixed door protections including the block below the base block (@rymiel)
- Fixed double doors opening when the interaction is cancelled by another plugin
- Removed backwards compatibility layers for 1.18-1.20.4
- Changelog**
- Added support for decorated pots and crafters ([@rymiel](https://github.com/rymiel))
- Added per player localization option ([@rymiel](https://github.com/rymiel))
- Added player mode default options ([@rymiel](https://github.com/rymiel))
- Added granular protection access permissions ([@rymiel](https://github.com/rymiel))
- Added API to get protections in a world region
- Added migration support from sign-based protection plugins
- Improved admin find command, now featuring pagination and click to teleport
- Improved info command, now with creation and last access time ([@rymiel](https://github.com/rymiel))
- Improved trust command with more intuitive usage, no longer using modify
- Improved lock command with optional "force" flag for admins making one-off protections
- Improved performance loading protections from the database on startup
- Improved performance of single permission checks on protections ([@rymiel](https://github.com/rymiel))
- Improved performance for migrating LWC entity protections
- Improved detection for existing protections when migrating from Bolt to LWC
- Improved detection of leashes breaking when an entity is too far away
- Improved detection of block breaking in some edge cases ([@rymiel](https://github.com/rymiel))
- Updated bolt.mod permission to allow viewing protections ([@rymiel](https://github.com/rymiel))
- Updated access list entries to not display default access
- Updated commands to not require a source identifier for a unique source type
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed admin cleanup command only being able to be run once ([@rymiel](https://github.com/rymiel))
- Fixed admin purge command not being able to be run from console
- Fixed edit and modify command throwing an error with the wrong number of arguments ([@rymiel](https://github.com/rymiel))
- Fixed "edited" confirmation message appearing when making invalid protection modifications ([@rymiel](https://github.com/rymiel))
- Fixed dispensers and droppers activated by redstone not checking for redstone permissions ([@rymiel](https://github.com/rymiel))
- Fixed double doors being openable even if blocked by another plugin ([@rymiel](https://github.com/rymiel))
- Fixed potential for blocking profile lookups in commands
- Fixed bolt database type configuration being case sensitive when it should be insensitive
- Fixed access list entry format not being translatable
- Fixed source type and access type not being translatable ([@rymiel](https://github.com/rymiel))
- Changelog**
- Updated matcher for grass / short grass
- Updated adventure for 1.20.3/4 (fixes use-action-bar again)
- Changelog**
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed an issue where the use-action-bar setting did not function correctly on 1.20.2
- Fixed an incorrect permission check related to interacting with protected pressure plates
- Changelog**
- Added support for deposit and withdraw on item frames and armor stands
- Added /bolt admin expire <time> which removes inactive protections
- Updated default auto protect type for ender chests to public
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed an issue where anvil protections were not being removed when they break from use
- Fixed an issue where adjacent doors with different types were being detected as a double door
- Fixed an issue where action permissions were not being checked again on use
- Fixed an issue with interactions of certain protected blocks with other plugins installed
- Removed additional checks being made for blocks connected to protected armor stands
- Changelog**
- Added checks to protected chiseled bookshelves for depositing and withdrawing books
- Added checks to protected sculk sensors for players interacting and activating them
- Added sub-command permissions for the /bolt admin command
- Added optional protection autoprotect and lock permissions
- Updated the /lock [type] command to allow changing lock types with edit access
- Updated community translations from [Crowdin](https://crowdin.com/project/bolt-plugin)
- Fixed a possible index creation error which could happen when using a MySQL database
- Removed checks for pistons pushing protected entities which caused issues
- Changelog**
- Added #all_hanging_signs tag to the default configuration
- Added Chinese translation ([@weiguangtwk](https://crowdin.com/profile/weiguangtwk) & [@minesunshineone](https://crowdin.com/profile/minesunshineone))
- Added Russian translation ([@imdanix](https://crowdin.com/profile/imdanix))
- Updated Vietnamese translation ([@zeddezmc](https://crowdin.com/profile/zeddezmc))
- Fixed permission access check for player triggered block changes (e.g. composters)
- Changelog**
- Added Italian translation ([@vinmi](https://crowdin.com/profile/vinmi))
- Added Portuguese (Brazilian) translation ([@vinmi](https://crowdin.com/profile/vinmi))
- Added Vietnamese translation ([@ZedDezMC](https://crowdin.com/profile/zeddezmc))
- Fixed LWC adapter type being case sensitive during conversion
- Fixed error running entity matchers when using Folia
- Changelog**
- Added Japanese translation ([@siroshun09](https://crowdin.com/profile/siroshun09))
- Improved LWC config migration by converting blocks to existing tags if possible
- Fixed error message trying to register incompatible event handlers on Spigot