Broadcasting overlay to use for streaming rocket league games.
Note: The following pre-reqs are installed via the install.ps1 script
- Node.js
- SOS Bakkes Plugin - sends game data out on websocket
- SOS-WS-Relay - recieves and relays game data
OBS must be run on the same machine as Rocket League in order to capture the game but everything else (WS-Relay, Overlay Web Server, Overlay App) can be run on separate machines if preferred.
NOTE: Overlay App is hosted by the Overlay Web Server which isn't shown in this diagram
The RL_Overlay system consists of several components:
- SOS Plugin (BakkesMod): Captures game data from Rocket League
- SOS-WS-Relay: Receives and relays game data via WebSockets
- Overlay App: The frontend overlay that displays in OBS
- Control Room: A separate application for managing series, teams, and overlay settings
- PlayCEA-API: Client for the PlayCEA tournament API
- Console Apps: Utility scripts for recording, replaying and managing series data
Make sure BakkesMod is installed then in powershell window run:
cd <project root>.\install.ps1- will also create shortcuts for next steps
- Double click shortcut
start-stream.ps1or run it from a PowerShell window- This script will automatically:
- Ensure BakkesMod is running
- Configure Rocket League display settings and launch the game
- Start SOS-WS-Relay and Overlay Server in separate terminal tabs
- Open the Control Room URL in your browser
- Launch OBS Studio if not already running
- This script will automatically:
- Double click shortcut
SOS-WS-Relayand follow prompts entering default values - Double click shortcut
Overlay-Server - In OBS add new source of type Browser to OBS Scene
- Configure source as follows:
- Size Source to OBS canvas
- Double click shortcut
Test-Game
If test is successful then in the future you only need to start RocketLeague and run steps 1 and 2 to setup your stream.
In terminal:
cd <project root>\overlay-appnpm installnpm run buildnpm install -g serve(only need step 4 once to install serve command for later)
Steps 1-3 only needed once.
- Copy
<project root>\bakkes-plugins\SOS.dllto%appdata%\bakkesmod\bakkesmod\plugins - Copy
<project root>\bakkes-plugins\sos.setto%appdata%\bakkesmod\bakkesmod\plugins\settings - Add new line
plugin load sosto BakkesMod plugin load cfg at%appdata%\bakkesmod\bakkesmod\cfg\plugins.cfg
In the future just open Rocket League.
- Run Rocket League
Video showing how to get SOS running https://www.youtube.com/watch?v=QE816DBuwI4
To build run Step 1-2 in terminal.
cd <project root>\sos-ws-relaynpm install
To run ws-relay complete step 3 in terminal.
node ws-relay.js
In terminal:
cd <project root>\playcea-apinpm installnpm run build
This will build the Node.js client for the PlayCEA tournament API.
The Control Room is a separate application that provides a UI for managing series, teams, and overlay settings.
In terminal:
- Open the solution in Visual Studio:
<project root>\control-room\ControlRoom.sln - Build the solution in Visual Studio
- Run the ControlRoom project
In terminal:
cd <project root>\overlay-app- For production run:
serve -s buildOR for testing/developing run:npm start
The Control Room interface is accessible at http://localhost:3000/ctrl once the Overlay Server is running. This provides a UI for:
- Managing team information and logos
- Controlling series settings (best-of-3, best-of-5, etc.)
- Adjusting overlay appearance
- Monitoring game state
The project includes several console utilities in the console-apps folder:
- record.js: Record game data for later playback
- replay.js: Replay previously recorded game data
- series.js: Manage series configuration
To run these utilities:
cd <project root>\console-appsnode <script-name>.js
The file <project root>\bakkes-plugins\ButtonMash.dll is a BakkesMod plugin that automatically joins matches as specator. This can be installed by providing -ButtonMash switch to install.ps1 script.
The Overlay App can be configured to connect to Rocket League through a remote connection or RCONN plugin in BakkesMod and execute commands to automatically hide the UI elements when a match starts.
Steps to configure:
- Get RCONN password located in file
%appdata%\bakkesmod\bakkesmod\cfg\config.cfg. Look for line that starts withrcon_passwordand take the following value. - Add
.envfile at<project root>\overlay-appand add textREACT_APP_RCONN_PASS = <rconn password from step 1>to the file on its own line. - Add the following commands to rcon allowed list in file
%appdata%\bakkesmod\bakkesmod\data\rcon_commands.cfg
replay_guircon_refresh_allowed
The installation creates several shortcuts for quick access:
Game-Stats.lnk: View game statisticsMini-Map.lnk: Open the mini-map viewOverlay-Server.lnk: Start the overlay serverOverlay.lnk: Open the main overlaySeries.lnk: Manage series settingsSOS-WS-Relay.lnk: Start the WebSocket relayTest-Game.lnk: Run a test game scenario



