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.
RunicStorage
Multi-access chests with shared server inventory authority, SmartSort, chest rules, Quick Stack, restock, search, and protected inventory trash.
| Date uploaded | a day ago |
| Version | 2.0.2 |
| Download link | Chazman-RunicStorage-2.0.2.zip |
| Downloads | 419 |
| Dependency string | Chazman-RunicStorage-2.0.2 |
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.2350README
Runic Storage 2.0.2
Multiple players can open and use a placed chest at the same time. All supported chest transfers, nearby crafting withdrawals, production changes, and chest rules use one server inventory authority. Opening a chest no longer takes inventory ownership away from another player.
Controls
| Action | Default control |
|---|---|
| SmartSort preview / confirm within 30 seconds | Left Alt + O, then repeat |
| Quick Stack one carried stack | Ctrl + Shift + left-click |
| Quick Stack All | Left Alt + Q |
| Restock | Left Alt + R |
| Search | Left Alt + F |
| Sort open chest | Left Alt + S |
| Store All | Left Alt + A |
| Consolidate carried stacks | Left Alt + C |
| Select carried items for trash | Shift + Alt + right-click |
Normal chest controls support deposits, withdrawals, splitting, merges, swaps, Take All, and Stack All. Conflicting requests are checked against the current stack; the second request cannot consume the same last item twice. The lid stays open while any authorized viewer remains.
SmartSort previews are read-only. Confirmation rechecks contents and rules before committing the whole plan. Configured chest rules, reserves, protected slots, and capacity still constrain the plan.
Open Quick Stack Rules to configure accepted/remembered items, categories, exclusions, priority, custom groups, and labels. Labels retain side placement, color, bend/wrap, and emoji options. Search and hover do not remove items.
Inventory Trash keeps its confirmation dialog and protections for equipped items, quest items, hotbar cells, and RunicInventory locks. Disabling optional Storage features does not disable basic access to already enrolled chests.
Settings are in BepInEx/config/chazman.RunicStorage.cfg. Remove the separate SmartSort test plugin before using Runic Storage. For manual installation, keep Translations beside the DLL.
Multiplayer and upgrading
Install matching builds and the same Runic module set on the host/server and every client, then restart them. Runic Storage supplies the shared inventory authority. Crafting and Production require Storage 2.0.2; they can be used independently of each other. A mismatched client is rejected instead of falling back to the old ownership protocol.
Back up the world, characters, configurations, and the server's RunicOperations/<world UID> folder together. The ledger is authoritative after enrollment. Do not delete it, restore only the world, or downgrade an enrolled world without restoring the matching backup. Existing native chest contents and production links are imported on first use.
Supported storage includes placed, static chests using Valheim's standard Container component and the Makail ItemDrawers adapter. Drawer assignments and large quantities are preserved; configured prefab allowlists still apply. SmartSort does not reorganize drawers. Carts, ships, graves and other custom inventory implementations retain their own interactions.
Wards, private chests, range, item identity, capacity, and configured item protections still apply. Multiple viewers do not block transfers. If a player runs out of inventory space, an accepted delivery remains pending until space is available. Reconnect to the original world to finish a pending transfer; do not remove its character receipt.
The server's ranges and access policies govern accepted operations. Keep participating clients' corresponding settings aligned so previews match server decisions.
Language and support
Keep the Translations folder beside the DLL. Missing translations fall back to English.
Runic Mods Discord · Support My Work Emoji artwork: Twemoji, copyright Twitter, Inc. and other contributors, CC BY 4.0, from jdecked/twemoji. The graphics license is embedded in the DLL.
CHANGELOG
2.1.3
- Fixed Quick Stack Rules refusing every shared chest by removing the obsolete local-ownership requirement from the shared editor path.
- SmartSort respects linked Production input materials and excludes output/replenishment chests, without requiring Runic Production.
- Preserved server-side access checks, conflict handling, input labels, and item quantities.
2.1.2
- Fixed removed occupied chests being replaced by another recovery chest, including repeating unsupported chest collapses.
- Recovered chest and enrolled production contents now drop as ordinary ground items; old recovery chests do not refund construction materials.
- Preserved item metadata and large drawer quantities through bounded, restart-resumable recovery.
- Shared fix included independently in this mod; no new mod dependencies or per-action saves.
2.1.1
-
Remove dismantled managed objects immediately instead of keeping their world records alive while inventory retirement waits; retain inventory data for background salvage.
-
Prevent repeated destruction callbacks from issuing the same managed piece's building-material refund again.
-
Fix initial chest enrollment waiting indefinitely when a remote owner has unloaded the chest, its ownership changes, or its inventory exceeds the old 64 KB capture limit.
-
Give fresh owner capture one bounded 250 ms window, then use the replicated native contents. Existing enrolled chests do not wait for this step.
-
Recover unfinished owner-side enrollment markers from earlier releases; keep existing published ledger identities intact.
-
Compress initial owner snapshots and accept inventories up to the existing 1 MiB codec limit. Late capture replies cannot replace enrolled contents.
-
Preserve independent installation and ordinary autosaves. No new mod dependencies or per-action character saves.
-
Quick Stack and Restock use ready nearby chests without waiting for every candidate to enroll.
-
Unavailable chest snapshots finish with a rejection and return offered items instead of keeping the character's transfer pending indefinitely.
-
Protect saved Runic role/quiver rows and optionally detect EquipmentAndQuickSlots quick, equipment, and custom cells without requiring either inventory mod.
-
Discover the optional Runic Inventory trash-lock hook after plugin loading; omit the missing-type warning when that mod is absent.
2.1.0
- Remove mandatory Runic-to-Runic dependencies. Storage, Crafting, and Production each include their own shared runtime and work independently with BepInEx.
- Preserve native and third-party chest deposits and withdrawals when a chest also participates in Runic automation.
- Merge native item changes with current chest contents, including item metadata and expanded rows, instead of replacing them with an older snapshot.
- Keep pending native changes visible and retry the same request if the network queue is full.
- Limit Storage chest controls to views opened through Storage; disabled Storage and native/third-party views retain normal interaction.
- Separate Runic viewer presence from vanilla's chest-in-use lock.
- Retain the one-click nearby building fix and ordinary-save behavior: no per-action character saves or forced disk synchronization.
- Preserve existing configuration and chest-ledger data. Keep matching server/client builds for whichever modules you choose to install.
2.0.8
-
Retry a delivery blocked by a full backpack after 100 ms, so freeing a slot does not impose the previous two-second wait.
-
Remove mandatory character save-and-readback checkpoints from normal chest actions, Quick Stack, and shared inventory transactions.
-
Replace forced server disk synchronization with buffered writes and atomic file replacement.
-
Keep server authorization, item identity, revision checks, request deduplication, Quick Stack feedback, and returned-item slot handling.
-
Preserve ordinary game saves and autosaves. Transfers since the last character save can be lost or duplicated after a crash; recent buffered server writes are not guaranteed through an OS crash or power loss.
-
Require matching installed Runic module builds on clients and server.
Earlier entries below describe their historical release behavior. Their per-operation saving guarantees were changed in 2.0.8.
2.0.7
- Refresh an open shared chest on the next inventory frame after a server snapshot arrives, removing the extra native one-second polling delay.
- Prioritize manual inventory actions ahead of queued background production, with bounded fairness for automation.
- Retry a temporarily busy manual transaction after 0.25 seconds rather than waiting the ordinary two-second retransmission interval; preserve the same request and recovery protection.
- Reuse an already verified Runic-only checkpoint for Character Vault 1.0.3 queued uploads instead of performing a redundant third full save. Ordinary saves retain their existing path.
- Show how many items Quick Stack moved and how many remained in the player's inventory.
- Explain when no accessible destination, no matching rule, full chests, or incompatible stacks prevent a transfer.
- Restore returned offered items to their original inventory slots when those slots remain available, including after reconnecting.
- Preserve existing matching rules, permissions, item metadata, verified saves, and replay protection.
- Require matching installed Runic module builds on clients and server.
2.0.6
- Keep Runic-origin queued Character Vault 1.0.3 follow-up saves quiet, while preserving ordinary and disconnect save indicators.
- Suppress the native floppy-disk notification for Runic transaction checkpoints while retaining the actual saves and recovery behavior.
- Preserve ordinary manual, autosave, and world-save notifications.
- Require matching installed Runic module builds on clients and server.
2.0.5
- Reduce ordinary character inventory transactions to two verified checkpoints while preserving replay and interrupted-delivery recovery.
- Wait safely for the native world context during connection and teardown.
- Require matching installed Runic module builds on clients and server.
2.0.4
- Reserve independent bounded server capacity for authenticated chest queries and prioritize them ahead of queued mutations.
- Limit server queue batches by elapsed time so durable production work yields to incoming chest traffic.
- Skip journal writes for authorized, revision-guarded automation that changes nothing; inventory changes retain durable recovery and replay protection.
- Require matching installed Runic module builds on clients and server.
2.0.3
- Keep one chest-opening request active after pressing E; repeated presses no longer replace an outstanding request.
- Reserve request capacity for chest access and retry queue admission automatically while the opening intent remains valid.
- Cancel obsolete read-only requests when changing chests or closing the view; coalesce viewer heartbeats and SmartSort previews.
- Retry chest queries promptly while first-time inventory enrollment completes, with diagnostics for sustained delays.
- Require matching installed Runic module builds on clients and server.
2.0.2
- Fix remote multiplayer chest requests being silently ignored because current Valheim does not populate the legacy peer player-ID field.
- Resolve the player's identity and position from the character ZDO owned by the connected peer; retain access, range and duplicate-identity checks.
- Apply the corrected identity lookup to managed drawer pickup and animal consumption.
- Update matching Runic modules together on clients and server. Remove the separate SmartSort plugin before loading Runic Storage.
2.0.1
- Restore ItemDrawers integration through shared authority: deposits, withdrawals, Quick Stack, nearby material use, production links and automatic ground pickup.
- Preserve assigned empty drawers and Int32 quantities without native UInt16 stack truncation. Withdrawals use ordinary backpack stack sizes.
- Serialize managed ground-item pickups and animal consumption with production and drawer transfers.
- Keep simultaneous chest access, configured protections and durable operation recovery.
2.0.0
- Replace inventory ownership handoffs with shared server authority and durable operations.
- Allow concurrent chest viewing, crafting, transfers, and production.
- Preserve character transfer receipts with verified character saves; reject stale/replayed changes.
- Recover first-enrollment identity across native world reloads and recover destroyed inventory through marked chests.
- Require matching module builds on host/server and clients. Crafting and Production now depend on Storage 2.0.0.
- See README for changed building/manual-fetch controls and the supported container boundary.
Changelog
1.4.2 — Native ownership recovery
- Recover nearby chest access after native ownership changes without a matching Runic handoff receipt. The server independently confirms the current ownership generation, data revision, and saved item fingerprint before the client refreshes and resumes. Stale or mismatched snapshots, busy chests, and denied access remain blocked.
- Preserve native ownership, material accounting, access checks, and rollback behavior.
- Add bounded server confirmation requests and reject stale or spoofed acknowledgements.
- Update matching companion builds together and restart both client and server.
1.4.1 — Trash shortcut compatibility
- Fix Shift+Alt+right-click also toggling RunicInventory's yellow cell lock.
- Guard the pointer-lock operation while trash owns the shortcut.
- Preserve existing locked cells and ordinary Alt+right-click locking/unlocking.
- Keep RunicInventory optional, with explicit compatibility load ordering.
1.4.0 — SmartSort & Inventory Trash
- SmartSort: preview and organize nearby chests with Left Alt + O, grouping similar materials, consolidating compatible stacks, and applying automatic chest labels.
- Honor manually configured chests as matching destinations while preserving their existing contents, positions, rules, and labels.
- Prepare previews incrementally and revalidate inventories and access before applying changes.
- Inventory Trash: Shift + Alt + right-click multiple stacks for bright red selection, then use the new trashcan between the inventory weight and armor values.
- Add a permanent-deletion prompt with Confirm, Cancel, and Reset; show the total item quantity selected.
- Protect hotbar cells, RunicInventory's dedicated armor/quick-slot row, locked cells, empty cells, equipped items, and quest items. Ordinary bottom rows remain usable.
- Use Valheim's keyboard input for trash selection and confirmation dismissal.
- Preserve the latest single-stack Quick Stack, localization, font initialization, and chest-access compatibility improvements.
- Keep optional performance logging disabled by default. This release does not claim to resolve all world-related stutters.
1.3.12
- Added single-stack Quick Stack: hold Ctrl+Shift and left-click a carried item to route only that stack into nearby storage.
- Works with a chest open or with only your inventory open, using existing chest rules, range, and item protections.
- Added configurable shortcut modifiers through
Keys.QuickStackSingleModifier. - Preserved vanilla Ctrl+left-click transfers and chest-side clicks.
1.3.11
- Fixed nearby chest access becoming stuck when using ServersideQoL.
1.3.10
- Improved chest synchronization after ownership changes.
1.3.9
- Improved shared chest access when multiple mods request items or players open and close chests.
- Improved font loading for chest labels, rules, tooltips, and search.
1.3.8
- Clarified messages for busy storage and transfers requiring recovery.
- Prevented an interrupted chest sort from blocking an untouched player inventory.
1.3.7
- Added language files that follow Valheim's selected language, with English fallback.
1.3.6
- Improved coordination with Crafting and Production when using the same chests.
- Improved synchronization and interrupted-transfer handling.
- Preserved an ItemDrawer's assigned item after withdrawing its final item.
1.3.4
- Fixed Quick Stack deposits of spawned items into Makail ItemDrawers.
- Added clearer feedback for unsupported item attributes and full storage.
1.3.3
- Added rounded-container wrapping for chest labels, with fine adjustments.
- Preserved existing labels, bends, and chest rules.
1.3.2
- Added independent up/down and forward/backward chest-label bends.
- Added fine adjustments, decimal values, and Reset bends.
1.3.1
- Added configurable Makail ItemDrawers support for Quick Stack and Restock.
1.3.0
- Added a 64-emoji picker and full-color emoji labels.
- Retained Quick Stack-only slot locks with RunicInventory.
1.2.5
- Added RunicInventory's Quick Stack-specific slot protection while leaving other inventory actions available.
1.2.4
- Fixed Quick Stack stopping after successfully moving a full stack into a rule-based or remembered chest.
- Kept partial stacks moving to additional eligible destinations.
1.2.3
- Corrected label placement on chest faces and opening lids.
1.2.2
- Fixed tiny chest labels and biome-only automatic captions.
- Prevented movement and gameplay shortcuts while editing rules or search text.
1.2.1
- Added Transparent, White, and Black label backgrounds and improved label colors.
1.2.0
- Added item groups, biome filters, exclusions, priority, and reusable custom groups.
1.1.0
- Added remembered contents, per-chest Quick Stack rules, and exterior labels.
1.0.6
- Fixed opened-chest actions and chest previews for durability-bearing items.
1.0.5
- Improved transfers involving worn tools, partial capacity, and temporarily unavailable chests.
1.0.4
- Improved nearby storage access in multiplayer while preserving busy-chest protection.
1.0.3
- Updated inventory actions for Valheim 1.0.
1.0.2
- Updated the mod description and usage guide.
1.0.1
- Fixed Quick Stack being unavailable immediately after entering a world.
1.0.0
- Added standalone storage tools with BepInEx as the only required dependency.
- Included chest previews, Quick Stack, Restock, Search, Sort, Store All, and Consolidate.
- Added searchable nearby items, chest highlights, and configurable search appearance.