Перейти к содержимому
Mineforgian

LockTight

A Minecraft plugin that provides comprehensive chest locking, protection, and management features with GriefDefender & Vault integration.

Загрузки
852
Подписчики
2
Обновлён
8 июня 2026 г.
Лицензия
All-Rights-Reserved

Опубликован 14 августа 2025 г.

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 with locktight.adminlock can 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 from gui.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 reload reloads item_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: true in 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.use for own chests; locktight.bypass for 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 (or locktight.*).
  • Open / break (normal locks): Owner/trusted; locktight.bypass for 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.bypass and locktight.adminlock do not grant access. Use /chest trust on that chest; trustall / trustgroupall skip 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 itemset already 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_rows in gui.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 itemset shop icons: Custom stacks (ItemsAdder paper, custom models, etc.) show in the Chest Shop again. 1.2.2 overwrote the template’s base item with gui.yml material; 1.2.3 keeps the saved template and only applies shop name/lore/glow from gui.yml. Tiers with no template still use gui.yml as 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 /trust player lists and public trust — not GD’s isUserTrusted (which also matched ignore-claims / admin-style behavior). Staff who are not on /trust should no longer be blocked with the wrong message.
  • Shop / languages: Shop items respect gui.yml materials over old item_templates.yml stacks; 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.yml now shows correctly even if you still have an old item_templates.yml entry 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 locktool for 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_rows in gui.yml sets how many rows of 9 slots (default 5). Plugin updates merge new keys from jar defaults into your saved gui.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 itemset while 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 clear to go back to the normal YAML items. Reload configs with /chest reload as 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.

Комментарии

Загружаем…