Live Race Map¶
The Live Race Map is a real-time FPV race track overlay. It fetches the cached track layout from RotorHazard and uses timing events to animate each pilot as a colored arrow moving around the track.
Requires TrackDraw
Configure the TrackDraw integration before adding this overlay to OBS.

Preview performance
The live overlay runs much smoother in OBS or a browser than this GIF preview. GIF compression and frame-rate limits make the map movement look slower and less fluid.
How it works¶
- On load, the overlay fetches the cached track layout from RotorHazard.
- Pilot markers appear when the heat starts and hold at start/finish until holeshot is confirmed.
- Each RotorHazard gate pass moves the pilot to the matching position on the track.
- Between timing events, the overlay interpolates movement using a learned pace model.
- Pilots fade after a stale window when no timing data is received.
URL¶
Replace [theme] with apex, dds, or lcdr.
Examples:
http://192.168.1.100:5000/stream/overlay/apex/trackdraw/map
http://192.168.1.100:5000/stream/overlay/dds/trackdraw/map
http://192.168.1.100:5000/stream/overlay/lcdr/trackdraw/map
Query parameters¶
Use query parameters to adjust map-only behavior for the OBS source size.
| Parameter | Values | Default | Description |
|---|---|---|---|
labels |
0 |
Labels shown | Hides pilot callsign badges. Useful for compact map overlays. |
By default, pilot labels are shown. Leave the query parameter off for fullscreen maps or larger side-by-side layouts where callsigns remain readable.
Example with labels hidden:
What it shows¶
| Area | Data |
|---|---|
| Track | TrackDraw route, gates, split markers, and start/finish marker |
| Pilot markers | Live pilot position, direction of travel, and pilot color |
| Labels | Pilot callsigns when labels are enabled |
| Message | Loading, missing-cache, or TrackDraw readiness errors when the map cannot render |
OBS browser source settings¶
| Setting | Recommended value |
|---|---|
| Width | Match your OBS canvas for fullscreen, or use a fixed map-overlay size |
| Height | Match your OBS canvas for fullscreen, or use a fixed map-overlay size |
| FPS | 60 for smooth pilot movement |
| Custom CSS | Keep the OBS default: body { background-color: rgba(0, 0, 0, 0); margin: 0px auto; overflow: hidden; } |
Production uses¶
| Use case | Recommended source size | Notes |
|---|---|---|
| Fullscreen race map | 1920 x 1080 |
Use as a dedicated race or commentator scene |
| Corner map overlay | 480 x 270 |
Add ?labels=0 when labels become cluttered |
| Square map overlay | 400 x 400 |
Useful for compact tracks with empty 16:9 margins |
| Side-by-side with leaderboard | 960 x 960 |
Crop or position alongside a standings source |
See OBS Scene Layouts for complete scene recipes.
Readability tips¶
- Hide labels below roughly 400 px wide.
- Use a square browser source for compact tracks.
- Crop empty track margins in OBS with Edit Transform.
- Keep the source at 60 FPS; map motion is the main visual.
- Refresh the TrackDraw cache after editing the route or timing markers.
Data behavior¶
The map listens to RotorHazard heat, race status, lap, and split updates. It uses race status internally to park, start, and freeze pilot markers, but it does not show a visible race-state label. Pilot markers hold at start/finish until timing data is available, then interpolate between TrackDraw markers so the motion stays continuous between gate passes.
For commentator scenes that also need rankings and leader context, use the Overview.