
You are viewing a potentially older version of this package. View Latest Version

Unified storage for Valheim using a dedicated terminal, without changing vanilla chest behavior.
Unified Chest (via Jotunn) with custom Interactable.maxStackSize per item (no stack size mutation).used / total) with dynamic color by fill ratio.Take all is disabled in the terminal to avoid incorrect behavior.Include In Unified toggle (default: enabled).UnifiedStorage.Core) used for aggregation, search, withdraw/deposit planning.EnableDevLogs.UnifiedTerminal implements Interactable + Hoverable directly (no Container.Interact patch needed).ReflectionHelpers centralizes all reflection-based access to Valheim internals.TerminalUIManager owns all UI creation and layout management.TerminalSessionService manages client-side session state and authoritative projection.TerminalAuthorityService handles server-side authorization, reservations, and conflict checks.denikson-BepInExPack_ValheimValheimModding-JotunnScanRadius = 20MaxContainersScanned = 128RequireAccessCheck = trueEnableDevLogs = falseTerminalPieceEnabled = trueTerminalDisplayName = "Unified Chest"TerminalRangeOverride = 0TerminalTintEnabled = trueTerminalTintColor = "#6EA84A"TerminalTintStrength = 0.35src/UnifiedStorage.Mod: Valheim plugin (BepInEx + Jotunn + Harmony).
Pieces/: UnifiedTerminal (Interactable) and UnifiedTerminalRegistrar.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.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.dllCopy DLLs to:
BepInEx/plugins/UnifiedStorage/
Files:
UnifiedStorage.dllUnifiedStorage.Core.dllExpected release ZIP layout:
manifest.jsonREADME.mdicon.pngplugins/UnifiedStorage/UnifiedStorage.dllplugins/UnifiedStorage/UnifiedStorage.Core.dll