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.