MovingDay
Relocate entire buildings and structures in Valheim with safety checks, container metal cargo dropping, and terrain replication.Changelog - MovingDay
All notable changes to the MovingDay mod by DrakosDJ will be documented in this file.
[1.1.0] - 2026-09-28
Added
- Native Console & Chat Diagnostic Commands (
mdscan,mdclean):- Registered
mdscanandmdcleanas nativeTerminal.ConsoleCommandentries. Fully accessible from both the F5 Developer Console (with tab-autocomplete andhelpinclusion) and the in-game Chat window (/mdscan,/mdclean). - Removed legacy
/movingdaycleanalias in favor of the unifiedmdcleantool. - Zero-Cheat Admin Gating: Commands are protected using native host and admin checks (
LocalPlayerIsAdminOrHost()on clients/hosts andIsAdminon servers). Eliminates any requirement fordevcommands, preventing character profiles from receiving persistent cheat flags.
- Registered
- Client-Side by Default (Server Install Strictly Optional):
- MovingDay does not require a server-side installation. All moving, building, and local scan/clean tools function completely client-side in singleplayer and when connected to unmodded dedicated/hosted servers.
- Server-side installation is only required if server admins want to perform world-wide scans and cleanups (
mdscanandmdclean all) across distant, unloaded sectors.
- Comprehensive Orphaned ZDO Detection & Diagnosis (
mdscan):- Automatically identifies all common forms of orphaned or corrupted world objects:
[Void]: Objects that fell below the world boundary ($y \le -100\text{m}$).[Deep Underground]: Pieces buried $>15\text{m}$ underneath the surface terrain mesh.[Missing Prefab]: Leftover database entries from uninstalled mods whose prefabs no longer exist.[Ghost Tag]: Preview ghosts leftover from an interrupted MovingDay session.
- Automatically identifies all common forms of orphaned or corrupted world objects:
- Enriched Identity & Contextual Reporting:
- Creator Attribution: Resolves human-readable player names from world player history (
World.m_playerHistory), active player lists, and creator hashes, distinguishing player-built structures from"World / Natural Spawn". - Dynamic Metadata: Contextual details like portal tags (
Portal: "..."), sign text (Text: "..."), chest item counts, and dropped item stacks are automatically displayed when present, while omitting irrelevant fields to maintain a clean console view.
- Creator Attribution: Resolves human-readable player names from world player history (
- Targeted & World-Wide Cleaning (
mdclean):- Clean specific ZDOs (
mdclean <ZDOID>), local areas (mdclean here [radius],mdclean origin [radius]), or perform a full world wipe (mdclean all). Runningmdcleanwith no arguments performs a safe dry-run scan.
- Clean specific ZDOs (
- Asymmetric Multiplayer Safety:
- Graceful Unmodded Fallback: Modded players connecting to unmodded servers automatically fall back to scanning/cleaning their loaded sectors locally without errors, freezes, or timeouts.
- Non-modded players can join a modded server without requiring the mod or experiencing desyncs.
Fixed
- Double Command Reporting: Resolved command execution conflict with
ServerDevcommandsby removing redundant Harmony prefixes and utilizing Valheim's nativeConsoleCommanddispatch. - Sacrificial Stone & World Altar Safety: Removed legacy startup auto-purge loops and hardened
OnZDODestroyedto eliminate crashes and prevent destruction of world-generated structures.
[1.0.9] - 2026-09-14
Fixed
- Spawnpoint Build Material Drop & Orphaned Ghost Fix: Fixed ghost preview prefabs creating persistent database ZDOs at
(0, 50, 0)and(0, 51, 0)under the Forsaken Altar / world spawnpoint, which collapsed due to zero structural support upon world reload and dropped wood/building materials on the ground.- Ghost previews are now instantiated at off-map coordinates
(0, -9999, 0)and have any attachedZNetViewcomponents immediately destroyed synchronously. - Removed
DontDestroyOnLoadfrom ghost previews to ensure preview GameObjects are transient and cannot persist across scene or world transitions. - Added an Origin Guard in
ConfirmMoveto prevent structures from ever being placed at the world origin(0, 0). - Upgraded
/mdclean(and automatic world-load cleanup on player spawn) to detect and purge orphaned or deep-underground ghost pieces near(0, 0)while safely preserving legitimate player bases, dropped items (ItemDrop), and world structures.
- Ghost previews are now instantiated at off-map coordinates
[1.0.8] - 2026-09-11
Added
- Updated to comply with the Valheim v1.0 (1.0.7) update.
- Smart Anchor Point Selection: The first piece you select (or the piece you are aiming at when pressing Move) now serves as your anchor piece. Your cursor placement, crosshair tracking, and elevation adjustments directly reference this anchor piece.
- Initial Orientation Preservation: Entering Move Mode now preserves the exact orientation of your build relative to your character, eliminating the 180-degree rotation flip when selecting chests, workbenches, or furniture you are facing front-on.
- Dynamic Surface Alignment & Multi-Story Tracking: Moving structures to multi-story floors, stone foundations, or ground terrain now tracks the exact surface your crosshair points at. Pieces and containers selected on upper floors no longer float in the air when moved to different levels.
- Anchor Piece Bottom Alignment: Fixed an issue where pieces with centered origins (such as 2m walls, 1m walls, or wood poles) appeared sunk half-way into the ground/floor when chosen as the anchor piece. The anchor piece's bottom edge now rests flush on the targeted surface while preserving the correct relative depth for any underground structures, including excavated cellars and basements.
- Ghost Preview Multi-Material Fix: Preview ghosts now properly apply translucent materials across all sub-mesh renderers for complex pieces like chests and decorative items.
- Simplified Height Reset: Pressing the configured HeightResetHotkey (default: Home) now snaps the placement ghost flush back to whatever surface the crosshair is pointing at, clearing any manual height adjustments.
[1.0.7] - 2026-07-29
Added
- World Origin Cleanup Command: Added a chat command
/movingdayclean(alias/mdclean[radius, default 150m]) to scanZDOMandatabase objects in memory near the world origin and delete them directly, bypassing Unity physics and collider checks. Includes a vertical limit filter (y < 2m) so that only buried/corrupted ZDOs are deleted, leaving player-built surface bases completely safe.
Fixed
- World Origin Spawning Fix: Fixed relocated building pieces spawning at the world origin
(0,0,0)(the Forsaken Stones) when the player teleports away to place them. This was caused by the server rejecting position updates on ZDOs that the client did not own at the moment they teleported, and a lack of ZDO change notification. The mod now claims ZDO ownership immediately on entering Move Mode and explicitly registers position changes withZDOMan.ClientChanged. - Ghost Preview ZDO Leak: Fixed ghost preview prefabs creating and leaking permanent database ZDOs during Move Mode by setting
ZNetView.m_forceDisableInit = trueduring their instantiation. This resolved the subsequent teleport/portal loading screen locks.
[1.0.6] - 2026-07-14
Added
- Interactive Click-To-Bind Configuration: Migrated all hotkeys to BepInEx
KeyboardShortcutconfigurations. This changes the BepInEx Configuration Manager GUI from a tedious drop-down list to an interactive button where players can click and press any key combination to bind. - Typing Safety Checks: Added input block safety checks to prevent selections and key commands from triggering accidentally while writing in chat or navigating menus.
- Convenient Modifier Clear Hotkey: Holding any modifier key (Shift or Control) while pressing the select keys (G or H) will now instantly clear your current selection, regardless of what you are currently targeting.
- PrefabHammer Compatibility: Improved selection logic to be more compatible with PrefabHammer.
Fixed
- Input System Compatibility: Resolved potential BepInEx input manager bugs and compatibility issues by querying raw key status via
ZInputand the new Input System directly on the shortcut'sMainKey.
[1.0.5] - 2026-07-10
Added
- Selection Persistence & Re-highlighting: Replaced the volatile selection cache with ZDOID ulong networking IDs. You can now teleport or walk far away, unloading the source area, and the selection will remain in memory. Re-equipping the build hammer automatically scans and re-highlights the pieces when they load back in.
- Convenient Selection Clearing: Pressing either selection key (default
GorH) while looking at empty space or nothing will instantly clear your entire selection. - Configurable Height Reset Key: Created
HeightResetHotkeyconfiguration setting (default:Home) to customize the height reset key. - Height Reset Modes: Pressing the height reset key snaps the preview ghost to ground level, while holding Shift and pressing it restores the original structure height offset.
Fixed
- Teleported Placement Support: Used reflection to invoke
ZNetScene.CreateObjectwhen confirming a move while source pieces are unloaded. This forces Valheim to instantly instantiate the relocated pieces' GameObjects at the destination, preventing them from being moved only in the database (invisible). - Ghost Portal Persistence: Marked custom ghost preview GameObjects with
DontDestroyOnLoadto prevent Unity from destroying them during scene transitions when teleporting.
[1.0.4] - 2026-06-30
Added
- PrefabHammer Compatibility: Added seamless selection synchronization with the PrefabHammer mod. If both mods are installed, they will automatically share the exact same selected pieces list. Highlighting pieces in one mod allows you to use the other mod's functions (e.g. moving a PrefabHammer selection, or saving a MovingDay selection as a prefab). Both mods will correctly clean up highlight overlays when selections are cleared or deselected.
- Interactive Configuration Manager Keybinds: Migrated all hotkey configuration types from text-based strings to direct KeyCode settings. This enables BepInEx Configuration Manager's keypress recorder, allowing you to bind keys by clicking a button and pressing the key.
[1.0.3] - 2026-06-27
Added
- Configurable Structure Height Adjustments: Raise or lower the placement height of the relocated structure in Move Mode using hotkeys (defaults: UpArrow / DownArrow) or Alt + Scroll Wheel. Added Home key to reset height adjustment to 0.
- Dynamic Build Tool Checks: Refined Move Mode stability to keep the placement ghost active regardless of changes to equipped tools, preventing accidental early exits from Move Mode.
[1.0.2] - 2026-06-19
Added
- AABB-based Boundary Distance Checks: Selection connected BFS checks physical boundary distance between pieces' colliders instead of center-to-center distance, ensuring roofs and large pieces (e.g. 4x2 stone walls) connect properly.
- ZDO Relocation Caching: Caches relative coordinates and ZDO references at Move Mode entry, resolving parts of the structure getting left behind if their sectors unload during the move.
- Early Safety and Metal Checks: Validates safety/metal configurations at Move Mode entry (when pressing
L) instead of placement, preventing unloading exploits and giving immediate feedback. - Early Cargo Dropping: Drops container metals immediately when entering Move Mode if
ContainerMetalAction = Drop. - Search Radius Expansion: Increased the BFS pre-filter search radius to 250m to support massive structures.
[1.0.1] - 2026-06-18
Fixed
- BepInEx Mod Icon: Corrected the packaged icon to use the new, custom MovingDay icon in a valid 256x256 PNG format, resolving R2ModMan validation issues.
[1.0.0] - 2026-06-17
Added
- Initial Release of MovingDay: A distinct, standalone structure relocation mod for Valheim.
- BFS Structure Selection: Select a structure's pieces automatically by pressing
H(connected search) orG(manual selection toggle) while holding any build tool. - Visual Preview Ghost: Real-time translucent preview ghost showing exactly how the building aligns, rotates (using the mouse scroll wheel), and behaves relative to the terrain before confirming.
- Terrain Replication & Footprint Reversion: Replicate structural excavations, basements, and leveling at the new location by holding
LeftControl(default modifier) during placement. Restores/resets the terrain back to its natural shape at the old location footprint. - Player & Container Safety Checks:
- Player safety configuration option (
PlayerSafetyActionset toBlock,Teleport, orIgnore). Automatically teleports the local player along with the structure if selected. Blocks or warns if other players are inside. - Chest safety configuration option (
ChestSafetyActionset toBlockorIgnore) to block moves if a chest is currently in use to prevent inventory desyncs.
- Player safety configuration option (
- Robust ZDO Management: Safely updates world coordinates in Valheim's local/dedicated databases, handling sector boundaries without duplicating objects or losing container contents.
- Custom Build Script: Standalone build automation (
build_movingday.bat) deploying directly to Steam BepInEx plugins and r2modman profiles.


