You are viewing a potentially older version of this package. View all versions.
Chazman-RunicStorage-1.3.0 icon

RunicStorage

Remember chest contents, route Quick Stack with item and biome rules, and add colored chest labels. Includes chest previews, restock, search, sort, store all, and stack consolidation.

Date uploaded 3 days ago
Version 1.3.0
Download link Chazman-RunicStorage-1.3.0.zip
Downloads 1540
Dependency string Chazman-RunicStorage-1.3.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

README

Runic Storage

Version 1.3.0

A large Valheim base eventually contains enough identical chests that storing loot becomes its own memory game. You know the item exists somewhere; finding it, distributing a new haul, and rebuilding your carried supplies are the tedious parts.

Runic Storage turns a room full of boxes into storage you can actually use. See what a chest contains, move matching items where they belong, restock what you carry, and search across eligible nearby containers.

Major features

  • Preview useful chest contents before opening the container.
  • Quick-stack carried items into nearby matching storage.
  • Remember chest contents and route Quick Stack using exact items, groups, biome filters and exclusions.
  • Add named, colored labels to chest faces and lids, with optional white or black backgrounds.
  • Store all into the opened chest and restock configured supplies.
  • Search nearby storage and highlight every matching chest.
  • Sort containers and consolidate compatible partial stacks.

How it feels in-game

Returning from an expedition becomes unload, restock, and go. You spend less time opening every chest, dragging repeated stacks, or trying to remember where the iron ended up, while the containers in your base remain real Valheim storage.

Safety and compatibility

Storage acts only on loaded, accessible, synchronized containers. For mutations it uses Valheim's native ownership claim only after both the local state and synchronized ZDO state prove the chest is unused; a chest another player is actively editing is never claimed or changed. Read-only hover and Search can still display its synchronized persisted contents. Wards and ordinary chest access remain authoritative, protected or locked items are respected when optional integrations are present, and ambiguous state aborts the enhanced action. The mod is independently installable with BepInEx.

Features

  • Chest contents on hover adds a deterministic, localized, bounded summary to eligible closed containers.
  • Quick Stack (Left Alt + Q) moves eligible carried items into nearby containers using saved chest rules, remembered item types, or ordinary matching contents.
  • Restock (Left Alt + R) pulls configured items up to their target quantities, whether a chest is currently open or the player is standing near closed chests.
  • Search (Left Alt + F) opens a filterable list of item kinds found in eligible nearby chests. Selecting an item gives every matching chest a bright animated yellow ring and light for 15 seconds. The picker takes a renewable cursor lease, opens with keyboard focus in the filter, and owns its left-mouse clicks so selecting, filtering, or closing it cannot also punch, swing, or use the equipped tool. It yields control back to Valheim after the captured click is fully released. The complete window's font size (Search.MenuFontSize, 10–32) and named color (Search.MenuFontColor) are live Configuration Manager settings. Color is a dropdown containing Light Gray, White, Gold, Yellow, Orange, Red, Pink, Purple, Blue, Cyan, Turquoise, Green, and Lime; no color code is required. Larger sizes also enlarge the window, fields, action buttons, item rows, and title clearance. The picker is a native Unity Canvas built with Valheim's live inventory/dialog panel Sprite, button Sprite and states, scrollbar art, text-input art, TMP font, and Canvas scaling. Those assets remain native Sprite references; they are not copied out of the packed UI atlas. A dark scene scrim and opaque inset keep the list readable in full daylight and dark interiors. If a UI replacement mod removes one of those sources, an opaque brown Valheim- toned native Image fallback keeps the same layout and behavior. A persisted named font choice remains authoritative when the native view is rebuilt.
  • Sort opened container (Left Alt + S) applies the configured ordering while preserving locked slots.
  • Store All (Left Alt + A) moves eligible carried items into the exact currently opened chest.
  • Consolidate carried stacks (Left Alt + C) merges serialization-compatible stacks while respecting protected cells and equipped or quest items.

Controller shortcuts use Valheim's named ZInput actions and remain configurable. Hold JoyAltKeys and use D-pad Down for Quick Stack, Up for Restock, Right for Search, Left for Consolidate, or JoyRStick to sort the opened container. Invalid or ambiguous bindings fail closed.

Multiplayer behavior

Storage uses Valheim's native ownership model. A mutation is allowed only when the active player is the local native owner and every container being changed is locally owned, accessible, synchronized, not loading, and not otherwise in use. This same rule applies in solo, listen-server, and dedicated- server client sessions. Storage claims accessible idle containers through Valheim's native ownership mechanism before changing them. An open or unsynchronized chest is skipped; other eligible chests can still be used. Native network ownership is not the same as the player who built a chest.

Actions use a small process-local Storage lease so two Storage actions cannot interleave. Each move preflights exact shadow inventories, captures exact backups, saves both endpoints, and attempts exact rollback on an ordinary synchronous failure. Storage does not provide cross-process or crash-atomic transactions, RPC transfer protocols, journals, global suite locks, quarantine records, or recovery sagas.

Search and hover do not mutate container contents. They require vanilla access and verified inventory data. Hover accepts Valheim's single load/save durability rounding, but not changed item quantities or unrelated payload differences. Hover remains bounded by physical player reach, strict ward access, snapshot size, stack count, label length, output length, retry, and cache ceilings. It never opens a container or takes ownership.

Each animated search ring uses its own Unity child object. If a chest or another mod invalidates a ring, light, or visual root during its lifetime, the visual-only marker disables and removes itself once instead of throwing on every frame.

Nearby discovery uses an event-maintained 10 m spatial-cell index with a hard 50 m radius and 256-candidate ceiling. Personal, denied, busy, invalid, and unverifiable containers are excluded.

Store All and Consolidate accept freshly returned native inventory item lists as long as every item reference still matches exactly. With Runic Inventory installed, a belt/equipment transition that temporarily invalidates the special row recovers after the next valid snapshot instead of leaving Storage permanently unable to prove carried-item protection.

Optional Runic Inventory integration

If Runic Inventory is installed, Storage discovers its public item-protection API by reflection and honors locked or protected carried items. If Inventory is absent, Storage continues with its own equipped-item, quest-item, and hotbar protections. A present but incompatible or indeterminate Inventory provider fails closed for the affected action. Neither plugin loads the other at runtime.

Configuration Manager is optional. All settings are regular BepInEx configuration entries.

The search picker uses native uGUI controls (Image, Button, TMP_InputField, ScrollRect, and Scrollbar) on its own scaled Canvas. The original Valheim Sprites render through their authored atlas rectangles and sliced borders, preventing the wrong atlas region from becoming the window background. A small raw-pointer observer remains in OnGUI only to maintain the proven attack- suppression latch; it does not draw the menu.

Quick Stack Rules and chest labels

Open a placed chest and click Quick Stack Rules in the separate footer below its inventory panel. The vanilla Stack button remains available in the chest header and retains vanilla behavior; saved chest rules are used by Runic Quick Stack (Left Alt + Q). Hover over any editor control for help; keyboard focus also shows help.

While Rules or Search is open, movement, gameplay shortcuts and camera zoom/look are blocked. Typing, UI scrolling, buttons and Escape/controller Cancel continue to work. Controls resume after the closing input is consumed. A biome-only filter also supplies an automatic label: Only from biome > Meadows, with the caption blank, displays Meadows.

  • Turn on Remember contents to learn the item types currently in the chest. It also learns newly stored types as the chest saves. You can take or consume the last item; Quick Stack will still recognize the empty chest later. No item is reserved or made unusable.
  • Search Always accept for exact types such as Wood or Finewood, or use Groups for built-in and reusable custom groups. Multiple selected groups accept any matching member. Positive selection automatically enables the exterior label.
  • Health Foods means health greater than stamina; Stamina Foods means stamina greater than health. Equal values go under Balanced Foods. Eitr Foods accepts food with positive eitr; Food accepts all food. These categories can overlap.
  • The Accepted tab lets you remove selected rules. Remembered lets you remove individual learned item types. Clear rules removes explicit rules; Clear remembered items clears learned types. Save applies edits; Cancel discards them. To stop relearning current contents, turn Remember contents off.
  • Explicit rules replace the normal contents/remembered-items match for Quick Stack. Never accept rejects an item even if a positive rule or current contents match. Only from biome filters group and remembered/current-content matches; Always accept is an exact-item exception to that biome filter. Full or inaccessible destinations are skipped, and protected player items remain protected.
  • Choose Front, Back, Left, Right, or Top for the text on the chest body. Adjust size and horizontal/vertical offsets if needed for a particular chest model. Labels follow the chest's rotation and disappear with it; no separate sign piece or materials are required.
  • Labels automatically show up to three selected or remembered designations. Enter custom text to override that caption. Choose a named text color from Text, or type a name in the adjacent field. Supported names are Red, Cyan, Blue, Darkblue, Lightblue, Purple, Yellow, Lime, Fuchsia, White, Silver, Grey, Black, Orange, Brown, Maroon, Green, Olive, Navy, Teal, Aqua, and Magenta. The mod writes the hex color tag automatically. Familiar unsupported names and hex values use the nearest palette RGB; unknown words use the nearest spelling. The preview and status show the selected approximation. New selections are opaque; untouched legacy labels retain their existing color until edited and saved.
  • Background selects Transparent, White, or Black behind the text. It is independent of text color. The preview shows both; choose contrasting text and background for readability.
  • Never accept prevents Runic Quick Stack delivery to this chest regardless of matching rules or priority. It does not remove existing items or prevent manual placement. Preferred only chooses this chest before Normal chests with equally specific matches; distance decides remaining ties. The explanation changes when you toggle priority.
  • Rules and labels are saved with that chest in the world and synchronize through its native network state. Use RunicStorage 1.2.4 on participating installations for the corrected labels and input handling. Install it on all processes that add/remove chest items, including an automation host, for consistent automatic learning.

This feature applies to placed chest-like containers, not carts, ships, graves, or display stands. Each chest supports up to 128 explicit item types and 128 remembered types; the item picker is paged. Rules affect Quick Stack. Manual transfers, Store All, crafting, and production can still put other items in the chest or use its final item. They do not interpret these rules as inventory locks. Labels use the chest model's bounds; unusual modded shapes may need position adjustment. Front is the chest's forward face; Left and Right are from a player facing that front. Top text reads from the front. Body labels use stable body geometry. Top labels attach to the closed lid, with matching open-lid meshes following the same attachment when the chest opens; they are not positioned from a temporary open-state bounding box.

Rule groups, filters, and priorities

Rules use stable internal IDs, independent of the visible label. Renaming or coloring a chest does not change its sorting rules.

Picker group Designations
Equipment Weapons, Shields, Armor, Capes, Tools
Ammunition Arrows, Bolts, All Ammunition
Consumables Food, Health Foods, Stamina Foods, Balanced Foods, Eitr Foods, Potions
Resources Wood Materials, Stone Materials, Ores, Metal Bars, Seeds, Crops, Animal Materials
Other Trophies, Valuables, Crafting Ingredients
Biomes Meadows, Black Forest, Swamp, Mountains, Plains, Mistlands, Ashlands, Deep North
Custom Reusable player-selected groups such as Building Supplies or Expedition Food

Equipment, ammunition, food, potions, and valuables use item properties. Crafting Ingredients uses the installed recipe ingredient lists. Resources and biomes use curated exact prefab lists, including overlapping biome membership. These lists describe an item's associations, not the location where that particular stack was collected. Unknown/modded biome items require explicit item exceptions or a custom group without a biome filter.

Select Ores plus Metal Bars to accept either. To restrict them to swamp-associated items, select Swamp under Only from biome. Selecting Swamp under Groups instead adds all curated swamp items as another accepted group. Any biome clears the filter.

Routing order:

  1. Reject Never accept items, inaccessible chests, and destinations with no capacity.
  2. Prefer Always accept exact-item rules, then narrow groups, then broad groups.
  3. Within the same specificity, Preferred chests precede Normal chests; distance breaks ties.
  4. Fall back to remembered-item and ordinary existing-content matches when no explicit positive rules are set for that chest.

Narrow groups include Wood Materials, Ores, Metal Bars, Shields, Capes, Tools, Arrows, Bolts, specialized food groups, and the other specific resource groups. Weapons, Armor, All Ammunition, Food, Crafting Ingredients, biomes, and custom groups are broad. An exact Finewood chest is tried before Wood Materials, followed by a Building Supplies custom group, even when the broader chest is Preferred.

Reusable custom groups

Open Custom groups, choose New group, enter a name, and select its members under Items. Click Save group to save that reusable template. Then select it under Groups and click the chest's Save button. Select an existing template under Custom groups to rename it or edit its members; its internal identity stays the same.

The reusable library is stored in this mod profile's configuration. Applying a group copies its definition into the chest's network data, so other players use the same membership without needing your local library. Existing chest definitions are preserved when a library template is changed or deleted. To update another chest, deselect and reselect the group there, then Save. Saving a template is independent of saving or cancelling the chest editor.

Each library/chest supports up to 16 custom groups, with 128 exact members per group, within a total bounded metadata size. Each chest also supports 128 Always accept entries, 128 Never accept entries, and 128 remembered item types. Duplicate/oversized data is rejected without overwriting existing chest rules.

Existing 1.1.0 and 1.2.0 rules, memory, custom groups, and label settings migrate automatically, with Transparent backgrounds. Settings from 1.2.1 and 1.2.2 are retained. Update participating installations to 1.2.4; versions before 1.2.1 do not understand the background-enabled saved format.

Label emojis

Click Emojis beside the caption/label field, choose Food, Materials, Equipment or Places, then choose one of 64 icons. The icon replaces selected text or inserts at the cursor. Close or Escape dismisses the picker without discarding the editor draft; save the editor to apply changes. Supported emojis can also be pasted. The preview and world label use the same bundled artwork, retaining its colors when text color changes.

Limits remain 256 UTF-16 units for signs and 96 for chest labels; each bundled emoji uses two units. Flags, skin tones, joined sequences and emojis outside the picker are not included in this release. Players need the updated mod to display the bundled artwork; captions remain ordinary Unicode text in existing saves.

Emoji artwork: Twemoji, copyright Twitter, Inc. and other contributors, CC BY 4.0, from jdecked/twemoji. Images are arranged in a padded atlas without changing the artwork. The graphics license is embedded in the DLL.

Release acceptance

The author confirmed version 1.3.0 working in-game on September 17, 2026.

CHANGELOG

Changelog

1.3.4 - 2026-09-19

  • Author confirmed in-game testing on September 19, 2026; prepared for Thunderstore release.
  • Fix QuickStack refusing spawned items in Makail ItemDrawers. Deposits now follow ItemDrawers' native type/count behavior for picked-up and spawned flags; custom item data, quality, crafter attribution and other incompatible attributes remain protected.
  • Report unsupported drawer item data separately from full capacity, including when another matching chest is full.
  • Add a regression matching the reported stack: 20 spawned items into a drawer containing 10, with exact final count 30. Retains 1.3.3 barrel label wrapping and all prior compatibility controls.

1.3.3 - 2026-09-19

  • Added Wrap around container in the Bend window for barrel and other rounded side labels. The earlier bow left the endpoints on a flat plane; wrapping anchors the middle and turns the ends around the container.
  • Default wrap fits the container bounds at adjustment 0. Minus/plus make small one-percent changes to curvature, with decimal input for finer control. Up/down bending remains available.
  • Persist wrapping in version-5 chest rules; preserve older flat labels, version-4 bends and routing rules. Reset restores a flat label.
  • Correct the startup log to report the actual plugin version. Retains ItemDrawers compatibility and the existing fine bend controls.
  • Automated geometry, glyph/emoji, reset and persistence regressions pass. Wrapping is included in the author-confirmed 1.3.4 release.

1.3.2 - 2026-09-19

  • Added independent up/down and forward/backward chest-label bends under Quick Stack Rules > Bend, with minus/plus buttons, decimal fields and Reset bends.
  • Bend controls use fine units: 1 is the previous RunicSigns 0.01 coefficient. Each button click changes by one fine unit. Glyphs and bundled emojis curve together on every chest face and lid.
  • Keep backward-curved text in front of its own label backing. Version-4 chest rules persist both bends; existing version-1/2/3 labels stay flat with their routing rules intact.
  • Retains the ItemDrawers integration from 1.3.1. New bending behavior has automated coverage; these changes are included in the author-confirmed 1.3.4 release.

1.3.1 - 2026-09-19

  • Added configurable ItemDrawers support for QuickStack and Restock. Shared pull configuration also controls RunicCrafting.
  • Preserve drawer capacity, normal backpack stack limits, access checks, protected slots and transfer rollback. Reject deposit metadata the drawer cannot save.

1.3.0 - 2026-09-16

  • Preserved Quick Stack-only locked-slot protection with RunicInventory 1.1.6.
  • Add a 64-emoji picker with Food, Materials, Equipment and Places categories.
  • Render bundled full-color emojis in the editor and world labels without extra dependencies or runtime downloads.
  • Preserve Unicode in the existing save format, guard insertion limits, and avoid broken surrogate pairs.
  • Add emoji selection, boundary and persistence regressions. The author confirmed successful in-game emoji testing on September 17, 2026.

1.2.5 - 2026-09-14

  • Added the Quick Stack-specific protection query for RunicInventory 1.1.6. Player Locked Slots apply only to Alt+Q; Store All, Restock, and consolidation use the general protection view.
  • Retained the legacy protection query when paired with older RunicInventory versions. Update both mods together for Quick Stack-only slot exclusions.

1.2.4 - 2026-09-14

  • Fixed Quick Stack stopping with "The source stack changed before publication" after successfully moving a full stack into a rule-based or remembered chest. Valheim retains the removed item's old stack count; Quick Stack now checks that the item still belongs to the source inventory before trying another destination.
  • Partial stacks still continue to other matching chests, and fully moved stacks no longer interrupt the remaining items in the same action.
  • Added an early rejection for stale source references before any transfer or rollback. Existing ownership checks, protected slots, exact rollback, chest rules and labels remain intact.

1.2.3 - 2026-09-14

  • Fixed chest labels appearing behind a chest or inside an adjacent open chest. Placement now uses the chest body and its own lid rather than temporary open-state bounds.
  • Top labels stay attached to their matching lids when chests open and close. Saving while a chest is open no longer offsets the closed-chest label.
  • Corrected Front, Back, Left and Right placement, and oriented top text to read from the chest's front.
  • Preserved existing saved rules, captions, colors, backgrounds and placement settings. Labels rebuild with corrected placement when loaded.

1.2.2 - 2026-09-14

  • Fixed exterior labels appearing as a tiny dot. Labels now use pixel-sized uGUI text on a world-space canvas, instead of combining a 3D text component's font scale with an additional tiny transform scale. Background and text share one canvas with the backing drawn first.
  • Added biome-only filters to automatic captions: selecting Only from biome > Meadows now enables the label and displays Meadows when no custom caption is entered.
  • Fixed movement while editing Rules or Search. Valheim's PlayerController.TakeInput path is now blocked as well as Player.TakeInput, and controls sampled before the panel opens are neutralized.
  • Fixed typed letters triggering Use, movement bindings or other ZInput keyboard shortcuts behind the editor. Text and pointer input still reach the UI; Escape/controller Cancel remain available.
  • Blocked camera wheel zoom, mouse look, stick input and camera action buttons while a Storage editor is open. Camera input is masked only while camera code is running, so UI scrolling remains available. Closing frames are consumed before gameplay resumes.
  • Added a shared input-guard source for reuse by other Runic editors, plus executable HarmonyX regressions and installed-game signature checks. This release connects the guard to RunicStorage Rules and Search.

1.2.1 - 2026-09-14

  • Fixed the Rules launcher covering vanilla Quick Stack by moving it to a separate footer below the chest panel. Vanilla Stack remains available with its original behavior; chest rules apply to Runic Quick Stack.
  • Replaced the confusing, unchanging "Never accept wins" message with an exclusion explanation and a priority explanation that changes between Normal and Preferred. Preferred resolves equally specific destinations; it cannot override an exclusion or a more specific matching rule.
  • Added hover and keyboard-focus help to every editor button, item/group entry, color/background choice, and text field, including what Clear, Save, Cancel, and custom-group actions preserve or change.
  • Replaced raw color-code entry with a supported Unity named-color picker and optional typed names. Familiar unsupported colors approximate by RGB; unknown names approximate by spelling, with the selected name and hex value shown. The mod generates the color tag and prevents captions from injecting formatting.
  • Added separate Transparent, White, and Black label backgrounds, with a preview and saved per-chest settings. Existing 1.1.0 and 1.2.0 metadata loads with transparent backgrounds.
  • Fixed blank/untranslated item rows by falling back to item IDs when a usable localized name is unavailable.

1.2.0 - 2026-09-14

  • Expanded Quick Stack groups to equipment, ammunition, consumables, resources, trophies, valuables, crafting ingredients, and all eight requested biomes, including Deep North.
  • Added stable group IDs independent of labels, reusable custom group templates, and chest-local group definitions shared with other players.
  • Added Always accept item exceptions, Never accept exclusions, an independent Only from biome filter, and Normal/Preferred chest priority.
  • Routing now prefers exact items over narrow groups, broad groups, remembered items, and existing contents. Priority and distance resolve equally specific destinations; exclusions, permissions, capacity, and player protection still apply.
  • Migrated existing food rules, remembered contents, and exterior label settings to the expanded saved format. Corrupt or unknown rule data remains protected from overwrite.
  • Verified curated prefab identifiers against the installed Valheim item manifest and ammunition/potion classification against native item data.

1.1.0 - 2026-09-14

  • Added per-chest Remember contents so Quick Stack can refill a chest after its last matching item is used, without reserving an unusable item.
  • Added a Quick Stack Rules editor to the open chest panel, with searchable exact-item selection, food categories, and editable remembered contents.
  • Exact-item rules take priority over category rules; explicit rules override remembered/current contents. Existing range, capacity, ownership, and player-item protection checks remain in use.
  • Added automatic exterior text labels with Front, Back, Left, Right, and Top placement, color names or hex values, adjustable size/offsets, and custom captions.
  • Stored bounded rule and label data on the chest's native network object. Saving rechecks chest access and rejects stale edits.

1.0.6 - 2026-09-10

  • Fixed opened-chest storage actions being rejected because the chest-busy flag was read incorrectly.
  • Fixed chest hover contents disappearing because of Valheim's normal durability rounding during loading.

1.0.5 - 2026-09-10

  • Fixed worn tools or other durability-bearing items blocking Quick Stack and other storage actions because Valheim 1.0 rounds durability during save/load.
  • Transfer previews and rollback now use exact in-memory item copies, retaining full durability precision, custom data, and original equipped-item references.
  • Synchronized chest validation accepts only the exact durability conversion made by one native load/save; changes to quantities, item identities, slots, and metadata still fail validation.
  • Quick Stack distinguishes no capacity, ownership changes, unavailable chests, and snapshot failures. Temporarily unavailable public chests get a bounded discovery retry.
  • Personal chests and denied ward/native access remain protected. Public chests need no separate authorization list. Concurrent writes to an actively used chest remain blocked to prevent item loss.

1.0.4 - 2026-09-10

  • Fixed nearby storage actions failing when another player owned the surrounding zone by safely claiming only accessible containers that Valheim reports as unused.
  • Busy containers are never claimed or mutated, so an actively edited chest cannot be overwritten.
  • Chest hover and Search can read synchronized persisted contents while another player has the chest open, without taking ownership or changing the container.

1.0.3 - 2026-09-09

  • Updated split-dialog, item insertion, inventory notification, and exact metadata comparison paths for Valheim 1.0.
  • Re-audited the installed Valheim 1.0.7 client and dedicated-server assemblies and updated the BepInEx dependency to 5.4.2350.

1.0.2 - 2026-09-05

  • Reworked the Thunderstore description and README opening to lead with the player problem, the mod's core benefit, major features, in-game feel, and then safety and compatibility details.
  • Description-only package update. The plugin DLL and gameplay behavior are byte-for-byte unchanged from 1.0.1.

1.0.1

  • Fixed the first Alt+Q after world entry falsely reporting that no authorized chest was nearby when Valheim had not populated the loaded-container index yet. Quick Stack now performs a bounded, automatic 0.2-second discovery retry (up to eight times) and executes as soon as nearby chest identities finish synchronizing. Real range and authorization failures are still reported without being mistaken for this startup race.

1.0.0

  • Fixed first-use Quick Stack, Restock, and Search incorrectly reporting that no authorized nearby chests existed until a chest had been opened. Each explicit action now reconciles Valheim's currently loaded containers before querying the bounded spatial index.

  • Made Runic Storage independently installable with BepInEx as its only package dependency.

  • Removed runtime coupling to Runic Core, Persistence, Permissions, Transactions, and Inventory.

  • Replaced the dedicated transfer/composite protocol with Valheim's native local player and container ownership path.

  • Removed remote transfer RPCs, capability registration, durable operation roots, client/server sagas, journals, global mutation gates, quarantine records, grave custody, and recovery polling.

  • Added a Storage-local in-memory mutation lease and exact same-process preflight, save, and rollback checks.

  • Kept Runic Inventory item protection as a reflection-only optional integration; Storage remains fully usable when Inventory is absent.

  • Preserved the bounded spatial index, strict hover privacy and synchronization proof, action diagnostics, keyboard/controller routing, sorting, search, Store All, and consolidation behavior.

  • Replaced Alt+F's fixed Wood lookup with a filterable catalog of item kinds in nearby eligible chests; selecting one highlights every matching chest with an animated yellow ring and light.

  • Kept the Alt+F picker above Valheim's camera cursor capture, brought it to the front, and focused the filter so both mouse selection and immediate typing work.

  • Prevented left-clicks owned by the Alt+F picker from also triggering Valheim's primary attack, including the release frame when selecting an item closes the picker.

  • Added Configuration Manager-visible Alt+F menu font size and named-color dropdown settings, with bounded sizing, legacy hex-to-nearest-name migration, and larger control/item heights to prevent clipped text.

  • Replaced the Alt+F picker's IMGUI/rasterized-atlas presentation with a native uGUI Canvas that directly references Valheim's live dialog panel, button states, text input, scrollbar, TMP font, and Canvas scale. This prevents a packed atlas region from rendering as a neon-yellow frame while preserving configured named font colors, font sizing, filtering, scrolling, focus, and attack suppression; missing native art receives an opaque Valheim-toned native-control fallback.

  • Gave each search-highlight ring its own Unity child object and added fail-closed visual lifetime guards, preventing a missing ring or unloaded chest from producing an exception every frame.

  • Allowed Restock to use the exact locally owned currently opened chest as well as eligible closed nearby chests, and allowed both Search and Restock to route while inventory/chest UI is open.

  • Corrected open-chest mutation ownership selection and carried-item protection proof so Alt+A, Alt+C, and Alt+R do not fail solely because Valheim returned a fresh list wrapper.

  • Replaced obsolete protocol tests with focused standalone, ownership, planner, routing, hover, and architecture regressions.