Live, hotkey-friendly scoreboard overlay for OBS
Control scores, total wins, and a precise timer with a crisp glass UI and an auto-updating Browser Source powered by a local server.
โจ Features
๐ Timer
Count up/down with pause & reset. State persists across sessions, overlay updates live.
๐ Scoreboard
Adjust scores & total wins, swap sides, and toggle visibility from the dock or hotkeys.
๐ผ๏ธ Hashed Logos
Uploads copied into overlay/ with short hashes to
avoid browser caching issues.
โ๏ธ Settings
Server health, port control, open overlay folder, and a quick hotkeys helper.
๐ Browser Source
Auto-creates/updates an OBS Browser Source pointing at the local overlay.
โจ๏ธ Hotkeys
Bind +1/โ1, wins, swap, and show/hide in OBS โ Settings โ Hotkeys.
๐ Getting Started
- Install the plugin (or build from source) and launch OBS.
- Open View โ Docks โ Fly Scoreboard.
-
The plugin prepares
overlay/and configures a Browser Source automatically.
Windows (build quickstart)
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 ^
-DENABLE_FRONTEND_API=ON -DENABLE_QT=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF
cmake --build build --config Release
cmake --install build --config Release --prefix "E:\obs-studio"
โฌ๏ธ Install
Windows
-
Download the
obs-fly-scoreboard-windows.zip. -
Extract
obs-fly-scoreboard.dllto%ProgramFiles%\obs-studio\obs-plugins\64bit\. -
Copy the included
data/next to OBSโsdata/if present. - Restart OBS.
macOS
- Download
obs-fly-scoreboard-macos.zip. -
Place the plugin binary into
/Library/Application Support/obs-studio/plugins/. -
Ensure
data/folder sits under the same plugin directory. - Restart OBS.
Linux
-
Download
obs-fly-scoreboard-ubuntu.zip(or your distro build). -
Copy
*.soto~/.config/obs-studio/plugins/or system plugin dir. -
Copy
data/under the same plugin directory. - Restart OBS.
๐งช Build from source (macOS / Linux)
# macOS
brew install cmake qt@6
cmake -S . -B build -G Xcode -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)"
cmake --build build --config Release
# Ubuntu (Qt5 & libobs from PPA)
sudo apt update
sudo apt install -y cmake ninja-build build-essential libobs-dev qtbase5-dev qtbase5-dev-tools
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
๐ง Usage
-
Timer: type
mm:ss, choose countdown or countup, then start/pause/reset. - Scoreboard: adjust scores & total wins; toggle Swap and Show.
- Teams: set Title/Subtitle; upload logos (hashed filenames avoid cache issues).
-
Apply persists to
overlay/plugin.json; Refresh busts the Browser Source cache.
โจ๏ธ Hotkeys
Bind keys in OBS โ Settings โ Hotkeys under โFly Scoreboard:โ
| Action | Suggested Key |
|---|---|
| Home Score +1 / โ1 | Ctrl+Alt+H / Shift variant |
| Guests Score +1 / โ1 | Ctrl+Alt+G / Shift variant |
| Home Wins +1 / โ1 | Ctrl+Alt+1 / Shift variant |
| Guests Wins +1 / โ1 | Ctrl+Alt+2 / Shift variant |
| Swap Home โ Guests | Ctrl+Alt+S |
| Show/Hide Scoreboard | Ctrl+Alt+V |
Hotkeys are stored per OBS profile; the plugin restores bindings on load.
โ๏ธ Settings
- Server status + port control (restart server after port change).
- Open overlay folder shortcut.
- Inline helper describing all hotkeys and default bindings.
๐ Overlay
Browser Source URL:
http://127.0.0.1:<port>/overlay/index.html
State file (updated by the dock):
<config_path>/overlay/plugin.json
State format (excerpt)
{
"time_label": "Match Time",
"timer": { "mode": "countdown", "initial_ms": 600000, "remaining_ms": 543210, "running": true },
"swap_sides": false,
"show_scoreboard": true,
"home": { "title": "Home", "subtitle": "Team A", "score": 3, "rounds": 1, "logo": "home-1a2b3c.png" },
"away": { "title": "Guests","subtitle": "Team B", "score": 2, "rounds": 0, "logo": "guest-9f8e7d.png" }
}