Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
LockSmith
MOVING TO HEXIUM: final Thunderstore release, updates continue on Hexium. Share chests and doors behind your ward without adding people to it. One Lock menu (Shift+E): public/private, Join list, guests, Personal/Team chests.
| Date uploaded | 6 days ago |
| Version | 0.5.0 |
| Download link | DrakeMods-LockSmith-0.5.0.zip |
| Downloads | 45 |
| Dependency string | DrakeMods-LockSmith-0.5.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.0DrakeMods-DrakeModsLibs
Shared DrakeMods library for Valheim - Forge helpers, display patches, tags, APIs, and server config sync. Required by LockSmith and DrakesRenameit. Valheim 1.0 compatible.
Preferred version: 0.10.0README
LockSmith — ⚠️ Moving to Hexium
[!IMPORTANT] DrakeMods is moving to Hexium.
0.5.0 is the final LockSmith release on Thunderstore. No new DrakeMods will be released here, and existing mods will get only limited support on Thunderstore from now on.
For the latest updates, newest versions and future mods, follow us on Hexium: 👉 DrakeMods on Hexium
These Thunderstore listings will be deprecated after this.
[!TIP]
🎨 DrakesReskinIt is finally coming, on Hexium!
Give any item a new inventory icon, a new equipped model and custom colors, then save your looks as presets. Lock down your base with LockSmith, then make the gear inside it look the part. ReskinIt runs on the same DrakeModsLibs you already have installed. 👉 DrakesReskinIt on Hexium
Share chests and doors behind your ward without putting people on the ward. Open a door or chest to the public, or give guest access to individual players. Also covers Personal/Team private chests for shared stashes.
Ward-friendly access for Valheim bases:
- Public / private on normal chests and doors (inside wards)
- Personal / Team on private-family chests (shared stash, no ward required)
- Guests on ward pieces via a Join list, works similar to ward opt-in
- Easy to clear without rebuild
Press Shift+E (the game's AltPlace key + Use) on a chest or door you have access to. A small Lock menu opens with buttons for everything. No key needed, and no combos to learn.
Requires (everyone on the server): BepInExPack Valheim, Jotunn, DrakeModsLibs
Install folder:
BepInEx/plugins/DrakeMods-LockSmith/
Version
0.5.0 — Final Thunderstore release (updates continue on Hexium). One Lock menu (Shift+E) instead of key combos, no key needed, one player in the menu at a time, Join as a menu button, Add nearby player, Yes/No popups. The Locksmith key is temporarily removed. Requires DrakeModsLibs 0.10.0+.
0.4.3 — Multiplayer RPC hardening: Join/opt-in, paste, and public/team toggles confirm and re-send until they land; fixes split guest lists between players. Requires DrakeModsLibs 0.9.7+.
0.4.2 — Soft ward-stack bridges (WardIsLove / ProtectiveWards / Arcane Ward) + Compatibility API. Requires DrakeModsLibs 0.9.7+.
0.4.1 — Multiplayer Join fix (RPC re-bind + Join toggle sync). Requires DrakeModsLibs 0.9.4+.
0.4.0 — Hammer Public tab (EnablePieceMode), RequireActiveWard, and Valheim 1.0 center-message fix. Requires DrakeModsLibs 0.9.4+.
0.3.9 — Key passes (inventory menu + Ctrl+C/V) and shared DrakeModsLibs inventory chord / tab host. Requires DrakeModsLibs 0.9.4+.
The Locksmith key
The key is temporarily removed in 0.5.0 while it's being rebuilt. Everything works without it through the Shift+E Lock menu. Key settings (UseKey, RequireKeyForSetup, EnableKeyExtras, key recipe) are kept so synced configs line up, but have no effect until the key returns.
How to use
Shift+E on a chest or door opens the Lock menu if you have access there (ward member, chest owner, or guest). No access? You won't see it, and Shift+E does the normal thing. If a door or chest shows [Join open], press Shift+E → Join access. Plain E always does the normal open.
The Locksmith key is temporarily removed (see The Locksmith key), so the Shift+E menu is the way in for everyone.
The Lock menu
The menu shows what's going on (Public / Private, Join open, guest names) and only the buttons you can use right now:
| Button | Who |
|---|---|
| Join access | Anyone, while the piece shows [Join open] |
| Enable LockSmith | Ward member, first time on a piece |
| Make public / Make private | Ward member, or a guest on that piece |
| Make personal / Make team | Private-chest owner (EnablePersonalPause) |
| Open Join / Close Join | Ward member, or private-chest owner |
| Add name (nearby player) | Ward member or owner, if EnableAddNearby is on |
| Copy guests / Paste guests | Ward member or owner |
| Leave access | Guest on that piece |
| Remove LockSmith… | Ward member, or private-chest owner |
Copied guests last for your play session.
Sharing a door or chest with someone
- Shift+E on the door → Enable LockSmith → Open Join.
- Your friend walks up and presses Shift+E → Join access. They're on the guest list and can now open it without being on your ward. (Or, if they're standing next to you, use Add name in your menu.)
- Back in the menu → Close Join when everyone's in.
- Same people on another door? Copy guests here, then Paste guests there.
One at a time
Only one player can have the Lock menu open on a door or chest. Anyone else trying the menu, Join or Paste there sees "Name is using this — try again in a moment". Opening the door or chest itself is never blocked.
Leaving
Shift+E → Leave access → Yes. The popup tells you whether you can come back (only while Join is open).
Private chests — Personal / Team
Private chests work the same way. The owner gets Make personal/team (when EnablePersonalPause is on) and Open/Close Join. Team members can open it, and use Shift+E → Leave access.
Public hammer pieces (piece mode)
- Host sets
EnablePieceMode=trueand restarts (clients need the same mod). - Hammer → Public category: always-open clones of ward-locked chests/doors (vanilla and discovered mod pieces).
- Names append
(public)whenPublicPieceNameSuffixis on. A placed clone shows [Public] (PublicPieceHoverText). The hammer description is gold: always open, cannot be locked. Already-public vanilla pieces (e.g. Christmas boxes) are not duplicated. - Use
PublicPieceDenyList/PublicPieceAllowListto trim or force donors. The Lock menu does not manage these clones.
Config (synced)
| Setting | Default | Notes |
|---|---|---|
EnableChests |
on | Ward public/private chests |
EnableDoors |
on | Ward public/private doors/gates |
EnableGroupChests |
on | Team sharing on private-family chests |
EnablePersonalPause |
off | Personal↔Team pause switch (keeps names); off = team-only |
EnablePieceGuests |
on | Guest ACL on ward chests/doors |
EnableOptInAccess |
on | Ward-style Join open / E to opt in |
EnableManagedAccess |
on | Master switch for the Lock menu on placed doors/chests (was EnableKeyMode; value carries over) |
EnablePieceMode |
off | Hammer Public tab: always-open chest/door clones (vanilla + mods); no key/ZDO. Restart after change |
PublicPieceAllowList |
empty | Extra donor prefab names to clone (comma-separated). Restart |
PublicPieceDenyList |
empty | Donor prefab names never cloned. Restart |
PublicPieceNameSuffix |
on | Append localized (public) to clone display names. Restart |
PublicPieceHoverText |
[Public] |
Plain hover line on placed Public doors and chests. Empty uses [Public] |
EnableGuestPublicToggle |
on | Make public/private in the Lock menu without the key (ward members and guests) |
EnableKeyPasses |
on | Copy/Paste guests: menu buttons and Ctrl+C / Ctrl+V |
UseKey |
on | No effect while the key is removed. Enhanced mode: the Locksmith key exists (craftable; E with it opens the menu; hover shows guest names; stores copied guests, Ctrl+C/V). Off = simple mode: key not added to the game, Shift+E menu only. Restart after change |
EnableAddNearby |
on | Lock menu button to add the closest player (5m) to the guest list |
RequireKeyForSetup |
off | No effect while the key is removed. On = Enable / Join / Personal-Team / Paste / Remove need the key in hand |
EnableKeyExtras |
off | No effect while the key is removed. Key inventory menu: Relabel, Grab nearby, Clear names, Clone key |
EnableDesignate |
on | A piece must be enabled (Lock menu → Enable LockSmith) before other options show |
RequireActiveWard |
on | No manage/toggle on normal chests/doors unless inside an enabled ward (private chests exempt) |
TeamLabelColor |
#FF00FF |
Local only — color for Team/Guests labels |
With EnableKeyExtras on, the key's inventory menu uses DrakeModsLibs Integration.InventoryOpenModifier (default Shift) + right-click — shared with RenameIt when both claim an item.
Compatibility API
Optional ward / cheat mods (WardIsLove, ProtectiveWards, Arcane Ward, DevCommands, …) are soft-loaded via a CompatibilityManager. Missing mods never block LockSmith. Prefer one third-party ward stack at a time.
These built-ins are a courtesy so common packs work out of the box. They are not actively monitored against every upstream ward update. If something breaks, please open an issue with logs — I may look into it when I can. You’re also welcome to contribute a fix (pull request or your own SoftDependency bridge via the API below).
Third-party authors can register their own module without waiting on a LockSmith release:
- SoftDependency GUID:
com.drakesworkshop.locksmith - API:
LockSmith.API.LockSmithCompatApi.Register(ICompatModule)(alsoHasLocalWardAccess/IsInsideEnabledWard) - Full guide:
docs/wiki/Compatibility-API.md(also intended for the GitHub wiki)
Pull requests that add or harden a Compat/<YourMod>/ module are welcome. You’re also free to keep the bridge in your own mod with SoftDependency + Register.
Multiplayer
Required on server and all clients (EveryoneMustHaveMod). Feature toggles sync via DrakeModsLibs config sync.
What’s next
See docs/drakeVision.md.
| Version | Focus |
|---|---|
| 0.4 | Placeable public chests/doors — shipped in 0.4.0 |
| 0.3–0.4 | Compatibility with devcommands mod / WardIsLove / other ward mods |
| Later | Quest/swamp keys, deeper RenameIt, unwarded locks, Halvar chests, … |
Feedback
Bug reports and “this would help our RP server” notes welcome — GitHub issues.
CHANGELOG
Changelog
0.5.0
Final Thunderstore release. DrakeMods is moving to Hexium: future LockSmith updates are posted there, and this Thunderstore listing gets only limited support and will be deprecated. Requires DrakeModsLibs 0.10.0+.
Stable cut of the 0.5.0 betas (see below):
- One Lock menu, no key needed. AltPlace+E (Shift+E by default) on a chest or door opens a menu with every option you have access to, replacing the old key combos and "press again" warnings with buttons and Yes/No popups.
- Join is a menu button, plus Add nearby player, Copy/Paste guests, and Leave access.
- One player in the Lock menu at a time per door/chest, to stop conflicting multiplayer changes.
- The Locksmith key is temporarily removed while it's rebuilt; LockSmith runs in simple mode.
- Fix: ProtectiveWards ward checks no longer fail in game.
0.5.0-beta.2
Hexium beta. Requires DrakeModsLibs 0.10.0+ (0.5.0-beta.1 calls the old ArtItemLoader, which Libs 0.10.0 removed, so update both together).
- The Locksmith key is temporarily removed while it's rebuilt with Drakes Asset Forge. LockSmith always runs in simple mode (AltPlace+E); the
UseKeysetting is kept so synced configs line up, but has no effect for now. Keys already in inventories disappear until it returns. - No longer uses DrakeModsLibs' old
ArtItemLoader(removed in Libs 0.10.0), and the key art (keys.bundle,masterkey*) is no longer packaged. - Fix: with ProtectiveWards installed, ward access checks called Valheim's private
PrivateArea.IsPermitteddirectly, which fails in the real game; it's now called by reflection.
0.5.0-beta.1
Hexium-only beta (Thunderstore skipped). Requires DrakeModsLibs 0.9.12+.
- No key needed. AltPlace+E (Shift+E by default) on a chest or door opens the Lock menu with every option for players who have access: ward members, the private-chest owner, and guests. Players without access don't see the hint, and AltPlace+E stays vanilla for them. A new synced
RequireKeyForSetup(default off) brings back "owner tools need the key in hand".- New synced
UseKey(default on). On is enhanced mode: the key is craftable, E with it opens the menu, hovers show guest names, and copied guests save on the key. Off is simple mode: the key item is not added to the game, hovers show only the state and the Shift+E hint, and guest names appear only in the Lock menu. Restart required after changing. - Copy/Paste without a key uses a clipboard that lasts for your play session. With the key in hand, names go on the key as before.
- New synced
- One Lock menu instead of key combos. Press AltPlace+E on a chest or door, or E while holding the key. A small menu shows the current state (Public/Private, Join open, guest names) and only the buttons you can use: Enable LockSmith, Make public/private, Make personal/team, Open/Close Join, Copy/Paste guests, Leave access, Remove LockSmith.
- Holding the key and pressing E no longer toggles anything by itself.
- Removed the
ClearModifier(Alt) andSetupModifier(Shift) chords and their config entries. - Hover text is now the state plus a single
Lock menuhint. - The menu refreshes as changes confirm, and buttons grey out while a change is syncing, so double-clicks can't send twice.
- One player in the Lock menu at a time per door/chest (opening the chest/door itself is unchanged). Opening the menu takes a short lease and, like a vanilla chest, the current owner hands the piece over, so menu actions are local writes instead of requests bouncing between players. Others trying the menu, Join or Paste on that piece see "Name is using this — try again in a moment". The lease renews while the menu or its Yes/No is open, is released on close, and runs out after ~10s if the holder disconnects.
- Joining is a Lock menu button now. While a piece shows [Join open], AltPlace+E → Join access. Plain E always does the normal open (it just reminds you of Shift+E). Hovers show
[Shift+E] Join accessto players who can join, and nothing to players who can't. - Add nearby player (new synced
EnableAddNearby, default on): owners get an "Add name" button for the closest player within 5m who isn't a guest yet. Works with or without the key. - Leave always asks "Leave access?", and the text says whether you can rejoin.
- Fixed an empty Lock menu (title, no buttons) after logout or a character swap. The fix is in DrakeModsLibs
DrakeWoodActionMenu. - Yes/No popups replace "press again within 5s" warnings.
- Remove LockSmith always asks first.
- Leave access asks only when Join is closed (you can't rejoin until the owner opens it). While Join is open you leave right away.
- Leaving works any time, not only while Join is open.
- Shorter messages on screen.
- Settings cleanup.
EnableKeyModeis renamedEnableManagedAccess(the master switch for the Lock menu on placed pieces), and existing values carry over. All key settings (UseKey, RequireKeyForSetup, EnableKeyExtras, name and recipe) are grouped under Key (advanced). Descriptions no longer mention the removed hotkeys. - Piece mode no longer clones world-only chests/doors. Only pieces in a build tool's piece table count as donors, so dungeon, treasure and Dvergr-town props are left out.
dvergrtown_wood_dooris dropped from the defaults; the allow list still overrides. - Key extras off by default: new synced
EnableKeyExtras(default off) controls the key's inventory menu (Relabel / Grab nearby / Clear names / Clone key). Copy/Paste guests stays on (EnableKeyPasses) as menu buttons and Ctrl+C / Ctrl+V. The key no longer auto-renames itself[Pass]/[Team]unless extras are on. - New key description. Configs still holding the old default text pick up the new one automatically.
- Multiplayer fix: the piece owner identified who sent a request through
Character.m_nview, which is protected in the live game. It now usesGetComponent<ZNetView>().
0.4.3
- Multiplayer RPC hardening: all piece changes (Join open/close, opt-in/out, public/private, team mode, clear, Ctrl+V paste) go through one owner-routed path (
PieceRpc).- Fix Ctrl+V paste writing
locksmith_managedfrom a non-owner — that forked the piece ZDO between players (names added but no pink Guests line for some players, flags flipping back when several people edited the same door/chest). - Requests to an unowned piece claim it first instead of broadcasting into nobody (opt-in "worked" but never landed on the list).
- Requester re-sends until its own copy shows the change (covers ownership moving mid-RPC and a new owner writing over a change it never received). Requests are idempotent, so re-sends are safe.
- "You joined" / "You left" / "Pasted" now show when the change is confirmed; a failure message shows if the owner never applies it.
- Owner verifies the routed sender is the player id it claims.
- Piece RPC re-registration no longer relies on try/catch around
Unregister; chest/door public RPCs unregister before re-binding.
- Fix Ctrl+V paste writing
0.4.2
- Requires DrakeModsLibs 0.9.7+ (
CompatHost). - WardIsLove soft-compat: detect WIL
WardMonoscriptwards forRequireActiveWard/ permission checks (vanillaPrivateArea.m_allAreasstays empty under WIL-only). WIL's door/chest interact and No-access hover patches are removed and only called when the piece is not LockSmith-public, a public hammer clone, a team chest that player can open, a guest bypass, or Join open for a player WIL would deny (they can press E to opt in; the piece does not open). - ProtectiveWards soft-compat: Door/Container Interact gated like WIL (public / guest / team / Join-open bypass PW's Priority.First block). Coverage uses PW
InsideEnabledPlayersArea/HasAccessToWardOrConnectedWard.LockSmithCompatApi.HasLocalWardAccess/IsInsideEnabledWardfor RenameIt and third parties. Does not gate ItemStand or other PW Interact surfaces. - Arcane Ward soft-compat: Door/Container Interact gated around KG
ArcaneWardComponent.CheckFlag(custom ward stack, not PrivateArea). Coverage via enabled fueled Arcane instances forRequireActiveWard/ RenameIt hover when LockSmith is present. - Fix hammer Public clones: hover/interact no longer re-enables ward checks from a missing
locksmith_publicZDO, and ward bypass (including WIL) treats*_publicprefabs as always open. - CompatibilityManager: LockSmith ward facade over DrakeModsLibs
CompatHost(per-plugin). Domain modules underCompat/<Mod>/. PublicLockSmith.API.LockSmithCompatApi. SoftDependency only. Seedocs/wiki/Compatibility-API.md. - Public hammer doors and chests show a plain hover line (default [Public], synced
PublicPieceHoverText). Hammer build description stays gold: always open, cannot be locked.(public)is appended after the donor name is localized (PublicPieceNameSuffix). - Soft ward bridges are a courtesy (not actively monitored); please open an issue if something breaks — PRs and SoftDependency bridges via the Compatibility API are welcome.
0.4.1
- Fix multiplayer Join: re-bind piece RPCs after chunk reload (opt-in/out and Join open/close stopped applying).
- Fix Join toggle spam when ZDO sync lags - owner tool no longer flips open/open on stale state.
0.4.0
- Piece mode (Phase 4):
EnablePieceModediscovers ward-locked chests/doors/gates (vanilla + mods) and registers always-public Hammer Public tab clones (m_checkGuardStone = false, no ZDO toggle). - Skips donors that are already public (e.g. Christmas boxes) and private-family chests.
- Synced
PublicPieceAllowList/PublicPieceDenyList;PublicPieceNameSuffix(default on) appends localized(public)to clone names. - Key mode ignores public clones (hover: always public). Restart after changing piece-mode registration settings.
- RequireActiveWard (default on): with no enabled ward covering a normal chest/door, LockSmith cannot manage or toggle it - including already-managed pieces. Personal/Team private-family chests stay exempt. Doors always need the ward up.
- Fix Valheim 1.0 center feedback:
AccessFeedbackno longer calls the removed 4-argCharacter.Message(was redMissingMethodExceptionon key Join/clear/clipboard). - Drop duplicate Config Manager masterkey section from ArtItemLoader; use 03 Key only for name / recipe.
- Requires DrakeModsLibs 0.9.4+.
0.3.9
- Key passes: inventory menu on the Locksmith key (Relabel, grab nearby, clear, clone at craft cost) via DrakeModsLibs wood UI /
DrakeTabHost. - Clipboard: Ctrl+C / Ctrl+V copy guest names onto the key and paste onto a looked-at piece.
- Inventory open chord uses DrakeModsLibs
Integration.InventoryOpenModifier(removed LockSmithKeyMenuOpenModifier). - Localized single-mode hint configure lock tool; Libs shows customize when 2+ tabs are usable (e.g. admin TagBypass + RenameIt). Soft
NoRename+ hard description lock on keys (description only is hard-locked). - Requires DrakeModsLibs 0.9.4+.
0.3.8
- Repair flattened Thunderstore installs (Gale puts
keys.bundlenext to the DLL) intoAssets/Items/keysso the Locksmith Key registers. - Require DrakeModsLibs 0.9.3 (Valheim 1.0
Character.Messagesignature ??? fixes pickupMissingMethodException).
0.3.7
- Require DrakeModsLibs 0.9.2+ (ArtItemLoader folder packs) so the official Locksmith Key art loads for store installs.
0.3.6
- First public release (GitHub). Thunderstore/Hexium upload when store tokens are set.
- Official Locksmith Key from
Assets/Items/keysArtItem pack (MasterKeymesh, bone skull, flipped grip). - Slim visual-only
keys.bundle(no drop physics / particle VFX / packed Valheim scripts). - Removed temporary give-key-on-spawn debug helper.
- README elevator pitch + store description; release categories ready for Thunderstore + Hexium.
0.3.5
- Designate flag (
locksmith_managed): key claims a chest/door as a LockSmith piece (EnableDesignate). - After designation, Alt+E public/private for anyone with access (ward or guest) ??? no key in hand (
EnableGuestPublicToggle). - Strangers never toggle. Public stays open-only (no Join/setup).
- Key still required for Team mode and Join open/close.
- Pre-0.3.5 pieces with public/guests/team state count as already designated.
- Clear with key: configurable
ClearModifier+E (default Alt). Guests ??? confirm twice. - Join setup with key: configurable
SetupModifier+E (default Shift) so it no longer collides with Clear when AltPlace is rebound to Shift. - Fix: Join hover no longer doubles
[Join open]/[E] Join access. - Guest names: keep playerId, show name; refresh Unknown when online.
0.3.4
- Guests on ward chests/doors can Alt+E toggle public/private without the Locksmith key (
EnableGuestPublicToggle). - Not for private-family chests. While public: Join/setup disabled ??? public means open.
- While Join is open, Alt+E still means Leave; when Join is closed, Alt+E unlocks/locks for everyone.
- Future (drakeVision): access setup menu UI.
0.3.3
- Guests [N] vs names-with-key; local TeamLabelColor; name resolve/refresh.
0.3.2
- Hover No access fix; opt-out; names; ward bypass for team guests.
0.3.1
- Ward-style Join; piece guests.
0.3.0
- Personal/Team private chests.
0.2.0
- Ward public/private.
0.0.1
- Internal prototype.