ChestNetwork · Valheim mod

Changelog


Every published version, newest first. Download the latest on Thunderstore.

ChestNetwork 0.7.0

Added

  • Automatic refuel (#14): fires, torches, smelters (fuel only, never ore) and stone ovens refill themselves. Each time a machine burns a unit of fuel, it takes fuel from the chests of its own network (the stations around the machine, wherever the players are) up to its capacity, with the Shift + E rules. Silent, never from a player's inventory, never from the chests a player's pending action needs. Detected on the game's own fuel update, no scanning; refills are spread over frames. Multiplayer: only the owner of a machine (the peer burning its fuel) refills it, acquiring the chests as Shift + E does; a refill keeps nothing reserved once done, an idle player included. New [AutoRefuel] section imposed by the server: Enabled, MinimumReserve (Settings > Mods), ReserveScope, MaxPerAction, ForbiddenItems (file). The [Filling] settings of each player do not apply to it.
  • Armor stand panel (#25): E on an armor stand opens it like a chest, next to your inventory, instead of dropping the piece on the ground. One cell per slot of the stand, drawn in its shape (seen from the front): helmet, chest and legs down the middle, the back slots at shoulder height, both hands at hip height; the cape and the utility item (Megingjord, wishbone, wisp..., named as in the game) stand beside it. Each cell shows a label and, when empty, a greyed icon of what it takes. Drag a piece onto its cell to hang it (onto an occupied cell: the two pieces trade places), drag it back to your inventory to take it, Ctrl + click to move it either way, right click to take it and wear it, "Take all" to empty the stand. A piece the cell does not take simply goes back, without message; a full inventory shows the game's message and nothing moves. Dragging a piece out of the window drops it on the ground, as E used to. Unchanged: hotbar keys 1 to 8, Shift + E (dress / swap), the pose button. [ArmorStand] OpenOnUse (Settings > Mods) set to off gives E back its vanilla meaning. Multiplayer: the stand is acquired before the panel opens and stays yours while it is open (another player gets "Armor stand used by another player"), every move is written by its owner in one go, taking the piece out before putting it in, so that a piece is not duplicated.

Breaking changes

  • Multiplayer protocol 4: every player and the server must run 0.7.0; 0.6.0 and older peers are refused when connecting. The server sends the [AutoRefuel] settings.

ChestNetwork 0.6.0

Added

  • Stone oven (#24): Shift + E on the oven's food or fuel point fills it from the network chests, like smelters: every free cooking slot gets a raw item the oven accepts ([Filling] OrePriority: items already cooking first, or the oven's own order), or the fuel goes up to its capacity. Same [Filling] settings, same messages, same multiplayer guarantees. Each raw item added raises your Cooking skill as with the Use key (+0.4, like the game). Spits and grills (no separate food and fuel points) are not concerned.
  • Windmill and spinning wheel (#24): officially covered by Shift + E (barley, flax), through the smelter rules.
  • Refill every machine of a kind (#1): Shift + A on a machine does what Shift + E does, on every machine of the network that uses the same fuel, from the nearest to the farthest: torches, sconces and braziers with their fuel, campfires and hearths, smelters and blast furnaces (ore and coal), stone ovens (food and fuel). A charcoal kiln only refills the other kilns (it never takes the fires' wood), a windmill the other windmills, a spinning wheel the other spinning wheels; a fire never refills a kiln. Same [Filling] settings, machine by machine (reserve, limit per action, forbidden items, inventory use). When the chests run out, the farther machines are simply left as they are. One message sums it up: machines filled and units used, machines the chests could not fill, machines skipped because another player held them. The aimed machine is filled even outside the network, as with Shift + E. The key is the one typing A on your keyboard, QWERTY or AZERTY, and Shift is the game's AltPlace as for Shift + E (keyboard only); the hover line names Shift as the game does. While Shift + A acts, that key does nothing else (no move left, no auto-run). [Interaction] FillAll (Settings > Mods) turns it off. Same multiplayer guarantees: every machine and every chest is acquired before it changes, in one action. Same network protocol. Anonymous statistics (only if you agreed): Shift + A is counted like the other actions, with how many machines it filled, left short or skipped (docs/TELEMETRY.md).

ChestNetwork 0.5.0

Added

  • Settings in the game: a Mods tab in the game's Settings lets you change ChestNetwork's everyday settings with the game's own controls (mouse and gamepad), in the 8 languages. Changes are written on OK and dropped on Back, exactly like the other tabs. Expert settings stay in BepInEx/config/jordan.chestnetwork.cfg. When connected to a server, the settings it imposes (Containers) are hidden. Nothing is ever written to the game's own preferences: the tab disappears with the mod.
  • ConfigurationManager (F1): the same settings, translated and in the same order; expert settings are hidden.
  • Anonymous usage statistics (#20): at the first launch, the game asks whether you agree to share them ([Telemetry] Enabled, off by default, changeable in Settings > Mods). Only if you say yes: feature usage and outcomes, counts and durations, errors by type, on/off settings, and a rough context (versions, system, language, game role, player and mod counts as ranges), sent every minute and at exit in OpenTelemetry format, from a background thread. No personal data, no item or mod names, a new random identifier at each launch, never stored. Exact list in docs/TELEMETRY.md. Shipped as a new DLL, ChestNetwork.Telemetry.dll. Off: nothing is created, nothing connects. An error turns the statistics off until the next launch, without any effect on the game.
  • Chests keep one unit of each item (#15): building, crafting and filling machines first take from every chest of the network down to one unit of the item, and only then the last units, if the action still needs them. A chest therefore keeps its "marker" and quick stack (Shift + E) still stores that item into it after you used up the stock. Building and crafting still use the inventory first; for machines, [Filling] InventoryUse = Last now places the inventory before the chests' last units. The amounts shown do not change, and nothing that was possible becomes impossible. Combined with [Filling] MinimumReserve and ReserveScope = Container, each chest keeps the larger of the two; with the default ReserveScope = Network, the reserve is a budget of the whole network, on top of the unit each chest keeps. Armor stands are not concerned. Per player setting [General] KeepOnePerChest (on by default, in Settings > Mods), not imposed by the server: same network protocol.

Changed

  • The settings are now declared through Roims.ConfigurationParasite, a settings library shipped with the mod (Roims.ConfigurationParasite.dll, Roims.ConfigurationParasite.Core.dll). The .cfg file keeps its sections, keys and default values, except for the changes listed in this version ([General] KeepOnePerChest added, [Filling] InventoryUse default, [ArmorStand] ProtectHotbar replaced): nothing to migrate. Same network protocol as 0.4.0 to 0.4.3.
  • When the host changes several settings at once (OK), clients receive the new configuration once.
  • Filling machines uses your inventory first by default ([Filling] InventoryUse = First, "Before the chests"; was Never). Only new configurations get it: an existing .cfg keeps its value.
  • [ArmorStand] ProtectHotbar is replaced by its opposite, TakeFromHotbar ("Take from the hotbar", off by default), clearer in the menu. Same behavior by default; if you had turned the protection off, TakeFromHotbar is turned on for you and the old key leaves the file.

Fixed

  • Build menu (#21): when it opened, pieces could be greyed out although the network chests held their resources (until a filter or a search refreshed them), and "waiting for containers" could show up for nothing. The menu now counts the whole network, like the other displays; placing a piece still only uses the chests it can take from.
  • Crafting panel (#23): right after a craft, recipes could look unavailable although the network chests held their resources, and "waiting for containers" could show up for nothing. Same fix as the build menu.

ChestNetwork 0.4.3

Changed

  • Armor stands no longer touch belts (Megingjord, wishbone...): Shift + E swaps and dresses the helmet, chest, legs and cape only. Your belt stays on you, the stand's belt stays on the stand, and dressing never takes a belt from your inventory or the chests. A belt on the stand no longer counts as armor (a stand holding only a belt and weapons gets dressed) nor takes room in your inventory during a swap. Same network protocol as 0.4.0 to 0.4.2.

ChestNetwork 0.4.2

Changed

  • Machine filling is revalidated before it is applied, like building, crafting and quick stacking: right before taking the units, the chests it uses are read again and the fill is cancelled if they no longer hold what was planned. No visible change in normal play.
  • Armor stands, safer order on errors: a piece now leaves its source (chest, inventory, worn armor) before it is written on the stand, and is given back if that write fails; during a swap, pieces already taken off the stand are put in the inventory if placing the new ones fails. No visible change in normal play.
  • Unexpected errors during a network action (build, craft, fill, quick stack, armor stand) are now written to the log and contained instead of interrupting the game's update; nothing already done is rolled back. No visible change in normal play.
  • Internal refactoring: the four network actions share one sequence. As a consequence, a build or craft that has to be planned again on fresh data is checked once more before being applied (no visible change). No other change; compatible with 0.4.0 and 0.4.1 clients and servers (same network protocol).
  • Mod page: each feature is now shown in action (animated previews).

ChestNetwork 0.4.1

Fixed

  • Multiplayer: a machine or a chest could stay locked for everyone ("Machine used by another player, try again" on every Shift + E, until the object was unloaded). After an ownership hand-over whose data never reached the new owner, the object was waited for forever. After 10 seconds it now goes back to the player who handed it over, and is asked again a few seconds later. It is never used with outdated contents, which could otherwise duplicate or lose items if the late data arrived afterwards.

Changed

  • Ownership hand-overs between players are written to the log (request, refusal and its reason, grant, data received, timeout), to diagnose multiplayer issues from both players' logs.
  • Internal refactoring (shared building blocks for the network actions), no behavior change.
  • Compatible with 0.4.0 (same network protocol); install it on every player for the fix to apply everywhere.

ChestNetwork 0.4.0

New

  • Armor stands (Shift + E on an armor stand):
    • Dress an empty stand: it receives the best set found in your inventory, then in the network chests: the set covering the most slots, completed slot by slot with the closest pieces (same set first, then the closest tier and quality). Your worn armor and your hotbar row are never used.
    • Swap with a dressed stand: you and the stand exchange your armor (helmet, chest, legs, cape, belt); swapping twice gets you back where you started. Weapons and shields on the stand go to your inventory. If your inventory lacks room, nothing happens and the game's "inventory full" message is shown. The new pieces are equipped with the game's normal equip time.
    • A stand holding only weapons counts as empty: it gets dressed and keeps its weapons.
    • The hover line tells which action Shift + E will do; texts available in the 8 supported languages.
    • Multiplayer-safe: the stand and the chests it takes from are locked like any other network action.

Configuration

  • New [ArmorStand] section (per player): Enabled, ProtectHotbar, SetWeight / TierWeight / QualityWeight (how the closest pieces are chosen), and Sets, the armor set table (set:tier:prefab,prefab;...), which you can extend for armors of other mods. On first use, the log lists the armors that have no set name and no table entry.

Breaking changes

  • Multiplayer protocol 3: every player and the server must run 0.4.0; 0.3.0 peers are refused when connecting. This guarantees that whoever owns an armor stand can hand it over for the new actions.

ChestNetwork 0.3.0

New

  • Quick stack into the network: aim at a chest of your crafting station network and press Shift + E (your AltPlace + Use keys): instead of opening, your items go into the network chests that already hold them. Partial stacks are completed first, then new stacks go to the chest holding the most of the item. The hotbar row and equipped items are never moved; by default only materials and trophies are (see [QuickStack] settings). Items held by no chest stay in your inventory; a message tells you when a chest is full. Multiplayer-safe, like the rest.

Breaking changes

  • Multiplayer protocol 2: every player and the server must run 0.3.0; 0.2.0 peers are refused when connecting.
  • Configuration: the alternate-use settings moved from [Filling] to a new [Interaction] section, as they now apply to every alternate-use action (machine fill, quick stack):
    • [Filling] UseAltInteract is now [Interaction] UseAltInteract
    • [Filling] Shortcut is now [Interaction] Shortcut

Previous values are not carried over: both settings are back to their defaults (true, no shortcut). The old entries left in the [Filling] section of the config file are ignored and can be deleted.

Changes

  • Localization: the mod's messages and hover lines follow the language selected in Valheim. They were French-only for machine fill, English-only for the "waiting for containers" message. Available languages: English, French, German, Spanish, Brazilian Portuguese, Polish, Russian and Simplified Chinese; any other language falls back to English. Item names always use the game's own translations.

Note: only the English and French texts were written by a native speaker. The other translations have not been reviewed by native speakers yet: corrections are welcome.

ChestNetwork 0.2.0

  • Fill smelters and fires from the network with Shift + E (machine fill).
  • Multiplayer: container and machine ownership hand-over, server configuration, version check.
  • Thunderstore release.