Construction Sync and Copy/Paste Workflow Update
This update focuses on multiplayer construction reliability, copy/paste workflow polish, save-preview handling, debris collection, and new performance debugging tools.
Major Changes
- Selection paste now builds itself into the world. Pasted content is reconstituted in stages instead of relying on a long ghost animation. Panels are built first, then mounted devices, wires, and pipes are added after their supporting panels exist.
- Multiplayer paste visibility improved. Other connected players can see paste preview positioning, nudging, rotation, commit progress, and the staged build as it happens.
- Selection Tool usability improved. Selection targeting range has been increased, copy/cut actions now provide HUD feedback, and the rotation/anchor cube now appears on the side of the panel you clicked.
- Hosted-world save identity improved. Joined hosted worlds now resolve by stable world identity instead of creating repeated local save entries with the same name.
- Save previews improved. Manual saves refresh the preview image. Autosaves and exit/runtime saves only create a preview when one is missing, preserving intentional player-composed screenshots.
Multiplayer and Sync Fixes
- Improved construct-root synchronization during client loading and world activation.
- Queued live construct motion while clients are still restoring baseline/catchup state, then applied the newest queued motion before interaction begins.
- Panel placement and removal deltas now include affected construct-root records so clients can interpret new panels against the correct root state.
- Selection paste and cut operations now route through host-authoritative replication instead of mutating only the local client.
- Free-space panel placement from non-host clients now waits for host authority instead of creating unsafe local-only construct roots.
Copy, Paste, and Selection Tool
- Pasted panels, devices, wires, and pipes are now staged in dependency order.
- Paste progress is shown in a compact two-line HUD:
Pasting Selection 47% Panels 38/120 | Devices 2/5 | Wires 4/9 | Pipes 0/0 - Multiple paste commits are queued and reflected in aggregate progress totals.
- Paste preview targeting now follows the currently aimed panel before commit.
- Copy and cut now show feedback such as copied panel/device/wire/pipe counts.
- Selection Tool targeting range increased for copy/paste work without increasing normal interaction range.
Saves, Hosted Worlds, and Join Screen
- Manual saves always refresh the world preview screenshot.
- Autosaves, exit saves, and runtime saves only create a preview screenshot if one does not already exist.
- Duplicate local save sets with the same world identity are merged into one visible save row while preserving backup history.
- Hosted world preview thumbnails can now be advertised by the host and displayed on the join-game screen.
- Preview thumbnails are cached locally for hosted-world join rows.
Debris Collection
- Panel debris from collisions can now be collected as a junk inventory item: Panel Debris.
- Debris collection is host-authoritative and validates that the debris still exists and is close enough to the collector.
- Rejected collection attempts log useful host/client position mismatch details for debugging debris desync.
Debug and Performance Tools
- Added a new F4 Performance tab with a live stacked frame-budget graph.
- Performance graph tracks major buckets such as panel placement/removal, covering rebuilds, door-frame work, route graph rebuilds, power/signal updates, volume coverage, construct recentering, walk-proxy sync, network snapshot apply, and save/load restore.
- When the Performance tab is active, other world debug visuals and planet edge markers are suppressed so they do not interfere with profiling.
- The graph legend now uses color-matched labels for easier reading.
Notes
- Existing door-frame button links may need to be checked if the connector segment changed on an older construct. The effective door connector is now based on the oldest remaining frame segment.
- The F4 performance graph may still show high "Unmeasured" time until more engine/render/player/UI paths are instrumented.
