This package has been deprecated and may no longer be maintained. We recommend looking for an alternative.
UnifiedStorage
Unified Chest Terminal for Valheim: native chest UI with nearby storage aggregation, search and scroll.Unified Storage (Valheim 0.221.12)
Unified storage for Valheim using a dedicated terminal, without changing vanilla chest behavior.
Current state (v1.1.5)
- New placeable:
Unified Chest(via Jotunn) with customInteractable. - Opening the terminal uses Valheim's native chest UI.
- Aggregates items from nearby static vanilla chests within configured range.
- Supports optional integration with
ItemDrawers(kg_ItemDrawers) and includes drawers in unified storage when available. - Respects real
maxStackSizeper item (no stack size mutation). - Built-in text search in the terminal inventory.
- Slot usage bar and counter (
used / total) with dynamic color by fill ratio. - Native scroll support for large item lists.
- Type-based ordering with lightweight material grouping (for example: ores/metals).
- Deposit and withdraw use normal chest interactions.
- Deposit is blocked when unified storage has no available space.
Take allis disabled in the terminal to avoid incorrect behavior.- Vanilla chest UI includes
Include In Unifiedtoggle (default: enabled). - Hover text shows nearby chest count when aiming at the terminal.
- Global scan cap is configurable via
MaxContainersScanned(default:128) to balance coverage and performance. - Multiplayer consistency is server-authoritative with reservation/timeout flow.
- Delta broadcast keeps multiple players viewing the same terminal in sync.
- Core library (
UnifiedStorage.Core) used for aggregation, search, withdraw/deposit planning.
Release notes
- See all notes: release-notes/README.md
v1.1.5: release-notes/v1.1.5.mdv1.1.4: release-notes/v1.1.4.mdv1.1.3: release-notes/v1.1.3.mdv1.1.2: release-notes/v1.1.2.mdv1.1.1: release-notes/v1.1.1.md
Scope
- No built-in crafting system.
- Vanilla chests remain unchanged.
- The terminal is the only access point to unified storage.
Dependencies
denikson-BepInExPack_ValheimValheimModding-Jotunn
Optional integration:
kg_ItemDrawers(drawer sources are included automatically when installed)
Configuration (BepInEx)
ScanRadius = 20MaxContainersScanned = 128(global cap; increasing this can significantly impact performance)EnableDevLogs = falseTerminalPieceEnabled = true
Project structure
src/UnifiedStorage.Mod: Valheim plugin (BepInEx + Jotunn + Harmony).Pieces/:UnifiedTerminal(Interactable) andUnifiedTerminalRegistrar.UI/:TerminalUIManager(all UI creation and layout).Server/:TerminalAuthorityService,ContainerScanner,ChestInclusionRules.Session/:TerminalSessionService(client-side session logic).Network/:TerminalRpcRoutes,TerminalCodec(RPC and serialization).Shared/:ReflectionHelpers(centralized reflection).Patches/: Harmony patches for InventoryGui, InventoryGrid, ZInput, and terminal interactions.
src/UnifiedStorage.Core: shared models and pure logic (aggregation, search, withdraw/deposit planning).tests/UnifiedStorage.Core.Tests: core unit tests.
Local build
PowerShell:
$VALHEIM_MANAGED_DIR = "C:\Program Files (x86)\Steam\steamapps\common\Valheim\valheim_Data\Managed"
$BEPINEX_CORE_DIR = "C:\Users\<user>\AppData\Roaming\r2modmanPlus-local\Valheim\profiles\<profile>\BepInEx\core"
$JOTUNN_DLL = "C:\Users\<user>\AppData\Roaming\r2modmanPlus-local\Valheim\profiles\<profile>\BepInEx\plugins\ValheimModding-Jotunn\Jotunn.dll"
dotnet build .\src\UnifiedStorage.Mod\UnifiedStorage.Mod.csproj -c Release `
/p:VALHEIM_MANAGED_DIR="$VALHEIM_MANAGED_DIR" `
/p:BEPINEX_CORE_DIR="$BEPINEX_CORE_DIR" `
/p:JOTUNN_DLL="$JOTUNN_DLL"
Output:
src/UnifiedStorage.Mod/bin/Release/net472/UnifiedStorage.dllsrc/UnifiedStorage.Core/bin/Release/netstandard2.0/UnifiedStorage.Core.dll
Manual install (r2modman profile)
Copy DLLs to:
BepInEx/plugins/UnifiedStorage/
Files:
UnifiedStorage.dllUnifiedStorage.Core.dll
Thunderstore packaging
Expected release ZIP layout:
manifest.jsonREADME.mdicon.pngplugins/UnifiedStorage/UnifiedStorage.dllplugins/UnifiedStorage/UnifiedStorage.Core.dll
