Creating a Live Stream Match — User Flow Overview
The five-step wizard
Every live match is created through a five-step wizard. Progress is saved in your browser at each step, so you can navigate back and forward without losing data.
Step 1 Step 2 Step 3 Step 4 Step 5
Select Stream ▶ Select Table ▶ Match Info ▶ YouTube Setup ▶ Go Live
(which OBS rig) (which table (players, (sign in, (dashboard —
& OBS config) event, format) stage or live) control match)
Quick-start checklist
Before you start, make sure:
- The server is running and accessible in your browser
- At least one Rig is configured in Admin → Tables
- At least one Table is configured and mapped to that rig
- The OBS machine for that rig is online and the browser source is loaded
- (Optional) You are signed in to YouTube if you want to auto-create a broadcast
Step summaries
Step 1 — Select Stream
Choose which OBS rig will host this match. The app shows real-time online/offline status and whether a rig is already in use. Detailed guide →
Step 2 — Select Table
Choose which table configuration to use. This determines the OBS profile, scene collection, and scene names that will be sent to the rig. Detailed guide →
Step 3 — Match Info
Enter the event name, match format, player names, and optional settings (draw/round, CueTools timer ID, PoolStat live scoring IDs). Detailed guide →
Step 4 — YouTube Setup
Optionally sign in to YouTube to auto-create a broadcast. Then choose to Stage the match (config sent, stream not started) or Go Live immediately. Detailed guide →
Step 5 — Live Dashboard
Monitor all active matches. Switch scenes between Match and Intermission, update YouTube titles, or stop the stream when the match ends. Detailed guide →
Data flow
When you click Start — Match or Start — Intermission, the PWA sends a single MQTT message containing all match data to the rig’s broker topic. OBS receives it via the browser source overlay and:
- Switches to the correct OBS scene (via OBS WebSocket)
- Starts the stream with the correct stream key (if applicable)
- Updates all scoreboard elements (player names, event, format, logos)
If YouTube authentication is active, a broadcast is created (or reused) before the MQTT message is sent, and the stream key is injected into the payload automatically.