Source-checkedQuality of life & UI

BestAutoSort

by maks2204 · for Valheim

Standalone storage mod: shared chests, quick-stack, restock, rules, crafting from chests, autofeed, upgrades, sort.

7.5KDownloads
37d agoLast updated
BepInExLoaders
ThunderstoreSource

About BestAutoSort

From Thunderstore

Standalone storage mod: shared chests, quick-stack, restock, rules, crafting from chests, autofeed, upgrades, sort.

BestAutoSort

BestAutoSort icon

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    |  <- ZDO owner = SERVER, permanent, never migrates
|   ONE TX       |  <- validate -> 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<<32 \| counter + [body:ZPackage] | | Request body | [proto:int=2/3] [op:int] [baseRev:uint] [playerId:long] [actorPos:vec3] [enforceRule:bool] [respectReserves:bool] [op-body...] (+ v3 trailing [isTransientRetry:bool]) | | Response | [txId:long] [status:int] [revision:uint] [totalsOnly:bool] [body:ZPackage] | | Take body | [count:int] then per entry [prefabHash:int] [item:ZPackage] [accepted:int] | | Add body | [count:int] then per entry [accepted:int] | | Item snapshot | [prefabHash] [itemPkg] [amount] [x] [y] [maxStack]; itemPkg = ItemData.Save (quality/variant/durability/stack/crafter/customData/world/gridPos) | | Ops | Add / AddBatch / Take / TakeBatch / Move / Sort / Upgrade (legacy direct frames refused on managed chests) / UpgradeRequest (server-mediated, v3) / SetRule / ViewerOpen / ViewerClose / Query | | Statuses | Accepted / Partial / Rejected / Duplicate / UnknownTx / TransientUnavailable (v3, non-terminal: retain same txId, never terminal-forget) |

Take one stack (GUI drag)

Take one stack: client-manager sequence

Deposit batch (quick-stack, per chest)

Deposit batch and client completion

Viewers (many GUIs, one chest) + feeding

Viewers and feeding cheat-sheet

Install

  1. Install BepInExPack Valheim
  2. 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

# Thunderstore release zip
.\package.ps1

See DEV.md.

Highlights

From source data

Loaders

Runs on BepInEx.

Footprint

Rated a light load on a server.

Dependencies

Needs 1 other project installed alongside it.

BestAutoSort on Nxeon

From our catalogue
One-click install
Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
Server side
Optional on the server
Server type needed
BepInEx
Server load
light
Smallest plan we suggest
Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
Latest build
0.6.28, released 2026-09-29

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 8 recorded builds of BestAutoSort.

Recent builds

BuildReleasedGame versionsLoaders
0.6.282026-09-29n/aBepInEx
0.4.02026-09-22n/aBepInEx
0.3.22026-09-17n/aBepInEx
0.3.12026-09-16n/aBepInEx
0.2.02026-09-15n/aBepInEx
0.1.102026-09-14n/aBepInEx

Dependencies

Declared by the newest build that lists any. Required ones are installed with it on one-click installs.

Run BestAutoSort on a Valheim server

Pick a server or deploy a new one above; it is installed in one click.

What kind of mod it is

From the catalog
Listed on Thunderstore as “Tweaks”

Quality of life & UI

Small conveniences, tweaks and interface improvements players notice straight away.

Works on a server

From source side support

Thunderstore lists server-side support for BestAutoSort as optional: it can run on a server, but isn’t required there.

Compatibility

Game
Valheim
Loaders
BepInEx
Runs on
Serveroptional on the server
Requires
One-click install needs a BepInEx server. 1 other project installed alongside it.

Verified at the source

  • ✓ThunderstoreOfficial listing, checked 2026-10-01Open ↗
  • ✓Authormaks2204, as published on Thunderstore
  • ✓LicenseNot published by the sourceFree

BestAutoSort, answered

Generated from the mod’s own source data.

Do my players need to install BestAutoSort?

Thunderstore lists server-side support for BestAutoSort as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

BepInEx.

Is it free?

Yes. BestAutoSort is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run BestAutoSort on a Valheim server.

Deploy in about a minute from $9.99 a month, then add BestAutoSort in one click.