OpenKeep

OpenKeep

Craft, build and feed smelters from nearby chests, ships and carts. Quick stack, restock, sort, favourites, trash and a Salvage tab. Stack sizes, item weights and chest sizes by YAML. Carts as workbenches. Two players in one chest. Open source, server synced, hot reloaded, everything toggleable.

[size=4][b]Description[/b][/size]
[color=#D4D4D8]OpenKeep puts your whole storage to work. Craft, build and feed smelters, fires, cooking stations and fermenters straight from the chests, ship holds and carts around you. Quick stack, restock, sort, route and trash from the inventory panel. Break items down for their materials in a Salvage tab. Set stack sizes, item weights and chest sizes in YAML files. Turn every cart into a workbench. Let two players work in the same chest. Everything is server synced, lockable by the admin, and hot reloaded, so you never restart to change a setting. Convenience features are on by default; stack sizes, weights and chest sizes stay vanilla until you change them. Open source. [/color]

[size=4][b]Installation instructions[/b][/size]
[list=1]
[][color=#D4D4D8]Install BepInExPack for Valheim.[/color][/]
[][color=#D4D4D8]Drop OpenKeep.dll into BepInEx/plugins, or install with a mod manager. On a server, install it on the server and on every client.[/color][/]
[][color=#D4D4D8]Start the game once. BepInEx/config gets milkyteam.openkeep.cfg and five rule files: OpenKeep.Reach.yml, OpenKeep.Stow.yml, OpenKeep.Salvage.yml, OpenKeep.Stacks.yml and OpenKeep.Containers.yml.[/color][/]
[][color=#D4D4D8]Edit the cfg or the YAML files in a text editor, with ConfigurationManager, or in the in-game YAML editor. Changes apply within seconds. On a server, the server's files are used by everyone.[/color][/]
[/list][size=4][b]Main features[/b][/size]
[list]
[][color=#D4D4D8]Reach: crafting, upgrading, building and station feeding count and pay from nearby containers, 20 m by default. Requirement rows show "3 + 12" with the storage part coloured. Hold Shift at a station to fill it, hold Alt to pull a stack into your inventory. Alt + R toggles it, Alt + L draws lines from chests to the stations they serve. Per container rules in OpenKeep.Reach.yml.[/color][/]
[][color=#D4D4D8]Ships and carts count as containers: on a moored Karve, Longship or Drakkar you craft from its hold. Modded ships and chests work the same way.[/color][/]
[][color=#D4D4D8]Stow: Quick stack (Q), Store all (G), Restock (R), Sort inventory (T) and Sort container (Y), as buttons and hotkeys. Sort by category, name, weight or value, auto sort on open.[/color][/]
[][color=#D4D4D8]Favourite items (F) and favourite slots (Shift + F) never move, trash or salvage. Trash flags (X), Trash (Delete), Trash flagged (Shift + Delete) and a trash can, all with the game's confirmation popup.[/color][/]
[][color=#D4D4D8]Ctrl + click routes a stack to the chest that holds it or its group, middle click stores one, Z marks every chest holding an item, Alt + D dumps to all nearby chests, arrow keys or the wheel cycle between chests.[/color][/]
[][color=#D4D4D8]Ground pickup: chests you mark in OpenKeep.Stow.yml pull dropped items from the ground after a delay. Off by default.[/color][/]
[][color=#D4D4D8]Salvage tab: break any stack with a recipe down for a fraction of its materials, 75% by default, upgrade materials included, exclusions and per item fractions in OpenKeep.Salvage.yml. Backspace salvages the hovered stack.[/color][/]
[][color=#D4D4D8]Stacks: stack and weight multipliers, absolute values per item, pattern or group, optional per item config entries, ignore the portal restriction, merge into partial stacks when dragging into a chest.[/color][/]
[][color=#D4D4D8]Capacity: OpenKeep.Containers.yml lists every container in your game with its vanilla size. Change the numbers to resize chests, ship holds and carts. Hover a container to see how full it is and what is inside.[/color][/]
[][color=#D4D4D8]Carts: a workbench on every cart, Shift + E to craft, with its own level and range.[/color][/]
[][color=#D4D4D8]Shared chests: View shows a chest another player has open, read-only, titled "(in use by Name)", and goes live when they close it. Full lets both players work the same chest; the chest owner's game decides every move, so nothing is duplicated or lost. Off by default.[/color][/]
[][color=#D4D4D8]Console command openkeep: reload, containers, write docs.[/color][/]
[/list][size=4][b]Requirements[/b][/size]
[list]
[][color=#D4D4D8]BepInExPack for Valheim.[/color][/]
[][color=#D4D4D8]On a server: the mod on the server and on every client. The version check refuses mismatched clients.[/color][/]
[][color=#D4D4D8]Optional: ConfigurationManager to edit values and open the YAML editor in game.[/color][/]
[][color=#D4D4D8]Warnings: items in the extra rows of an enlarged chest are invisible to players without the mod. Lowering a stack size limit, or removing the mod, loses the part of a stack above the new limit when that inventory loads, so split large stacks first.[/color][/]
[/list][size=4][b]Shout outs[/b][/size]
[color=#D4D4D8]blaxxun for ServerSync, the BepInEx and Harmony teams, and the authors of the storage mods whose store pages showed what players want from chests. OpenKeep was written from scratch against the game's own code; none of their code was used. [/color]