Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
RunicInteraction
Reversible Valheim interaction polish: validated hold-repeat, safe transfers and doors, legal equipment restore, menu memory, text validation, and non-destructive pickup filters.
| Date uploaded | 10 hours ago |
| Version | 1.0.0 |
| Download link | Chazman-RunicInteraction-1.0.0.zip |
| Downloads | 19 |
| Dependency string | Chazman-RunicInteraction-1.0.0 |
This mod requires the following mods to function
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.2333README
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.
CHANGELOG
Changelog
1.0.0 - 2026-08-29
- Made
chazman.RunicInteractionindependently 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.