Valheim
Install with App

Details

Latest version
1.3.5
Last Updated
First Uploaded
Downloads
3K
Likes
2
Size
279KB
Dependants
ADDatHost Valheim hosting
30% off

Changelog

1.3.5

Durable Quick Grab build reservations, reservation-aware Quick Stack behavior, and live-verified conservation and Hammer-menu fixes. Joe live-tested and approved this release.

  • Adds durable per-player, per-world build reservations from valid Quick Grab Materials clicks, including reservation-only clicks when a complete material set is not currently available. Every successful paid placement consumes exactly one reservation for the exact piece.
  • Shows one shared reservation card model beside the inventory and directly above the active Hammer menu. Card bodies select the exact piece through vanilla routing; separate - / X controls release one count without moving materials or selecting the card underneath.
  • Keeps exact additive reservation requirements during Quick Stack, assigns reserved materials first among movable stacks, displays the reserved share in orange, and sorts each touched destination chest once when that chest's own auto-sort option is enabled.
  • Ignores non-stackable carried items during Quick Stack deposit routing and failed-deposit warnings. Full exact material sets for Stack and Pile build pieces still gather normally; shortages stay all-or-nothing and create no reservation.
  • Fixes the shared sufficient-material Quick Grab path for every ordinary and Stack/Pile recipe. Detached ZDO snapshots remain read-only planning inputs; after ownership and refresh, the transaction rebuilds and identity-checks the exact plan against each authoritative live Container.GetInventory() before reserving or mutating anything.
  • Fails closed before and during every move unless the runtime source is reference-identical to that live container inventory. The player cannot be credited from a detached planning snapshot.
  • Requires every live source chest to lose its exact planned quantity, the player to gain the same exact quantity, and the combined authoritative total to remain unchanged across one or many chests, ingredients, source stacks, and destination slots.
  • Requires each source mutation to advance its owned ZDO data revision and verifies that a freshly decoded serialized inventory exactly matches the live chest before the transaction can commit.
  • Rejects capacity, ownership, reservation, and timeout failures before mutation whenever possible. Once movement begins, full live-inventory snapshots for player and sources restore partial movement, exceptions, or any conservation/persistence mismatch; Stackmaster disables safely if exact restoration cannot be proven.
  • Leaves the insufficient-material path indivisible and mutation-free: an incomplete set exposes no withdrawal steps and cannot partially debit, credit, or reserve a material-only Stack/Pile piece.
  • Anchors the optional Hammer reservation row to BuildUi's actual m_tabContainer (Categories / Materials / Recent / Favorites) instead of the full-screen controller rect, while keeping card selection on Valheim's exact ordinary OnSelectPiece path so the exact piece is selected and the menu closes normally.
  • Preserves 1.3.4's material-only Stack/Pile policy and all approved 1.3.3/1.3.4 reservation, sorting, allocation, placement-decrement, and UI interaction behavior.

1.3.4 (rejected local test candidate)

Interaction and live-layout corrections on top of Joe's otherwise live-passing 1.3.3 test paths. This candidate still requires live Valheim validation, and 1.2.0 remains the production release.

  • Corrects the 1.3.3 inventory reservation row's live-observed vertical inversion. The row moves exactly 20 logical UI pixels upward from its 1.3.3 rendered position, landing 10 pixels above 1.3.2, while retaining the 12-pixel rightward move, measured label spacing, safe-area clamp, and bounded horizontal overflow.
  • Mirrors the same persisted reservation cards in a horizontally bounded row anchored directly above the active Hammer build menu's actual RectTransform. It hides when empty or invalid and rebuilds safely across menu, player, world, and UI lifecycles without adding a release-critical Harmony patch.
  • Makes each card body a selection control rather than removal. Build-menu cards select through Valheim's available PieceTable and follow the ordinary sound/menu-close/placement transition. Inventory cards select only when the Hammer is already active and never auto-equip it. Missing or unavailable pieces fail closed without changing reservations.
  • Adds a separate top-right removal control to every card in both rows: literal - while count is above one and literal X for the final count. It consumes the left-click/tap before one durable, fail-closed release; it moves no materials and cannot also select the card or click UI underneath.
  • Keeps both rows on one shared presenter, selection/release policy, and persisted model so icon, count, removal label, ordering, and immediate post-mutation refresh cannot drift.
  • Moves successful reservation-without-materials feedback out of the large yellow center channel and into the existing compact white corner Stackmaster summary, with the localized piece name and committed total count. Persistence and hard failures remain restrained warning/error paths.
  • Treats every vanilla or modded build piece whose player-visible localized name contains Stack or Pile anywhere, case-insensitively, as a material-only Quick Grab target. Full exact sets still gather normally, while shortages remain all-or-nothing and show the ordinary material-gather failure without creating a reservation or reservation-only success notice.
  • Centralizes that admission rule before persistence, with the raw localization token and exact stable prefab name used only when localization is unavailable. Excluded pieces therefore contribute no persisted count, reservation card, Quick Stack target, orange allocation, reservation-first sorting, or later placement decrement.
  • Removes already-persisted Stack/Pile reservations once their exact current piece identity resolves, durably and without moving or depositing materials, then refreshes both reservation rows and inventory allocation. Unresolved historical identities remain untouched rather than being guessed.
  • Preserves 1.3.3's live-passing material, placement-decrement, replenishment, sorting, orange-attribution, and fail-closed persistence behavior for every ordinary reservable piece.

1.3.3 (local test candidate)

Reservation-only Quick Grab support and a narrow reservation-strip layout correction on top of 1.3.2. Live Valheim validation is still pending, and version 1.2.0 remains the production release.

  • Every valid modified build-piece click now durably adds exactly one persistent reservation before optional material movement, even with zero stock, partial stock, no eligible reachable storage, ownership trouble, or insufficient player capacity.
  • Material movement remains indivisible: a click either transfers the freshly validated complete recipe or moves nothing. Partial availability never exposes or executes partial withdrawal steps.
  • Reservation persistence is durable-first and candidate-isolated. It migrates earlier PlayerPrefs state on first mutation, flushes a detached payload, and publishes it with an atomic same-directory file replacement. A malformed or mixed-invalid live recipe, changed recipe, reservation limit, or failed save creates no active or durable phantom reservation and performs no material movement; repeated valid shortage clicks increment exactly once each.
  • Feedback explicitly distinguishes grabbed materials and added reservation from reservation added without materials. Reservation-only outcomes do not create Quick Stack failed-deposit warnings.
  • Each authoritative successful local TryPlacePiece completion now durably consumes exactly one reservation for that exact prefab. Count one removes the row; other piece variants, other players, failed/cancelled placement, previews, creative/no-cost placement, repair, dismantle, crafting, and duplicate completion callbacks remain inert. A failed decrement save leaves the completed world build and reservation intact and shows one restrained warning.
  • Aggregate requirements, orange allocation/labels, sort priority, and the reservation strip refresh from the reduced state. Existing additive personal-plus-reservation targets continue to drive later Quick Stack replenishment, which pulls the exact missing reserved materials and deposits only true excess.
  • Clicking a reservation icon remains a separate durable one-count release and never moves materials or starts Quick Stack.
  • Measures the styled Reserved label’s preferred rendered width on every geometry refresh instead of reserving a fixed English-string width.
  • Begins the icon viewport only after the full label width, two UI pixels of glyph safety padding, and an eight UI-pixel visible internal gap, preventing the first reservation icon from overlapping wider fonts or localized text.
  • Intended to move the complete reservation strip 12 UI pixels right and 10 UI pixels up relative to 1.3.2; live testing showed the vertical sign was inverted and rendered 10 pixels down. 1.3.4 corrects that inversion while preserving the safe-area right margin and horizontal overflow behavior.
  • Keeps 1.3.2 sorting, exact reservation attribution, carried non-stackable exclusion, touched-destination chest sorting, safe-area handling, and optional-UI failure isolation unchanged.

1.3.2 (local test candidate)

Reservation presentation, ordering, and Quick Stack destination sorting polish on top of 1.3.1. Live Valheim validation is still pending, and version 1.2.0 remains the production release.

  • Moves the horizontally scrollable reservation strip from above the inventory to the inventory's immediate right, top-aligned and sized to the available safe screen width so it no longer clips off the top.
  • Orange reservation attribution now starts at the front of carried movable stacks and uses the minimum exact number of stacks needed; a partial boundary stack shows only its reserved share.
  • Player sorting places every stack with a positive reservation-backed share at the front of the sortable region in deterministic order, followed by ordinary movable stacks. Fixed quick-bar, equipped, and protected slots remain untouched.
  • Orange quantity labels now use the same upper-left geometry as personal-target quantities, display only the number with no R prefix, and retain distinct orange styling.
  • Releasing a reservation removes its attribution and returns formerly reserved stacks to ordinary sorting on the next player sort. Personal targets and reservations remain additive.
  • After Quick Stack finishes depositing, every distinct destination chest that actually accepted at least one item is considered exactly once for sorting. It sorts only when that chest's existing local Auto-sort chest preference is enabled.
  • Destination sorting runs after all deposits while exact action ownership is still held, with fresh identity, revision, scope, access, use, and ownership validation. Untouched, failed, unavailable, or disabled chests are skipped. A sort failure rolls back only the sort attempt and never undoes a successful deposit.
  • The once-per-touched-chest design adds one constant-time set insertion per successful deposit step plus one bounded existing chest-sort pass per distinct changed opted-in chest; it adds no per-frame scan or ownership request.

1.3.1 (local test candidate)

Narrow Quick Stack patch on top of the complete 1.3.0 reservation candidate. Live Valheim validation is still pending, and version 1.2.0 remains the production release.

  • Quick Stack now ignores every carried item whose canonical Valheim maximum stack size is 1 or less, including equippable tools such as cultivators.
  • Ignored non-stackable items remain in the player inventory and are never routed to a currently matching chest or a remembered zero-stock destination.
  • Ignored items are not deposit attempts, never receive failed-deposit warnings, and never increase the left behind result count.
  • The rule is based only on the runtime ItemDrop.ItemData.SharedData.m_maxStackSize value captured in each immutable item snapshot; it does not guess from item names or categories.
  • The startup compatibility gate now validates both the item shared-data field and its integer maximum-stack field before item-changing hooks are installed.
  • Stackable resources retain the complete 1.3.0 behavior: personal and reservation targets remain additive, protected replenishment and ordinary deposits are unchanged, and newly freed slots can still receive reservation materials.
  • Player and chest auto-sort remain independent and continue sorting movable non-stackable items normally.

1.3.0 (local test candidate)

Integrated durable Quick Grab Materials reservations with Quick Stack, player sorting, and the inventory UI. The complete automated release gate and focused source audit pass; live Valheim validation is still pending, and version 1.2.0 remains the production release.

  • Every successfully committed Quick Grab Materials click records one reserved build piece after the atomic transfer succeeds; rejected, failed, or rolled-back clicks record nothing.
  • Repeated grabs of the same stable piece-prefab identity increment a count. Records are local, versioned, bounded, and isolated by exact player and world.
  • Reservation recipes use stable resource-prefab identity and exact material quality, then normalize and aggregate with checked multiplication across reserved piece counts.
  • At the 1.3.0 candidate stage, building left reservations unchanged; 1.3.3 supersedes that lifecycle so each successful exact-piece placement consumes one count.
  • A horizontal row above the player inventory shows reserved-piece icons and counts. One ordinary icon click releases exactly one count; it moves no items and never starts Quick Stack. (The row moved beside the inventory in 1.3.2.)
  • Quick Stack retains and replenishes reservation requirements in addition to explicit personal targets. A personal target of 50 wood plus reservations requiring 20 wood therefore keeps 70 total.
  • If the backpack starts full, Quick Stack can first deposit an ordinary eligible stack and then reuse that newly emptied slot for the additive reservation replenishment in the same validated plan.
  • Fixed quick-bar, equipped, and explicitly protected quantities remain personal. Reservation stock is assigned only to movable stacks or legal empty backpack slots.
  • Reservation-served quantities are excluded from deposits and failed-deposit warnings. Capacity or stock shortages leave the genuinely missing reservation quantity reported without inventing an allocation.
  • Player sorting keeps fixed slots untouched and places reservation-served quantities in the final available sortable positions after every ordinary-only movable stack. (Superseded by front ordering in 1.3.2.)
  • Reservation-served material quantities use a distinct orange border and Rquantity label. Optional reservation-row or orange-highlight failures cannot mutate items or disable the existing blue protection overlays. (The R prefix was removed in 1.3.2.)
  • Missing piece prefabs render a harmless fallback icon, and malformed or unavailable reservation state fails closed before reservation-aware item movement or player sorting.
  • The startup compatibility gate now validates the piece-name field required for persistent identity. The piece-icon field is checked separately so a changed optional icon contract disables only the reservation strip, never gameplay.
  • Reservation persistence remains a post-commit observer: a write failure cannot roll back or invalidate an already successful Quick Grab. Its in-session reservation stays active, while further reservation writes fail closed for that session.

1.2.0

A clearer, safer Quick Stack update, live-tested before release.

  • Renamed the deposit-and-replenish action to Quick Stack and its setting to Quick Stack keybind while preserving existing custom shortcuts.
  • Quick Stack remembers the last directly observed chest for each exact item type, even after that chest reaches zero stock. The chest is freshly checked before use; unavailable, inaccessible, busy, or full destinations leave the item safely carried.
  • Genuine failed or partial deposits mark only the surviving eligible quantity with a red border and !quantity. Quick-bar, equipped, protection-only, and target-retained quantities are excluded. The warning follows the surviving item through sorting and clears when that item is hovered once, the inventory closes, or another Quick Stack begins.
  • The result summary is now a compact three-line bullet list for deposited, replenished, and left-behind quantities, including zeros.
  • Kept the straightforward requirement-display behavior from before the unsuccessful optimization experiment. This release makes no performance-improvement claim.

1.1.9 (local test candidate)

Added remembered Quick Stack destinations and precise failed-deposit warnings on top of the completed 1.1.8 selective performance rollback.

  • Renamed the plain user-facing deposit/replenish action to Quick Stack while preserving the existing configurable shortcut and Quick Grab Materials name.
  • Quick Stack now remembers the last directly opened or explicitly targeted vanilla chest for each exact persistent item identity, including quality, variant, world level, and custom data. Emptying that chest does not erase the hint.
  • Remembered destinations are bounded to 512 local entries, expire after 180 days, and are scoped per player and world through local PlayerPrefs; malformed or unreadable state disables hints safely for the session without touching world or item data.
  • Existing matching-stack routing still runs first. A remembered chest is considered only if no current matching destination accepted any quantity, and only the exact currently discovered, eligible, in-scope chest can receive the fallback.
  • Missing, destroyed, unloaded, blocked, busy, full, inaccessible, changed, or otherwise ineligible remembered chests remain inert and leave items safely carried.
  • Failed or partial Quick Stack deposits now mark only the surviving eligible quantity with a red border and !quantity. Quick-bar, equipped, protection-only, and target-retained quantities are excluded; hovering that exact surviving item acknowledges the warning once, and inventory close clears remaining UI-only warnings.
  • Warning state is keyed by the live item object and never writes item custom data, preserving stacking, persistence, and network identity.
  • Quick Stack now validates the exact source-item identity, chest ZDO identity, and observed data revision before each move, then advances the expected revision after each successful Stackmaster mutation.
  • Destination learning and warning refreshes use existing open, action, grid-refresh, and pointer-enter events; they add no per-frame destination scan, inventory-change requirement scan, or replacement display cache.
  • Preserved the 1.1.8 rollback exactly: no bounded display epoch, long-lived chest slice, indexed totals, inventory fingerprint/dirty-event invalidation, or movement/topology reuse machinery. This candidate makes no performance-fix claim and still requires live testing before production approval.

1.1.8 (replacement local test candidate)

Rolled back the unsuccessful requirement-display performance experiment after live testing showed that hitching became worse and spread to opening the inventory and moving items between slots while the hammer was active.

  • Restored the straightforward 1.1.6 requirement-display path: one same-frame capture shared only inside that frame, raw requirement availability accounting, and the original build/crafting HUD refresh behavior.
  • Removed the 1.1.7/earlier-1.1.8 bounded display epochs, cross-caller cache, one-second/five-second chest reuse, indexed totals, player-inventory fingerprints and dirty events, and movement-boundary/topology reuse machinery.
  • Retained the outside-workbench player-inventory-only crafting bypass. Its complete-cost decision still asks Valheim itself, preserving vanilla quality-tier and one-ingredient semantics without depending on any display cache.
  • Retained the comprehensive Quick Grab Materials rename and the keyboard/mouse build-menu hint. The hint follows the configured storage-action modifiers, avoids duplicates, preserves other hints, cleans up only itself, and remains hidden in controller mode.
  • Retained the no-op player auto-sort guard: opening an already-sorted inventory does not emit a synthetic inventory-change notification.
  • All build, craft, upgrade, Quick Grab Materials, ownership, reservation, debit, rollback, and cleanup paths retain the production 1.1.5 fresh validation and exact transaction safety.
  • This rollback deliberately makes no performance-fix claim. Live testing must establish whether behavior has returned to the earlier baseline before another optimization approach is attempted.

1.1.7 (superseded local performance experiment)

Introduced bounded cross-caller display snapshots as an attempted hammer-mode performance improvement. Later 1.1.8 experiments extended that architecture with player-only refreshes, longer chest reuse, and indexed requirement totals. Joe's live testing found that the combined approach made hitching worse and spread it to inventory opening and slot moves while the hammer was active. The replacement 1.1.8 candidate removes this experiment completely and restores the 1.1.6 display path. Version 1.1.7 was never productionized or published.

1.1.6 (local test candidate)

Narrow player-inventory crafting bypass outside workbench coverage.

  • When the player is outside every connected workbench mesh and the live player inventory alone satisfies the complete current recipe cost, Stackmaster now leaves validation, ingredient selection, and debit entirely to vanilla instead of creating a nearby-storage preflight.
  • The player-only decision is recomputed at both craft start and completion and honors upgrades, multi-craft quantities, world-level requirements, duplicate requirements, and one-of ingredient recipes without combining incompatible quality tiers.
  • Because this path creates no Stackmaster intent, scope signature, reservation, ownership request, prepared transaction, or removal suppression, nearby-player movement and unrelated shared-storage or workbench-topology churn cannot cancel a craft that never needed chest materials.
  • Crafts that need even one chest item, all workbench-mesh crafts, and unresolved scopes remain on the existing guarded Stackmaster path with exact planning, ownership, reservations, revision and identity checks, debit journaling, rollback, and cleanup unchanged.
  • This candidate still requires live multiplayer validation before productionization.

1.1.5

Public release of the live-tested, fail-closed repair for chest-backed crafting transactions.

  • Fixed remote crafting so prepared withdrawals are recaptured from each selected owned Container.GetInventory() rather than from detached ZDO inventory snapshots used only for read-only discovery and planning.
  • The prepared transaction now requires the live owned-inventory plan to match the original exact plan, reserves and revalidates only selected chests, and rejects any detached inventory identity before removal.
  • Centralized the exact withdrawal journal: every observed player or chest mutation is recorded once, exact quantities are required, incomplete debits cannot commit, and cancellation or failure rolls receipts back in reverse order.
  • Preserved vanilla charge suppression after Stackmaster's exact debit, so successful remote crafts pay once—not zero times or twice. Storage-disabled and NoCost modes remain vanilla.
  • Added regressions for mixed player/chest debit, selected-chest-only mutation, duplicate-charge prevention, incomplete-debit rejection, and exact cancellation/failure rollback.
  • Strengthened the pinned Valheim release gate to verify that successful-output crafting still reaches the exact string-based Inventory.RemoveItem overload and Player.ConsumeResources, after the output-add call shape Stackmaster's transaction depends on.
  • Live-tested the corrected chest-backed crafting debit in Valheim before promoting this exact gameplay candidate to production.

1.1.4

Harmony-target manifest correction and release-gate hardening with no gameplay or configuration changes. This build supersedes 1.1.3.

  • Fixed startup patch preflight for InventoryGui.SetupRequirement(Transform, Requirement, Player, bool, int, int): the compatibility gate correctly validated this Valheim API as static, but the separate patch installer incorrectly searched for an instance method.
  • Replaced every duplicated target declaration, including target-bearing patch attributes and the hot-unload cleanup resolver, with one canonical Harmony target manifest consumed by compatibility validation and every installation path. Each descriptor pins the declaring type, exact overload, static/instance shape, return type, patch entrypoints, and whether it belongs to the cleanup-safety subset.
  • Added fail-closed Harmony patch-signature validation for original arguments, __instance, __result, __state, __exception, and injected fields before any patch is installed.
  • Added the release-gating HarmonyTargetManifestReleaseGate, which resolves all 32 patch operations against the pinned Valheim assemblies and proves PatchInstaller.Prepare() returns those exact resolved MethodInfo objects. Packaging now runs the complete build/test gate itself and refuses to create a ZIP if this check fails.
  • Made release binaries byte-reproducible across clean checkout paths by enabling deterministic source paths and requiring the generated Source Link map to use the normalized /_/ root and pinned release revision.
  • Runtime identity, version, SHA-256, and MVID remain diagnostic-only. All Stackmaster 1.1.0 gameplay and settings remain unchanged, including the rule that modifier + right-click never clears protection.

1.1.3

Compatibility-gate static-method correction with no gameplay or configuration changes. This build supersedes 1.1.2.

  • Corrected four contract declarations that accidentally requested instance methods even though Stackmaster and Valheim expose the APIs statically: ZDOMan.GetSessionID(), GameCamera.InFreeFly(), ZInput.ResetButtonStatus(string), and PrivateArea.CheckAccess(Vector3, float, bool, bool).
  • Preserves fail-closed validation for all four APIs. Session identity remains mandatory for ownership and reservation safety; free-fly detection and input reset remain mandatory input guards; ward access remains mandatory before guarded containers can be used.
  • Added regressions for each missing API and instance-shaped lookalike, plus pinned metadata checks for the exact static signatures in both assembly_valheim.dll and assembly_utils.dll.
  • Runtime identity, version, SHA-256, and MVID remain diagnostic-only. All Stackmaster 1.1.0 gameplay and settings remain unchanged.

1.1.2

Compatibility-gate correction with no gameplay or configuration changes.

  • Replaced exact Valheim label, Unity/BepInEx/Harmony version, assembly_valheim SHA-256, and MVID runtime enforcement with a contract-based fail-closed gate.
  • Runtime identity values remain diagnostics only; the pinned private-reference hashes remain build provenance and are not a client allowlist.
  • Validates every declared dependency in the runtime contract—required types, exact method overloads and parameters, constructors, fields, properties, static/instance shape, Harmony targets, and patch entrypoints—before installing the first patch.
  • A missing or ambiguous contract disables Stackmaster before patching. Any Harmony installation failure fully disables the runtime and removes all patches installed under Stackmaster's Harmony ID.
  • Added focused executable/static tests proving differing identity metadata is accepted when contracts match, exact-version constants are absent from the runtime gate, required contracts are covered, and missing or ambiguous members fail closed.
  • Preserves the 1.1.0 gameplay, settings, networking, ownership, reservation, and persistence behavior exactly.

1.1.1

Release package prepared with the exact DLL bytes supplied for live validation.

  • Revalidated the unchanged 1.1.0 gameplay and configuration against Valheim 1.0.14, anonymous Steam dedicated-server build 25364309, and Unity 6000.0.75f1.
  • Updated the fail-closed Valheim assembly fingerprint and private reference bundle.
  • Added deterministic private-reference fingerprint validation plus 84 independent metadata/IL compatibility checks, including exact left-click/right-click inventory routing.
  • No gameplay behavior, settings, networking, ownership, reservation, or persistence semantics changed.

1.1.0

Public release, preserving the live-validated 1.1.0 behavior without gameplay or configuration changes.

  • Replaced the former all-in-one protected-item modifier-click prompt with separate mouse controls using the configured storage-action modifier (Left Alt by default).
  • Modifier + left-click now toggles protection immediately with no dialog: an unprotected item becomes protection-only, while any protected item is fully unprotected and loses its target in one click.
  • Modifier + right-click now opens the restocking quantity dialog for stackable items. Confirming protects the item and adds or edits its target; canceling or entering an invalid quantity preserves the prior state exactly.
  • Non-stackable items remain protection-only: modifier + right-click is consumed without changing their state. All unmodified inventory clicks remain vanilla.
  • Added Quick Grab Materials to the active build-piece menu: hold the configured storage-action modifier (Left Alt by default) and click a piece to grab all materials for one complete copy from eligible storage while keeping the menu open.
  • Every modified click requests a fresh complete material set and intentionally ignores materials already carried by the player.
  • For each ingredient, withdraws from the eligible chest holding the largest total stock first, then smaller sources, with deterministic tie-breaking.
  • Preflights the complete material set against exact inventory slots and added carry weight before requesting any chest ownership.
  • Replans from fresh storage after asynchronous ownership acquisition, requires an identical plan, reserves and revalidates every required chest, then performs exact source-to-destination moves.
  • Cancels without moving anything on shortage, access or ownership changes, busy storage, stale contents, insufficient slots, or insufficient carry capacity. Late transfer failures roll back completed moves before guarded ownership cleanup.
  • Emergency snapshot rollback restores the original player item objects and their complete captured state, preserving every equipped-item reference; chest snapshots remain detached.
  • A failed exact local in-use cleanup is retained and retried before Stackmaster may relinquish its matching ownership acquisition, including disable and hot-unload paths, without clearing later or unrelated owners' state.
  • Logging out now performs a recoverable session teardown rather than permanently disabling Stackmaster for the remaining Valheim process. Joining a new server session rearms every feature without requiring a game restart.
  • Reconnect rearming is fail-closed: rollback and reservation-before-ownership cleanup must complete successfully, the network-session object must change, permanent compatibility failures stay disabled, and stale coroutines are generation-isolated from later sessions.
  • Chest-backed crafting is now one click: Stackmaster captures the exact recipe/upgrade/variant/multi-craft intent, acquires only the minimum required chest set before starting vanilla crafting, marks every selected chest in use, and resumes that original intent automatically.
  • Ownership waiting no longer starts a disposable progress bar. The normal vanilla craft duration and animation begin exactly once, only after every required chest is reserved, and the atomic withdrawal occurs only when vanilla reaches DoCrafting.
  • Craft cancel, recipe or tab changes, inventory close, scope/station changes, failed validation, exceptions, timeout, disable, disconnect, and shutdown immediately clear reservations and release only exact proven Stackmaster acquisitions; delayed callbacks are generation- and session-isolated.
  • Uses the existing configured shortcut modifier, connected-workbench/fallback storage scope, vanilla ownership handshake, and access/in-use protections without Jötunn, custom RPCs, server data, or networking.
  • Ordinary build-piece clicks, the existing 30-second chest-backed building lease, and all existing features remain unchanged.
  • Final automated verification passes with zero compiler warnings/errors, 133/133 pure-domain tests, and 65/65 static/repository safety checks. In-game validation passed; broader multiplayer, dedicated-server, workbench-extension, and load/unload edge-case testing remains incomplete.

1.0.0

Public release, preserving the live-validated 0.4.2 behavior without gameplay or configuration changes.

  • Added independent, default-on controls for storage-backed crafting, storage-backed building, and aggregate storage totals in crafting, upgrade, and building requirement rows.
  • Preserved explicit legacy building/crafting opt-outs through one-time migration to the renamed settings.
  • Added adaptive exact requirement totals for longer values such as 45 / 172, with affordability and flashing tied to the resources the active action is actually allowed to consume.
  • Added a guarded 30-second sliding ownership lease for successful chest-backed building, with immediate remote manual-access preemption and immediate cleanup across every non-success lifecycle path.
  • Fixed full-stack chest transfers and world drops leaving stale protected-item targets; partial transfers and internal player-inventory moves continue to retain protection.
  • Pruned orphaned target records before storage actions so removed items no longer produce stale target item missing shortages.
  • Final verification passes with zero compiler warnings/errors, 99/99 pure-domain tests, and 57/57 static/repository safety checks.
  • In-game validation passed. Broader multiplayer, dedicated-server, workbench-extension, and load/unload edge-case testing remains incomplete.

0.4.2

Development-only build; not published.

  • Split nearby-resource behavior into three independent, default-on settings: Allow crafting from storage, Allow building from storage, and Show storage amounts in craft and build menus.
  • Existing Enable building from nearby chests and Enable crafting from nearby chests choices migrate once to the renamed permissions; explicit opt-outs remain off, and obsolete keys are removed from the saved configuration.
  • Storage totals can now remain visible as exact required / total available values in crafting, upgrade, and building rows even when the corresponding action is restricted to player-held materials.
  • Requirement affordability and red/white flashing now follow actual action permission on both code paths: player-only stock when that action's storage permission is off, aggregate player-plus-eligible-storage stock when it is on.
  • Turning storage totals off preserves vanilla count text and typography while storage-backed crafting or building can remain enabled independently; turning both display and the relevant permission off leaves that requirement UI untouched.
  • Preserved the connected-workbench mesh / fallback scope, exact aggregate accounting, adaptive long requirement-count fit, independent crafting/building consumption paths, and all 0.4.1 ownership and protected-item cleanup behavior.
  • Automated tests cover all eight combinations of the three new booleans across both crafting and building UI decisions. Live in-game validation remains pending.

0.4.1

Development-only build; not published.

  • Added a 30-second sliding Valheim ownership lease after a successful chest-backed building placement. Only exact chests Stackmaster demonstrably acquired and actually used are retained, and each successful build use renews that chest's lease.
  • Logical in-use reservations still end immediately after the atomic transaction; crafting behavior is unchanged and does not retain the new build lease.
  • A remote player's manual chest-open request immediately invalidates an idle retained build lease and continues through Valheim's normal request and ownership-transfer path. The local owner's own manual access remains available and does not invalidate the lease.
  • Lease expiry returns the exact tracked chest to Valheim owner 0 only while identity, local session, current owner, and successor owner-revision guards still prove it is the ownership Stackmaster acquired.
  • Cancellation, failure, rollback, partial or unused acquisition, disable, disconnect, logout, scene unload, shutdown, hot unload, compatibility disable, and exceptions preserve immediate guarded cleanup. Unrelated, merely inspected, already-local, or non-acquired chests are never retained or released.
  • Preserved exact nearby-resource accounting, minimum mutated-chest planning, connected-workbench/20 m fallback scope, chest auto-sort opt-outs, and the exact busy message The required materials are currently in use.
  • Crafting and upgrade requirement labels now keep every digit visible by using the normal vanilla font size when it fits and bounded TextMeshPro auto-sizing for longer exact totals such as 45 / 172 and 999 / 999; pooled rows and disabled/fail-open paths restore their original typography.
  • Manually transferring a whole protected/targeted stack into a chest or dropping it into the world now clears that stack's protection immediately. Partial external moves retain the protected remainder, while moves and merges wholly inside the player inventory keep existing item-following behavior.
  • Storage hotkey planning now prunes older orphaned target records that cannot resolve any compatible player-inventory item, preventing stale target item missing shortage notices without disturbing valid moved targets.
  • Automated verification passes with zero build warnings/errors, 95 pure-domain tests, and 55 static/repository safety checks.
  • The ownership-lease change has not yet been independently tested in multiplayer, on dedicated servers, with workbench extensions, or across broader load/unload topologies.

0.4.0

Public release.

  • Added one uniform storage scope for auto-deposit, protected-stack replenishment, building, and crafting.
  • While the player is inside a valid vanilla workbench build zone, Stackmaster now searches the complete connected graph of overlapping loaded workbench zones and treats their exact union as one base mesh.
  • Chests inside the connected mesh are eligible throughout the base; nearby chests outside that mesh are excluded.
  • While the player is outside every valid workbench mesh, all four chest-powered features use the existing configurable player-centered fallback radius (20 metres by default).
  • Preserved targeted-chest-first then nearest-to-player routing, exact minimum-chest build/craft planning, loaded-only discovery, and read-only planning before ownership.
  • The per-chest Auto-sort chest checkbox still controls sorting only; disabled, manually organized chests remain fully eligible for every chest-powered feature.
  • Added one fresh immutable scope snapshot per mutation phase plus topology-aware HUD/resource caching. A connected mesh is never silently truncated by the ordinary nearby-action inspection budget.
  • Added fail-closed compatibility checks for the current workbench instances, build-range, prefab-identity, and ZDO APIs used by the mesh resolver.
  • Automated verification passes with zero build warnings/errors, 78 pure-domain tests, and 51 static/repository safety checks.
  • Core connected-workbench storage behavior has been live-tested in Valheim. Multiplayer behavior, dedicated-server behavior, workbench extensions, and broader load/unload edge cases have not yet been independently verified.

0.3.0

  • Added an Auto-sort chest checkbox beneath supported opened vanilla chests.
  • Each chest defaults to enabled and remembers its choice locally per player, world, and stable chest identity. The preference is never written to shared ZDO/world state and cannot affect another player.
  • Enabled chests sort on both UI open and UI close, so removing items no longer requires reopening the chest to restore order.
  • Disabling one chest takes effect immediately without disabling player-inventory sorting or changing deposit, replenishment, nearby build/craft, or manual organization behavior.
  • Chest sorting fails safely when stable identity, local preference storage, ownership, or inventory access is unavailable.
  • Automated verification passes with zero build warnings/errors, 64 pure-domain tests, and 50 static/repository safety checks.

0.2.2

  • Updated the README for clarity and readability. No gameplay changes.

0.2.1

Early public testing release.

Version 0.2.1 reissues the approved nearby-resource release under a fresh Thunderstore version number so package managers can distinguish it from an earlier 0.2.0 upload. There are no gameplay changes from the approved build.

Added

  • Added independently switchable building and crafting from eligible nearby vanilla chests; both settings default to on and use the existing configurable nearby-storage radius.
  • Added exact all-or-nothing material planning across the player inventory and nearby chest stacks, including duplicate-requirement normalization, quality-specific ingredients, and multi-craft quantities.
  • Added required / total available material rows for selected build pieces and crafting or upgrade menus at workbenches, forges, cauldrons, and equivalent stations.
  • Added aggregate shortage coloring: satisfied combined stock stays white, while true shortages retain red flashing.

Changed

  • Material withdrawals now use the player inventory first, then select only the minimum distinct chest set required by the complete plan.
  • Display-only scans read stable serialized snapshots from accessible vanilla chests regardless of current network owner and never request ownership.
  • Remotely owned actions use Valheim's owner-authorized asynchronous handoff. The first attempt consumes nothing while ownership is prepared and prompts one normal retry; the second attempt performs fresh validation before any withdrawal.
  • Ownership prepared by Stackmaster gets a 10-second retry window. Cleanup then returns it to Valheim's native unowned state after success, cancellation, validation failure, rollback, timeout, disable, or disconnect, and retries later rather than releasing ownership it can no longer prove it acquired.

Safety and fixes

  • Revalidates container identity, access, distance, use state, owner revision, serialized data revision, stack identity, quality, world level, and quantity before mutation.
  • Briefly reserves only required chests during the synchronous transaction, withdraws exact quantities, and rolls back completed removals if any later step fails.
  • Cancels the whole action without partial consumption when any required chest is busy, denied, stale, changed, inaccessible, or out of range.
  • Fixed remote ownership outliving build, craft, or Left Alt + E actions and blocking vanilla peers after the modded player disconnected.
  • Fixed detached serialized chest items being omitted from totals by hydrating their item metadata from resolved prefabs; any incomplete chest snapshot is rejected as a whole.
  • Fixed nearby-resource UI failures interrupting vanilla chest, build, or crafting interfaces; these paths now fail open to vanilla behavior.
  • Fixed crafting requirement overlays for Valheim's current static requirement-row method.

Testing status

  • Release build passes with zero warnings and zero errors.
  • 61/61 domain tests and 48/48 static/repository safety checks pass.
  • Initial live testing passed, including the corrected ownership cleanup behavior.
  • The full co-op host, co-op guest, and unmodded dedicated-server matrix remains in progress; this release does not claim proven multiplayer safety.

0.1.0

Initial public testing release.

  • Added automatic alphabetical sorting for movable player-inventory slots and opened vanilla containers.
  • Added protected stacks with optional replenishment targets.
  • Added one configurable nearby-storage action for matching-item deposits and loadout replenishment.
  • Added targeted-container-first, partial-stack-first, nearest-to-farthest routing.
  • Added compact visual result feedback and a fail-closed runtime compatibility gate.
  • Added exactly three settings: auto-sort, nearby-storage radius, and storage-action keybind.
  • Passed automated domain/repository checks and solo smoke testing.
  • Co-op host, co-op guest, and unmodded dedicated-server testing remain in progress; this release does not claim proven multiplayer safety.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.