LockettePro - For 1.14/1.15/1.16 2.10.8

[1.14 - 1.16.4] High performance sign-based lock plugin, highly customizable

  1. brunyman
    Native Minecraft Version:
    Tested Minecraft Versions:
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    Remember the sign-based lock plugin Lockette that is popular for years? LockettePro is a deep remade & rewrite of the original Lockette. It has massive performance enhancement, fixed bugs and completely customizable. This is the updated version for spigot 1.14 and up of the original LockettePro.
    • Original plugin 1.8 to 1.12: Link
    • 1.13 Download: Link
    • WIKI: Link

    • No database. All information required for a lock is recorded on the sign.
    • Switch to LockettePro and switch back to Lockette worry-free anytime.
    • Absolutely better performance. Performance test comparison below.
    • Language files are editable, with UTF-8 support.
    • Able to disable "bloat" features easily with no affect to performance.
    • Customizable. For instance, you can set lockable for every single block.

    *ProtocolLib is required for UUID support.

    Install instructions
    • Place the plugin in the spigot server plugins folder, Also install ProtocolLib dependency.
    • Start the server to generate the config.
    • Do config changes if you need to and run command /lock reload to apply the changes.
    • Done.


    Head to GitHub wiki page for configuration. [config.yml] [lang.yml]
    It is currently NOT recommended to use lock expiry feature since it will be changed. Please avoid using it in order to prevent conflicts.

    How to Use LockettePro?
    For players, just hold a sign in your hand, then right click a chest or any lockable block. If you want to lock a door, you may put a sign on the block above or below the door too. You may also SHIFT+RIGHT CLICK the block to prevent it get automatically locked, or you can write [Private] text manually on signs as well.

    Share the chest with another user:
    After claiming the chest, you can add another user on the sign. First, right click the sign, then enter /lock 3 <user name>
    Share the chest with everyone:
    Same as above, you just use [Everyone] (with brackets) in the username.
    Add another sign:
    If one sign is not enough, you may hold a sign and right click on another surface. It will snap on the surface and become a [More User] sign automatically. Placing the sign while holding SHIFT will bypass the sign creation.
    Timer with doors:
    I have no idea why Lockette is doing this, but I am adding this feature anyways. If you add a line [timer:X] (with brackets, and X means an integer) to a door lock, the door will automatically close after X seconds.
    Even more information, please see Wiki.

    Commands and Permissions
    Main command is /lock. Aliases contains /lockit, /lockette and /lockettepro.
    • All players have the permission to lock a chest and edit a chest by default.
    • In order to stay consistent with original Lockette, Towny server players need lockettepro.towny.wilderness in order to lock chests in the wilds.
    • Edit a sign: /lock <line number> <player>
    • Reload configuration: /lock reload, requires permission lockettepro.reload
    • Admin break lock permission: lockettepro.admin.break
    • Admin use block (snoop chests) permission: lockettepro.admin.use
    • Admin override placing interference blocks permission: lockettepro.admin.interfere
    • Admin edit any sign permission: lockettepro.admin.edit
    * More info please see the wiki page.

    Supported Plugins & Special Lock Line Features

    WorldGuard & Residence:

    If a player does not have the "break" permission to a block due to WorldGuard or Residence, then he cannot lock it.

    If a sign has a user line formatted "[SomeName]", this means any player in town or nation "SomeName" will have access to this chest.
    Players are not allowed to lock a chest in the wilderness unless he has permission lockettepro.towny.wilds

    Factions (from MassiveCraft):
    If a sign has a user line formatted "[FactionName]", this means any player in faction "FactionName" will have access to this chest.

    If a sign has a user line formatted "[clantag]", this means any player in that clan will have access to this chest.

    If a sign has a [GroupName] in user line, anyone in that group could access it. The group is taken according to Vault.

    Scoreboard Teams:
    If a sign has a [TeamName] in user line, anyone in that team could access it. The team is Bukkit's scoreboard.

    Other plugins:
    Some plugins are born to compatible with Lockette/LockettePro thanks to Bukkit's event priority mechanics. Players are not able to lock a chest/block that has already protected by another plugin. Known compatible plugin includes ChestShop.

    Please do not leave reviews with issues reports, use the Discussion page or github to report issues.

    If you like this resource and want to say thank you with a donation please use this PayPal button. Thanks!
    This plugin is updated by CraftersLand Minecraft Community.
    :) Feel free to check us out at: www.craftersland.net
    myodong likes this.

Recent Updates

  1. 1.16.4 support and fixes
  2. Improvements
  3. Fixes

Recent Reviews

  1. hylic
    Version: 2.10.8
    Thanks for bringing this back up to date, really appreciate the work you Devs do as a brand new Server Admin. I hope to be able to donate to every mod maker with a great plugin, but unfortunately today is not that day. Thanks again.
  2. Wezzley
    Version: 2.10.5
    Hey, nice plugin but no idea why I got this error:

    Could not pass event PlayerInteractEvent to LockettePro v2.10.5
    java.lang.NullPointerException: null
    at me.crafter.mc.lockettepro.LocketteProAPI.isChest(LocketteProAPI.java:315) ~[?:?]
    at me.crafter.mc.lockettepro.BlockPlayerListener.onAttemptInteractLockedBlocks(BlockPlayerListener.java:246) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor550.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.2.jar:git-Paper-174]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.2.jar:git-Paper-174]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.2.jar:git-Paper-174]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.2.jar:git-Paper-174]
    at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:502) ~[patched_1.16.2.jar:git-Paper-174]
    at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:469) ~[patched_1.16.2.jar:git-Paper-174]
    at org.bukkit.craftbukkit.v1_16_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:465) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1941) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.PacketPlayInArmAnimation.a(SourceFile:31) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.PacketPlayInArmAnimation.a(SourceFile:9) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1135) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:1089) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:1003) ~[patched_1.16.2.jar:git-Paper-174]
    at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-174]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
    1. brunyman
      Author's Response
      Please report issues in Discussion page or even better on github issues tab.
  3. Process
    Version: 2.10.3
    Amazing plugin´╝ü
    Keep updating! Goooooooooooooooooooooooooooooooooooooooooood!!!!!!!!!!!
  4. Elochoa
    Version: 2.10.2
    funciona de lo mejor.
    muy facil de usar, rapido, al momento de descargarlo me funciono de lo mejor
  5. a4papers
    Version: 2.10.2
    Great plugin, Active dev. Fixed reported bugs very fast :D
  6. woeterman_94
    Version: 2.10.1
    Thank you! awesome plugin, please KEEP updating this plugin to keep your five stars :)
  7. VthorBlaster
    Version: 2.10.1
    Excellent plugin for security on my server +10 .......................................
  8. Wezzley
    Version: 2.10.1
  9. Dupetv
    Version: 2.10.0
    Worked very well.
    Here, small problem but I put it on the Github, let's hope it will be solved soon!
  10. Wezzley
    Version: 2.10.0
    Hey, Why users can bypass chest protections? I checked the config and appears CHEST in lockables.
    1. brunyman
      Author's Response
      Fixed in version 2.10.1, please report the issue first.