The Retention
← Return to Archive
TR-000003
Archive Record

Devlog

- Shifted generated ocean water from teal into deep cobalt and navy.

Cycle 002 — Water palette separation

  • Shifted generated ocean water from teal into deep cobalt and navy.
  • Matched river and foundation water to the same palette.
  • Increased water opacity and blue depth contrast for clearer coastlines.
  • Verified all three changed materials with lightweight syntax builds.
  • Final saturation still needs an in-game visual check.
  • Adjust brightness only if the new water reads too dark or too vivid at gameplay camera distance.

Cycle 002 — Full crafting affix pool

  • Added characteristics 38-100 from the crafting design sheet to conveyor rolls.
  • Stored stable effect keys and equipment tags for future runtime wiring.
  • Marked 63 special effects as deferred so they persist without producing incorrect generic stat bonuses.
  • Confirmed the pool contains exactly 100 document entries.
  • Verified client and server files with lightweight syntax builds.
  • Deferred weapon, armor and skill-specific effects are visible and saved but intentionally have no mechanical effect yet.
  • Bind deferred effect keys when their matching weapon, armor and skill runtimes are implemented.

Cycle 002 — Crafting affix catalog

  • Replaced conveyor placeholder mods with all 37 calculator-backed characteristics from the crafting design sheet.
  • Split characteristics between calibration, offense and defense shards.
  • Added explicit stat payloads so Russian labels do not rely on text parsing.
  • Preserved and validated explicit stat payloads during authoritative server saving.
  • Fixed persisted affix totals being applied a second time from the raw affix list.
  • Verified both changed files with lightweight syntax builds.
  • Special equipment and weapon modifiers 38-98 remain disabled because the design sheet marks them as not added to the calculator.
  • Playtest affix rolls, item-tier gating and equipped stat totals.

Cycle 002 — Road junction support resolution

  • Traced the blocked platform to terrain-only footprint probes disagreeing with road support.
  • Replaced highest-road selection with continuity-based support selection across terrain and overlapping roads.
  • Made side probes use the same support stack as the actor.
  • Matched client road grounding to the nearest reachable road deck.
  • Verified both changed files with lightweight syntax builds.
  • The full repository typecheck remains red from existing unrelated type errors.
  • Walk and drive through a platform with two attached roads, then test stacked crossings and road-edge drops.

Cycle 002 — Persistence unification

  • Audited character, progression, inventory, item-instance, vehicle, cargo, building and city save paths.
  • Replaced three racing client progression writers with one server-hydrated persistence controller.
  • Added a load barrier before player join and serialized concurrent character writes.
  • Repaired repository-root detection from nested server working directories.
  • Merged duplicate building saves into the canonical file and retained backups.
  • Added world-signature resets for construction and city ownership only.
  • Added pnpm persistence:audit; canonical path, signatures and required files pass.
  • Verified server and client persistence bundles with lightweight Windows checks.
  • The first patched client launch still needs to migrate any surviving browser-local progression into the server character save.
  • Restart client and server, change level/passives/professions, reconnect and regenerate a test world to confirm both persistence boundaries.

Cycle 002 — Road edge and vertical crossing

  • Separated road-edge descent from ordinary terrain-wall traversal.
  • Exposed all road slabs at an XZ position for deterministic vertical checks.
  • Added previous-to-next-frame jetpack underside crossing detection.
  • Rebased road grounding on absolute jetpack feet height instead of server ground height.
  • Verified all four touched modules with lightweight bundle checks.
  • Runtime edge drops, underside impacts and stacked-road flight still need playtest confirmation.
  • Test walking off both sides, rising beneath a bridge and landing after flying above it.

Cycle 002 — Overlapping road collision

  • Removed competing closed-volume blockers from overlapping player-built roads.
  • Kept road deck selection based on actor feet and clearance.
  • Preserved terrain collision as a separate navigation system.
  • Verified the server world room with a lightweight bundle check.
  • Runtime transitions across dense multi-road intersections still need playtest confirmation.
  • Test two crossed bridges, two vertically stacked bridges and a road-to-terrain exit.

Cycle 002 — Split road and terrain collision height

  • Traced inaccessible terrain regions to a shared height input changed by the road underpass patch.
  • Split physical road-body clearance from terrain movement height.
  • Restored the pre-road-patch terrain wall rules without removing finite road slabs.
  • Verified the server world room with a lightweight bundle check.
  • Runtime traversal across the reported region still needs confirmation after server restart.
  • Confirm normal terrain access, new-road support and old-road underpasses together.

Cycle 002 — Road collision context hotfix

  • Made terrain footprint probes direction-independent when stepping down from an upper surface.
  • Evaluated every overlapping road slab against actor feet and head height.
  • Matched client grounding and server collision math for inclined roads.
  • Verified the client road probe and server world room with lightweight checks.
  • Runtime behaviour of newly placed and persisted road combinations still needs playtest confirmation.
  • Test leaving raised terrain, walking beneath old roads and standing on newly placed roads.

Cycle 002 — Road vertical collision and cursor recovery

  • Replaced infinite XZ road support with top, underside and actor-height checks.
  • Kept road support only for actors close enough to stand on the upper surface.
  • Added player and cargo-truck underpass clearance.
  • Built a deterministic road basis from forward, horizontal lateral and surface normal axes.
  • Added event-driven custom cursor reloading after Electron focus loss.
  • Verified all six touched modules with lightweight Windows checks.
  • Runtime clearance thresholds and alt-tab recovery still need confirmation.
  • Tune bridge underside clearance and road transitions from playtest feedback.

Cycle 002 — Construction window correction

  • Corrected the target window after the crafting and construction panels were confused.
  • Reserved RMB for camera rotation without closing construction.
  • Added shared window stacking, dragging, Escape close and viewport bounds.
  • Added a visible sticky drag header and Retention-style construction presentation.
  • Verified the component, shared controller and CSS with lightweight Windows checks.
  • Runtime confirmation of RMB rotation and Escape close is still required.
  • Continue road placement and collision tuning after UI confirmation.

Cycle 002 — Crafting window RMB guard

  • Guarded crafting close behind a real left-button press or marked stack close.
  • Kept standard Escape close ordering intact.
  • Added an explicit drag affordance and Retention-style crafting presentation.
  • Verified the panel, stack and CSS with lightweight Windows checks.
  • Runtime confirmation of the RMB-release fix is still required.
  • Continue road geometry tuning after UI confirmation.

Cycle 002 — Road range and UI input

  • Extended road placement for practical gap and elevation crossings.
  • Kept authoritative terrain support on both road endpoints.
  • Removed click-to-move so construction no longer competes with movement commands.
  • Connected crafting to the shared draggable window stack and Escape close order.
  • Added pointer capture, cancel and viewport clamping to shared window dragging.
  • Verified the six touched modules with lightweight Windows checks.
  • The expanded road slope and span still need runtime handling tests.
  • The original crafting disappearance report needs confirmation after the shared-window fix.
  • Tune road geometry and limits from the next playtest.

Cycle 002 — Road collision bridge

  • Connected frontier road geometry to local player, jetpack and cargo-truck grounding.
  • Prevented generated water state from activating while supported by a road.
  • Verified all three changed client modules with lightweight Windows checks.
  • Runtime bridge traversal still needs an Electron playtest.
  • Test road entry, exit, side edges and suspended spans with player and truck.

Cycle 002 — Road palette hotfix

  • Fixed the missing mouse-selectable road entry in Building Runtime.
  • Verified the corrected panel module with the Windows esbuild binary.
  • Road placement still needs its first Electron playtest.
  • Test two-point placement, bridge driving and the 30-metre server limit.

Cycle 002 — Road construction foundation

  • Reused the existing Building Runtime, frontier persistence and ownership structure.
  • Added two-point road placement with a live valid or blocked preview.
  • Made the final road slab shrink to the remaining distance instead of overlapping.
  • Allowed road interiors to cross gaps while requiring both endpoints to rest on authoritative terrain.
  • Blocked spans over 30 metres and excessive slopes to prevent simple skybridge abuse.
  • Verified the client build and server syntax with bounded checks.
  • Road placement and bridge driving still need an Electron playtest.
  • Road resources, repair, demolition and city permissions are temporary or incomplete.
  • Tune width, slope limits, speed bonus and concrete presentation from playtest feedback.
  • Replace the nominal credit cost with construction resources.

Cycle 002 — City cargo delivery

  • Added visible and interactive cargo exchange terminals to every generated city.
  • Completed the authoritative hand-in flow for a carried BACK CARGO pack.
  • Calculated distance directly from the pack source to the destination terminal.
  • Connected the resulting reward to the existing wallet.
  • Verified the client build and server syntax with bounded-memory checks.
  • City-tier reward modifiers are not implemented.
  • Runtime behaviour still needs an Electron playtest.
  • Tune the reward curve after playtesting real route lengths.
  • Continue the cargo loop with roads, city resources and crafting.

Cycle 002 — Cargo anti-abuse and smoothing

  • Made loaded trucks non-recallable and persistent in world space.
  • Added contextual E vehicle entry and F cargo transfer prompts.
  • Preserved individual cargo-slot coordinates after vehicle destruction.
  • Smoothed network vehicle movement on the client.
  • Verified the client build and changed server syntax.
  • Final handling feel still needs an Electron playtest.
  • Tune acceleration, turning and collision from playtest feedback.

Cycle 002 — Cargo truck foundation

  • Added authoritative vehicle ownership, persistence, movement and health.
  • Connected the truck to targeting, mob AI and direct/AoE combat routing.
  • Connected BACK CARGO to a ten-pack vehicle hold.
  • Verified the client build and server syntax under bounded-memory checks.
  • Runtime handling still needs an Electron playtest.
  • Pack weight, fuel/jetpack resource interaction, vehicle status effects and the ship are not implemented.
  • Tune truck handling and collision from playtest feedback.

Cycle 002 — First trade pack loop

  • Connected cargo purchase to the existing authoritative wallet.
  • Added back-slot state, carried visuals, ground visuals and shared pickup.
  • Persisted dropped cargo for seven days.
  • Verified the client build under a 2 GB heap cap and loaded the new server module under a 512 MB cap.
  • Movement penalty, vehicles, loading and castle delivery are not implemented yet.
  • The existing server-wide TypeScript build still has unrelated legacy errors.
  • Add carried-pack movement penalty, then vehicle cargo loading.

Cycle 002 — Legacy forest cleanup

  • Disabled rendering of the old forest population-anchor visual.
  • Verified the client production build.
  • No new known issue.
  • Continue the cargo-pack gameplay loop.

Cycle 002 — Authoritative trade teleport path

  • Replaced the unreliable debug bridge with the working command channel used by fast travel.
  • Added direct coordinate travel on the authoritative player state.
  • Verified the client production build.
  • The existing server-wide TypeScript build still fails on unrelated legacy errors.
  • Runtime-check trade-point arrival after restarting the server.

Cycle 002 — Trade point teleport repair

  • Routed trade-point DEV teleports through the connected world room.
  • Added fallback delivery paths and a visible request status.
  • Verified the client production build.
  • Final teleport position still needs an Electron runtime check.
  • Continue the cargo-pack purchase and carrying loop after runtime confirmation.

Cycle 002 — Cargo fabricator foundation

  • Added dynamic worldgen interactables for all trade points.
  • Added terminal geometry and an eight-slot logistics UI.
  • Pack purchase, carried-pack visuals, movement penalty and vehicle loading are not implemented yet.
  • Define the first purchasable generic pack and authoritative carried-pack state.

Cycle 002 — Reliable map marker removal

  • Moved treasure and trade controls into the shared filter row.
  • Removed disabled treasure/trade markers from the render list itself.
  • No known code blocker; final Electron interaction check remains with the user.
  • Continue trade-point interaction gameplay after UI confirmation.

Cycle 002 — Map marker filter repair

  • Separated treasure-spawn, trade-point and general-site marker classes.
  • Restored compact window dimensions and stretched the canvas inside them.
  • Removed LOD conflicts from player-controlled map visibility switches.
  • Electron smoke test remains with the user because automated map rendering stalls the test browser.
  • Confirm all marker switches and continue trade-point gameplay.

Cycle 002 — Map filters and space recovery

  • Restored the original shared filter behavior.
  • Isolated trade-point visibility into its own control.
  • Removed redundant legend/readout panels and expanded the map.
  • No known blocker; all filter buttons require live click verification.
  • Smoke-test every map visibility control in the local client.

Cycle 002 — Trade point test access

  • Made trade points independently visible on the map.
  • Added direct DEV teleport buttons for every generated point.
  • Fixed map Escape close-button selection.
  • Pack types and purchase gameplay are intentionally not assigned yet.
  • Visually inspect land mines and offshore platforms through DEV teleports.

Cycle 002 — Trade pack source points

  • Added full seed-based placement for land and water trade-pack sources.
  • Added offshore extractor runtime geometry and distinct map markers.
  • Removed obsolete autonomous-caravan assumptions from generated mine data.
  • Buying, carrying, vehicle loading and castle delivery are not implemented yet.
  • Pack prices remain intentionally unset until balance work.
  • Add player interaction and physical carried-pack state.

Cycle 002 — World map window integration

  • Integrated the world map into the common draggable window stack.
  • Removed the blocking dim backdrop.
  • Shared focus and Escape ordering with other UI windows.
  • No known blocker; Electron interaction still needs a live smoke test.
  • Continue faction-region content and land/water mine variants.

Cycle 002 — Minimum land coverage

  • Added a hard 50% minimum land rule to procedural world generation.
  • Generator now measures the generated geography and adjusts coast expansion before collision baking.
  • Coastline quality still needs visual review across extreme seeds.
  • Continue faction-region content and land/water mine variants.

Cycle 002 — Procedural continent generation

  • Replaced the recurring central land slab with seed-generated continent structures.
  • Weighted generation toward two or three major continents with irregular coasts and satellite islands.
  • Kept fractured worlds uncommon and supercontinents rare.
  • Verified the control world contains two similarly sized primary landmasses separated by water.
  • Exact coastline quality still needs visual review across more generated worlds.
  • Continue faction-region content and generate land/water mine variants.

Cycle 002 — Full faction circle generation

  • Faction circles are generated from seed instead of reusing fixed coordinates.
  • Collision, visual terrain, server and public manifests share the same circle layout.
  • The player map now exposes only gameplay-content filters.
  • Final faction identities and camp prefabs are still placeholders.
  • Generate land and water mine variants and add the trade-pack purchase flow.

Cycle 002 — Faction region foundation

  • Repaired three diverging world manifest copies.
  • Added variable dry world-edge sectors while preserving ocean-heavy seeds.
  • Activated the five faction-circle runtime regions.
  • Faction identities and final camp art remain placeholders.
  • Faction circles do not yet stamp a uniform plateau into terrain.
  • Add land and water mine variants, pack purchasing and castle delivery.

Cycle 002 — Hub grounding repair

  • Mounted the central hub and its interactables at the generated terrain surface.
  • Restored contextual interaction hints.
  • Non-hub legacy world props may still need individual terrain grounding if they use absolute Y positions.
  • Verify every interaction anchor outside the starting hub against generated terrain.

Cycle 002 — NPC-driven class assembly

  • Connected the existing NPC dialogue and interaction systems to class assembly.
  • Added a persistent three-branch selection window.
  • Replaced the visible 2/3/7 tree placeholder with the current selected branches.
  • Branch names and branch-granted active skills are still placeholders.
  • Define active skill pools for branches 1–9 and embed their sockets into the passive matrix.

Cycle 002 — Cursor rebuild

  • Replaced three overlapping cursor mechanisms with one CSS source.
  • Added a lightweight focus-only recovery for Electron.
  • Rebuilt the pointer artwork in the current visual language.
  • Nothing known in this patch.
  • Tune the cursor artwork only if the current shape needs another visual pass.

Cycle 002 — Visible mist and wall color

  • Raised the terrain mist from near-invisible to a light visible layer.
  • Recolored forced vertical terrain walls without touching detail geometry.
  • Mist strength remains an art-direction test.
  • Review the mist in motion and use the dedicated rollback if it is too strong.

Cycle 002 — Ground mist test

  • Removed decorative atmosphere mass geometry while keeping thin color shafts.
  • Added a reversible animated mist pass directly on upward terrain surfaces.
  • Art direction is provisional and may be reverted if it reads as a flat color wash.
  • Review mist strength and motion in Electron.

Cycle 002 — Fixed camera pitch

  • Replaced variable pitch with a fixed 42-degree angle.
  • Exact art-direction angle may need a small later adjustment.
  • Continue playtesting horizontal camera rotation and relative movement.

Cycle 002 — Full camera orbit prototype

  • Added yaw and pitch orientation state shared by camera and movement input.
  • Rotated authoritative keyboard movement into camera space before server commands.
  • Camera sensitivity and pitch limits remain provisional.
  • Playtest movement feel, targeting interaction and vertical visibility.

Cycle 002 — RMB camera rotation fix

  • Rebuilt the isometric camera rig with real RMB yaw rotation.
  • Rotation feel still needs playtesting.
  • Tune sensitivity or remove the prototype based on playtest.

Cycle 002 — Electron mode and RMB camera

  • Repaired desktop mode buttons around the connected Electron bridge.
  • Added RMB orbit yaw directly inside the authoritative camera rig.
  • Camera rotation is an unbalanced prototype and may conflict with desired right-click targeting behavior.
  • Playtest camera feel and tune or remove it.

Cycle 002 — Independent character windows

  • Reworked the character UI store to track multiple open windows.
  • Preserved legacy open and tab actions while adding explicit window operations.
  • The character views still share selected-item state, which is intentional for now.
  • Validate simultaneous character windows and Escape stack order in Electron.

Cycle 002 — Dynamic HUD and early settings

  • Expanded HUD layout coverage to dynamic panels.
  • Moved persisted window-mode loading ahead of Electron window creation.
  • The first launch after this patch may still migrate the previous local-only mode after renderer startup.
  • Split character tabs into independent windows.

Cycle 002 — Ordered UI window stack

  • Added DOM-backed window focus and close ordering.
  • Integrated the stack with both keyboard and Electron Escape handling.
  • Windows without any close control still fall through to their existing store-based Escape handling.
  • Validate mixed window opening and closing order in Electron.

Cycle 002 — Passive fullscreen drag fix

  • Clear reused movable-window styles when the passive matrix opens.
  • Nothing new found in this patch.
  • Continue Electron UI validation.

Cycle 002 — UI drag and bridge rewrite

  • Rebuilt HUD dragging around global pointer handling.
  • Connected the existing preload IPC bridge to the desktop window.
  • Runtime validation still requires a complete desktop process restart.
  • Validate HUD dragging and Escape in the restarted desktop client.

Cycle 002 — UI runtime fixes

  • Replaced static passive centering with viewport-relative centering.
  • Added explicit HUD drag surfaces and desktop Escape IPC routing.
  • Browser-native full-screen still follows browser Escape behavior.
  • Validate the fixes in a restarted desktop client.

Cycle 002 — UI interaction fixes

  • Repaired tree toolbar pointer handling and HUD panel movement.
  • Added styled reset confirmation and persistent desktop full-screen behavior.
  • Browser-native full-screen can still be exited by Escape; desktop mode uses kiosk.
  • Validate HUD movement and Escape behavior in the running desktop client.

Cycle 002 — UI handoff pass

  • Added full-screen passive presentation and search.
  • Added persistent window dragging and an explicit HUD edit/save flow.
  • Added local display and layout settings using a server-ready profile shape.
  • Settings are local only; server profile sync is not implemented yet.
  • Review every HUD anchor and window drag boundary in the running desktop client.

Cycle 002 — Passive stat visual language

  • Classified the existing stat pool into seven readable visual families.
  • Added reversible node styling without changing tree mechanics.
  • Balance and final icon art are still placeholders.
  • Review the visual density in the running client and keep or revert the layer.

Cycle 002 — Passive matrix line cleanup

  • Equalized the base readability of all passive-tree links.
  • Removed circular background guides and kept the grid.
  • Nothing new found in this pass.
  • Continue visual review of the passive matrix in the running client.

Cycle 002 — Passive matrix foundation

  • Built a deterministic graph of roughly 400 passive nodes.
  • Added three selectable origins from nine starts.
  • Added class ultimate sockets and central technical ability sockets.
  • Added connected allocation, safe refunds, reset, persistence and full stat aggregation.
  • Balance and final class identities are not defined.
  • Ultimate and technical sockets expose unlock IDs but their combat abilities are placeholders.
  • Verify layout and interaction in the running game.
  • Replace placeholder sockets after class kits are defined.

Cycle 002 — Passive matrix input hotfix

  • Fixed the pan/pointer release crash.
  • No new known blocker.
  • Continue runtime inspection of the passive matrix.

Cycle 002 — Passive matrix layout expansion

  • Filled the empty space between class sectors with connected bridge routes.
  • Expanded zoom and improved node presentation.
  • Final passive balance and class identities remain undefined.
  • Inspect the expanded layout in the running game.

Cycle 002 — 800-node matrix and class origins

  • Expanded and redistributed the graph without overlapping node clusters.
  • Added ultimate micro-grids and the central technical routing mesh.
  • Added one-of-three class origin selection with placeholder branches 2, 3 and 7.
  • Class composition is still a placeholder.
  • Ultimate and technical combat abilities are not implemented.
  • Inspect spacing and origin selection in the running game.

Cycle 002 — Uniform matrix rebuild

  • Replaced the radial cluster generator with a uniform hex-grid generator.
  • Preserved class-origin, ultimate and technical-socket mechanics.
  • Final balance and class skill implementations remain undefined.
  • Inspect uniform density and route readability in the running game.

Cycle 002 — Reverse-balance layout sandbox

  • Added a stable seeded-chaos generator for real-time passive-layout exploration.
  • Kept all 800 nodes separated while removing obvious internal symmetry.
  • Node values remain intentionally unbalanced.
  • Final class kits are not defined.
  • Use runtime inspection to identify promising clusters and routes.

Cycle 002 — Broken-network topology

  • Split the passive graph into a traversable backbone and dead-end structures.
  • Increased spacing without reducing the 800-node pool.
  • Balance remains intentionally exploratory.
  • Inspect the new route rhythm and dead-end frequency.