You are viewing a potentially older version of this package. View all versions.
TeamVibes-ChestLink-1.0.0 icon

ChestLink

Link nearby chests in one storage view. Search, filters, favorites, quick transfers and physical sorting, with standalone multiplayer and optional MultiUserChest support.

Date uploaded 2 weeks ago
Version 1.0.0
Download link TeamVibes-ChestLink-1.0.0.zip
Downloads 187
Dependency string TeamVibes-ChestLink-1.0.0

This mod requires the following mods to function

ValheimModding-Jotunn-2.30.2 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.2
denikson-BepInExPack_Valheim-5.4.2351 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.2351

README

ChestLink

By TeamVibes • Version 1.0.0

Open a chest and manage your linked storage from one scrollable view. Items stay in real chests, with their normal slots and stack sizes.

Features

  • Discover chests in the same building, with a configurable radius fallback.
  • Search item names and filter by category. Multiple search words must all match.
  • Drag and drop, split stacks, quick-move items and swap full stacks.
  • Keep item and slot favorites; see individual chest boundaries and labels.
  • STORE items, RESTOCK supplies, TAKE ALL matching items and physically SORT storage.
  • Right-click food and potions to use them directly from storage. Equipment needs room in your inventory before use.
  • Standalone multiplayer support, with optional MultiUserChest integration.

Installation

Requires BepInExPack Valheim 5.4.2351 and Jötunn 2.30.2 or compatible newer versions.

Mod manager: install ChestLink and its required dependencies through your manager.

Manual: install BepInEx and Jötunn first. Copy ChestLink.dll into BepInEx/plugins/ChestLink/. The Nexus archive contains this directory structure; extract it into the Valheim game directory.

In multiplayer, install the same ChestLink version and dependencies on the host/server and every player’s client.

Using ChestLink

Open an eligible chest to display the linked view. Use search and category filters to find items. Ctrl-click a linked stack to withdraw it; drag and drop to choose a destination.

STORE, RESTOCK and SORT operate on the whole linked group, ignoring the current filter. TAKE ALL follows the current filter. SORT rearranges the contents of physical chests. Normal successful transfers are silent; sorting shows Storage sorted. Brief messages explain blocked or failed actions.

Chests retain individual inventories. Ships, carts, tombstones and dungeon containers are excluded. Ward/private access and chest exclusions are respected. Discovery does not chain outward from each discovered chest.

Configuration

Launch once to generate BepInEx/config/com.chestlinkmod.valheim.chestlink.cfg. Existing settings are preserved when upgrading.

Setting Default Range / meaning
Discovery / Radius 30 m 1–100 m; fallback around the opened chest
Discovery / MaxContainers 64 0–512; 0 disables this limit
Discovery / MaxCombinedSlots 1000 0–10000; 0 disables this limit
Discovery / PreferSameBuilding true Prefer the same connected structure
Discovery / RequireSameBuildingRoof true Require a roof from the same structure
Debug / Logging false Detailed diagnostics; existing true values stay enabled

Other settings control structural detection, chest borders, labels, scrolling and category order. Their descriptions are included in the generated configuration.

Multiplayer and compatibility

ChestLink includes its own chest-owner request handling. MultiUserChest is optional, not a required download. When supported MultiUserChest 0.6.2 is installed, ChestLink uses it for ordinary transfers instead of enabling a second backend. Bulk storage actions use ChestLink’s batch coordinator.

The standalone host/client multiplayer build was tested successfully by TeamVibes, including simultaneous chest interaction. External MultiUserChest integration and dedicated-server play still need live verification. Compatibility with mods that directly change chest inventories is not guaranteed.

For troubleshooting, enable Debug / Logging and include the affected peers’ BepInEx logs and the output of chestlink_tx_status.

Credits

ChestLink by TeamVibes. The embedded owner-request implementation is adapted from MultiUserChest, copyright © 2022 Maximilian Schmöcker, under the MIT License. The full attribution and licence are included in LICENSE-MultiUserChest.txt.

See CHANGELOG.md for release notes.

CHANGELOG

Changelog

1.0.0

  • First public TeamVibes release.
  • Linked physical chest storage with search, categories, favorites and quick transfers.
  • Standalone multiplayer owner requests and optional MultiUserChest integration.
  • Batched storage actions and physical sorting.
  • Corrected stale chest state during ownership changes.
  • Simplified action messages; sorting is the only routine success popup.
  • Added release icon and Thunderstore, Hexium and Nexus packaging.
  • Detailed debug logging defaults to off for new configurations.

Changelog

Unreleased fix — owner-state-fix2 (0.11.0 test build)

  • Address the stale local in-use flag after ownership loss: observers resume loading current ZDO data, and a newly opened owner refreshes before accepting item operations.
  • Reject a clicked source reference replaced by a refresh; do not operate on its replacement item accidentally.
  • Verify standalone owner inventory bytes against persistent ZDO bytes before success replies; retain evidence and fence mismatches instead of acknowledging memory-only changes.
  • Log state-refresh/persistence counts, owner, loading/in-use flags, revisions and hashes.
  • 70 managed checks and clean compilation; five new checks cover the ten-stack handoff, stale clicked item, missing save callback and bulk-lock isolation.
  • Live retest required. Does not restore already missing items or discard old journals. Apply to owner-startup-fix1 source.

Unreleased fix — owner-startup-fix1 (0.11.0 test build)

  • Fix client initialization before peer handshake supplies the world; retry on the same session and keep the periodic transaction loop alive after errors.
  • Register durable request evidence before blocking slots, blocking consumption, or removing offered swap items.
  • Return a negative owner reply with the offered parcel when preflight fails before chest mutation; cache that decision against duplicate requests.
  • Remove duplicate registration in the ordinary same-chest move helper.
  • Add correlated request/response diagnostics, rate-limited pending and blocking reports, and detailed chestlink_tx_status.
  • Clean Debug compilation and 65 managed checks, including seven regressions for this failure. Live two-player verification remains required.
  • Apply this single patch to the tested 0.11.0 owner-request source. Preserve existing journals; uncertain past transfers are not automatically refunded.

0.11.0 — owner-request multiplayer test candidate

  • Standalone owner-request transfers adapted from the MIT-licensed MUC core; optional installed MUC handles ordinary transfers instead.
  • Direct food/potion consumption without requiring an empty player slot; return items when late consumption is invalid.
  • Standalone request correlation, duplicate request/reply protection, exact item metadata and chest/transit conservation checks.
  • Retain batched STORE/RESTOCK/TAKE ALL/PLACE STACKS, cross-chest moves and SORT with player/chest rollback and coordination.
  • Isolate both ordinary backends from bulk commits; refresh all linked physical chests and resolve the correct source for outside drops.
  • Record standalone pending/owner-reply evidence and retain uncertain transactions for investigation.
  • Preserve the existing single-player transfer path, UI, filters, favorites and placement policy.
  • Remove the obsolete ownership-probe implementation.
  • One apply.sh directly updates the supplied 0.10.6 source; no intermediate 0.11.0 patch is needed.
  • 58 managed checks and a clean Debug compilation. Real multiplayer validation and performance measurements remain required.

Known limit: automatic recovery across independently saved character/world data is not implemented. MUC-backed ordinary transfers inherit MUC's guarantees/limitations.

0.10.6 — supplied baseline

Existing UI/classification/placement and physical borders retained. The supplied TransactionsV7-fast baseline had reported player/chest duplication; it is superseded by this test candidate.