Screen style Affects this page on screen only. Printing and Save as PDF always use the light layout.
NesFlow6

ScoreFlow Operator Manual

Gym basketball scoreboard for macOS

Version 3.1.0
macOS · Apple Silicon & Intel
September 2026

01Setting up before a game

Five minutes, start to finish. Do this once at the beginning of the night.

  1. Connect the Mac to the court display and make sure macOS is set to extended desktop, not mirroring. Mirroring puts the operator's pane on the wall, which is not what anyone wants.
  2. Open ScoreFlow. The Control pane appears on the Mac's own screen.
  3. Put the board on the wall: press Open scoreboard in the toolbar, or S. The same button — it now reads Close scoreboard — and the same shortcut put it away again.
  4. If the board opened on the wrong screen, drag it across, then press F with the board focused to go full screen.
  5. Set the team names and colors by clicking them on each team card.
  6. Check the clock length and the game rules in Settings (⚙, top right) if this league differs from the last one.
Good to know

ScoreFlow saves itself constantly. If the Mac restarts mid-game, reopen the app and the score, fouls, timeouts and rosters all come back exactly as they were. The game clock always comes back paused — it will never restart itself on the wall while nobody is looking.

02The two windows

ScoreFlow is two windows that always agree with each other. You drive one; the gym watches the other.

WindowWhere it goesWhat it does
ControlThe Mac at the scorer's tableEverything. Clock, score, fouls, timeouts, rosters, announcements.
ScoreboardThe wall displayShows the game. It has no controls and cannot be typed into — there is nothing on it to press by accident.
The ScoreFlow Control pane: clock and game controls down the left, a scoring panel for each team in the middle, announcements and the roster on the right.
Control — the operator's pane. Clock, break timer, period, shot clock and possession down the left; a scoring panel for each team in the middle; announcements and the roster on the right. Everything you touch during a game is on this one screen — Settings (⚙, top right) is the one thing that opens a dialog.
The ScoreFlow wall scoreboard showing Eagles 37 to Wolves 31, period Q3, clock 4:12, shot clock 18, and player stats tables for both teams.
Scoreboard — the wall. The same game, built to read from the far end of the gym. Player stats are switched on here. TIMEOUTS, FOULS and BONUS sit under each team's score, and the possession arrow points at the team with the ball.

03Free version and Pro

ScoreFlow runs a full game for free, forever. Pro adds the things that turn a scoreboard into a record of the game.

Every download starts as Pro for 21 days so you can try the whole thing on a real game night. After that it settles onto the free version — nothing is removed from the app and nothing stops working mid-game. The scoreboard never stops.

WhatFreePro
Game clock, score, fouls, timeouts, possessionYesYes
Shot clockYesYes
Horn, period and overtime, auto-advanceYesYes
Announcements, including custom messagesYesYes
Hide the score on the wallYesYes
Team rosters and per-player points and foulsYes
Player stats on the wallYes
Saved team libraryYes
Break timerYes
Export stats to a spreadsheetYes
Your own logo on the wallYes

Anything Pro-only is marked PRO in this manual, and in the app itself it stays visible but greyed out with the same badge — so you can always see what is there rather than wondering what you are missing.

The Control pane on the free version: a teal strip across the top, and PRO badges on the break timer, player stats and the roster panel, which are greyed out.
The free version. The game itself is untouched — clock, score, fouls, timeouts and the shot clock all work exactly as they do on Pro. The break timer, player stats and the roster panel are greyed with a PRO badge.
Getting Pro

Email support@nesflow6.com. You will be sent a key to paste into Settings → Licence; it applies immediately, with no restart and no reinstall, and it works in the middle of a game. The free-version strip has a Copy upgrade request button that fills in the details for you.

If a licence lapses

Nothing is deleted. Your saved teams, your rosters and your logo all stay on the Mac; the app simply stops showing the Pro parts until a new key is pasted in. A lapse costs you the extras, never tonight's game.

04Running a game

Everything here is on the Control pane. Nothing in this section needs Pro except the break timer.

Clock

START runs it, the same button stops it, and Space does both with the Control window focused. ADJUST nudges the clock by a minute or a second in either direction without stopping it — for the times the horn went late or the operator was slow. RESET puts it back to the period length set in Settings.

The big green bar across the bottom is the same START button, made large enough to hit without looking. It is there because the one control you reach for under pressure should not need aiming.

Break timer PRO

A separate countdown for between quarters and before tip-off, sitting right under the game clock. It is independent of the game clock on purpose, so it never collides with auto-advance. Type a label (it shows BREAK if you leave it blank), pick 1:00, 2:00 or 5:00 to start it, and −:30 / +:30 to adjust on the fly.

It takes over the wall's centre stage in amber — unmistakably not the game clock — hides the shot clock while it runs, and horns once at zero. After that it holds at 0:00 for about three seconds, then the wall returns to the period and game clock on its own. Starting the game clock clears it immediately; CLEAR does the same by hand.

The wall showing an amber break countdown in place of the game clock.
A break on the wall. Amber, centre stage, with the shot clock hidden. Nobody mistakes it for game time.

Shot clock

Switch it on with the toggle. 24 and 14 reset it; S and S do the same from the keyboard. It only ever runs while the game clock runs — it cannot tick on during a dead ball, because it is tied to the game clock rather than running on its own.

Scoring

+1, +2 and +3 on each team card. −1 takes a point back and Undo reverses the last action outright — scoring, a foul, a timeout, a period change.

PRO With a roster loaded, tap a jersey number under SCORER first and the points go to that player as well as the team. Tap TEAM instead when you do not know who scored, or do not need to. The selection clears itself after each basket so the next one cannot land on the wrong player.

Fouls

FOUL adds a team foul and, with a scorer selected, a personal foul to that player. The BONUS badge lights when the team foul count reaches the threshold in Settings. The small and + beside TEAM FOULS correct the count by hand.

Timeouts

TIMEOUT spends one and starts a countdown on the wall. The countdown lives in its own slot, so an announcement — a foul called during the timeout, say — covers it briefly and then reveals it again with the right time still on it. The and + adjust the remaining count.

Period and overtime

and + step the period. Halves and Quarters switch the format. + OT enters overtime, which resets timeouts and fouls the way a fresh period should — but deliberately leaves the clock alone, because overtime length is rarely the same as a regulation period and is your call.

Overtime is only ever entered by pressing that button. The app will not drop into OT on its own at the end of the fourth.

Auto-advance

Switched on in Settings. When the clock hits 0:00 the horn fires, the wall holds on 0:00 for a few seconds so the gym can see the zero, and then the period turns over. Any action you take during that hold — starting the clock, stepping the period, calling a timeout — cancels it. The operator always beats the automation.

Scoring and fouls deliberately do not cancel it: a buzzer-beater and a foul at the horn belong to the period that just ended.

Resetting between games

Reset scoreboard zeroes the score, fouls, timeouts and clock for the next game. It asks twice — press it, then press it again within four seconds — because it is the one button on the pane that cannot be undone by pressing something else.

Before you reset

PRO Reset clears the players' points and fouls too. If tonight's numbers matter to anyone, run Export Stats first — it takes three seconds.

05Announcements

The strip along the bottom of the wall. Free on every version, custom messages included.

With Auto-show on, scoring and fouls announce themselves — 2 POINTS — EAGLES, and the player's name when a scorer was selected. You do not have to do anything.

The four kind buttons — Score, Foul, Timeout, Custom — only change what you are composing. They never post on their own. Type your message and press Send → or Enter.

Holding a message on the wall

Pick Custom and the Send button becomes Hold →: your message goes up and stays up instead of fading after a few seconds. It is for the things that are not about the game — NEXT GAME 7:30, GYM CLOSES AT 9, a lost set of keys. Clear it with the Clear button, or by sending anything else.

The announcement card with Custom selected, showing the Hold button.
Composing a custom message. With Custom picked, Send becomes Hold →. A held message stays on the wall until you clear it.

06Hiding the score

For a game that has got away from both teams. Free on every version.

Some games run away. In a recreational league for small children, a score on the wall can stop being information and start being discouraging. Hide score, in the bar under the team cards, replaces both scores on the wall with a label of your choosing.

Only the wall changes. You keep scoring exactly as before, the announcement still names the player who scored, player points and fouls keep accumulating, and the exported spreadsheet is the true score with nothing in it to say the display was ever hidden. Turn it off and the real score is right there.

The wall with both scores replaced by two dashes, the clock and period still running normally.
The wall with the score hidden. Everything else carries on — clock, period, timeouts, fouls and the bonus indicator are all still live.

The label is yours: set it in Settings → Hide score. It shows -- unless you change it, and words like SCRIMMAGE or FRIENDLY work well because they explain the decision rather than looking like a fault. Change it while the score is hidden and the wall updates as soon as you press Save.

On the Control pane an amber WALL: chip appears beside the toggle, showing what the gym is seeing — your own pane always shows the real score, so without it there would be nothing to tell you the two disagree.

07Importing a roster PRO

A spreadsheet of numbers and names becomes a team in about ten seconds.

Pick the team first

The roster panel on the right has two tabs with the team names on them. Whichever one is highlighted is the team you are about to import into. This catches people out — check it before you import, because the file goes onto the highlighted team no matter what the file says.

The roster panel with the two team tabs at the top, the away team highlighted.
Which team you are editing. The highlighted tab is the side that Import Roster, Save Team and Delete Roster all act on.

Press Import Roster and choose a file. CSV, plain text, Excel (.xlsx, .xls) and Numbers files all work — ScoreFlow converts spreadsheets itself, so there is no need to export to CSV first.

Merge Rosters, or Replace Current Roster

If the team is empty, the file loads immediately with no questions. If the team already has players, ScoreFlow stops and asks:

A dialog offering Merge Rosters or Replace Current Roster.
Merge or replace. Merge keeps the players who are already there and adds the new ones, updating the name on any jersey number that appears in both. Replace throws the current list away first.
Before you choose Replace Current Roster

Points and fouls go with the players who are removed, and they are gone once you confirm. If the game that just finished matters to anyone, run Export Stats first.

The file name becomes the team name

Import Eagles.csv onto a side and that side is called Eagles on the wall from then on. A file named Youth League - Eagles.csv gives you the team Eagles filed under the league Youth League. The separator is a space, a hyphen and a space.

Files with a Team column

A file that lists both teams — an export from a previous game, for instance — has a Team column. ScoreFlow matches rows against the team name from the file name; if nothing matches, it takes only the rows with no team on them. Capitalisation is ignored throughout. This is deliberate: it stops a two-team file being dumped onto one side under the wrong name.

08Saved teams PRO

A library of the teams you see regularly, so the second week is faster than the first.

There is nothing to switch on

Import a roster from a file and ScoreFlow files it away for you under the name it took from the file name. Next week, pick it from the Saved teams dropdown instead of finding the file again.

Loading a team back

Choose it from the dropdown. It sets the team name and the roster in one go. If the side already has players you get the same Merge or Replace question as an import.

When the name is already taken

ScoreFlow asks whether to overwrite the saved team or save this one under a different name. Cancelling still applies the import to tonight's game — it just does not write to the library.

Removing a team

Remove… opens a picker. Choose the team and it is gone from the library. This only touches the library — whatever is on the scoreboard right now is left exactly as it is, players, points and fouls included.

The remove-from-library picker listing the saved teams.
Removing a saved team. The library only. Tonight's game is untouched.

Limits

Forty teams. At the cap, importing a new one asks you to pick which saved team to drop first.

09Roster file formats

ScoreFlow is deliberately relaxed about this. If a human can read it as a list of numbers and names, it will probably load.

Just numbers and names, no header row

4,A. Brooks 7,J. Marsh 10,T. Okafor

With a header row

Number,Name 4,A. Brooks 7,J. Marsh

Separate first and last name columns

Number,First,Last 4,Amara,Brooks 7,Jonah,Marsh

A file ScoreFlow exported

An export has Team,Number,Name,PTS,PF. Loading one back works: the points and fouls columns are ignored on import, so you get the roster without last week's numbers.

Accepted column headings

MeaningAny of these
Jersey numberNumber, No, No., #, Jersey
Full nameName, Player, Player Name
Split nameFirst / Last, First Name / Last Name
TeamTeam

Limits and rules

10Editing a roster PRO

A misspelled name or a wrong number is fixed where you see it. You never need to edit a spreadsheet and import it again.

Editing a player

Click the number, the name, the PTS or the PF in the roster table and type. It commits when you press Enter or click away; Esc abandons the edit. Changing a jersey number to one already in use is refused rather than allowed to create a duplicate.

Adding a player mid-game

Type the number and name in the row at the bottom of the panel and press Add. Latecomers are normal and this takes about four seconds.

Removing players

The × at the end of a row removes that player. Delete Roster clears the whole list for the highlighted team — the score, fouls and timeouts are left alone, because that clears the roster and not the game.

Saving your edits back to the library

Editing the table changes tonight's game only. To make the library agree — so the fix is still there next week — press Save Team.

It writes the numbers and names for the highlighted team. Points and fouls are never saved: the library is a roster, not a game, so saving in the middle of the third quarter does not bake tonight's stat line into the team you load next month. If the save would remove players from a team already in the library, ScoreFlow asks first and tells you both counts — adding a player or fixing a spelling just saves.

Selecting a scorer

The jersey numbers above the scoring buttons are the scorer picker. Tap one, then score. Tap TEAM to credit the team without a player. The selection clears after each basket.

11Exporting stats PRO

One file, both teams, three seconds.

Export Stats writes a CSV that opens in Excel, Numbers or Google Sheets. The suggested file name includes both teams and the date.

What is in the file

Team,Number,Name,PTS,PF, a row per player, both teams, plus a total row for each team. If the team score is higher than the players' points add up to — because some baskets were recorded to TEAM rather than a player — the difference appears as its own row, so the totals always reconcile.

Export before you erase

The two actions that destroy player numbers are Reset scoreboard and choosing Replace Current Roster on an import. Export first if anyone will ask.

Re-using an export as a roster

An exported file can be imported again as a roster. One wrinkle: the suggested name contains both team names, so rename it to just the team you want before importing, or ScoreFlow will not be able to tell which side the rows belong to.

12Keyboard shortcuts

These work when the Control window is focused. The scoreboard window ignores everything except F.

KeyDoes
SpaceStart / stop the game clock
SReset the shot clock to 24
SReset the shot clock to 14
HHorn
PFlip possession
ZUndo the last action
SOpen or close the scoreboard window
FFull screen — press with the scoreboard window focused
Good to know

Shortcuts are suspended while a dialog is open or while you are typing in a field, so a message containing the letter S will never reset the shot clock.

13Settings reference

The gear at the top right. Everything applies together when you press Save, except the horn sound and the logo, which change the moment you pick them.

The Settings dialog showing Game rules and Defaults and automations.
Game rules and defaults. Per-game rules at the top, operator defaults below. Defaults apply to the next game, not to the one in progress.
SettingWhat it does
Timeouts per teamHow many each team starts a game with.
Bonus thresholdTeam fouls at which the single and double bonus indicators light on the wall.
Personal foul-outPersonal fouls at which a player is highlighted as fouled out.
Timeout lengthSeconds a called timeout counts down on the wall.
Default period lengthWhat a new game, Reset scoreboard and each auto-advanced period start at.
Default shot clockWhat the shot clock resets to.
Auto-advance period at 0:00Turn the period over automatically when the clock expires, after a short hold on 0:00.
Reset clock on period changeWhether an auto-advance also resets the game and shot clocks.
Reset timeouts / team foulsNever, every period, or at half time.
Horn soundThe built-in horn, or an audio file of your own. Applies immediately.
Wall logo PROA PNG, WEBP or JPEG shown on the wall. Applies immediately.
Hide scoreThe word the wall shows in place of the scores. See section 06.
UpdatesWhether ScoreFlow checks for a new version. See section 14.
LicencePaste a key here, and read this computer's code when requesting one.
The lower half of the Settings dialog showing Hide score, Updates and Licence.
The lower half. Hide score, Updates and Licence. Most gyms set these once and never open them again.
Mid-game controls are not in here

Player stats, Hide score's switch, Auto-show and Reset scoreboard all live on the Control pane instead, because they are raised and lowered during a game and you should not have to open a dialog to reach them.

14Updates

ScoreFlow keeps itself current, and it will never interrupt a game to do it.

ScoreFlow checks nesflow6.com for a new version when it starts and every few hours after that. If there is one it downloads quietly in the background — never while the game clock is running, so it cannot compete with anything else the building is doing on the same connection — and installs it the next time you quit the app. There is nothing to press.

When an update is waiting, a line appears at the top of the Control pane saying so. A Restart now button sits beside it when the clock is stopped; it is optional, and it closes the scoreboard window, so most operators simply quit at the end of the night and get the new version next time.

Updates are free on every version, including the free one. A fix should reach everyone.

Turning it off

Settings → Updates. Switch it off and ScoreFlow makes no network connection at all. The check itself sends nothing about you, your games or your Mac — it asks whether a newer version exists and nothing else.

15Troubleshooting

What you seeWhat to do
The scoreboard opened on the Mac's screen, not the wall macOS is mirroring rather than extending. Fix it in System Settings → Displays, then drag the board across and press F.
The wall is blank or frozen Close and reopen it with S. The board redraws from the Control pane, so nothing about the game is lost.
The import went onto the wrong team Press Z. Then check which tab is highlighted in the roster panel and import again.
A player is missing after an import Usually a blank name, a jersey number outside 0–999, or a Team column whose value does not match the team name. Open the file and check that row.
The clock keeps stopping on its own Auto-advance is reaching 0:00 and turning the period over. Switch it off in Settings if this league keeps time differently.
The horn does not sound Check the Mac's output device and volume — ScoreFlow plays through whatever macOS is using. If you picked a custom sound, re-pick it in Settings.
The score on the wall is not changing Check whether Hide score is on: there will be an amber WALL: chip beside the toggle. Scoring is still being recorded.
Roster and stats are greyed out with a PRO badge The 21-day trial has finished, or a licence has lapsed. Nothing has been lost — see section 03.
A licence key will not apply Keys are tied to one computer. Check that the code in Settings → Licence matches the one the key was issued against, and that the whole key was pasted.
Something else Email support@nesflow6.com. Include what you were doing and what you expected — and the version number, from the ScoreFlow menu → About.
The thing worth remembering

ScoreFlow writes the game to disk on every change. Quitting by accident, a flat battery, a restart in the middle of the third quarter — reopen it and the game is where you left it, with the clock paused. There is no save button because there does not need to be one.