
PrivateChestFree
Chest protection plugin with anti-explosion and permission support.
📜 PrivateChest - Version 2.3.1 Release Notes
Release Date: 20/03/2026
[2.3.1] - 2026-03-20
Added
-
Granular Command Permissions
- New individual permission nodes for each player command:
privatechest.lock— Controls access to/lockchestprivatechest.unlock— Controls access to/unlockchestprivatechest.trust— Controls access to/trustprivatechest.untrust— Controls access to/untrustprivatechest.rename— Controls access to/renamecontainerprivatechest.sign— Controls access to[Private]sign-based locking
privatechest.usenow acts as a parent permission that grants all of the above- Server admins can now deny specific commands per player or group without affecting the rest
- Sign protection (
privatechest.sign) is independent from the command (privatechest.lock), so blocking/lockchestdoes not block[Private]signs
- New individual permission nodes for each player command:
-
Shared Container Utility Class (
ContainerUtils)- Centralized double chest detection, container validation, and location serialization
- Eliminates code duplication across 6 files (listeners and commands)
- Single source of truth for container logic — easier to maintain and less error-prone
Fixed
-
Explosion protection now covers both halves of double chests
- Previously, if only one half of a double chest had the lock record, the other half could be destroyed by TNT/creepers
- Both
EntityExplodeEventandBlockExplodeEventnow check all container parts
-
Sign protection now uses its own permission (
privatechest.sign)- Previously shared permission with
/lockchest, meaning blocking the command also blocked[Private]signs - Now uses a dedicated
privatechest.signpermission, independent fromprivatechest.lock
- Previously shared permission with
-
Null safety in
ChestLocker.serializeLocation()- Previously could throw
NullPointerExceptionif a world was unloaded - Now delegates to
ContainerUtils.serializeLocation()with proper null checks
- Previously could throw
-
Sign-based protection password is now cryptographically secure
- Previously used deterministic
hashCode()based on player UUID and location (predictable) - Now uses
SecureRandomto generate unpredictable 32-character hex passwords
- Previously used deterministic
Improved
-
Thread Safety
ChestLocker:chestOwnersandchestPasswordsmaps changed fromHashMaptoConcurrentHashMapTrustManager:trustRelationsmap changed fromHashMaptoConcurrentHashMap, inner sets useConcurrentHashMap.newKeySet()- Prevents
ConcurrentModificationExceptionwhen async cleanup runs alongside main thread operations
-
Timing-safe password comparison
PasswordManager.verifyPassword()now usesMessageDigest.isEqual()instead ofString.equals()- Prevents timing attacks that could leak password hash information
How Granular Permissions Work
- By default, nothing changes for existing servers.
privatechest.usestill grants all commands. - To block a specific command, negate its permission in your permissions plugin:
# LuckPerms example — block only /lockchest but keep [Private] signs working permissions: - privatechest.lock: false - The remaining commands will continue working normally.
Migration Notes
- Fully backwards compatible — no configuration changes required
- Existing permission setups using
privatechest.usewill continue to work identically - Thread safety improvements are transparent — no action needed
Compatibility
- Minecraft 1.16.x – 1.21.11
- Tested on Paper, Purpur, Pufferfish, and Spigot
Support & Feedback
- Report issues on GitHub: PrivateChest Issues
- SpigotMC Resource: https://www.spigotmc.org/resources/privatechest.124359/
Thank you for using PrivateChest!
-
PrivateChest v2.3 - Changelog
Release Date: January 2026
New Features
Shulker Box Support
- Lock all 17 shulker box variants (including colored ones)
- Same protection as chests and barrels
- Configurable limits per shulker box type
Expanded Server Compatibility
- Full support for Folia and its forks (Luminol, LightingLuminol, LeafMC, Kaiiju)
- Works on all major server software
Improved Bedrock Support
- Better Geyser and Floodgate detection
- Seamless experience for Bedrock Edition players
Compatibility
Minecraft: 1.16.5 - 1.21.x
Servers:
- Spigot, Paper, Purpur, Pufferfish
- Folia, Luminol, LightingLuminol, LeafMC, Kaiiju
Cross-Platform:
- Java Edition
- Bedrock Edition (via Geyser/Floodgate)
Bug Fixes
- Fixed shulker boxes not being recognized as lockable containers
- Improved password security handling
Migration
No action required. Update and enjoy the new features!
📜 PrivateChest - Version 2.2 Release Notes
Release Date: December 1st, 2025
[2.2] - 2025-12-01
Added
- Configurable Hopper Protection System
- New
hopper-protection.allow-hopper-accessoption inconfig.yml - Allows players to enable hopper access for automated sorting systems with locked containers
- Includes comprehensive security warnings and documentation in configuration file
- Default setting remains secure (false) - blocks all automated item movement
- New
Improvements
- Enhanced
HopperProtectionListenerwith configurable behavior - Added detailed JavaDoc documentation for hopper protection logic
- Improved security transparency with clear warnings about enabling hopper access
Configuration Changes
- New section
hopper-protectionadded toconfig.ymlallow-hopper-access: false(default - maximum security)- Detailed documentation on security implications and recommended use cases
Use Cases
This update is designed for:
- Servers with automated sorting/storage systems
- Private or trusted servers where theft is not a concern
- Servers with additional claim/protection plugins
Security Notes
- Default behavior unchanged: Hoppers remain blocked from protected containers
- When enabled, ANY hopper can access locked containers (including those placed by other players)
- Recommended only for trusted environments or servers with additional protection layers
- Admin bypass permissions remain unaffected
Compatibility
- Minecraft 1.16.x – 1.21.10
- Tested on Paper, Purpur, Pufferfish, and Spigot
Installation & Configuration
- Update: Replace your old PrivateChest JAR with version 2.2
- Reload or Restart: Run
/privatechest reloador restart your server - Configure (Optional): Edit
config.ymlto enable hopper access if needed:hopper-protection: allow-hopper-access: true # Set to true to enable
Known Issues
None reported for this version.
Support & Feedback
- Report issues on GitHub: PrivateChest Issues
- SpigotMC Resource: https://www.spigotmc.org/resources/privatechest.124359/
Thank you for using PrivateChest!
- Configurable Hopper Protection System
PrivateChest v2.1 - Major Update Release
🆕 What's New
🔒 Enhanced Security System
- Complete Hopper Protection: Hoppers, droppers, and dispensers can no longer bypass chest protection
- Block Placement Protection: Players cannot place blocks adjacent to protected containers to bypass security
- Automatic Cleanup: Orphaned data from removed containers is automatically cleaned up to maintain performance
🏷️ Container Renaming System
- Custom Names: Give your locked containers custom names up to 16 characters
- Easy Commands: Use
/renamecontainer <name>or/renamecontainer remove - Smart Validation: Names are automatically validated for compatibility
📊 Advanced Limit System
- Container-Specific Limits: Set different limits for chests, barrels, and shulker boxes
- Granular Permissions: Fine-tune exactly how many of each container type players can lock
- Backward Compatible: Existing limit configurations continue to work unchanged
🌐 Cross-Platform Support
- Bedrock Edition: Full compatibility with Bedrock Edition players via Floodgate/Geyser
- Smart Messages: Messages automatically adapt for optimal display on each platform
- Universal Access: Java and Bedrock players can seamlessly interact with the same protected containers
🚀 How to Install
- Stop your server
- Replace the old PrivateChest.jar with the new v2.1 file
- Start your server - all configurations will be automatically updated
- No data loss - all existing locked containers remain protected
⚙️ New Commands
/renamecontainer <name>- Set a custom name for the container you're looking at/renamecontainer remove- Remove the custom name from a container
🔧 New Configuration Options
Add these to your
config.ymlif you want to customize the new features:# Container-specific limits (optional) container-limits: enabled: false # Set to true to use granular limits types: chest: 10 barrel: 5 shulker_box: 2 # Automatic cleanup (enabled by default) auto-cleanup: periodic-enabled: true📋 New Permissions
privatechest.limit.chest.X- Allows locking X chestsprivatechest.limit.barrel.X- Allows locking X barrelsprivatechest.limit.shulker_box.X- Allows locking X shulker boxes
🔄 Compatibility
- Minecraft: 1.16+ (Spigot/Paper)
- Java: 8+
- Bedrock: Supported via Floodgate/Geyser
- Existing Data: Fully compatible - no migration needed
📝 Notes for Server Owners
- All existing locked containers continue working without any changes
- Configuration files are automatically updated while preserving your custom settings
- The new features are optional - enable only what you need
- Performance improvements through automatic cleanup system
- Full backward compatibility with existing permissions and configurations
🐛 Bug Fixes
- Fixed rare cases where hoppers could access protected containers
- Improved double chest detection and protection
- Enhanced permission checking for edge cases
- Better error handling for corrupted data files
Download PrivateChest v2.1 and enjoy enhanced security with powerful new features! 🎉
🔐 PrivateChest 2.0 - Major Update!
🚀 What's New
🔒 Enhanced Security
- Password Encryption: All passwords are now securely hashed using SHA-256 with salt. Your old passwords will work and be automatically upgraded when used.
- Better Data Protection: Significantly improved security against potential data breaches.
👥 Trust System
- Share Access Safely: Give other players access to your locked chests without sharing passwords
- New Commands:
/trust <player>and/untrust <player> - Easy Management: Use
/trust listto see who you trust,/untrust allto remove everyone
📋 Sign Protection
- Visual Locking: Place a sign with
[Private]on the first line near your chest to lock it - No Commands Needed: Perfect for players who prefer visual interactions over typing commands
- Break to Unlock: Simply break the sign to unlock your chest
📊 Chest Limits
- Permission-Based Limits: Control how many chests players can lock based on their rank/permissions
- Perfect for Economy Servers: Reward VIP players with more chest locks
- Admin Control: Set custom limits from 1 to unlimited chests per player
⚡ Performance Improvements
- SQLite Support: Optional database storage for servers with many locked chests (better performance)
- Optimized Code: Faster chest interactions and reduced memory usage
- Smart Caching: Improved response times for large servers
🔧 Developer API
- Public API: Other plugins can now safely interact with PrivateChest
- Better Integration: Perfect for custom plugins and advanced server setups
📥 Migration from v1.x
✅ Fully Automatic Migration
- All your existing locked chests will continue working normally
- Passwords are automatically upgraded to secure format when used
- No manual configuration needed - just replace the plugin file
- All new features are disabled by default for compatibility
Migration Steps:
- Backup your
plugins/PrivateChest/folder (recommended) - Stop your server
- Replace the old PrivateChest.jar with v2.0.0
- Start your server
- Enable new features in
config.ymlif desired
⚙️ Configuration
New options in
config.yml:storage-type: yaml(or "sqlite" for better performance)enable-sign-protection: trueenable-chest-limits: falsedefault-chest-limit: 5
🎯 Permission Examples
# Chest Limits (when enabled) privatechest.limit.unlimited # No limits privatechest.limit.100 # Up to 100 chests privatechest.limit.25 # Up to 25 chests privatechest.limit.10 # Up to 10 chests privatechest.limit.5 # Up to 5 chests🐛 Bug Fixes
- Fixed rare double chest synchronization issues
- Improved hopper protection reliability
- Better error handling for corrupted data
- Enhanced explosion protection
🔥 This is our biggest update yet! 🔥
Perfect for survival servers, economy servers, and any server that wants secure, user-friendly chest protection!
Compatible with Minecraft 1.16.x - 1.21.5 | Tested on Paper, Purpur, Pufferfish
PrivateChest v1.6.3 - Changelog
This update focuses on fixing the long-standing double chest protection issue and brings several improvements to stability and usability.
🐛 Fixed
- Critical Double Chest Bug: Resolved the major issue where only one half of a double chest (large chest) would be protected. Now, both halves are correctly identified and secured during locking, interaction (/unlockchest), block breaking, and hopper interactions. This ensures complete protection for double chests and barrels.
✨ Changed / Improved
- Enhanced Hopper Protection: Hoppers are now reliably prevented from both pulling items from and pushing items into any protected container (single chests, double chests, barrels).
- Corrected /clearchests Logic: The /clearchests command now functions as intended, specifically targeting and removing only "orphaned" entries from data.yml (protections for containers that no longer exist or are invalid). It no longer affects valid, existing protections.
- Improved DataManager: Added more robust error handling and console logging when loading data.yml. This will help server administrators diagnose issues with corrupted or invalid location entries.
- Auto-Updating messages.yml: The messages.yml file will now automatically add any new message keys from future plugin updates, preserving existing user customizations.
- Refined Configuration Files: config.yml: Removed non-functional options (allow-double-chests, unlock-duration-seconds, allow-shared-access) to prevent confusion. Added clearer comments. messages.yml: Added new messages for recent changes, improved wording on existing ones, and added detailed comments to explain each message's purpose.
- Updated plugin.yml: Corrected version number and added /pc as an alias for /privatechest.
- Code Refinements: General internal code improvements for stability and maintainability.
📢 PrivateChest 1.6.2 – Hopper Exploit Patch & Full Container Protection
🛡️ New Protections:
-
🚫 Hoppers can no longer extract items from any protected container.
-
🔐 Applies not only to chests and barrels, but automatically supports any future container types added to PrivateChest (like furnaces, droppers, shulkers, etc.).
-
🧠 Uses smart event handling via InventoryMoveItemEvent to detect and cancel unauthorized item transfers.
🔧 Technical Improvements:
Protection now checks container ownership via ChestLocker.isChestLocked(...), ensuring consistent behavior.
No performance impact; event runs only when hoppers are in use.
✅ Recommended For:
Any server using hoppers, redstone automation, or container protection systems.
Servers upgrading from 1.6.1 or earlier.
Thank you for using PrivateChest Free!
If you find the plugin helpful, please consider leaving a ⭐ review or joining our support community.
Support available in English and Spanish.
-
📢 PrivateChest 1.6.1 – Admin Bypass Fix
##🔧 Fixes:
-
✅ Fixed: Admins with the privatechest.admin permission could not open locked chests they did not own.
-
🔓 Admins can now access any protected chest without being the owner, as originally intended.
-
🔔 Optionally shows a message when an admin accesses a chest (notify-admin-on-open in config).
🧰 Notes:
This fix improves the reliability of admin control over protected containers.
No changes were made to the core protection or chest data structure.
✅ Suggested for:
Server owners, admins, moderators, and anyone with admin permissions.
Thank you for using PrivateChest Free!
If you enjoy the plugin, consider leaving a review and reporting bugs or suggestions.
Support is available in English or Spanish. 💬
-
📦 PrivateChest v1.6
🧹 New Feature: Smart Auto-Cleanup on Startup • The plugin now detects and removes invalid chest entries from data.yml when the server starts. • If a chest no longer exists in the world (e.g., was broken externally or by other plugins), it will be skipped and cleaned. • Keep your data file clean and accurate without running manual cleanup commands.
🛠 Configurable Option: • Toggle this behavior in
config.yml: auto-cleanup-on-start: true📋 Console Feedback: • [PrivateChest] Loaded locked chests: 48 • [PrivateChest] Auto-cleaned 3 invalid chest entries.
🌐 Multilingual Ready • All messages and settings remain fully translatable via
messages.ymlandconfig.yml.✅ Compatibility • Minecraft Versions: 1.16.x → 1.21.5 • Supported Forks: Paper, Pufferfish, Purpur
📊 Plugin Statistics:
https://bstats.org/plugin/bukkit/PrivateChest
✨ Looking for More Power?
🔒 [PrivateChest Plus] is now available!
💎 Features include: • Shared chest access with trusted players
• Timed auto-unlock
• GUI-based password input
• Holograms and visual effects
• Separate storage for Plus chests
• And much more...Upgrade your protection system now 👉 View Premium Version
📦 PrivateChest v1.5
🆕 New Features:
✔️ Block Whitelist for Lockable Blocks ➤ You can now define which block types can be protected. ➤ Controlled via the new config section: protectable-blocks: - CHEST - TRAPPED_CHEST - BARREL
✔️ Player Feedback on Locked Chest Interactions ➤ Players who attempt to open a protected chest they don't own will now receive a configurable message. ➤ New config entry: locked-chest-message: "&cThis chest is locked and you cannot open it."
📁 Configuration Changes: •
config.ymlupdated with new keys:protectable-blocksandlocked-chest-message. • Fully reloadable with/privatechest reload.🌐 Multilingual Ready: • All messages remain customizable in
messages.ymlandconfig.yml.
✨ Looking for more power and features?
🚀 [PrivateChest Plus is now available!]
Unlock premium features including:
- ✅ Shared chest access
- ✅ Timed auto-unlock
- ✅ GUI-based lock system
- ✅ Sounds and holograms
- ✅ And much more...
Level up your server protection with PrivateChest Plus!
✅ Fully tested on: • Minecraft 1.16.x → 1.21.5
• Compatible with Paper, Purpur, Pufferfish📊 Plugin stats: https://bstats.org/plugin/bukkit/PrivateChest
📦 PrivateChest v1.4
🆕 New: Public Developer API
• Introduced
PrivateChestAPIunderme.tuplugin.privatechest.api. • Developers can now easily:- Check if a block is locked ➔
isLocked(Block) - Check if a player is the owner ➔
isOwner(Block, Player) - Get the UUID of the owner ➔
getOwner(Block) - Lock a block programmatically ➔
lockBlock(Block, Player, String) - Unlock a block programmatically ➔
unlockBlock(Block)• Static, safe, and ready for direct integration without touching internal classes!
📚 New: API Documentation
• Added a dedicated section in README.md showing how to use the PrivateChestAPI with examples.
🛠 Improvements:
• Better internal structure for future feature expansion. • Clean and separated API to prevent future compatibility issues.
🌐 Multilingual Ready:
• All messages and configurations remain fully editable for translations!
✅ Tested and verified on:
• Minecraft 1.16.x → 1.21.5 • Paper, Pufferfish, Purpur forks
📊 Plugin Statistics:
• View anonymous plugin usage at: bStats - PrivateChest
🎯 Tip: Even though the plugin is in English by default, you can fully translate it by editing
messages.ymlandconfig.yml!- Check if a block is locked ➔
📦 PrivateChest v1.3
🆕 New Features:
✔ Added /clearchests command (Admin only) ↳ Automatically clears orphaned chest entries from data.yml if the chest no longer exists. ↳ Requires permission: privatechest.admin
✔ Added full prefix control in config.yml: ↳ New options: - use-prefix: true/false - prefix: "&7[&6PrivateChest&7] " ↳ Admins can now enable/disable or customize the plugin prefix easily.
🛠 Improvements:
• Messages.yml is now purely for messages, no longer holds prefix settings. • Prefix changes and config updates are hot-reloadable using /privatechest reload. • Internal optimizations for data and location handling. • Cleaner Maven build with shaded and relocated bStats.
🌐 Multilingual Ready:
• While the plugin is by default in English, all messages are fully configurable. • You can easily translate the plugin into any language by editing messages.yml and config.yml!
✅ Tested on:
• PaperMC 1.16.5 – 1.21.5 • Compatible with forks: Paper, Pufferfish, Purpur.
📊 View plugin usage stats at:
PrivateChest 1.2.1 - BugFix Update Changes:
Fixed a critical issue with bStats integration that caused the plugin to disable on server startup.
No gameplay or feature changes. This is an internal fix only. ✅ Recommended for all users to update for full stability and proper metrics reporting.
Quick Summary: Compatible with Minecraft 1.16.x – 1.21.x.
This update ensures PrivateChest runs correctly without startup errors.
Thank you for supporting PrivateChest!
If you enjoy the plugin, consider leaving a ⭐!
Have any issues? Feel free to report them!
PrivateChest v1.2
New Features: ✔ Added support for bStats! Now we can see anonymous stats like plugin usage and Minecraft versions. ✔ New admin command: /privatechest reload ↳ Allows reloading config.yml and messages.yml without restarting the server. ↳ Requires permission: privatechest.admin
Improvements: • Internal code optimizations. • Updated plugin metadata for better compatibility.
Bug Fixes: • None in this release — everything is stable!
Permissions: • privatechest.use → Allows use of /lockchest and /unlockchest • privatechest.admin → Allows use of /privatechest reload
You can view usage statistics at: https://bstats.org/plugin/bukkit/PrivateChest
✅ Tested on: Paper 1.16.5 – 1.21.5
✅ Update v1.1:
Added support for barrels (/lockchest now works on barrels too!)
Thanks for the feedback — more features coming soon!
🌟 PrivateChest - Secure Your Chests Like Never Before! 🔐 PrivateChest is a lightweight and efficient plugin that allows players to protect their chests (single or double) from unwanted access or destruction — even from explosions! Compatible with Spigot and popular forks like Paper, Pufferfish, and Purpur, from version 1.16.x up to 1.21.5.
✅ Features 🛡️ Complete Chest Protection – Prevents other players from opening or breaking protected chests.
💥 Explosion-Proof – TNT and creeper explosions won't destroy protected chests.
🔒 Simple Command-Based System – Protect and unprotect your chests with easy-to-use commands.
🧾 Permission Support – Full compatibility with permission plugins like LuckPerms.
⚙️ Customizable Configuration – Adjust messages and behavior to your liking.
📦 Lightweight and Fast – Optimized to have minimal impact on server performance.
🌍 Multi-Version Support – Works on servers from 1.16.x to 1.21.5.
🛠️ How to Use Protect a chest:
bash Copiar Editar /privatechest protect
Unprotect a chest:bash Copiar Editar /privatechest unprotect
📌 Just look at the chest and run the command!🔑 Permissions
Permission Description Default privatechest.use Allows using the /privatechest commands true privatechest.admin Allows managing other players' protections op 🧩 Compatibility ✅ Tested with:
Spigot
Paper
Purpur
Pufferfish
📌 Supports Minecraft 1.16.x - 1.21.5
💬 Support & Suggestions If you have suggestions or find a bug, feel free to post in the discussion section or contact me directly via DM. I’ll do my best to help!
📥 Download & Installation Download the .jar file.
Drop it into your /plugins folder.
Restart or reload your server.
Enjoy secure storage!
❤️ Like the Plugin? Leave a ⭐️ review to support the project and help others discover it!

