v1.3.0 — Enhanced status.json for OBS integration
Extends status.json with four new fields that enable richer OBS Lua script automation — scene switching, overlays, and audio triggers based on race events.
New status.json fields
| Field |
Type |
Description |
in_battle |
boolean |
true when the tightest on-track gap is within the onboarddiff threshold — same condition used internally for onboard camera trigger |
sbs_active |
boolean |
true when two or more cars are running side-by-side within sbsdist meters at the same track position |
leader |
string |
Driver name of the current P1 (session leader) — useful for detecting lead changes |
game_phase |
string |
Race phase: garage / warmup / formation / green / yellow (safety car / FCY) / stopped (red flag) / finished |
Example output
{
driver: Verstappen,
position: 3,
camera: trackside,
on_replay: false,
autocam: true,
session_type: race,
game_phase: green,
time_display: 01:23:45,
gap_to_next: 0.312,
in_battle: true,
sbs_active: false,
leader: Hamilton
}
OBS automation possibilities
| Trigger |
Field to watch |
| Replay scene switch |
on_replay true/false |
| Battle overlay |
in_battle true/false |
| Side-by-side graphic |
sbs_active true/false |
| Lead change banner |
leader value changes |
| Safety car overlay |
game_phase == yellow |
| Post-race endcard |
game_phase == finished |
Implementation notes
in_battle and sbs_active are computed from existing internal state (pontosminbehind, obtime, maxsbs, sbscount) — no new tracking logic added
leader maps to the existing internal P1 driver name already tracked for formation-lap walk-through
game_phase is derived from mGamePhase (rF2/LMU API field) and stored as a member variable set each scoring update
- No changes to existing fields; fully backwards compatible