BestAutoSort
Standalone storage mod: shared chests, quick-stack, restock, rules, crafting from chests, autofeed, upgrades, sort.
Screenshots 1 screenshots
About this mod Author’s original text
BestAutoSort
Standalone storage mod for Valheim (GUID dev.maks2204.bestautosort).
Updated and tested for Valheim 1.0.12.
- Shared chests: every player can open the same chest at the same time, no lockouts
- Quick-stack: hotkey moves matching items into nearby storage
- Lock and restock: Alt + left-click cycles an item through Locked → Replenish → Nothing
- Storage rules: per-chest item/category filters, presets, reserves
- Crafting and building: materials from nearby chests within radius
- Fuel and ingredients: machines, cooking stations, kilns, smelters, fermenters pull from nearby chests
- Animal feeding: hungry tame animals fed automatically from nearby chests
- Chest upgrades: wooden → Reinforced / Black Metal / Grausten tiers, contents kept
- Sort and trash: LeftAlt + S sorts the open chest, Trash button deletes
Notes:
- Own plugin folder (BepInEx/plugins/BestAutoSort), own config (dev.maks2204.bestautosort.cfg).
- Console command: bestautosort.
- All players + server must run the same version (exact-match hello gate).
0.6.x server authority: the 0.6.x-Dedicated-Test line makes the
server/host the permanent owner of eligible chests (option-B ZDO manager:
Take / Add / Move / Sort / UpgradeRequest / Destroy served server-side —
validate → apply → Save() → revision → respond; upgrades charge
target-minus-current with pocket refunds). Live-verified single-peer
(Accepted end-to-end, incl. upgrades with marker/dims/look). The
multi-peer invariant is not yet claimed (2-player flow, hammer
destroy on the run, autofeed soak pending). Mode/hello gate: peers must
match on version AND auth mode (version;auth=N); mismatched peers
are rejected. Vanilla (mod-less) clients are unsupported for managed
chests (view-only grant at best; local vanilla takes fork ghost items).
Remote chest upgrade runs only via the server-mediated
TxOp.UpgradeRequest contract (legacy direct-upgrade frames refused);
see docs/remote-upgrade-mediated.md including its 4 documented residuals.
Multiplayer protocol (ChestTX)
+----------------+
| ONE CHEST |
| ONE OWNER | apply -> Save() -> revision -> respond
| AT A TIME | (per-chest serial queue, main thread)
+----------------+
Details: docs/CHEST_TX.md.
Actors & channels
+----------+ TxRequest +----------------------+ TxResponse +----------+
| CLIENT | -----------> | CHEST ZNetView | -----------> | CLIENT |
| (any peer| (no target: | (engine routes the | (targeted | (same |
| incl. | straight to | packet to the ZDO | at the | peer) |
| server) | the owner) | owner = SERVER) | requester) | |
+----------+ +----------------------+ +----------+
TxFlights (target 0 = broadcast, loopback included) ----------> EVERYBODY
MultiUserHello (version string, exact match) -----------------> EVERYBODY
Packets (ZPackage, nested)
| Packet | Layout |
|---|---|
| Request outer | [txId:long] `txId = peerId
Deposit batch (quick-stack, per chest)
Viewers (many GUIs, one chest) + feeding
Install
- Install BepInExPack Valheim
- Drop BestAutoSort.dll into Valheim/BepInEx/plugins/BestAutoSort/
Build from source
Game path (if not D:/SteamLibrary/steamapps/common/Valheim)
$env:VALHEIM_INSTALL = "D:/SteamLibrary/steamapps/common/Valheim"
Debug build + auto-deploy to the game
dotnet build BestAutoSort.csproj -c Debug
release zip.\package.ps1
See DEV.md.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: