MXO // MISSION CONTROL

updated 2026-08-30 · rev 26

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

FIRST EXTERNAL PLAYERS IN-WORLD — two-player session live, first since 2009 Full path proven incl. UDP · new character persisted from outside · view-lifecycle fix deployed, awaiting playtest validation

Tracks
A · Live service95%
B · Gameplay completion10%
C · Code health40%
D · Reference & docs (feeds UE5)5%
Done — 2026-08-29
  • 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

DISTRICT REGENERATED — 156 PCG buildings on the authentic Mara grid, old shells purged Full regeneration live: tenement mix ≤8F, office stock above · rooftops on · NY/QB kits + building props migrated (4.4 GB) · 61,379 hand-placed shell actors deleted · next: streets, WP partitioning, interiors tier 2

Phases
P0 · Foundations100%
P1 · Data liberation (client extraction)95%
P2 · World assembly45%
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 — THE REGENERATED DISTRICT (2026-08-30)

Regenerated Mara district aerial after shell purge
The regenerated district: 156 grammar-built buildings with roofs on the authentic street grid, old shells gone
Street-level storefronts of the generated building
Street level, unlit view: storefronts, awnings, corner quoins, cornice — correct by construction

BLOCKERS

AWAITING PLAYTEST View-lifecycle fix validation

Fix for duplicate NPCs / ghost players / lost chat is deployed. No sessions since — the next two-player session confirms it.

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

  • 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 · P1Legacy interior placements: hide-or-delete decision, then streets from the real grid
  • MXO-UE5 · P1Owner: Save All to persist the purge; investigate C_E grammar token; orphan slabs
  • MXO-UE5 · P1Street splines from footprint gaps → PCG roads/sidewalks replace the flat floor
  • MXO-UE5 · P2World Partition partitioning on PCG output before district scale
  • MXO-HD · BValidate deployed view-lifecycle fix in next two-player session
  • MXO-HD · BParked per owner: mob attack implementation (diagnosed, plan ready)