Skip to content

Releases: MagicZebraLtd/playoverlay

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 11:35
Immutable release. Only release title and notes can be modified.
89ade98

Line-ups, substitutions and a redesigned dashboard. The Mac builds are now signed and notarised, so they open with a normal double-click.

What's new

Line-ups. Each team in Match Settings now has a squad with shirt numbers. Add players one at a time or paste a whole team sheet, and tick who starts. Squads are saved with club presets and saved fixtures. Two new on-air screens, Home Line-up and Away Line-up, show the starters with the bench beneath, and are also available in OBS as pinned views. All of this is optional: with no players entered, everything works as before.

Scorers and substitutions. For a team with a line-up, tapping a goal key asks who scored (pitch first, then the bench, plus No scorer, Own goal and Not a goal), and the goal banner shows the shirt number, for example "9 Ali Smith". The new Substitutions tab logs a change in two taps, off then on, with a substitution banner to match the goal banner.

Screen rotation. Cycle the display through chosen screens every few seconds for the pre-match and half-time. It stops as soon as you switch screens yourself or kick off, and it can start by itself at half-time.

A redesigned dashboard. The preview and the clock stay on screen for the whole match, with everything else in two tab groups, so a landscape tablet shows the whole dashboard without scrolling. Keys are drawn like a vision mixer's: red is on air, green is running. There is a dark mode and a choice of three dashboard sizes, under System Settings > Appearance.

Signed Mac builds. The macOS apps for Apple Silicon and Intel are signed by Magic Zebra Limited and notarised by Apple. There is no more Open Anyway step, and no "damaged" warning. The Windows installer is not signed yet, so Windows may still show a SmartScreen prompt.

Also. A new logo, and a Support PlayOverlay link (Ko-fi) in the dashboard and the Help menu. PlayOverlay stays free.

Fixes

  • Correcting a substituted player's name in the line-up now updates the substitution and goal logs too, so the old name no longer stays on the pitch.
  • No scorer on a goal that already has a scorer now clears it. Closing the picker still leaves it as it was.
  • In extra time, the clock no longer runs into the time remaining on smaller screens.
  • Electron is updated to 43.7.9, with its security fixes.

Downloads

Platform File
macOS (Apple Silicon) PlayOverlay-darwin-arm64-0.22.0.zip
macOS (Intel) PlayOverlay-darwin-x64-0.22.0.zip
Windows PlayOverlay-0.22.0.Setup.exe
Linux (Debian, Ubuntu) playoverlay_0.22.0_amd64.deb
Linux (Fedora, RHEL) playoverlay-0.22.0-1.x86_64.rpm

Full changelog: v0.21.0...v0.22.0

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 20:11
Immutable release. Only release title and notes can be modified.
v0.21.0
bb463ae

A big release for anyone running back-to-back fixtures: a goal log with an automatic on-air goal banner, saved clubs, a one-click New match, and a long list of fixes that make a live match safer to run, especially after a crash.

It also fixes logo and graphic uploads, which were failing with an error on every platform (#34).

What's new

Goal log and goal banner. Every goal is logged with its minute, including stoppage time (45+2'), whether it comes from the dashboard, a keyboard shortcut, the Stream Deck or the phone. A goal banner (GOAL, team, minute) goes on air automatically as each goal goes in, with no typing needed. You can switch that off in the new Goals panel. At half-time or full-time, open the panel to add scorers or show a banner again, and the end screen lists each team's scorers. Undoing a goal removes it from the log too.

Club presets. Save a club's name, abbreviation, colours and logo once with Save as club, then fill the home or away team in one step with Load a saved club. Saving a club again under the same name updates it. The Saved clubs panel in Match Settings lets you delete them.

New match. One button, next to undo and redo, resets the score, clock, penalties, goals and on-air graphics between fixtures and puts the match title on air, ready for the next kick-off. Your team settings are kept.

Fixes

Uploads

  • Logo and custom graphic uploads work again (#34).
  • Uploads are checked before they start, with a clear message if a file is the wrong type or too large, and a double-click can no longer upload the same image twice.
  • Images whose file names contain #, ? or % now show correctly on the display and in OBS.

The match clock and undo

  • Undo never rewinds the running clock. For example, undoing +3 added time at 47:00 leaves the clock at 47:00.
  • Pressing Stop twice (easy to do on a Stream Deck) no longer makes the next half start again from the first half.
  • Starting the next half directly no longer carries over the previous half's added time.
  • Undoing a screen change no longer brings back an overlay you have since taken off.
  • The score and added-time boxes apply your value when you press Enter or leave the box, so half-typed numbers never reach the stream. Added time only accepts whole minutes.

Crash recovery and outputs

  • After a crash or restart, the display, OBS and the phone stay blank until you restore or dismiss the previous match, instead of briefly showing 0-0.
  • While the restore offer is showing, the phone and the system-wide shortcuts wait until you answer it on the laptop, so a tap can't overwrite the recovered score.
  • If the dashboard or display window stops responding, it recovers by itself, and the match is saved first so it can be restored.
  • Opening PlayOverlay a second time no longer opens extra windows over your output.
  • The computer no longer goes to sleep during a match run from the phone or Stream Deck.
  • Unplugging and reconnecting the HDMI output puts the display back on its screen, fullscreen again.

Graphics and settings

  • Renaming, editing or deleting a graphic that is on air updates or removes it on air, and graphics that are on air are marked in the Custom Screens list.
  • Restoring a saved fixture no longer keeps the previous team's logo, venue or kick-off time.
  • Keyboard shortcuts stay active while a settings menu is open and only pause while you type in a box. The shortcut recorder tells Ctrl and Cmd apart on macOS and refuses combinations the app already uses, such as undo and copy.
  • The Stream Deck reconnects after being unplugged or after the computer sleeps.
  • Failed saves of fixtures and custom graphics now show a message and let you try again.

Phone remote

  • A wrong PIN guessed on another device can no longer lock your phone out, and your phone reconnects on its own after a Wi-Fi drop.
  • The clock button is now Pause / Resume and is greyed out between halves. Use Next phase to start each half.
  • The phone notices a lost connection within seconds, and the link shown in settings prefers your real network over virtual or VPN adapters.

Good to know when you upgrade

  • The goal banner is on by default. Switch it off in the Goals panel if you don't want it.
  • Keyboard shortcuts now stay on while a settings menu is open.
  • New on-screen text in all eight languages is machine-translated. If a translation reads badly, please open an issue.

Downloads

Platform File
Windows PlayOverlay-...Setup.exe
macOS (Apple Silicon) PlayOverlay-darwin-arm64-....zip
macOS (Intel) PlayOverlay-darwin-x64-....zip
Linux (Debian/Ubuntu) playoverlay_..._amd64.deb
Linux (Fedora/RHEL) playoverlay-...x86_64.rpm

The binaries are not code-signed, so your operating system will warn you the first time you run each one. It only comes up once.

Windows: SmartScreen may show "Windows protected your PC". Click More info, then Run anyway.

macOS: after unzipping, move PlayOverlay.app to Applications, then right-click it and choose Open and confirm once. If macOS still reports the app is damaged, remove the quarantine attribute it added on download and open it again: xattr -cr /Applications/PlayOverlay.app.

Full changelog: v0.20.1...v0.21.0

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 15:30
Immutable release. Only release title and notes can be modified.
v0.20.1
ce2bc60

A patch release that fixes a crash on launch.

Earlier builds could fail to start with "A JavaScript error occurred in the main process, Cannot find module". The packaged app was not including the code libraries it needs at runtime. This release bundles them into the app so it launches correctly on Windows, macOS, and Linux.

If v0.20.0 or an earlier version would not open for you, download this version instead and it will run normally. Everything from v0.20.0 is included, this only fixes the startup crash.

Downloads

Platform File
Windows PlayOverlay-...Setup.exe
macOS (Apple Silicon) PlayOverlay-darwin-arm64-....zip
macOS (Intel) PlayOverlay-darwin-x64-....zip
Linux (Debian/Ubuntu) playoverlay_..._amd64.deb
Linux (Fedora/RHEL) playoverlay-...x86_64.rpm

The binaries are not code-signed, so your operating system will warn you the first time you run each one. It only comes up once.

Windows: SmartScreen may show "Windows protected your PC". Click More info, then Run anyway.

macOS: after unzipping, move PlayOverlay.app to Applications, then right-click it and choose Open and confirm once. If macOS still reports the app is damaged, remove the quarantine attribute it added on download and open it again: xattr -cr /Applications/PlayOverlay.app.

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:52
Immutable release. Only release title and notes can be modified.
v0.20.0
7d3a947

A foundation and operator quality-of-life release, focused on making a live match safer and easier to run.

Highlights

  • Undo and redo. Reverse and replay live match actions with Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z, or the buttons in the control rail. It is careful with the clock: undoing a goal reverts only the score and leaves the running clock alone, while undoing a phase change correctly restores both the phase and its clock.
  • Go live check. A one-click checklist to run before kickoff: display connected and on a separate screen, output window ready, OBS browser source and phone remote actually running if enabled, missing team logos or graphics, keyboard shortcut conflicts, low disk space, and any unresolved crash-recovery snapshot. It only looks, it never changes anything.
  • Diagnostics export. A one-click support bundle in System Settings with app and system info, sanitized settings, recent logs, and recent actions. Safe to share and it contains no passwords, so it is easy to attach when reporting a problem.

Also in this release

  • Persistent logging, so a problem can be diagnosed after the fact instead of vanishing to a console no one sees.
  • The on-screen goal button now behaves like the keyboard, Stream Deck, and phone paths: clearer undo labels and no risk of clobbering a goal added from another device.
  • Refreshed documentation screenshots for the current interface.

Notes

  • The binaries are not code-signed or notarized (signing certificates cost money and this is a free project), so your operating system will warn you the first time you run each one. It only comes up once. See the notes below for the one-time steps per platform.
  • The interface and on-air graphics ship in eight languages. The translations are machine-generated, so if you spot a wording issue please open an issue.

Downloads

Platform File
Windows PlayOverlay-...Setup.exe
macOS (Apple Silicon) PlayOverlay-darwin-arm64-....zip
macOS (Intel) PlayOverlay-darwin-x64-....zip
Linux (Debian/Ubuntu) playoverlay_..._amd64.deb
Linux (Fedora/RHEL) playoverlay-...x86_64.rpm

Windows: SmartScreen may show "Windows protected your PC". Click More info, then Run anyway.

macOS: after unzipping, move PlayOverlay.app to Applications, then right-click it and choose Open and confirm once. If macOS still reports the app is damaged, remove the quarantine attribute it added on download and open it again: xattr -cr /Applications/PlayOverlay.app.

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 16:38
Immutable release. Only release title and notes can be modified.
v0.19.0
60d5a97

What's Changed

  • Relicense under MIT with separate trademark terms by @JosephMaynard in #22
  • Clarify README languages section, add Linux downloads by @JosephMaynard in #21
  • v0.19.0: LAN phone remote, reliability, data-integrity, accessibility, licence notices by @JosephMaynard in #23

Full Changelog: v0.18.0...v0.19.0

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 08:34
Immutable release. Only release title and notes can be modified.
eb88c57

PlayOverlay now speaks eight languages. The interface and the on-air graphics can both be shown in French, German, Italian, Spanish, and Portuguese, alongside English.

Languages

  • Eight languages: English, French, German, Italian, Spanish (Spain and Latin America), and Portuguese (Portugal and Brazil). The regional variants use the right wording for each region, including the football terms.
  • Pick a language on first launch. PlayOverlay suggests one based on your system, and you can change it any time under System Settings > Language. Your choice applies to both the operator dashboard and the on-air graphics, so a French match can go out with French phase names and labels.
  • Team names, abbreviations, and venues are always shown exactly as you type them.

The translations are machine-generated and have not been checked by native speakers, so some wording may read a little off, especially the on-air football terms. If you spot a mistake, please open an issue and it will get fixed.

Tidier settings

The settings menus were reorganised. Language, Scoreboard Clock, OBS Browser Source, and Keyboard Shortcuts now live in System Settings, each in its own collapsible panel. Window Settings keeps the key colour and the window controls. Nothing changed about how any of it works.

Install notes

Binaries are unsigned. On first launch:

  • Windows: if SmartScreen appears, click More info, then Run anyway.

  • macOS: unzip, move PlayOverlay.app to Applications, then if it is reported as damaged or unidentified run once in Terminal:

    xattr -cr /Applications/PlayOverlay.app
    
  • Linux: install the .deb with sudo apt install ./playoverlay*.deb or the .rpm with sudo dnf install ./playoverlay*.rpm.

Prefer building from source? See the README.

Privacy

No telemetry or crash reporting. The only network request is the update check against the public GitHub API.

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 17:32
Immutable release. Only release title and notes can be modified.
978e50b

New ways to use PlayOverlay across multiple outputs, plus reliability and platform work. Now with Linux builds.

Highlights

  • Pinned browser-source views. One running app can now feed different screens to different places at the same time. Add ?screen=scoreboard (or any built-in screen) to the OBS browser-source URL to pin that page, so OBS can show the score bug while a venue TV shows the spectator scoreboard, both from the same app. Window Settings has a ready-made copyable scoreboard URL.
  • Stream Deck pagination. The deck now pages through every match phase and every screen instead of stopping at five, so the scoreboard screen and generic-mode periods are all reachable. The page selection also stays safe if you change match settings while paged.
  • Kick-off countdown. Set a kick-off time and the match title screen shows a live "Starts in M:SS" countdown before the match.
  • Better crash recovery. The restore-previous-match snapshot now remembers the match settings it was taken with, so the clock and phases come back correct even if you had changed settings since.

Platforms

  • Linux builds are now published: .deb (Debian/Ubuntu) and .rpm (Fedora/RHEL) alongside Windows and macOS.

Under the hood

  • The match clock was reworked for robustness, stricter type checks were turned on across the codebase to catch bugs earlier, and the app moved to Vite 7. None of this changes how the app behaves, but it makes future releases safer.

Install notes

Binaries are unsigned. On first launch:

  • Windows: if SmartScreen appears, click More info, then Run anyway.

  • macOS: unzip, move PlayOverlay.app to Applications, then if it is reported as damaged or unidentified run once in Terminal:

    xattr -cr /Applications/PlayOverlay.app
    
  • Linux: install the .deb with sudo apt install ./PlayOverlay*.deb or the .rpm with sudo dnf install ./PlayOverlay*.rpm.

Prefer building from source? See the README.

Privacy

No telemetry or crash reporting. The only network request is the update check against the public GitHub API.

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 13:25
Immutable release. Only release title and notes can be modified.
96bc17e

A new spectator scoreboard plus a large batch of reliability fixes from a deep review of the whole codebase.

New: spectator scoreboard

Some venues use PlayOverlay to show the score directly to spectators on a big screen. The new Scoreboard screen fills the whole display with no key colour visible: both teams in their club colours with logos and scores, a labelled TIME clock showing the time of day (24-hour or AM/PM, configurable under Window Settings), and a labelled MATCH clock. It scales to any resolution and is designed for 16:9 but flexes to other shapes.

Tip for scoreboard-only venues: turn off "Auto switch screens" so starting a half does not switch the display to the score bug.

Reliability fixes

  • Upgrading from 0.14 with an old encrypted config no longer crash-loops the app; the unreadable config is set aside and the app starts cleanly.
  • The match clock now survives laptop sleep and system clock corrections without leaping or going negative.
  • Keyboard shortcuts now respect the "Auto switch screens" toggle (they previously used a stale value).
  • The restore-previous-match prompt can no longer roll back a live match after play has started, and no longer hides behind the update notification.
  • The "Restore Saved Match Settings" dialog can now be cancelled, and restoring a save fully replaces the current settings instead of part-merging them.
  • Buttons respond to normal clicks and keyboard activation, and no longer trigger on right-click.
  • Typing in the timer settings can no longer stop a running clock mid-keystroke; values commit when you finish editing.
  • The score bug no longer clips double-digit scores or stoppage-time chips.
  • Match Title and End Screen no longer flash on screen when the display or an OBS browser source first loads.
  • The OBS browser source now exchanges heartbeats, so idle connections stay healthy and dead ones reconnect within seconds.
  • The display window recreates itself if closed accidentally during a stream.
  • Settings storage is validated and written far less often during matches, and corrupt settings degrade gracefully instead of crashing shortcut registration.

Housekeeping

  • Update checks understand pre-release tags.
  • Security hardening around file deletion, URL opening, and the local browser-source server.
  • Dependency and CI updates.

Install notes

Binaries are unsigned; see the v0.15.0 notes or the README for the one-time Windows SmartScreen and macOS quarantine steps.

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 12:57
Immutable release. Only release title and notes can be modified.
d5cfac7

The first public release of PlayOverlay: a free desktop app for adding live score and match clock graphics to sports streams. Built for community football, now open to everyone, and free to use for anything, including commercial streaming work.

Highlights

  • OBS browser source output. Skip the second display and chroma key entirely: enable the local server in Window Settings and add http://127.0.0.1:4750/ as an OBS Browser Source. The graphics render on a transparent background and update live. Off by default, localhost only.
  • Team logos on the score bug. Upload a logo per team in Match Settings and it appears beside the team name, in the app and in the browser source.
  • Generic timer mode. Not playing halves? Switch the timer to a configurable number of named periods (for example 4 x 12 minute quarters) for other sports.
  • Match options. Extra time and the penalty shootout tracker can now be toggled off per match, and a kick-off time can be shown on the match title screen.
  • Rebindable keyboard shortcuts. Change the next phase and goal shortcuts in Window Settings. Defaults are unchanged, and each shortcut also gets a system-wide variant with Alt added so it works while OBS is focused.

Reliability

  • The match clock is now driven by the system clock, so it cannot drift over a half.
  • Crash recovery: score, clock, and match state are saved continuously. If the app closes mid-match, you are offered a restore on relaunch, with the clock paused.
  • Keyboard shortcuts are fully disabled while typing in a text field, and a stray next phase press after full time no longer resets the match.
  • Stream Deck connection failures are handled cleanly instead of crashing when no deck is plugged in.

Install notes

These binaries are not code-signed or notarized, so your OS will warn you on first launch:

  • Windows (playoverlay-...Setup.exe): if SmartScreen appears, click More info, then Run anyway.

  • macOS (playoverlay-darwin-arm64 for Apple Silicon, playoverlay-darwin-x64 for Intel): unzip, move PlayOverlay.app to Applications, then if macOS reports the app is damaged or unidentified, run once in Terminal:

    xattr -cr /Applications/PlayOverlay.app
    

Prefer not to trust an unsigned binary? Building from source takes a few minutes; see the README.

Privacy

PlayOverlay contains no telemetry or crash reporting. The only network request is an update check against the public GitHub API, which downloads nothing automatically.

Licence

Free to use, modify, and redistribute, including commercially. You may not sell the software itself or rebrand it. See LICENSE for the exact terms.