Storage

RaceTrack stores track definitions as JSON files and timing data in SQLite.

Root Directory

All mod data is rooted at:

config/RaceTrack

Layout Storage

Track layouts are versioned templates and are stored as:

config/RaceTrack/Layouts/<layout_id>/v<version>.json

Notes:

  • Layout JSON format key: racetrack/layout@1: used for migrating data if config changes

  • Contains relative geometry (boundaryRel, checkpointsRel, sectors).

Instance Storage

Track instances are world placements and are stored as:

config/RaceTrack/Instances/<instance_id>.json

Notes:

  • Instance JSON format key: racetrack/instance@2.

  • Contains world key, absolute boundary/checkpoints, layout linkage, enable flag, and placement origin.

Timing Database

Race timing/session data is stored in:

Notes:

  • Managed by SQLiteTimingStore via TimingPersistence.

  • Current schema target is PRAGMA user_version = 4.

Sessions Table

sessions stores session lifecycle rows, including:

  • id, display_name

  • mode, state

  • layout_id, layout_version

  • instance_ids_json

  • started_by, started_at, ended_at

Laps Table

laps stores lap records, including:

  • session_pk (FK-like link to sessions)

  • layout_id, layout_version

  • player_uuid

  • vehicle_class_id, vehicle_uuid

  • lap_ms, sector_ms_csv

  • started_at, is_valid

Players Table

players stores last-seen names for UUID resolution:

  • player_uuid

  • last_seen_name

  • updated_at

Last updated