Skip to content

Broadcasting to OBS

Live Mode renders to a standalone overlay page at /overlay: a transparent 1920x1080 canvas. The controller (the app window where you drive the match) and the overlay page talk to each other over a WebSocket through a small local relay, so they can run in separate windows.

The relay is a single Python file with no dependencies beyond the standard library. Download spellsplice-relay.py from the Connection section (the “clicking here” link in the yellow notice), then run it:

Terminal window
python3 spellsplice-relay.py

The Connection section with the relay download link

It prints the URL to use:

Spellsplice relay listening on ws://localhost:8765

Pass a port as an argument if 8765 is taken:

Terminal window
python3 spellsplice-relay.py 9000

Leave this terminal open for the whole broadcast. Closing it drops the connection between the controller and the overlay.

Open the Connection section and put the relay’s URL in WebSocket URL:

ws://localhost:8765

The WebSocket URL field filled in

Test Connection checks the relay without leaving the dialog. A green “Connected Successfully!” means the relay is up and reachable; “Connection failed” means it is not running, the port is wrong, or the address is being blocked.

Connection test result states

Start runs the same check, saves the URL, and drops you into the controller.

Once the URL is valid, the Connection section shows the full overlay URL under “Paste this into OBS’s Browser Source URL field:”, with a copy button.

The overlay URL with its copy button

In OBS, add a Browser Source to your scene and paste it in. Set the size to 1920 x 1080.

Adding a Browser Source in OBS

The Browser Source properties: URL, width, height

The overlay page background is transparent, so it composites straight onto your scene: no chroma key and no cropping. Order the source above your capture in the scene list.

The finished scene with the overlay above the match capture

OBS runs its Browser Source in an isolated profile, so the overlay keeps its own copy of the configuration. When you change life totals, wins, hands, or displayed cards in the controller, those updates are pushed to the overlay live over the socket.