Skip to content

v1.3.0 - Enhanced status.json for OBS integration

Choose a tag to compare

@seikenxa seikenxa released this 26 May 05:00
· 12 commits to main since this release

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