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.
Stoneveil
Turn walls, floors, and roofs into hidden doors. Includes hinged and sliding panels, concealed prompts, and natural two-course stone doors. Early prototype.
By TomTomDK
| Date uploaded | 2 weeks ago |
| Version | 0.2.1 |
| Download link | TomTomDK-Stoneveil-0.2.1.zip |
| Downloads | 34 |
| Dependency string | TomTomDK-Stoneveil-0.2.1 |
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.2350ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.0README
Stoneveil
Hidden passages, ordinary stonework.
Turn an existing Valheim wall, floor, or roof into a concealed moving panel. Conversion keeps the vanilla piece, its health, materials, and saved position. Adding a hinge to a 2x1 stone wall now creates a 2x2 secret door with two matching stone courses. The upper course repeats the original geometry one metre higher, preserving stone proportions and texture scale. Both courses move as one panel.
Early prototype: compilation and 581 automated state/motion checks pass. Live-game visuals, structural behavior, and multiplayer have not yet been verified. Try it in a test world first.
Install
Install Stoneveil through Thunderstore Mod Manager or r2modman. For an unpublished ZIP, use your manager's local-mod import option. Launch Valheim through the selected mod profile.
Required dependencies:
Install the same Stoneveil version on every client and the server.
For manual installation, install the dependencies first, then copy the ZIP's
plugins/Stoneveil folder into your active profile's BepInEx/plugins folder.
The resulting file should be BepInEx/plugins/Stoneveil/Stoneveil.dll.
Upgrading From Secret
Exit Valheim and remove the old Secret.dll from your active profile before
installing Stoneveil. Existing saved hinges and configuration remain compatible.
The configuration filename intentionally remains com.tomtom.secret.cfg.
Controls
Build a supported vanilla piece, then equip the vanilla hammer and aim at it. Only the original builder can add, change, or remove a hinge.
| Action | Default control |
|---|---|
| Convert to a secret door | Alt+H |
| Remove the hinge from a closed panel | Ctrl+Alt+H |
| Cycle hinge edges, slide left, slide right | Alt+J |
| Reverse a hinged panel's swing | Ctrl+Alt+J |
| Hide/show the interaction prompt | Alt+K |
| Open/close | Put the hammer away, aim at the panel, press Use (normally E) |
Hammer shortcuts are configurable in BepInEx/config/com.tomtom.secret.cfg.
Opening uses the game's normal keyboard or controller Use binding. Editing
defaults to keyboard shortcuts. Motion changes require a closed panel.
Hidden prompts do not lock the door: anyone with ward access can still use it.
For a stacked stone door, leave one course of free space above a single 2x1 stone wall and press Alt+H with the hammer equipped. Occupied space blocks conversion; the mod does not consume or join an existing wall above it. The original bottom edge stays in place. Removing the closed hinge removes the added upper course and its snap points, returning to the original 2x1 wall. Existing stone doors from 0.1.0 keep their size; remove and re-add their hinge to use the stacked form.
Supported Pieces
- Wood walls:
wood_wall_quarter,wood_wall_half,woodwall. - Stone walls:
stone_wall_2x1,stone_wall_1x1. - Floors:
wood_floor,wood_floor_1x1,stone_floor_2x2. - Straight thatch roofs:
wood_roof,wood_roof_45.
Walls hinge at a side edge; floors and roofs hinge across a front/back edge. All support sliding left/right. Prefabs with unexpected component layouts are rejected with a message instead of being converted. Natural ruins are excluded.
Behavior and Limits
- The piece's conversion, stacked layout, motion, concealment, and open state are saved together in its ZDO. The current object owner validates requests and writes state; peers animate toward the replicated state. Joining players restore saved poses.
- Creator, equipped hammer, range, and vanilla ward permission are checked on the receiving owner. This follows Valheim's peer-owned networking model.
- The vanilla piece root and snap points stay fixed. Structural calculations temporarily query all open panels in their original closed pose, then restore them before normal physics runs. This retains the intended support footprint; it needs in-game regression testing and profiling in large builds.
- Stacked stone doors add matching upper snap points at the closed position. Structural calculations include both courses. The copied upper course shares the lower course's damage visuals, materials, collision state, and single health/resource pool. It adds no independent network object or extra drops.
- Visual damage variants and physical colliders move together. Roof cover is evaluated against the moving geometry. Opening a roof can expose the interior.
- A conservative character-overlap check samples the proposed path before an operation. This may reject tight spaces and does not predict players moving into the panel after animation starts. Panels can clip surrounding buildings; provide room for their swing or slide.
- Conversion is free for this prototype. A craftable Secret Hinge item, additional materials, grouped panels, locks, and custom pieces are future work.
- Concealment hides the prompt only. LatchLink switches and DoorDirector timers
are not integrated: Stoneveil panels do not use vanilla
Doorcomponents. - Third-party ward replacements and mods that rearrange piece geometry require compatibility testing.
Validation and Removal
Compilation and automated state/motion checks do not exercise Unity, a running world, or multiple peers. Structural support, reloads, and multiplayer need testing in a test world before normal use.
To revert one piece, close it and remove its hinge with Ctrl+Alt+H. To uninstall,
exit the game and uninstall Stoneveil or remove Stoneveil.dll from the active profile. Since the saved
prefabs and root transforms remain vanilla, the pieces load as ordinary closed
pieces without the mod. Custom ZDO data can remain; reinstalling restores saved
hinge settings unless they were removed first. Exit the game before changing
plugins; live plugin unloading is not a supported workflow.
For stacked stone doors, uninstalling also removes the added upper course. Any
construction relying on that course's support must have another support path.
Jotunn's network compatibility requirements are documented in the official network compatibility guide. Prefab names and component layouts were also checked against Jotunn's generated prefab list.
CHANGELOG
Changelog
0.4.4 - Forward-Link Authority
- Fix valid switches being rejected with a missing door return-link message. Activation now uses the server-validated switch-to-door link without requiring LatchLink's reverse controller index to be synchronized.
- Preserve current-owner validation, authenticated single-use server approval, player/range/ward/mode checks, and movement checks. Stale reverse data alone never authorizes an unlinked switch.
- Add coverage for wood, iron, rune, and bookshelf controls sharing a door with missing reverse entries, plus the actual authorization RPC with those entries absent.
- Keep LatchLink 0.9.2, existing links, and hinge settings. Live-game validation is still pending.
0.4.3 - Blocked Closing
- Preserve pending automatic closure when manual/switch movement fails; cancel only after committing the new panel state.
- Refine character collision candidates using collider penetration instead of treating the entire world-axis bounding box of a rotated panel as solid. Unsupported collider pairs remain conservatively blocked.
- Share manual/automatic movement checks and log blocked-operation state with throttling for diagnosis. Ward/link authorization is unchanged.
- Pair with LatchLink 0.9.2, which preserves simulation ownership during link edits. Existing links and hinges are retained. Live-game validation remains pending.
0.4.2 - Server-Validated Switch Links
- Replace client-side GUID membership checks with owner-to-server link authorization, addressing missing-link rejection when client metadata differs from the server that resolved the link.
- Preserve owner-side actor, range, ward, mode, collision, and cooldown checks. Validate ownership and reciprocal links on the server; accept only single-use, authenticated replies with a five-second timeout.
- Keep existing hinges, saved links, and the LatchLink 0.9.1 API unchanged.
- Add simulated RPC coverage for valid/denied requests, forged and replayed replies, ownership changes, timeouts, host routing, and session changes. Live-game verification is still pending.
0.4.1 - Switch Rejection Diagnostics
- Report missing forward/return links, unavailable data, ward denial, mode conflicts, and range failures separately. Log whether rejection was on the client or door owner.
- Expose the last switch failure to LatchLink 0.9.1 so its generic status does not hide Stoneveil's reason. Log Door.Interact prefixes when Stoneveil is skipped.
- No permission bypass, saved-link migration, or confirmed gameplay fix is included. Live reproduction with these diagnostics is still needed.
0.4.0 - Linked Switch Operation
- Added optional remote operation with LatchLink 0.9.0 using a validated source switch.
- Check player reach at the switch, reciprocal persistent links, switch mode, and ward access at both ends on the door owner. Direct hand-use range is unchanged.
- Preserve patched Door.Interact, movement clearance, cooldown, and auto-close hooks.
- Retain existing hinge settings and persistent links. Both mods must be updated on server and clients for remote use. Live-game integration testing is pending.
0.3.0 - Auto-Close Compatibility
- Added a standard Door adapter to converted panels for auto-close mod discovery.
- Mirrored native door state and preserved Awake, UpdateState, Interact, and RPC_UseDoor hooks for external observers.
- Added owner-only, close-only handling for automatic UseDoor requests and native closed-state writes. Duplicate timers cannot reopen a closed panel.
- Added collision-aware close retries, cancelled by manual use, removal, expiry, or loss of ownership.
- Documented source-reviewed DoorDirector and Protective Wards auto-close support. Live single-player and multiplayer integration tests are still pending.
0.2.1 - Stoneveil
- Named the mod Stoneveil and updated its displayed name and DLL.
- Added a Thunderstore-format package with metadata, icon, and installation guide.
- Preserved the existing plugin ID, configuration filename, and saved hinge data.
- Gameplay is unchanged from Secret 0.2.0. Live-game and multiplayer testing remain pending.
0.2.0 - Stacked Stone Doors
- Adding a hinge to a 2x1 stone wall creates a 2x2 panel from two matching courses.
- Preserved mesh proportions and texture scale without stretching.
- Added upper-course collision, snap points, saved layout, and clearance checks.
- Removing the hinge restores the original single course.
0.1.0 - Initial Prototype
- Added hinge conversion for selected vanilla walls, floors, and roofs.
- Added hinge/slide modes, reversed swing, hidden prompts, and removable hinges.
- Added saved state, owner-validated requests, and vanilla ward checks.