You are viewing a potentially older version of this package. View all versions.
DrakeMods-LockSmith-0.5.0 icon

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-5.4.2350 icon
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.2350
ValheimModding-Jotunn-2.30.0 icon
ValheimModding-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.0
DrakeMods-DrakeModsLibs-0.10.0 icon
DrakeMods-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.0

README

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

  1. Shift+E on the door → Enable LockSmith → Open Join.
  2. 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.)
  3. Back in the menu → Close Join when everyone's in.
  4. 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)

  1. Host sets EnablePieceMode=true and restarts (clients need the same mod).
  2. Hammer → Public category: always-open clones of ward-locked chests/doors (vanilla and discovered mod pieces).
  3. Names append (public) when PublicPieceNameSuffix is 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.
  4. Use PublicPieceDenyList / PublicPieceAllowList to 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) (also HasLocalWardAccess / 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 UseKey setting 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.IsPermitted directly, 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.
  • 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) and SetupModifier (Shift) chords and their config entries.
    • Hover text is now the state plus a single Lock menu hint.
    • 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 access to 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. EnableKeyMode is renamed EnableManagedAccess (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_door is 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 uses GetComponent<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_managed from 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.

0.4.2

  • Requires DrakeModsLibs 0.9.7+ (CompatHost).
  • WardIsLove soft-compat: detect WIL WardMonoscript wards for RequireActiveWard / permission checks (vanilla PrivateArea.m_allAreas stays 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 / IsInsideEnabledWard for 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 for RequireActiveWard / RenameIt hover when LockSmith is present.
  • Fix hammer Public clones: hover/interact no longer re-enables ward checks from a missing locksmith_public ZDO, and ward bypass (including WIL) treats *_public prefabs as always open.
  • CompatibilityManager: LockSmith ward facade over DrakeModsLibs CompatHost (per-plugin). Domain modules under Compat/<Mod>/. Public LockSmith.API.LockSmithCompatApi. SoftDependency only. See docs/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): EnablePieceMode discovers 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: AccessFeedback no longer calls the removed 4-arg Character.Message (was red MissingMethodException on 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 LockSmith KeyMenuOpenModifier).
  • 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.bundle next to the DLL) into Assets/Items/keys so the Locksmith Key registers.
  • Require DrakeModsLibs 0.9.3 (Valheim 1.0 Character.Message signature ??? fixes pickup MissingMethodException).

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/keys ArtItem pack (MasterKey mesh, 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.