You are viewing a potentially older version of this package. View all versions.
Chazman-RunicInteraction-1.0.8 icon

RunicInteraction

Smooth out everyday Valheim interactions with hold-repeat, full-stack transfers, safer doors, equipment restore, menu memory, and pickup filters.

Date uploaded 2 days ago
Version 1.0.8
Download link Chazman-RunicInteraction-1.0.8.zip
Downloads 483
Dependency string Chazman-RunicInteraction-1.0.8

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 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.2350

README

Runic Interaction 1.0.8

Not every frustration deserves a separate system. Some are simply small interruptions that happen often enough to wear you down: repeated use clicks, fussy transfers, doors left open, forgotten menu choices, unwanted pickups, and equipment that does not return when expected.

Runic Interaction polishes those everyday moments. Each improvement is independently configurable and keeps Valheim's installed action as the final gameplay operation.

Major features

  • Hold Use for supported repeated fuel and input interactions.
  • Move a full stack with a convenient modifier gesture.
  • Optionally close doors after a safe, obstruction-aware delay.
  • Restore valid equipment and remember selected menu choices.
  • Improve selected text handling and filter unwanted automatic pickups.

How it feels in-game

Common actions require fewer repeated clicks and fewer corrections. Nothing announces itself as a new game system; the controls simply behave more like you expected them to in the first place.

Safety and compatibility

Every feature can be disabled, and the master switch yields completely to vanilla behavior. Enhanced actions revalidate access, ownership, wards, obstructions, and current state before calling Valheim's native path. The mod has no required Runic dependency; optional integrations fail only the enhanced action when their evidence is unavailable.

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 1.0.7 has no stable atomic drag-sweep boundary. Ordinary dragging remains vanilla.

Session-only door auto-close

Enable Features -> AutoCloseDoors to close loaded, accessible doors after any player opens them. The visitor does not need this mod when your client can see the synchronized door state. Already-open doors are also detected when loaded or when the feature is enabled. Auto-close is off by default. An observed open door creates one bounded in-memory timer. Repeated network updates do not restart its delay; closing and reopening starts a new delay. 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.2350 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.

Game compatibility

Verified against Valheim 1.0.15. Startup checks required APIs directly; an unfamiliar game version alone does not disable the mod.

Compatibility: startup validates required game APIs rather than rejecting an unfamiliar game version. Actual API incompatibilities still disable safely.

CHANGELOG

Changelog

1.0.9 - 2026-09-20

  • Auto-close now applies only to player-built doors. World-generated dungeon, cave, and ruin doors are excluded, even when opened or network-owned by a player. Construction eligibility is checked before scheduling and again before closing.

1.0.8 - 2026-09-18

  • Replaced the exact game-version allowlist with startup API validation. Compatible future patches no longer require a version-only update.
  • Incompatible APIs still fail closed; World Engine retains its exact method-body audit.

1.0.7 - 2026-09-18

  • Added Valheim 1.0.15 support while retaining exact API checks and support for 1.0.7, 1.0.12, and 1.0.14.

1.0.6 - 2026-09-17

  • Added Valheim 1.0.14 support while retaining compatibility with 1.0.7 and 1.0.12.
  • Retained exact game API checks and rejection of unknown versions.
  • Updated installed-game contract verification for the 1.0.14 client.

1.0.5 - 2026-09-14

  • Auto-close now observes synchronized door state, so doors opened by other players receive the same closing delay. Already-open loaded doors are detected too.
  • Repeated state updates keep the original deadline; closing and reopening starts a new delay. Animating and obstructed doors wait safely.
  • Preserved ward access, native ownership, restricted-door exclusions, and bounded session timers. Requires AutoCloseDoors enabled on an active client with the door loaded; visitors need not have the mod.
  • Added ten executable door-runtime regressions, including remote openings and synchronous native close callbacks.

1.0.4 - 2026-09-11

  • Fixed startup being disabled after the Valheim 1.0.12 update. Retained Windows and Linux support for Valheim 1.0.7.

1.0.3 - 2026-09-10

  • Fixed Linux startup rejecting Valheim 1.0.7 because its displayed version includes a platform prefix.

1.0.2 - 2026-09-09

  • Updated ZDO sector and controller contracts to Valheim 1.0 and re-audited the installed 1.0.7 client assemblies.
  • Updated the BepInEx dependency to 5.4.2350 and aligned the package, plugin, and assembly versions.

1.0.1 - 2026-09-05

  • Reworked the Thunderstore description and README opening to lead with the player problem, the mod's core benefit, major features, in-game feel, and then safety and compatibility details.
  • Description-only package update. The plugin DLL and gameplay behavior are byte-for-byte unchanged from 1.0.0.

1.0.0 - 2026-08-29

  • Made chazman.RunicInteraction independently installable with BepInEx as its only runtime dependency and kept version 1.0.0.
  • Removed Core registration, published capability/status services, protocol coupling, Persistence door transport, account binding, remote-owner dispatch, and the obsolete authoritative ward index.
  • Replaced the shared keybinding registry with the six-entry local Interaction catalog.
  • Rebuilt door auto-close as a bounded, session-only native Valheim path for a door opened by the local player. It keeps current ward, obstruction, identity, prefab, and closeability checks and writes no world data.
  • Kept drag-sweep transfer as an explicit disabled gate; ordinary vanilla dragging is unchanged.
  • Kept hold repeat, full-stack transfer, legal equipment restore, bounded menu memory, text validation, and exact pickup filters on their installed vanilla outcome paths.
  • Converted item protection to an optional reflected Runic Inventory API. Missing Inventory no longer prevents Interaction from loading.
  • Removed persistent operations, journals, recovery, global locks, and quarantine from the feature set; a failed action releases only its own current in-memory state.