MXO // MISSION CONTROL

updated 2026-08-30 · rev 28

Two projects, one goal: keep The Matrix Online alive — the original server preserved and playable, and the city reborn in Unreal Engine 5.

MXO-HD

preservation · live service · reference implementation
LIVE
Now

HOLDING PATTERN — live & healthy, development paused by owner directive Track A fully green: auth crash-loop fixed + validated, view-lifecycle confirmed in two-player session, uptime monitor with Discord alerts · all further mxo-hd work paused — the museum stays open while the crew builds the city (100% focus on UE5)

Tracks
A · Live service100%
B · Gameplay completion10%
C · Code health40%
D · Reference & docs (feeds UE5)5%
Done
  • 08-30VALIDATED: view-lifecycle fix confirmed live (relog + disconnect clean)
  • 08-30Auth crash-loop fixed: scanners crashed the process; now armored, proven
  • 08-30Uptime monitor live: 5-min service+port checks, Discord alerts on change
  • 08-30Player outage solved at the wire: launcher beta-patch rejected key exchange
  • 08-29View-lifecycle fix deployed: ack-gated deletes, ghost cleanup, leak plug
  • 08-29TWO-PLAYER TEST PASSED: first external player since 2009 jacked in
  • 08-29Router port-forwards live (UniFi); game ports verified from outside
  • 08-29Nightly DB backups live: validated dumps, 7d/4w rotation, off-box pull
  • 08-29ServerLog rotation live; deploys archive the log instead of deleting it
  • 08-29Source resurrected: .NET Core 3.1 → .NET 8, zero code changes to build
  • 08-29Fixed EF Core 5 crash that silently broke all logins on modern .NET
  • 08-29Fixed silent spawn-hang (districtId 0) and repaired affected characters
  • 08-29Fixed character creation (never persisted) + crash-proofed margin thread
  • 08-29Migrated to VPS: WinSW service, MariaDB, DNS at mxo.residual.city
  • 08-29Hardened: client-reachable SQL parameterized, ?commands admin-gated
  • 08-29AccountTool ships real RSA keypairs (byte order proven empirically)
  • 08-29First real client login, walkabout, and in-client character creation

MXO-UE5

recreation · unreal engine 5 · ue5-native server
PHASE 2
Now

THE ROOMS REMEMBER — tier-2 interiors pass live: modern props at 25,913 authentic 2005 coordinates PCG streets executed clean (51 map-traced roads + sidewalks) · 461 Fab interior assets imported (14 free packs) · semantic mapping 64 classes → modern meshes, every replacement scaled to fill the exact world volume of the original (verified to 0.1 cm on live actors) · wide/elevator doors rebuilt as mirrored double leaves · bulk placement running overnight with rolling saves

Phases
P0 · Foundations100%
P1 · Data liberation (client extraction)95%
P2 · World assembly55%
P3–P5 · Character / Systems / Online0%
Milestones
  • M0One extracted prop renders in a glTF viewer (10 do — 2026-08-29)
  • M2Full Slums district streamed at 60fps
  • M3Character creator with real clothing data (38,040 items)
  • M4Packaged build walkable start-to-finish
  • M5Two clients meet on UE5 dedicated server (VPS)
  • M6Combat vertical slice from original ability data
Inputs held
  • Plain-text packmap manifest: 119,485 entries across 217 .pkb archives (5.8 GB)
  • 1,350 prop↔FBX oracle pairs — our parsers validated 100% against them
  • 2,863,040 placed world objects (3 districts, validated by live server)
  • City Sample downloaded: 104 GB fidelity layer, harvest inventory mapped
  • CitySamplePCG plugin installed: shape-grammar building/road/rooftop generators (28 styles)

FIELD SHOTS — TRUE SILHOUETTES (2026-08-30)

District regenerated on true map-traced building shapes
v2 regeneration: buildings wear their true 2005 silhouettes — L-courts, chevrons, notches — heights from sector data
Street-level storefronts of the generated building
Street level, unlit view: storefronts, awnings, corner quoins, cornice — correct by construction

BLOCKERS

OWNER — EPIC LOGIN 7 UE-native Fab packs + hero props

Apartment Tech Props, AmericanDiner, Industry Props 6, Free Furniture, Office Pack Vol.1, Old Telephones, Old Furniture need "Add to Project" via Epic Launcher. Old Telephones unlocks the iconic blinking desk phone (4,157 placements waiting). Back Alley pack ($29.99) still undecided.

DECIDED — D-008 Modern-visuals pivot: PCG construction on authentic footprints

Owner call after the first full block-out: the real 2005 layout stays the ground truth, but shells/interiors are generated with Epic's CitySamplePCG shape grammars at City Sample quality. Extracted 2005 assets become reference-only. Spike validated same day.

AGENT DISPATCH LOG

  • t2-04Bulk tier-2 placement in flight: 25,913 records, rolling Save-All every 2k
  • t2-03Numeric proof: 20/20 live actors fill original volumes, worst error 0.1 cm
  • t2-02Pivot-agnostic placement math: bounds-center align, 24-rotation fit, UE-exact rotators
  • t2-0164 classes semantically mapped to Fab meshes; scraps/translucents caught + fixed
  • fab-02461 Fab assets imported to /Game/MXO/FabProps (14 free packs, headless)
  • street-02PCG streets EXECUTED: 51 roads + miter-offset sidewalks, 0 warnings
  • georef-01Richland map registered to world coords; true outlines + landmarks out
  • v2-01District regenerated on 125 map-traced true building shapes
  • street-01Street network derived (data) + traced (map): 8-18 km centerlines
  • int-01Interiors mapping table: 64 classes; City Sample has NO furniture
  • mon-01mxo-monitor task on VPS: state-change Discord alerts
  • wire-01pktmon capture cracked partizan outage: beta-client key-exchange reject
  • spike-01PCG spike PASSED: CHI building on a real footprint, all over MCP
  • props-02Building-props batch migrated: 422 files / 1.8 GB, sign meshes in
  • spline-01177 footprints spline-normalized; winding bug traced downstream
  • pcgdoc-01CitySamplePCG workflow decoded: spline-in, 28 styles, min-width tiers
  • tk-01UE 5.8 toolkit surveyed: PCG Primitives, Nanite Foliage, WP caveat
  • scale-01MoaProps scale re-bake ran in-editor (morning step #1)
  • moa-02.moa texture linkage cracked: per-part BASE slot; 351/374 textured
  • crn-017,355 corner pieces on all 178 buildings, variants recovered
  • night-01Polish: street floor, canyon PlayerStart, Lumen 8192, ini fix, commits
  • div-0111 diversity meshes exported+imported incl. textured subway car
  • fac-01Facade pass: 54,024 CH modules on 178 consolidated perimeters, saved
  • shell-01Shell plan: 386 cells → 178 structures, 21 km perimeter, outward normals
  • foot-01Footprints derived: cells=buildings 100%; 386 buildings mapped, SVG plan
  • mig-02Batch 5: CH building kit in (6.7 GB copied, gate held, 72s)
  • mara-03Placement VERIFIED: doors stand 2.9m, rotations right; ×100 scale bug fixed
  • mara-01Mara manifest: 29,867 rows, 10/10 byte-traced, funnel matches theory
  • mara-02MaraCentral WP map built headless: 29,867/29,867 spawned, saved
  • imp-01Bulk import DONE: 1,106/1,106 glb → UE assets, 0.01 scale baked
  • mig-01City Sample batches 1-4 migrated: ~10.6 GB, gates clean, manifested
  • exp-01Bulk export: 732/732 textured props + 374/380 moa statics
  • gob-03gob fully mapped (6 sections); placement gap EXPLAINED: 64.8% markers
  • ic-01.glb gap CLOSED: editor-Python Interchange wins (native glb, Z-up ok, 0.01 scale)
  • mob-01Mob combat diagnosed: attack path never written; fix plan ready
  • rich-01RichWorldGOs REFUTED w/ evidence; full .cod grammar decoded
  • mcp-02MCP smoke test 5/5: cube, query, screenshot, textured prop import
  • city-02City Sample inventoried: 104 GB mapped, 18-batch harvest plan
  • moa-01.moa cracked: assembly container → .mga parts; Mara props render
  • gob-02gob structural walker: exact records, false positives eliminated
  • fix-01View-lifecycle fixes implemented + deployed to prod
  • gob-01GOID table found: gameobjects.gob, 67% exact resolution
  • sect-01Sector GO record fully decoded; full quaternions recovered
  • mcp-01Unreal MCP runbook written (52 toolsets, .mcp.json config)
  • tex-02Textured .glb export: 15-prop showcase, 732/732 corpus
  • cat-02Catalog crossref: texture_ids live; sector-file gap identified
  • prop-01.prop cracked: 100% embedded geo, oracle 10→1,350, all pass
  • txa-01.txa cracked: DXT/BGRA + cubemaps, 99.91% of 16,209 files
  • cat-01catalog_build.py: 119,357 entries; placement join confirmed
  • city-01City Sample researched: PCG data-table pattern viable → D-007
  • re-01.mga format cracked; 10 props → .glb, 9/10 oracle match
  • slicer-01pkb_slicer.py built; WAV validation 6/6, oracle pairs staged
  • conv-01CONVENTIONS.md + CATALOG-SCHEMA.md written
  • wksp-01Extraction workspaces up on dev + VPS
  • survey-01cortana-python surveyed: sector files only, no geometry code
  • survey-02Rajkosto+Lithtech tooling: dead links, but FBX oracle found
  • invent-01Client inventoried: 217 .pkb + plain-text manifest
  • ops-01DB backups + log rotation scheduled on VPS
  • docs-01Governance docs drafted + committed
  • secur-01SQL parameterized + admin gate, deployed
  • acct-01AccountTool built, RSA selftest passing
  • commis-01Server commissioned as WinSW service
  • provis-01VPS provisioned: .NET 8, MariaDB, firewall
  • audit-01Linux portability audit → docs/LINUX-PORT-NOTES.md

NEXT UP

  • MXO-UE5 · P1Finish tier-2 bulk placement (in flight) + wide-shot proof pass
  • MXO-UE5 · P1Street polish: curbs, crosswalks, alleys from data-derived splines
  • MXO-UE5 · P1Shell fixes: courtyard holes (Polygon2D), C_E grammar token, 7 zero-coverage footprints
  • MXO-UE5 · P2World Partition partitioning on PCG output before district scale
  • MXO-UE5 · P2Bespoke heroes: blinking desk phone, bank vault, revolving door, payphone booth
  • MXO-HDPaused by owner directive — museum stays live, monitored