
Locktight - Advanced Chest Protection & Security System
Locktight transforms chest security from a simple protection mechanism into an engaging, strategic gameplay element that enhances both security-focused and raid-style server experiences.
Folia: Support for Folia is still developmental—it may have rough edges or issues not seen on single-region Paper. Use Paper when you can; try Folia when you need regionized scheduling and report problems so they can be fixed.
IF YOU RUN INTO ISSUES, BE SURE YOU ARE RUNNING THE LATEST BUILD FIRST, THEN REPORT THE ISSUE IN #PLUGIN-HELP IN THE DISCORD.
NOTE: IF EXPERIENCING PERFORMANCE ISSUES BECAUSE OF LOCKTIGHT, USE LATEST RELEASE. VERSIONS ALPHA 1.0.4 - 1.0.9 HAD KNOWN PERFORMANCE ISSUES DUE TO HOPPER HEAVY TASKS. Be wary of hopper heavy bases, due to the logic that prevents hoppers stealing from locked chests. Tests show new logic as of A1.1.0 to be 94% more efficient in terms of server thread usage. Please report any issues in the provided Discord channel for support.
Platform: Locktight is built for Paper (and Folia) using the Paper API. Plain Spigot is not supported. Use a current Paper (or Folia) build for your Minecraft version.
Overview
Locktight is a comprehensive chest protection plugin designed to provide an additional layer of security for chests within land claims while maintaining flexibility for various server types. Perfect for both claim-based and raid-style servers, Locktight offers sophisticated chest locking mechanisms, configurable trust systems, and an engaging lockpicking gameplay element.
How to Use
- Simply look at the chest you wish to lock and execute
/chest lock - Purchase lockpicks, lock reinforcements, and a lock tool from
/chest shop: right-click to lock or unlock (same rules as/chest lock//chest unlock), left-click to inspect (same rules as/chest inspect) - AS OF 1.0.6, CHESTS CAN BE AUTO LOCKED ON PLACEMENT (CONFIGURABLE) — DEFAULT VALUE CHANGED TO FALSE IN 1.1.4
- Lock any lockable container: chests, double chests, barrels, all shulker box colors, and copper chests (1.21). Lock, unlock, delete, and trust work from either side of a double chest.
⚙️ Configuration
Main Configuration (config.yml)
The file shipped with the plugin is authoritative. Below is the current layout (values match the default config.yml in the JAR; yours may differ after edits).
# Full banner header is in the JAR’s config.yml — Paper & Folia, by MightyFinger77
# config_version — used for migrations. Do not change unless you know the drill.
config_version: 5
# General Settings
general:
auto_lock_on_place: false # EXPERIMENTAL — enable at your own risk
check_updates: true
close_gui_after_purchase: false
chest_lock_expiration_days: 28
chest_lock_cleanup_interval_hours: 6
debug_enabled: false
hopper_debug: false
lockpicking:
enabled: true
temporary_access_seconds: 30
success_rates:
weak: 0.005
medium: 0.05
advanced: 0.1
professional: 0.3
mythical: 1.0
alerts:
enabled: true
default_enabled: true
allow_lockpicking_offline_players: true
# lock_tool.enabled — right-click toggle lock; left-click inspect (see config.yml in JAR)
lock_tool:
enabled: true
reinforcement:
enabled: true
resistance_increase: 0.05
max_reinforcements: 8
attempts_per_degradation: 5
# griefdefender.block_lockpick_in_trusted_foreign_claim — optional: block lockpicking
# for trusted non–claim-owners in that claim (default false). See full config.yml.
# ... world_blacklist, sound_effects, bypass_permission, griefdefender,
# economy, performance — see full config.yml in plugins/Locktight/
Messages (messages.yml)
Customize all plugin messages, colors, and formatting.
GUI Configuration (gui.yml)
Configure shop slot layout, shop_rows (1–6 rows of 9 slots, default 5), display names, lore (including {weak_rate} placeholders), prices, optional integer custom model data, and the item: subsection used for purchased stack name/lore/rates.
For full custom items (resource packs, ItemsAdder/Nexo-style components, non-default materials), admins use /chest itemset; visuals come from the held item, while name and lore still follow gui.yml. Templates are stored in plugins/Locktight/item_templates.yml with a file header field templates_version (separate from Paper’s per-item schema_version inside serialized stacks).
Key Features
🛡️ Enhanced Claim Security
Locktight integrates seamlessly with GriefDefender to provide a second layer of protection beyond standard claim trusts. Players with claim access cannot automatically open locked chests unless explicitly trusted through the /chest trust command. This ensures that even trusted players must be specifically authorized for individual chest access. Optionally, griefdefender.block_lockpick_in_trusted_foreign_claim (default false) prevents lockpicking inside a claim by players who have GriefDefender trust there but are not the claim owner—useful so co-trusted players in one base cannot pick each other’s locks; claim group trust is included. Claim owners are not restricted by this setting.
🔐 Intelligent Chest Locking
- Multiple container types: Lock chests (single and double), barrels, shulker boxes (all colors), and copper chests (1.21). All copper chest variants are supported; locks are stored by block location so they persist when copper chests oxidize or change state. Double chests are treated as one lock; lock, unlock, delete, and trust work from either side.
- Owner-only access: Locked chests are secure from unauthorized access
- Indestructible protection: Locked chests cannot be broken by hand or destroyed by explosions (per plugin rules)
- Admin locks (
/chest adminlock): Unpickable, never expire; only players withlocktight.adminlockcan open or break them. - Owner locks (
/chest olock): Only the owner or players trusted on that chest can access. Bypass and adminlock do not grant access. Unpickable, never expire. Trust must be set per chest (bulk trust skips owner locks). - Claim integration: Respects claim boundaries and trust levels
- Configurable permissions: Server owners can define which trust levels (CONTAINER, BUILDER, MANAGER) can lock chests within claims
🎯 Advanced Trust Management
Per-chest trust (/chest trust / untrust), bulk trust (/chest trustall / untrustall with optional radius), group trust with LuckPerms (/chest trustgroup / trustgroupall and untrust variants), and clear trusts (cleartrusts, cleartrustsgroups, cleartrustsboth). Owner locks are excluded from bulk/radius trust and must be trusted individually.
🎮 Engaging Lockpicking System
- Multiple tiers: Weak, Medium, Advanced, Professional, and Mythical lockpicks
- Configurable success rates: Balance gameplay and security in
config.yml - Optional GriefDefender rule:
griefdefender.block_lockpick_in_trusted_foreign_claim— when enabled, trusted non–owners cannot lockpick in that claim (see GriefDefender above). - In-game shop: Purchase lockpicks with Vault
- Reinforcement system: Owners reinforce chests to reduce lockpick success rates
- Custom item templates:
/chest itemset(locktight.itemset) saves the item in your main hand as the template for a tier, reinforcement, or locktool. Shop icons and purchased items use that stack’s material/model/components; display name and lore still come fromgui.yml. Tags on the item ensure lockpick/reinforcement/lock-tool logic does not depend on display names./chest itemset clear <tier>removes a template./chest reloadreloadsitem_templates.yml.
⚙️ Flexible Configuration
- Claim-based servers: Extra security inside GriefDefender claims
- Raid servers: Wilderness locking and lockpicking
- Hybrid servers: Mix protection and raiding
Server Types
🏰 Claim-Based Protection Servers
GriefDefender integration respects claim ownership and configurable trust levels so the right players can lock chests in their areas.
⚔️ Raid-Style Servers
Wilderness locking and lockpicking support raiding-oriented gameplay.
🔄 Hybrid Servers
Configure wilderness locking, claims, and shop/economy to match your mix of security and risk.
Technical Features
- SQLite (bundled driver): Chest locks, trust, reinforcements, and related data
- Vault: Economy for the shop
- GriefDefender API: Claim-aware locking (soft dependency)
- LuckPerms (optional): Group-based trust
- Paper / Folia: Supported; uses safe scheduling on Folia (
folia-supported: truein plugin metadata) - Configurable expiration: Automatic cleanup of abandoned locks (admin and owner locks never expire)
- Lockable containers: Chests (including double), barrels, all shulker colors, copper chest variants where the server version supports them
Benefits
- Enhanced security beyond claim trusts alone
- Balanced gameplay between defense and raiding
- Player engagement via lockpicking and reinforcements
- Flexible deployment across server styles
- Custom shop visuals without losing YAML-driven rates and lore
🔑 Permissions & Commands
All permission nodes
| Permission | Description | Default |
|---|---|---|
locktight.use |
Lock, unlock, trust, inspect own chests, delete own chests | true |
locktight.shop |
Access the lockpick shop | true |
locktight.lockpick |
Use lockpicks on chests | op |
locktight.lockpickget |
Get lockpick items via command | op |
locktight.lockpickget.other |
Give lockpick items to other players | op |
locktight.itemset |
Save custom lockpick/reinforcement/lock-tool templates (/chest itemset) |
op |
locktight.reload |
Reload plugin configuration | op |
locktight.cleanup |
Manually trigger chest lock expiration cleanup | op |
locktight.adminlock |
Create unpickable admin locks | op |
locktight.ownerlock |
Create owner locks (bypass/adminlock do not apply) | op |
locktight.bypass |
Bypass chest locks (except owner locks) and inspect/delete per rules | op |
locktight.update |
Manually check for plugin updates | op |
locktight.* |
Wildcard for all plugin features | op |
All commands
| Command | Description | Permission |
|---|---|---|
/chest lock |
Lock the container you’re looking at | locktight.use |
/chest unlock |
Unlock your locked container | locktight.use |
/chest trust <player> |
Trust a player on this chest | locktight.use |
/chest untrust <player|all> |
Untrust a player (or all) on this chest | locktight.use |
/chest trustall <player> [radius] |
Trust on all (or radius) of your chests; skips owner locks | locktight.use |
/chest untrustall <player> [radius] |
Untrust from all (or radius); skips owner locks | locktight.use |
/chest trustgroup <group> |
Trust a LuckPerms group on this chest | locktight.use |
/chest trustgroupall <group> |
Trust a group on all your chests; skips owner locks | locktight.use |
/chest untrustgroup / untrustgroupall |
Remove group trust | locktight.use |
/chest cleartrusts / cleartrustsgroups / cleartrustsboth |
Clear trusts on this chest | locktight.use |
/chest delete |
Delete chest data (either side of double chest) | locktight.use / locktight.bypass (rules apply) |
/chest inspect |
Inspect container | locktight.use / locktight.bypass |
/chest shop |
Open lockpick shop | locktight.shop |
/chest reload |
Reload configuration (including item_templates.yml) |
locktight.reload |
/chest cleanup |
Clean expired locks | locktight.cleanup |
/chest lockpick [tier] |
Use lockpick on container | locktight.lockpick |
/chest lockpickget [tier] [qty] [player] |
Get lockpick/reinforcement items | locktight.lockpickget |
/chest itemset <tier|reinforcement|locktool> |
Save held item as shop template | locktight.itemset |
/chest itemset clear <tier|reinforcement|locktool> |
Remove saved template | locktight.itemset |
/chest adminlock |
Set admin lock | locktight.adminlock |
/chest olock |
Set owner lock | locktight.ownerlock |
/chest autolock |
Toggle auto-lock on place | locktight.use |
/chest alerts |
Toggle lockpick alerts | locktight.use |
/chest help [subcommand] |
Help | — |
/chest bypass |
Toggle bypass mode | locktight.bypass |
/chest update |
Check for updates | locktight.update |
Permission logic notes
- Inspect:
locktight.usefor own chests;locktight.bypassfor any (inspection rules as implemented). - Delete: Own chests with
locktight.use; bypass for non–owner-lock chests per plugin rules. Owner locks: owner only for delete. Admin locks:locktight.adminlock(orlocktight.*). - Open / break (normal locks): Owner/trusted;
locktight.bypassfor non–owner-lock containers. - Admin locks: Unpickable; open/break/delete for
locktight.adminlock/locktight.*as implemented. - Owner locks: Only owner or chest-trusted players;
locktight.bypassandlocktight.adminlockdo not grant access. Use/chest truston that chest;trustall/trustgroupallskip owner locks.
📋 TODO / future improvements
Planned features
- Fully modular tiers: Allow adding arbitrary new lockpick tiers purely from config without code changes (today, tiers are wired to specific shop keys and config paths;
/chest itemsetalready covers custom visuals and PDC-based detection for the existing tiers). - Lockable doors (doors, trapdoors, etc.)
- Lockable redstone blocks (buttons, levers, pressure plates)
- Lockable ender chests
- More lockable variants (e.g. boat/chest minecart storage) where feasible
Implemented (no longer TODO)
- Lockable barrels
- Lockable shulker boxes (all colors)
- Lockable copper chests (1.21) and persistence across oxidation/wax
- Double chest from either side (lock, unlock, delete, trust, inspect)
- Paper & Folia support with region-safe scheduling
- Custom shop item templates (
/chest itemset,item_templates.yml,locktight.itemset) - Lock tool (shop +
/chest itemset locktool): right-click lock/unlock, left-click inspect - Configurable shop size (
shop_rowsingui.yml) - Optional trusted-claim lockpick block (
griefdefender.block_lockpick_in_trusted_foreign_claim)
All suggestions welcome!
Ченджлог
1.2.3Релиз1.21.9, 1.21.10, 1.21.11 · 8 июня 2026 г.
1.2.3 (2026-06-08)
Fixes
/chest itemsetshop icons: Custom stacks (ItemsAdder paper, custom models, etc.) show in the Chest Shop again. 1.2.2 overwrote the template’s base item withgui.ymlmaterial; 1.2.3 keeps the saved template and only applies shop name/lore/glow fromgui.yml. Tiers with no template still usegui.ymlas before.
1.2.2Релиз1.21.9, 1.21.10, 1.21.11 · 1 мая 2026 г.
1.2.2 (2026-04-30)
Stable release — includes all 1.2.1 fixes plus the GriefDefender correction. messages_version and config_version in the jar are bumped so upgrades merge new defaults (your custom lines for keys you already edited are kept).
Note (messages.yml): Upgrades do not overwrite text for keys you already have. To pick up new default wording from the jar (for example updated lockpick messages), either delete plugins/Locktight/messages.yml and restart (or /chest reload) so it regenerates, or remove only the lines you want reset, then reload.
Fixes
- GriefDefender lockpick rule: If you use
block_lockpick_in_trusted_foreign_claim, it now only uses the claim’s/trustplayer lists and public trust — not GD’sisUserTrusted(which also matched ignore-claims / admin-style behavior). Staff who are not on/trustshould no longer be blocked with the wrong message. - Shop / languages: Shop items respect
gui.ymlmaterials over olditem_templates.ymlstacks; lockpicks, reinforcement, and lock tool from the shop get internal tags so Russian (or any) names still work. - Hopper minecarts: Cannot pull from locked chests.
- Chest UI after blocked hopper tries: Tries to resync open inventories so stack counts don’t lie to the client.
1.2.1Релиз1.21.9, 1.21.10, 1.21.11 · 1 мая 2026 г.
1.2.1 (2026-04-30)
Fixes
- Shop items: Changing the item type in
gui.ymlnow shows correctly even if you still have an olditem_templates.ymlentry from/chest itemset. Lockpicks, reinforcement, and the lock tool from the shop are tagged internally so they work no matter what language you use for names. No more depending on hidden English text inside the item name for the plugin to recognize them. - Hopper minecarts: Cannot pull items out of locked chests anymore (same protection as normal hoppers).
- Chest UI weirdness: If the game showed wrong stack sizes after a blocked hopper try, this build tries harder to refresh the open inventory so what you see matches what the server has.
1.2.0Релиз1.21.9, 1.21.10, 1.21.11 · 28 апреля 2026 г.
1.2.0 (2026-04-27)
First official release — earlier builds were development only; this is the first stable Locktight release.
Added
- Lock tool: From
/chest shop(admins:/chest itemset locktoolfor a custom model). Right-click a chest, barrel, or shulker box to lock or unlock like/chest lock//chest unlock. Left-click to inspect like/chest inspect. Toggle follows the real locked state in the database. - Config: More configurable settings in config.yml for admins
Changed
- Shop GUI:
shop_rowsingui.ymlsets how many rows of 9 slots (default 5). Plugin updates merge new keys from jar defaults into your savedgui.yml. - GriefDefender (optional):
griefdefender.block_lockpick_in_trusted_foreign_claim— when true, trusted members who are not the claim owner cannot lockpick in that claim (includes claim group trust). Default false (same as before).
1.2.0-Dev1bБета1.21.9, 1.21.10, 1.21.11 · 11 апреля 2026 г.
1.2.0-Dev1b (2026-04-10)
Added
- Custom shop items: Admins can run
/chest itemsetwhile holding an item to save it as the real lockpick or reinforcement item players get from the shop (great for resource packs / custom models). Items are tagged internally so they still work even if you change the name. Use/chest itemset clearto go back to the normal YAML items. Reload configs with/chest reloadas usual.
1.2.0-Dev1aБета1.21.9, 1.21.10, 1.21.11 · 21 марта 2026 г.
1.2.0-Dev1a (2026-03-19)
Added
- Folia Support: plugin declares Folia support and uses safe global scheduling so timers and delayed tasks work on regionized servers as well as normal Paper.
1.1.6Бета1.21.9, 1.21.10, 1.21.11 · 18 марта 2026 г.
1.1.6 (2026-03-17)
Fixes
- Config general.auto_lock_on_place passed all tests, unmarked as expiremental
- With auto-lock on place enabled, placing the second chest to form a double chest no longer shows the “auto locked” message again. The message only appears when you lock a new single chest, not when merging into an existing one.
1.1.6-Dev3aБета1.21.9, 1.21.10, 1.21.11 · 17 марта 2026 г.
1.1.6-Dev3a (2026-03-17)
Fixes
- Double chests: lock, unlock, inspect, delete, and trust now work from either side (wooden and copper). No more “no metadata” or “never been locked” when using the other half.
- Purple (default) shulker boxes can now be locked instead of showing “must be looking at a chest”.
- Breaking one side of a locked double chest no longer removes the lock from the other. The remaining single chest stays locked with all trusted players, reinforcements, and temp access until that block is broken or you use
/chest delete.
Комментарии
Загружаем…