Loading...
LeagueBroadcast
Control LeagueBroadcast League of Legends broadcast overlays from a Companion surface: toggle in-game overlays, switch caster pages, drive damage/objective/teamfight recaps, pin champion details, push post-game stat screens, control rehearsal (mock) data, and keep a panic "hide everything" button under your finger. Between games it can also confirm or correct the game winner and swap blue/red sides without leaving the broadcast surface.
tier variable switches to
limited, and the Tier Entitled feedback turns false — invert it for a red warning tile
(the Status preset category ships one ready-made).| Setting | Default | Notes |
|---|---|---|
| LeagueBroadcast (discovered) | Manual | Instances found on the network via auto-discovery. Fixed app builds supply both host and port. Older builds advertised port 80 incorrectly; the module detects that legacy value and uses the Port field below. "Manual" uses Host and Port directly. |
| Host | 127.0.0.1 | Hostname or IP of the machine running LeagueBroadcast. Keep the default when Companion runs on the same machine. |
| Port | 58869 | LeagueBroadcast API port for manual connections and as the fallback for legacy/invalid discovery announcements. |
| Pairing token (remote only) | empty | Only needed when Companion runs on a different machine. Leave empty on the same machine. |
Running Companion on the same machine as LeagueBroadcast needs nothing — local connections are trusted automatically, leave the pairing token empty. To control LeagueBroadcast from a different machine (a Companion Pi, a second PC):
58869 reachable from the Companion machine. On Windows, allow LeagueBroadcast
(or TCP port 58869) through Windows Defender Firewall on the broadcast PC — the first-run
firewall prompt only covers some network profiles, so check both Private and Public if the
machines sit on an unusual network.Revoking the token in the app (or generating a new one) invalidates the old one immediately; the module then shows an Authentication Failure until the new token is entered.
| Action | What it does |
|---|---|
| Caster Button: Press | Toggle/show/hide one of your configured caster panel buttons (dropdown mirrors the in-app panel). |
| Overlay: Show/Hide | Toggle/show/hide a raw overlay type directly — no configured caster button needed. The latest-event recap buttons (latest damage/objective/teamfight) are event-driven and not listed here; use the recap actions below instead. Only works while a game is running or mocked. |
| Caster Page: Switch | Switch the active caster page. |
| Deactivate All Overlays | Panic button — hides every active overlay. |
| Damage Recap | Select the latest damage recap, or deselect it. |
| Objective Recap | Select the latest objective recap (optionally the DPS view), or deselect it. |
| Teamfight Tracking | Start/stop teamfight tracking. |
| Teamfight Overlay | Select the latest teamfight overlay, or deselect it. |
| Champion Detail: Pin Player | Pin the champion detail view to a player (Blue 1–5, Red 1–5). |
| Post-Game: Show Configured Button | Trigger one of the postgame buttons configured in the app. |
| Post-Game: Show Component | Push a post-game component directly (game/player/matchup/fearless-bans/player-stats) with current/team/player scope. |
| Post-Game: Clear Component | Clear the active post-game component. |
| Cinematic: Arm | Arm a cinematic by ID — loaded and paused at its start, ready for an instant Go. |
| Cinematic: Go | Start the armed cinematic. |
| Cinematic: Stop | Stop cinematic playback and tear it down. |
| Cinematic: Play | Play a cinematic by ID immediately (Arm + Go in one step). |
| Mock Data: Set | Turn rehearsal (mock) data on/off per phase (pre-game/in-game/post-game). |
| Series: Select | Make a series the current one (dropdown of the app's non-completed series, refreshed every 30 s). Requires the Basic tier. |
| Series: Set Best-Of | Set the current series to Bo1/Bo3/Bo5. |
| Series: Set Game Winner | Set the blue/red team as winner of the active/next game in the current series, or clear the winner. Team IDs are resolved from the current side order when pressed, so the action remains correct after a side swap. An optional game ID can target a specific game for corrections. |
| Series: Swap Sides | Swap blue/red sides — the same operation as the app's Swap Sides button. Leave the series ID empty for the current series, or enter one to target another (supports variables). |
| Keyboard Hotkeys: Set | Enable/disable the app's keyboard hotkeys (turn them off when the deck replaces them). |
| Style Set: Activate | Activate a style set for a phase (pre-game/in-game/post-game). The set dropdown is filtered by the chosen phase and refreshed every 30 s. |
All feedbacks are boolean and can restyle the button when true.
| Feedback | True when |
|---|---|
| Overlay Active | The selected overlay type is currently visible. |
| Caster Button Active | The selected configured caster button's overlay is live. |
| Caster Page Active | The selected caster page is active. |
| Game Phase Is | The game phase matches (out of game / loading / in game / paused / mocking / game over / champion select). |
| Mock Data Active | Mock data for the selected phase is on. |
| Post-Game Component Active | The selected post-game component is showing. |
| Keyboard Hotkeys Enabled | The app's keyboard hotkeys are enabled. |
| Tier Entitled | The required tier is present (invert it for a warning tile). |
| Cinematic Playing | A cinematic is currently playing. |
| Connected to LeagueBroadcast | The module's live connection to the app is up. |
The examples below use the default connection label bluebottle-leaguebroadcast. If you rename
the connection in Companion, use that label as the variable prefix instead.
| Variable | Contents |
|---|---|
$(bluebottle-leaguebroadcast:gamePhase) | outofgame / loading / ingame / paused / mocking / gameover / champselect (none until the first update) |
$(bluebottle-leaguebroadcast:blueTeamName) | Blue team name |
$(bluebottle-leaguebroadcast:redTeamName) | Red team name |
$(bluebottle-leaguebroadcast:currentSeries) | Label of the current series (match name or "Team A vs Team B"; empty when none) |
$(bluebottle-leaguebroadcast:activePage) | Active caster page name |
$(bluebottle-leaguebroadcast:activeOverlayCount) | Number of active overlays |
$(bluebottle-leaguebroadcast:postgameComponent) | Active post-game component (empty when none) |
$(bluebottle-leaguebroadcast:hotkeysEnabled) | on / off |
$(bluebottle-leaguebroadcast:tier) | ok / limited (limited after the app rejected a gated command for tier reasons) |
$(bluebottle-leaguebroadcast:appVersion) | LeagueBroadcast version |
$(bluebottle-leaguebroadcast:connectionState) | Connection state |
Presets are organized by broadcast phase so you can drag a whole page at a time:
An Authentication Failure status is always a pairing/authentication problem (remote setups) — tier limitations never change the instance status (see the first bullet after the table).
| Instance status | Meaning |
|---|---|
| OK | Connected. Tier limitations do not change the status — check the tier variable or the Tier Entitled feedback. |
| Connecting | Waiting for LeagueBroadcast (initial connect or reconnect in progress). |
| Connection Failure | LeagueBroadcast has not been reachable at the configured host:port for several reconnect attempts — is the app running? The module keeps retrying and recovers automatically once the app is back. |
| Connection Failure with "Invalid host or port" | The configured host/port cannot form a valid address (e.g. a mistyped IPv6 literal). Fix the Host/Port fields — the module does not retry until the configuration changes. |
| Disconnected | The connection dropped; the module reconnects automatically. |
| Authentication Failure with "Invalid pairing token — generate a new one in LeagueBroadcast Settings → Remote Control" | The configured pairing token was rejected (revoked, regenerated, or mistyped). Generate a fresh token in the app and paste it into the module config; the module keeps retrying and recovers as soon as the token matches. |
| Authentication Failure with "This connection needs a pairing token (LeagueBroadcast Settings → Remote Control)" | Companion reached LeagueBroadcast from another machine without a pairing token, so all control commands are refused. Generate a token in the app and enter it in the module config. On the same machine this should never appear — check that Host really points at the local machine. |
| Bad Configuration | No host configured. |
$(bluebottle-leaguebroadcast:tier) to limited, and turns the
Tier Entitled feedback false — put an inverted Tier Entitled feedback on a tile for an
always-visible warning (the Status preset category ships one ready-made). After upgrading
the tier in the app, the limited flag clears on the next (re)connect — disable/enable the
connection (or restart the app) to pick the upgrade up immediately.