Chazman-RunicInteraction icon

RunicInteraction

Reversible Valheim interaction polish: validated hold-repeat, safe transfers and doors, legal equipment restore, menu memory, text validation, and non-destructive pickup filters.

Last updated 9 hours ago
Total downloads 16
Total rating 0 
Categories Mods Tweaks Client-side Utility AI Generated
Dependency string Chazman-RunicInteraction-1.0.0
Dependants 1 other package depends on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

Runic Interaction 1.0.0

Runic Interaction adds reversible input and UI conveniences around Valheim 0.221.12 while keeping the installed vanilla action as the final gameplay mutation. Its only runtime requirement is BepInExPack Valheim 5.4.2333; it has no shared Runic library or required gameplay-mod dependency.

Every feature is independently toggleable. Turning the master switch off makes every patch yield to vanilla behavior.

Features

Hold repeat

Holding Use repeats supported fuel and input interactions at Valheim's installed 0.2-second cadence. Each quantum calls the original station action, so native item, capacity, roof, fire, and other station checks still decide whether one item is consumed.

Full-stack transfer

Left Alt or Right Alt plus click moves one full stack through the existing InventoryGrid selection callback. The controller chord is JoyLTrigger + JoyButtonX. A move requires the open container to be the native local owner, current chest and ward access, a live non-quest item, and no active drag.

The optional Runic Inventory integration uses its public InventoryIntegrationApi when present. Interaction asks that small reflected API whether the exact native item is protected. Missing Runic Inventory preserves standalone behavior; an installed but incompatible or indeterminate provider denies only the enhanced move. There is no hard Crafting, Storage, Inventory, or Foundation dependency.

DragTransfer is an explicit disabled gate because Valheim 0.221.12 has no stable atomic drag-sweep boundary. Ordinary dragging remains vanilla.

Session-only door auto-close

Door auto-close is off by default. A successful open by the native local player creates one bounded in-memory timer. At expiry, the same loaded door must still have the exact identity and prefab, be open and closeable, pass current ward access, and have no character or movable-body obstruction. The 32-collider non-alloc scan treats saturation as obstruction.

The close uses native Valheim ownership and the installed door transition. If needed, Valheim's ZNetView.ClaimOwnership() is requested for that loaded door before the built-in door RPC is invoked. The mod has no custom network RPC, remote-player identity protocol, replay receipt, or server-side command transport. Timers are capped at 64, checked eight at a time, and expire within 70 seconds. Disconnect, unload, restart, stale identity, denial, or failure drops only that timer.

Equipment, menus, and text

Equipment restore remembers only a still-legal previous hand item for the current session. It has no enemy selection, tactical logic, or combat automation. Menu memory retains bounded craft/upgrade selection context in memory and never unlocks a recipe.

Text polish validates portal, sign, and tame text immediately before the installed receiver commits it. It enforces current object, permission, range, Unicode, control-character, and configured length rules, then delegates to vanilla. It does not write a second world record.

Pickup filters

Up to 128 exact prefab IDs or localized item tokens can be declined before item load, ownership, inventory mutation, or world destruction. Quest items bypass filtering unless the dangerous opt-in is enabled. Alt + Use or the configured controller modifier + JoyUse bypasses a match. A denied drop remains where it was.

The controller modifier is chosen from 14 fixed installed ZInput actions. JoyButtonA and JoyButtonX are excluded because they can collapse onto JoyUse in supported controller layouts. Invalid values fall back to JoyRStick.

Persistence and multiplayer boundaries

Interaction stores no world metadata and has no world migration. It creates no persistent operation, journal, inventory lock, recovery loop, account state, or quarantine. All temporary door, equipment, menu, hold, and filter state is bounded to the current process session. Failed actions cannot lock an unrelated tool, inventory, door, or gameplay mod.

Install the DLL on each client that should receive the local conveniences. A dedicated server may also load it safely; no protocol handshake is required, and client/server absence or version drift does not prevent another Runic mod from loading. Auto-close acts only where that process has the qualifying native local player and loaded door state.

Configuration defaults

Section Setting Default
General Enabled true
Features HoldToRepeat true
Features TransferGestures true
Features DragTransfer false
Features AutoCloseDoors false
Features EquipmentRestore true
Features MenuMemory true
Features TextEntryPolish true
Features PickupFilters true
Door Auto-Close DelaySeconds 4
Door Auto-Close RecentUseSafetySeconds 1.5
Door Auto-Close ObstructionRadiusMeters 0.9
Text Entry PortalCharacterLimit 10
Text Entry SignCharacterLimit 50
Text Entry TameCharacterLimit 10
Text Entry CommitRangeMeters 6
Pickup Filter Items empty
Pickup Filter AllowQuestItemFiltering false
Controller PickupBypassModifierAction JoyRStick
Diagnostics VerboseLogging false

Install BepInExPack Valheim 5.4.2333 and place RunicInteraction.dll under BepInEx/plugins/RunicInteraction/. Remove the DLL and its configuration to uninstall. No world cleanup is required.

Community: https://discord.gg/7HKHTCdFqY

Runic Interaction is an independent mod and is not affiliated with Iron Gate Studio.