Description
Three related problems in the Solaris navigation layer:
-
world-map.json contains fabricated data. The 183-room navigation graph included 151 synthetic rooms (IDs in the 2000-series) with hand-invented descriptions, street names, and exit connections that were never verified against the retail server or client assets. Room descriptions on the 26 named locations (IDs 146–171) were also unverified.
-
Solaris travel fallback broken. When world-map.json is absent or malformed, world-data.ts did not fall back correctly — the server would emit a warning but then proceed with a broken provisional topology that caused travel commands to misbehave.
-
No liveness endpoint. There is no HTTP endpoint for external tooling (Godot client, launcher, health monitors) to confirm the server is running without needing to speak the full ARIES protocol.
Steps to Reproduce
Bug 1: Open world-map.json and inspect any room with ID > 1000. Cross-reference its description and exit targets against SOLARIS.MAP or retail screenshots — none match.
Bug 2:
- Rename or remove world-map.json.
- Start the server (
npm run dev).
- Connect a client and issue a travel command.
- Observe incorrect or broken room placement.
Bug 3:
- Start the server.
curl http://127.0.0.1:3002/health
- Observe connection refused.
Expected Behavior
- world-map.json should contain only rooms and data verified from SOLARIS.MAP or retail in-room screenshots.
- The server should start and serve travel commands correctly even when world-map.json is absent, using a minimal provisional topology.
GET /health on port 3002 should return { ok: true, version, name } so external tooling can confirm liveness without ARIES.
Actual Behavior
- world-map.json had 183 rooms; 151 were synthetic with fabricated IDs, names, descriptions, and exit links.
- Missing world-map.json caused the provisional topology to be used incorrectly, breaking Solaris travel.
- No health endpoint existed; port 3002 was not bound at all.
Environment
- Node.js version: v20.x (engine requirement >=20.6.0)
- OS: Windows_NT
- MPBT client patch level: v1.29 retail client
Priority
Medium — server starts and combat works; Solaris navigation data is wrong and the travel fallback is unreliable.
Additional Context
- SOLARIS.MAP binary confirmed layout: 32 rooms (IDs 1–6 sector meta-rooms, 146–171 named locations), point coordinates (x==x_dup, y==y_dup), district index in
flags & 0xFF.
- Retail in-room screenshots (26 location folders, ~80 images) were analysed to extract verified room names, descriptions, and exit connections.
- Reconstructed world-map.json: 94 rooms total — 32 from SOLARIS.MAP, 27 screenshot sub-rooms, 35 stubs from exit-text references. Every room carries
_source metadata.
Description
Three related problems in the Solaris navigation layer:
world-map.json contains fabricated data. The 183-room navigation graph included 151 synthetic rooms (IDs in the 2000-series) with hand-invented descriptions, street names, and exit connections that were never verified against the retail server or client assets. Room descriptions on the 26 named locations (IDs 146–171) were also unverified.
Solaris travel fallback broken. When world-map.json is absent or malformed,
world-data.tsdid not fall back correctly — the server would emit a warning but then proceed with a broken provisional topology that caused travel commands to misbehave.No liveness endpoint. There is no HTTP endpoint for external tooling (Godot client, launcher, health monitors) to confirm the server is running without needing to speak the full ARIES protocol.
Steps to Reproduce
Bug 1: Open world-map.json and inspect any room with ID > 1000. Cross-reference its description and exit targets against SOLARIS.MAP or retail screenshots — none match.
Bug 2:
npm run dev).Bug 3:
curl http://127.0.0.1:3002/healthExpected Behavior
GET /healthon port 3002 should return{ ok: true, version, name }so external tooling can confirm liveness without ARIES.Actual Behavior
Environment
Priority
Medium — server starts and combat works; Solaris navigation data is wrong and the travel fallback is unreliable.
Additional Context
flags & 0xFF._sourcemetadata.