CueSport ScoreBoard + CueSport Scoreboard Cloud

Free CueSport ScoreBoard + CueSport Scoreboard Cloud v8.2.3

While testing I noticed a bug that prevented player stats from being create against the correct UUID. Also, I noticed that a failed player creation catch would lose stats generated previous to UUID creation.
Instant Replay / mobile Stream

  • Start Monitoring / Create Clip on mobile — replaced the old “Enable Replay Function” unlock flow with direct Instant Replay Control
  • New cloud command set_stream_monitoring (account-owner), with dock helper setStreamMonitoringEnabled
  • Clearer Stream copy (Live Stream, Statistics Display) and stronger active-button styling on mobile
Clip rename

  • Custom labels on clips (max 20 chars), stored as { path, label } with legacy path-string migration
  • Rename from mobile (✎ opposite × + modal) and dock (hover ✎)
  • Labels sync via replayClipLabels / rename_clip
  • Labels stay with clips on delete and when a 6th clip FIFO-shifts the oldest out
Active player select on dock for Modern Cloud theme wasn't clear.
Bug with accidental duplicate player creation
Small layout enhanccement to snooker break, remaining, and difference information.
# CueSport Scoreboard — Release Notes

**7.2.2 → 8.2.0** · September 2026

Major release: introducing **CueSport Scoreboard Cloud** — optional hosted or self-hosted remote scoring, multi-table management, match history, player statistics, guest controls, and live-stream discovery for the OBS CueSport Scoreboard — plus deeper **scoring** work across cue sports, with **Snooker** as a first-class focus (frames, points, fouls, free ball, breaks, and remote control). If you have any issues, as there are a lot of changes, please reach out via https://github.com/iainsmacleod/CueSport-Scoreboard/issues.

The scoreboard remains free, GPL-licensed software and continues to work locally without Cloud. Cloud adds connected services around the existing OBS dock and browser source.

---

## Headline: CueSport Scoreboard Cloud

CueSport Scoreboard Cloud connects the OBS dock, web dashboard, phones, and guest scorers through a live relay. The OBS dock remains the scoring authority: remote commands use the same match logic as controls clicked directly in OBS, then updated state is sent back to every connected screen.

### Choose hosted or self-hosted

- **Hosted service** — sign in with Google at [cuesport.macleod.systems](https://cuesport.macleod.systems), choose a plan, and let the managed service handle the relay, account, and storage.
- **Self-hosted** — run the included backend yourself with Node.js or Docker. Self-hosting is free and unrestricted, uses one server-owner account, and has no Stripe requirement.
- **Delegate without extra accounts** — create a uniquely named OBS Dock Key for each table or operator and assign Administrator, Trusted Operator, or Operator permissions. Temporary guest links provide focused mobile scoring access.
- **One Dock Key = one cloud table** — keys can be individually shared, renamed, or revoked, and each key may connect one OBS dock at a time.

1789664572056.png


---

## Remote scoring from any device

- Full mobile control for players, breaker, scores, balls, fouls, undo, race, event information, and match actions — including full **Snooker** frames/points, free ball, foul picker, and live break display.
- Responsive table list for moving between multiple connected OBS scoreboards.
- Guest links and QR codes for scorers who should not receive account or replay access.
- One active device per guest link, with immediate individual or account-wide revocation.
- An OBS Dock Owner guest role can also access Stream and Share controls.
- Connection safeguards stop remote controls from drifting when the dock or relay is offline.
- Restart Match, End Match, and Call Match Early use explicit confirmation.

1789664594548.png


1789664605293.png


1789664619730.png


---

## A new Cloud dashboard

The web dashboard now provides:

- Live cards for every connected table, including current players, game, race, score, and connection state.
- Named OBS Dock Key creation, sharing, role editing, individual revocation, and **Revoke All**.
- Unique active Dock Key names, with revoked names becoming available again.
- Account, subscription, session, and sign-out controls in dedicated navigation.
- A visual first-table setup guide covering the OBS dock, Cloud connection, key creation, and connection process.
- Stable loading screens and cleaner navigation between the dashboard and mobile controller.

Hosted service operators also receive a separate Platform Admin workspace for customer support, account inspection, complimentary access, session/key actions, and safe account deletion. Platform Admin and simulated subscriptions are not shown on self-hosted deployments.

---

## Cloud match history and player statistics

- Account leaderboard with sortable player performance and **Date Added**.
- Recent completed and in-progress matches.
- Expand a match to inspect **per-rack or per-frame detail** — for Snooker that includes frame score, fouls, highest break, who broke, and frame duration.
- Player detail filtered by opponent and game.
- Rename players across their history, edit match details, or delete incorrect records.
- Players use UUID identities, allowing multiple different players to have the same display name.
- Duplicate names are disambiguated with additional identity and activity details.
- Match history survives temporary table cleanup and OBS reconnection.
- **Kill** removes an unfinished cloud match and tells the connected dock to clear the board and return to Setup.
- Highest Break for Snooker and Longest Run for Straight Pool are tracked independently.
- Correct Break & Run and Table Run capture for 8-Ball, 9-Ball, and 10-Ball.

1789664634844.png


---

## Scoring Depth

CueSport Scoreboard’s ball-scoring path is shared across game types, and 8.2.0 tightens the rules that streamers and referees rely on:

- **All games** — Breaking Player / Active Player flow, Undo stacks, race locking, and match end controls (Restart / End / Call Match Early) stay aligned between the OBS dock and remote clients.
- **8 / 9 / 10-Ball** — correct Break & Run and Table Run recording; Win on Break / Early Game Ball options.
- **Snooker** — frames + points, red/colour sequence, foul modal with correct point values, Free Ball on the incoming visit, optional Golden Ball, shared undo through the current frame, and overlay fields for Current Break, Possible Break, Difference, and Points Remaining.
- **Mobile Snooker** — the same colour grid, foul/free-ball/undo actions, live break strip, points remaining, and dual frame/point steppers as the dock.

1789664662955.png


---

## Stream and replay improvements

- Promote an active OBS stream to the public **Live Streams** page with live match information.
- Stream promotion only remains listed while OBS reports that streaming is active.
- Mobile Stream controls can start/stop OBS streaming and manage supported overlay statistics.
- Replay controls and permissions are available to authorized remote operators.
- The disconnected OBS Remote tab now explains hosted and self-hosted Cloud options and links directly to connection settings.

---

## OBS dock and interface updates

- New optional **Modern Cloud** visual theme.
- Refreshed purple-first controls across the OBS dock, dashboard, and mobile interface.
- Improved responsive headers, navigation, score sizing, spacing, and desktop width.
- Remote connection status and setup guidance are clearer.
- Manual Active Player changes now create their own Undo entry without reversing scores or pots.
- Snooker foul, free-ball, current-break, possible-break, difference, and points-remaining behavior received extensive corrections and test coverage.
- Ultimate Pool Balls remain available alongside the existing ball variants.

1789664690138.png


1789664699472.png


1789664707421.png


---

## Security and account lifecycle

- Signed self-host tokens with account-wide session invalidation.
- Role-scoped Dock Key permissions and one-live-dock-per-key enforcement.
- Account deletion can disconnect active clients, revoke credentials, remove the authentication identity, and optionally block future signup.
- Hosted deletion warns before cancelling active Stripe subscriptions.
- Deleted-account, blocklist, and trial-history identity records use keyed fingerprints rather than retaining plaintext email addresses.

---

## Upgrade notes

- Reload the OBS control panel and browser source after updating so the new **8.2.0** assets are used.
- Cloud is optional. Existing local scoreboard operation does not require a backend or account.
- To self-host, copy `backend/.env.example` to `backend/.env`, set `DEV_AUTH_SECRET`, `DEV_AUTH_ACCOUNT_EMAIL`, and `PUBLIC_URL`, then run `npm start` or Docker Compose.
- Existing self-hosted servers should restart or rebuild their backend container after updating; changing static files alone does not reload backend modules.
- SQLite schema upgrades run on backend startup. Back up `backend/data/` before upgrading.
- Supabase deployments should apply migrations through `007_account_player_created_at.sql`.
- Managed deployments require live Stripe Price IDs, webhook signing secret, Customer Portal configuration, and the documented webhook events.

See the root [README](README.md) and [backend guide](/backend/README.md) for complete hosted and self-hosted setup.

CueSport Scoreboard 7.2.2​

image
Ultimate Pool Balls ball variant, and win animation disabled/hidden for Snooker until a snooker-specific clip exists. Patches — Snooker color-phase and Free Ball fixes, match Game Information in stats history, overlay stat cleanup, and snooker tracker reset when editing in-progress frames.

What's new​

  • Ultimate Pool Balls — new Ball Variant with dedicated ball art on the control panel and overlay
  • Snooker — win animation skipped and the Win Animation setting hidden for Snooker game / ball variant

Fixes​

  • Snooker clearance colors no longer stuck disabled after the color following the last red
  • Free Ball scores lowest ball on table (1 in reds phase; 2+ in clearance)
  • Adding frames via Stats match edit resets live snooker tracker state
  • Game Information from Setup saved and shown in match history
  • P1/P2 overlay stats: Matches Won and Racks/Frames W/L removed (H2H only)

Full release notes​

See docs/release-notes/7.2.1/RELEASE_NOTES.md.

See docs/release-notes/7.2.2/RELEASE_NOTES.md.

CueSport Scoreboard — Release Notes​

5.0.2 → 7.2.1 · August 2026
CueSport Scoreboard has grown from a focused scoreboard dock into a full match-control and statistics platform for pool, snooker, and custom formats. This document summarizes everything that changed between v5.0.2 and v7.2.1.


At a glance​

VersionHighlights
5.0.2Baseline — dual-score ball tracking (Bank / One Pocket), stream sharing, replay controls
6.0.0Player statistics (IndexedDB), overlay stats panels, name autocomplete
6.0.1Stats overlay performance and autocomplete polish
6.1.0Ball Scoring visibility, stats UI improvements
7.1.9Snooker scoring, snooker ball art, dual-score display fixes
7.2.0Game Setup redesign, Breaking Player flow, scoring Undo, Win on Break / Early Game Ball, smoke tests



Screenshots​

Setup — Game Selection & options​

Setup tab — game variant, ball variant, Win on Break / Early Game Ball

Stats tab​

Stats tab — Player Stats, Import/Export/Clear, overlay visibility

Settings — Ball Scoring​

Settings — Ball Scoring, Display Balls, Ball Set Toggle

Controls — Breaking Player & ball grid​

Controls — Breaking Player, ball tracker, Manual Adjustments

Snooker setup​

Setup — Snooker game variant


Major features since 5.0.2​

Player statistics (6.0.0+)​

  • Local IndexedDB roster (cuesport_stats) — survives instance clears; shared across all tables on the same origin.
  • Live recording of racks/frames, balls potted, breaks, B&R / Table Run (8/9/10).
  • Stats modal: Board (leaderboard), Player detail, H2H comparison.
  • Import / Export JSON backup; Clear wipes history and resets the current game.
  • In-progress match editing and Discard Match from Player / H2H views.
  • Overlay stats (P1 / P2 / H2H) — draggable panels on the browser source; per-game-type visibility toggles on the Stats tab.
  • Name autocomplete and double-click full roster browse on Setup name fields.

Snooker (7.1.9+)​

  • Full Snooker game variant with frames + points, red/colour sequence, fouls, Free Ball, Golden Ball.
  • Dedicated snooker ball images on the control-panel grid (not shown on overlay).
  • Snooker-specific undo stack (pots and fouls per frame).
  • Live overlay fields: Current Break, Possible Break, Difference, Points Remaining.

Ball Scoring & control panel (6.1.0 → 7.2.0)​

  • Player Tracking and Ball Scoring and Manual Adjustments (renamed from Manual Controls).
  • Consolidated ball tracker panel with Undo icon.
  • 8 / 9 / 10-Ball: pot game ball → auto rack; object-ball pots tracked for Balls Potted stats.
  • Bank / One Pocket: tracker pots award balls; first to 8 wins the rack.
  • Straight Pool: each pot +1 primary Balls; 14.1 re-rack when one ball remains.
  • Win on Break (8-Ball) and Early Game Ball / Win on Break (9-Ball & 10-Ball, separate settings).

Breaking Player (7.2.0)​

  • Breaking Player? / Active Player for all game types when Ball Scoring is on.
  • Grid locked until breaker is chosen; visit switching via greyed opponent button.
  • Straight Pool re-prompts after each 14.1 re-rack.
  • Undo can take back a mistaken breaker pick.
  • State persists across refresh; mid-rack refresh restores Active Player and faded balls.

Scoring Undo (7.2.0)​

  • Pool undo: ball fades, rack wins/losses, pocket pots, straight-pool pots, breaker picks.
  • Snooker undo: frame pots and fouls.
  • Reset Score, End Match, Call Match Early, and game-type changes clear undo history.

Game type switching (7.2.0)​

  • Switching variant auto-finalizes the open match (End Match / Call Match Early / Reset Score).
  • Clears scoreline, undo history, and breaker state for the new game type.

UI & quality of life​

  • Setup split into Game Selection + Game Information.
  • Dock zoom and last tab saved per instance.
  • tests/smoke_test.html — automated regression suite (100+ checks).



Breaking changes & migration​

AreaNote
StatsFirst launch after upgrade creates cuesport_stats automatically. Use Export before major upgrades.
Ball ScoringNow opt-in in Settings; not auto-enabled per game type.
Game DetailsRenamed to Game Selection; race/Best Of moved to Game Information.
Clear GameAbandons in-progress stats session; use Stats → Clear for full DB wipe.
Multiple instancesUse matching ?instance= on control panel and browser source.


Full changelog workflow: see docs/release-notes/README.md.
Yellow was too hard to read, went back to white.
Per user request I have added the ability to score points based games, as well as racks, to fully support games like Bank, One Pocket, and Snooker if one would wish. Additionally, custom game type allows you to choose point based scores or stick with simple rack/score (straight pool) summary.


1784637301930.png
Simplified the implementation of Sharing and Replay settings, hopefully making it easier to enable.

NOTES ABOUT REPLAY:

  • Media Replay Source is the Media Source in OBS where the replay will be played
  • Indicator Source Name is an OBS source that will be displayed and hidden during replay - the intention is to display a replay identifier on the stream. Example in red ellipse below.
1767207258122.png

Replay settings are defined within OBS settings:

1767207270808.png
Added support for Unity Balls

1765827844199.png
Back
Top