DEVELOPER Developer infrastructure, not a player feature.
Repository Map
The repository is a workspace, not one package. It holds the live server's source, native plugins, the original single-player mod, tooling, research and the design record. This map covers every top-level area. Bold marks what you most likely want.
Legend: S server · C client · Sh shared · N native plugin · T tooling · D docs/data. Status uses this site's labels.
ncm/online/resources/: the OPEN//77 resources (the server) LIVE
Each directory is one OPEN//77 resource: open77.lua (manifest), server/, client/, shared/ (incl. the vendored
shared/core/), sometimes web/.
| Path | Kind | Notes |
|---|---|---|
ncm_league/ |
S | Entry: server/main.lua. Owns the database schema: server/schema/NNN_*.lua (+ a server_script line per migration in open77.lua). Calendar, race, guide, economy, market, trade, records, graph, collapse. |
ncm_world/ |
S, C | Identity, presence, garage, fuel, vehicle condition, engineering, Race Week (server/week.lua), scars, Deep. Client: F6 panel (client/panel.lua, web/panel.html), HUD, race and venue screens, nav input. |
ncm_paddock/ |
S (+C) | The NPC league. Entry server/main.lua; world, races, garages, days, billie, markets, exchange, story, week. Client: Talk prompts, live races. Host-stub test: tools/test-paddock-host.lua. |
ncm_engineering/, ncm_workshop/, ncm_build/ |
C / S | F9 panel, Workshop bench, Build primitive. |
ncm_broadcast/, ncm_radio/, ncm_observer/, ncm_scanner/ |
S, C | Presentation and spectating. |
ncm_speed/, ncm_slipstream/, ncm_audio/, ncm_sky/ |
S / C | Speed limits, aero wake, sound, universe drawing. |
ncm_universe/, ncm_space/, ncm_aero/ |
S | EXPERIMENTAL Astronomical substrate (read-only shadow mode), Snowglobe racing, aerospace racing. |
ncm_race_week_map/, ncm_world_layer/, ncm_build_kit/, ncm_earth_underlay/ |
D | Generated by NCWE Studio. Do not hand-edit. |
ncm_link/, ncm_probe/, ncm_weather_probe/ |
S | DEVELOPER Dev-only or throwaway probes; withheld from Online. |
ncm/core/: ncm-core, the pure shared model LIVE
| Path | Notes |
|---|---|
MANIFEST.lua |
The list of modules vendored into resources by tools/ncm-build.ps1. |
init.lua |
The Core.define / NcmCore.get module system. |
competition/, session/, course/, replay/ |
Racing rules, sessions, courses, ghosts. |
economy/, parts/, machine/, engineering/, build/, aero/ |
Ledger rules, trade, parts and wear, machines, engineering, attachment, aerodynamics. |
paddock/, life/, npc/, graph/, player/, onboarding/ |
The NPC world, life sim, NPC behaviour, contacts and conversations, player surfaces (Help, landing), onboarding. |
week/, world/, space/, observer/, presentation/, vocabulary/, qa/, driver/, telemetry.lua |
Race Week, world (clock, places, weather), space, observer director, presentation, vocabulary, QA, driver/feedback, telemetry. |
tests/ |
127 test_*.lua files, run under Lua 5.4 and LuaJIT by tools/ncm-test.ps1. |
COMPAT.md |
The Lua 5.4 / LuaJIT intersection rules. |
ncm/<plugin>/: native plugins LIVE unless marked
| Path | Kind | Notes |
|---|---|---|
carrier/ |
N | Physics, parts, telemetry bridge (RED4ext C++). third_party/RED4ext.SDK is a git submodule. |
rig_bridge/ |
N | Wheels and rigs, force feedback. tests/, profiles/, third_party/SDL3. README is the user manual. |
gearbox/, pace/, broadcast/, radio/, audio/, sky/, vision/, radial/ |
N | Native sources and redscript; most have a tools/build-<name>.ps1 (audio, broadcast, pace, radial, radio, sky, vision). radio/ also holds the corpus compiler and voice-render pipeline (Python). |
slipstream/, av/, thrust/ |
N | Small tweak packages. thrust/ is the legacy hop plugin, superseded by installed components. |
host/, host_native/ |
N, S | IN DEVELOPMENT NCM 3.0 single-player host (on hold). Gates: tools/test-host-sql.lua, tools/test-host-boot.lua. |
ncwe/ |
D, T | NCWE world projects (*.ncwe), art, custom meshes, the city survey. |
snowglobe/, ksa/, assetto/, fivem/ |
N, S | HISTORICAL Cross-game experiments (Kitten Space Agency, Assetto Corsa, FiveM / Los Santos). Not on Online. |
chronicles/ |
T | HISTORICAL The retired LLM narrator (Python). Superseded by Race Week Live. |
bricks/ |
Sh | Candidate core modules awaiting review; nothing here loads. |
Everything else
| Path | Kind | Notes |
|---|---|---|
docs/ncm-online/ |
D | The design record. Start at INDEX.md. DECISION_RECORD.md, BACKLOG.md, KNOWN_BUGS.md, NOW.md, wp/MASTER_TEST.md. |
docs/research/open77/ |
D | OPEN//77 platform research and build-pinned API evidence. |
tools/ |
T | Build, test, deploy and ops scripts (PowerShell, Python, Lua). Key: ncm-test.ps1, ncm-build.ps1, o77-server.ps1, db-setup.ps1, deploy-staging.ps1, build-*.ps1, staging/publish-carrier.py, check-docs-authority.py. |
site/ |
T, D | This website: content/ (Markdown), build.py, nav.json, static/. |
ncm-localized/ |
C | HISTORICAL The NCM single-player release payload (CET mod MT_Ecosystem). Preserved, not the Online code. |
wolvenkit-projects/ |
D | WolvenKit authoring sources (journal, liveries, braking-arrow effects). |
prototypes/ |
T | DEVELOPER Isolated research copies and dev probes. They don't load on Online. |
install-records/ |
D | HISTORICAL Records and backups from deployments to the developer's own game install. |
recovery/ |
D | HISTORICAL Recovered single-player journal and localisation. |
NCM_*.md (root) |
D | HISTORICAL Single-player era plans. |
.github/ |
T | Issue templates and the Pages workflow. |
Where configuration lives
- Server tunables: each resource declares its tunables once (
Open77.tunables.declare), and the server overrides them from its owntunables.json. Kill switches follow the<name>Enabledpattern. - Server config: OPEN//77's
server.jsoncis never committed (it holds the server licence). Credentials come from environment variables, whichtools/o77-server.ps1injects from the Windows DPAPI store (tools/ncm-secret.ps1). - Native plugin config: a JSON file next to each DLL (e.g.
ncm/rig_bridge/ncm_rig_bridge.json).