Move existing Valheim build pieces inside base build areas with preserved state, multiplayer locks, direct recipe knowledge checks, and optional AAABuildMenu compatibility.
Fixed the false Not all requirements have been met rejection for Magic Supremacy's MagicWeaverDO and every other piece in a custom build category. The isolated relocation table now uses its own vanilla Misc slot and never calls category/index lookup.
Removed build-menu visibility, category order, AAABuildMenu columns/search/filters, required materials, and Player.HaveRequirements from relocation authorization.
Made Require known piece use only the player's real known-recipe set through Player.IsRecipeKnown; when disabled, knowledge is bypassed unconditionally.
Restored the intended build-area boundary using the source position's existing EffectArea.Type.PlayerBase territory (the base area used by Valheim's spawn suppression), without requiring the piece's original crafting station.
Capture the exact source build-area instances before creating the ghost, preventing a workbench or other base-piece ghost from authorizing its own destination.
Resolve the canonical relocation prefab from the authoritative ZDO prefab hash before falling back to its name, improving compatibility with renamed runtime instances.
Kept the final vanilla placement ghost as the surface/connection/biome/spacing validator and removed the second divergent owner-side static-rule clone that could reject a valid preview.
Retained owner-side source/target build-area, ward, no-build, reach, unsafe-state, and structural-support rollback checks; bumped multiplayer traffic to protocol V4 so mixed releases fail cleanly.
1.1.0
Re-audited relocation against the current vanilla placement, ZDO synchronization, crafting-station, station-extension, effect-area, and structural-support paths.
Removed non-vanilla PlayerBase, station-at-destination, and repeated source-distance requirements while preserving final vanilla placement validation, ward/no-build checks, target reach, connection rules, and structural support.
Preserved Require known piece as an independent recipe-knowledge policy; disabling it permits only the selected existing object and never teaches or exposes recipes.
Always use an isolated one-piece placement table in World, BuildMenu, and Mixed, preserving the normal table and selection across success or cancellation.
Unified placement input across all three modes so relocation is not accidentally gated by the hammer's stamina, durability, or resource-consumption path.
Added optional AAABuildMenu compatibility for its filtered/search build lists without adding a hard dependency or changing AAABuildMenu when it is absent.
Rebuild moved workbench upgrade lists/ranges, station-extension links, cached burning/no-monster bounds, and ward connection caches after move and rollback.
Made nonessential WearNTear reflection caches optional while retaining the fail-closed support check for pieces that can break without support.
Replaced six per-piece routed-RPC closures with six session-level handlers keyed by ZDOID; bumped the network protocol and message names to V3.
Hold the object lock until server observation completes so a second move cannot overwrite a pending transaction record.
Keep that lock lease refreshed while confirmation is pending, and validate fast visual updates against the committed token and ZDO pose.
Snapshot and restore moved rigidbody velocities plus component cache/environment fields when an owner-side transaction rolls back.
Store cancelled-request tombstones without retaining player, piece, or ZNetView objects for the late-response safety window.
Cache unchanged move-link geometry and stopped duplicate placement-ghost setup and per-frame duplicate destination scans.
Allow an explicitly configured E move hotkey while giving a successful door interaction priority for that press.
1.0.23
Prevented Physics.ClosestPoint warning spam when movable pieces use non-convex mesh or other unsupported collider types.
Kept exact proximity checks for primitive and convex colliders, used collider bounds as a safe fallback for piece-distance checks, and ignored inactive or trigger-only piece colliders.
Made custom player-base area checks fail closed for unsupported collider shapes instead of calling an invalid Unity physics API.
Reused component buffers and calculated each object's link endpoint and ring radius from one bounds scan per frame; corrected rotated mesh-only fallback bounds.
1.0.22
Read player-built identity from the authoritative ZDO creator field whenever Valheim's one-time local Piece.m_creator cache differs from the network data.
Split non-removable and missing-creator failures into separate messages and added network identity diagnostics for genuine creator mismatches.
1.0.21
Fixed the dashed link endpoint jumping toward world origin by removing the premature placement-ghost bounds cache and calculating current object endpoints after vanilla updates the ghost.
Ignored inactive and near-zero collider/renderer bounds so temporary Unity bounds cannot distort link anchors or floor rings.
Changed the clean-config default to Mixed, using its separate hotkey both inside and outside build mode. Existing saved configs remain unchanged.
1.0.20
Added Mixed mode and its own configurable hotkey, usable both inside and outside build mode.
Replaced the old move RPCs with versioned, peer-authenticated lock and transaction messages, a direct server capability challenge and authoritative commit check, exact-owner routing, cancellation tombstones, owner-change retry, and bounded timeouts.
Made the server's enable/safety/knowledge/lease policy authoritative for every possible ZDO owner instead of depending on a random owner's local config.
Revalidated the vanilla placement ghost immediately before commit and locked the active PieceTable/prefab so copy, removal, or selection changes cannot move the wrong object.
Fixed duplicate World placement-ghost updates and restored vanilla-style mouse/gamepad rotation handling.
Rebuilt WearNTear relocation refreshes, including support geometry, roof, biome, heightmap subscription, water, Ashlands, lava, rain, and shield state, without treating the object as newly placed.
Refreshed sap collectors, shield visuals, fireplace/cinder biome caches, static rotation, and claimed-bed spawn points after a move.
Optimized active visuals by caching object bounds, reusing renderers/materials, growing dense-base support buffers safely, and targeting support-cache RPCs only at their owners.
Excluded the original object from move-only spacing, required-connection, overlap, and clipping checks while preserving it as a snap source, including rotation in place; prevented a second placement-ghost update in the commit frame.
Added an expiring challenge-bound server-capability lease, target-bound commit replies, coalesced lock refreshes, exact-owner release during ownership gaps and graceful logout, fail-closed ward compatibility, and transactional owner rollback on exceptions.
1.0.19
Refuse moves that would immediately violate WearNTear structural support, preventing unsupported pieces from breaking after relocation.
Revert owner-side transforms before syncing if the moved piece cannot survive at the target position.
1.0.18
Prevented vanilla placement from running while move mode is active, even if the selected prefab changes.
Made the post-move WearNTear refresh softer so moved pieces recalculate support bounds without being treated as newly placed objects.
1.0.17
Clarified the Thunderstore description and README with the two move modes, current defaults, and existing-config behavior.
1.0.16
Changed new config defaults to Move mode = World and Require known piece = false.
1.0.15
Enforced Require known piece before entering move mode, including World mode moves that use the temporary one-piece build table.
1.0.14
Wait for the ZDO owner to confirm multiplayer moves before completing local move mode.
Avoid owner-side ward checks that used the ZDO owner's local player instead of the moving player.
Reduced redundant support-cache broadcasts when clients receive visual move updates.
1.0.13
Restored the equipped build tool's normal build table when a World mode move is cancelled by equipping a hammer or another build tool.
Prevented World mode moves from starting while a build tool is already equipped.
1.0.12
Reset relocated WearNTear geometry, support, roof, and biome caches after a move so structural support is recalculated at the new position instead of using stale world-space data.
1.0.11
Suppressed primary and secondary attack input while move mode is active, including the placement click when finishing a World mode move.
1.0.10
Fixed Require known piece = false for pieces unavailable through the current build list by selecting the temporary move table without vanilla recipe filtering.
1.0.9
Fixed Require known piece = false by preserving the one-piece temporary move table instead of letting vanilla filter it by known recipes.
1.0.8
Added multiplayer move locks so only one player can move the same object at a time.
Added lock timeout recovery for disconnects or crashes during move mode.
Cancelled move mode on player death and when World mode is replaced by normal build mode.
Allowed Require known piece = false without granting recipes or opening the full build list.
1.0.7
Added door interaction while move mode is active.
Added Require known piece config to allow moving player-built pieces before learning their recipes.
Cancelled active move mode automatically when the player starts teleporting.
1.0.6
Changed the default BuildMenu move hotkey to U.
Prevented vanilla placement updates during active World mode moves to avoid null-reference errors when no build tool is equipped.
Updated World mode to refresh the placement ghost and finish moves directly while vanilla placement is skipped.
1.0.5
Replaced separate mode toggles with a single Move mode dropdown.
Fixed World mode piece detection outside build mode by using a direct build-piece raycast.
1.0.4
Added separate build-mode and world-mode moving.
1.0.3
Synchronized moved pieces to already connected multiplayer clients immediately after the ZDO owner applies the relocation.
1.0.2
Moved multiplayer relocation to the ZDO owner instead of claiming ownership locally.
Kept child rigidbodies in their own transforms while stopping leftover motion after a move.
1.0.1
Scale the origin and ghost floor rings from the moved object's footprint size.
1.0.0
Initial Thunderstore release.
Added build-mode moving for known player-built pieces with a blue placement ghost, raised dashed link, station-range limits, and preserved network object state.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.