Open play, end to end
Run a session without the whiteboard
Everything a host does in ScoreMaster, in the order they do it: make an account, set up an open play, get people checked in, build and generate lineups, record scores, split the court fee, and send the games to DUPR.
01
How it fits together
ScoreMaster is one app with three audiences, and knowing which is which saves most of the confusion later.
You, the host
signed in on your phone
You create the session, check people in, generate lineups, record winners and mark who has paid. Everything in this handbook is yours unless it says otherwise.
Players
a free account, or none at all
A player can be just a name you typed. If they have a ScoreMaster account and you link it, their DUPR ID and their own record follow them into every session you run.
Anyone with a link
no account needed
One public page: the live board you put on a TV and paste into the group chat. It never shows fees, amounts owed, or payment status.
The shape of a session
A session moves through four states, and each one changes what the app will let you do.
| State | How it gets there | What you can do |
|---|---|---|
| Scheduled | You tap Create session | Check people in, add courts, edit settings. Lineups are closed. |
| Live | You tap Start session | Everything: generate lineups, start matches, record scores. Clocks run. |
| Stopped | You tap Stop session — a rain delay, a break | Match clocks are held and no new lineups can be queued. Tap Resume session and carry on. |
| Ended | You tap End session, twice | The queue closes and you land on the summary. Scores stay editable; Reopen undoes it. |
Creating is not starting. A session you make on Tuesday for Saturday sits as Scheduled until you tap Start on the day. Nothing is live, no clocks run, and no lineups can be queued until then.
02
Create your account
Hosting needs an account with a confirmed email address. It takes about a minute.
- Open ScoreMaster and choose Sign upFrom the landing page, tap Create a free account. You can also use Continue with Google, which skips the password entirely.
- Enter your name, email and a passwordYour name is what players see on the postings you host, so use the name your club knows you by. The password is typed twice, and the eye at the end of each box shows what you typed.
- Confirm your emailAsked the first time you start an open play, a tournament or a club: tap Send the link, then the link in your inbox. Playing, checking in and your own record never need it.
- Fill in your profileUnder Account: a photo (shown on events you host), a phone number if you want one, and your own DUPR ID.
Run the queue without chaos
Your own DUPR ID
Set it once on your Account screen and it belongs to you, not to any one host’s book. Every host you link with picks it up automatically, so you never hand it out again.
Forgot your password?
On the log in form, tap Forgot password? and enter the email you signed up with. We send a link to choose a new one. It works once, for an hour, and only the newest link you asked for. Using it signs you in and signs every other device out. If nothing arrives, check spam and that it is the address on your account — the form says the same thing whether or not an address has one.
Changing your email or password
Both are under Sign-in on your Account screen, and both ask for your current password first. A new email takes effect at once and starts unconfirmed, so a host confirms it once before hosting again. Changing your password keeps you signed in on the device you changed it from and signs the others out.
Dark mode
Your name in the top right opens the account menu, and Dark mode is the switch at the bottom of it. It is remembered per device rather than per account — the same host wants a bright screen on a phone in a lit gym and a dark one on a laptop at home, and it deliberately does not follow your phone’s own night setting, which would hand you a dark app at the exact hour you need the brightest one. The broadcast boards stay dark either way; a TV across a gym reads them better.
Do this before your first session. A confirmed email plus a filled-in profile means the Create button works the first time you reach for it, rather than at the venue with twenty people waiting.
03
Create a session
From Open Plays, tap + New Open Play. The form is one screen, top to bottom, and the button at the bottom tells you what is still missing rather than sitting there greyed out.
First: how do you want to run it?
This choice governs everything after it, so it is asked first.
Lineups & courts
the full flow
Build or generate matches, assign them to courts, run a clock, record scores and winners. Almost every open play wants this.
Simple tally
just the games
Log who played each game — no courts, no lineups, no scores — and the fee splits by games played. Good for a casual afternoon where you only need the money to come out right.
Then the four things it will not create without
A name, a start time, a venue and at least one court. Everything else on the form has a sensible default. If you try to submit early, the button says exactly which of the four is missing.
New Open Play
Set it up in a few taps
How do you want to run it?
✓ Lineups & courts
Full flow — build matches, assign courts, record winners.
Simple tally
Just log who played each game. Fee splits by games played.
Courts
How many courts are running
Who can see this
Listed on the What’s On feed, and the link works for anyone you send it to.
When someone signs up
Public, private, and registration
Public
Listed on the What's On feed, and the link works for anyone you send it. Live standings are on.
Private
Not listed anywhere and the public link is off. Only you and the players you add can see it — you can make it public later.
Let people register
public only
Turns the link into a sign-up sheet. Leave it off and the link is a read-only board you add everyone to yourself.
They're in / I approve
They’re in puts sign-ups straight on the list. I approve holds them as requests you accept one by one on the session screen.
Registering is not checking in. Someone who signed up from the link is on the list but marked not present, and sits out of every lineup until they arrive and are checked in. That is deliberate — a sign-up a week ahead is not a promise they turned up.
Game mode
Doubles or Singles. This sets the default for generated lineups; you can still build a one-off lineup of the other kind by hand.
Session options
Folded away behind a one-line summary, because they are set once and rarely touched. All of them can still be changed mid-session.
Auto advance
on by default · in Manage courts
When a game ends, queued lineups go straight out onto the free courts in queue order — Next up first, then Match 2, then Match 3 — each onto the court it was set for, or else a free court it fits. Turn it off to send every lineup out yourself. It lives in Manage courts, beside Active courts, with auto start and court lanes.
Cap games per player
Everyone retires from the queue after the same number of games. A banner in the Players sheet offers to return them all when you want to keep going.
Limit players
A target headcount. Allow walk-ins past the limit keeps it soft — on by default, because walk-ins are the norm. Turn it off and check-in closes at the number.
Player self check-in
Players who already joined scan the door QR and mark themselves in from their own account. The QR lives on the session screen.
Skill labels
Rename the five star tiers to whatever your club says — Beginner / Intermediate / Advanced, or 2.5 / 3.0 / 3.5 / 4.0 / 4.5. Only worth setting if you use skill matching.
Who’s coming
On the right of the form (below it on a phone) is your saved player book. Tap everyone you expect. New names typed here are saved to the book automatically, so next week it is one tap. They go on the list without being checked in.
04
Choosing a matching style
How teams get formed for every generated game. This is the single setting that most changes how a session feels, and you can change it mid-session: the session screen carries a Matching setup line saying what it is currently set to, with an Edit beside it that opens the lot in a sheet.
Matching style
How teams are formed for each game.
✓ BalancedRecommended
Fair teams and turns, fewest repeats. Best for most open play.
Skill separated
One rating per court — a game only crosses levels when a single one can't fill it. Best when levels vary widely.
Competitive ladder
Skill separated, but the results can overrule it. Someone winning well above their level is moved up into stronger games; someone losing below theirs is moved down.
Custom groups
You group the levels — say beginners on their own, novices and intermediates together. Games never cross a group; inside one, levels mix evenly.
| Style | Use it when | What it needs from you |
|---|---|---|
| Balanced | Mixed social play, everyone plays everyone | Nothing — it works on wait time and recent partners |
| Skill separated | Levels vary widely and strong players are steamrolling | A star rating on each player |
| Competitive ladder | You suspect some ratings are wrong and want play to correct them | A star rating, plus scores recorded (not winner-only) |
| Custom groups | Beginners need their own games but the middle of the room can mix | A star rating on each player, and the levels grouped — a level can sit in more than one group |
What Balanced actually does
It is not a coin toss. In order of priority, it:
- follows the waiting board in order — the longest waits get the seats in Next up, and nobody further down the board is picked ahead of someone who has waited longer. Games already played don’t count: someone who arrives late joins the back of the queue and plays fewer games, rather than jumping ahead to catch up;
- mixes only among players whose waits are level to within five minutes — four who came off one court together, or players who sat down a few minutes apart. Inside that tie it keeps people from going straight back on with the players they just played and reaches for new faces;
- splits tiers evenly across a game rather than stacking a 3–1;
- puts winners against winners, so a hot pair meets a hot pair;
- and adds a little randomness, so an unchanged room does not replay the same game.
Where it cannot avoid a repeat it does not hide it: the lineup card gets a Recent pairings flag saying these two were together two games ago, and you decide.
What the ladder adds
Competitive ladder starts from the same stars Skill uses but does not treat them as final. Most games stay inside a level; two more wins than losses moves someone up, and two more losses than wins moves them down. It reads point share rather than bare win/loss, because in doubles a mis-rated player can be carried to wins by a strong partner while their point margin gives them away.
Unrated players are matched wherever they are needed. Skill separation only bites once people have stars, so if you pick a skill mode, tag levels as you check people in — or later, by tapping any name on the waiting board.
05
Setting the court fee
Two ways to charge, chosen at the bottom of the create form and changeable at any time from Edit session or straight off the summary.
Court fee
Who’s coming (optional)
Tap everyone you expect. They go on the list without being checked in — mark them in on the day, or let them check themselves in with the QR.
Search or add a playerSplit per game
The default, and the fair one when people arrive and leave at different times. The total fee is divided by every game played by everyone, and each player owes their share of that rate.
rate = total_court_fee ÷ total games played by all players
owed = that player's games_played × rate
// Fee ₱2,400 · 40 player-games across the morning
rate = 2400 ÷ 40 = ₱60.00 per game
Marco played 8 → 8 × 60 = ₱480.00
Grace played 5 → 5 × 60 = ₱300.00
Jen played 2 → 2 × 60 = ₱120.00The number moves as the session runs, which is why the summary recalculates every time a match is recorded or deleted. Do not chase it mid-session — read it when play is done.
Fixed per player
Everyone owes the same amount no matter how much they played. Set Per player and that is what every person on the list owes, from the moment they are added.
Deleting a match refunds it. Removing a recorded game rolls back each player’s game count, wins, losses and their share of the fee. That is the right behaviour, but it means a correction after people have paid in cash needs a second look at the totals.
06
Saved players & check-in
Your saved players book is what makes week two faster than week one. Everyone who has ever played in one of your sessions is in it, most frequent first, and it learns names from play — you never have to build it deliberately.
Three ways somebody gets on the list
You tap them from the book
On the create form, or from Check in several from saved players in the Players sheet of a running session — Manage on the waiting board.
You type a new name
Type it in the search box and tap add. They are filed in your book from that session onward, so it is a one-time cost.
They register from the posting
Only when the session is public and registration is on. Instant or held for approval, depending on the policy you set.
Adding a player never checks them in, and you are never added to your own session. A host who is also playing has to add themselves like anyone else. Presence is what gates lineups — nothing else does.
Roster edits reach every future session
From Account → Your saved players, a name, star level, DUPR ID or photo edited there belongs to the person rather than to one night. Change it once and every session they play for you from then on picks it up. That is the right place to sit down and fill in a book of DUPR IDs.
08
Starting play
Until you tap Start session, the session is set up but not under way. A banner says so, and it is the only primary button on the screen.
- Check people in firstLineups draw only from players marked present. Tap Manage on the waiting board and work the list until the here now count matches the room.
- Rename or add courts if the venue changedTap a court name to rename it; the + adds one. Matches stay attached to their court when you do.
- Tap Start sessionClocks begin, lineups open, and the session shows as Live now in everyone's feed.
Saturday Morning Open Play
Sat 13 Sep · 4 courts · doubles
Not started yet. Check people in and set the courts up now — lineups open when you start play.
Start session14
On the list
9
Here now
4
Courts
Stop is not End
Once live you get two buttons, in that order deliberately. Stop session is the reversible one — it holds every match clock and closes the queue for a rain delay or a lunch break, and Resume picks up exactly where you left off. End session is red, sits second, and takes two confirmations; the first tells you what is unfinished — matches still on court, lineups still queued, players still unpaid.
09
Generating lineups
The session screen is where you will spend the session: the court cards on top, then the waiting board beside Next up — the one game the app has drawn to go on next.
Three ways a lineup appears
Drawn for you
the one you will use most
In the random queue the app draws the next game by itself, straight into Next up — no approval step. + Generate match draws more (Match 2, 3…) when you want them. Don't like Next up? ↻ Different matchup draws it again: whoever has waited longest keeps their seat, and the other seats and the sides change to avoid the one you waved off.
📺 On the boards
the TV button on Match 2, 3…
The court board and the live link show Next up only — later matches get redrawn as courts free up. Tap a match's TV button to show it under Next up on both boards too; tap again to hide it. To look a matchup over before the room sees it, open ⚙ beside Match history and turn off Show Next up on the boards — then Next up waits for its own TV button as well.
Auto advance
Manage courts, on by default
When a game ends, queued lineups go out on their own in queue order — Next up first, then Match 2, then Match 3 — onto the court each was set for, or any free court it fits — and the next game is drawn once the queue is empty. With court lanes on, a freed court takes the next game that fits it instead. Auto start decides whether its clock starts on arrival or waits for ▶ Start match.
+ Build lineup
build one by hand
Pick the players yourself and drop the lineup on a court or into the queue. Use it for a grudge match, a coaching pair, or a game the generator will not think of.
How the next game is picked
Every matching style starts the same way: the longest wait goes first — the top of the waiting board is always in the lineup. Balanced goes further and takes the board in order, mixing only among waits that are level to within five minutes. In the other styles the remaining seats go first to whoever isn’t already ahead on games, so people who checked in together finish within a game or two of each other — a late arrival plays fewer and is never rushed up the queue to catch up — and then to people who didn’t just play each other, and haven’t shared a court yet, inside whatever skill rule the style sets. The ⓘ Matching strip above Next up stays closed until you tap it; open, it says how many of Next up’s pairings are first meetings, and lists fresh pairs still waiting — handy when you build a game by hand.
It also watches the ratings. When someone has played four or more games against players at their own level or tougher, won at least three in four of them, and by a clear margin, the closed strip shakes and glows with a suggestion: who, their record, and a Move to ★★★ button that rates them one star up from the next draw. Dismiss leaves their rating alone and it is not suggested again. It is only ever a suggestion — nobody’s stars change unless you tap.
ⓘ Matching · longest wait first → not who you just played → new pairings → sides split evenly by level
Next up: 5 of 6 pairings are first meetings. Met before: Marco V. & Grace L. (1×)
Haven't played together yet: Ken S. + Bea T. · Rowena D. + Chris A.
Next up
Marco V. + Jen O.
vs
Grace L. + Paolo C.
Drag ⠿ onto a court to send it, or a name onto another name — here or on a court — to swap them. Tap a name to edit that player.
Each fresh pair shows both players’ stars, and only pairs your matching style would actually put together are offered — one level under Skill separated, one group under Custom groups, where the list is sorted into a row per level or group.
10
Editing & locking pairs
Every generated lineup is a proposal you can overrule. Three ways, all of which work on a queued lineup and a suggestion alike.
Drag onto the other team
Moves that player across sides within the same lineup.
Drag onto another player
Swaps the two. This is how you move somebody between two different lineups — a team area alone does not say who leaves, so drop them on the name they are replacing.
Tap ✎ on a name
The same swaps without dragging, which is what you want one-handed at courtside. It is on every name on a court card too, mid-game included: pick anyone waiting, or anyone in a queued lineup — they trade seats, so the player coming off takes that place in the queue.
Drag ⠿ on the card
Reorders the queue, or drops the whole lineup onto an idle court.
Locked pairs
Lock a pair keeps two people together in every generated lineup — a coach and their student, a husband-and-wife team, a pair practising for a tournament. Locked partners are honoured by the generator and shown with an unlock control, so it is never a mystery why those two keep appearing together. The quickest way in is the waiting board: tap someone’s name and pick who they stay with. A 🔒 then rides beside their name wherever it appears — hover it to see who they are locked with. A lock is always exactly two people, and each player can be in one lock at most; unlock a pair to re-pair them.
Every slot in a lineup must be a real checked-in player. If you remove somebody who is still sitting in a queued lineup, fix or cancel that lineup — an orphaned slot is the one thing that will stop the session saving.
11
Courts and scores
A court card holds one match at a time and walks through the same beats: send it out, and record it.
- Send a lineup to a courtTap a court button on a queue card, or drag the lineup onto the court. If the court is free the clock starts there and then — you are sending it because those four are walking on.
- ▶ Start match, when it doesn't start itselfA court that already has a game on it, and a session that is stopped, both hold the clock — the card shows Assigned and waits for you. ❚❚ Pause holds a running clock for a disputed point or an injury.
- Type the score and tap the winnerTwo number fields and two full-size buttons. Once both scores are in, the side with more points is filled in rather than outlined — but both buttons stay live, because you are the referee and a game-based format can legitimately hand the win to the lower number.
Team 1
Marco Villanueva
Jen Ocampo
vs
Team 2
Grace Lim
Paolo Cruz
Team 1
Ken Salazar
Rowena Diaz
vs
Team 2
Bea Tolentino
Chris Ang
Timer begins when you start the match
No active match — assign one from the lineup queue.
No active match — assign one from the lineup queue.
Manage courts: auto advance, auto start and court lanes
⚙ Manage courts, beside Active courts, sets how games reach the courts once they are drawn.
Auto advance
When a game finishes, queued lineups fill the free courts in queue order: Next up first, then Match 2, then Match 3. A later match only goes ahead when an earlier one has no court it may take.
Auto start
off by default
Starts the clock the moment auto advance puts a game on court. Off, the card shows Assigned and waits for ▶ Start match — room for the changeover. Sending a lineup to a free court yourself always starts it.
Court lanes
Keep a court for certain star levels — or, under Custom groups, for certain matching groups. When a laned court frees, auto advance only sends a queued lineup that fits it — or one you set for that court — and never another lane's game. Each lane keeps a Next up of its own, drawn from the players who belong on its courts, so there is always one ready. A court with nothing picked takes any game, and the lane shows beside the court's name.
A lane binds auto advance, not you. It only steers auto advance — you can still send any lineup to any court yourself. When nothing queued fits a laned court, it stays free until you send something, so a game from outside its lane only goes on by your hand.
Record the score, not just the winner
You can record winner-only and everything on the boards still works. But two features need real scorelines: the competitive ladder reads point share to spot a mis-rated player, and DUPR rates on scorelines and will not accept a game without them. A winner-only game cannot be fixed after the fact for export purposes.
Fixing a result
Open Match history (beside + Build lineup) and tap ✎ on a game — or do the same on the summary — to correct a score, the winner, or which side a player was on. The editor is laid out like a court card, Team 1 and Team 2 side by side with their players, and the game keeps its place in the list after you save. Results stay editable after the session ends — which is usually when a wrong winner gets noticed.
The second screen
Scoreboard ↗ opens a full-screen dark board in a new tab for a laptop or TV at the venue. Live link is the shareable version in your club’s colours — courts, queue, podium and streak standings, safe to paste into a group chat.
12
Managing players live
The waiting board — the dark panel beside the lineup queue — is where you manage people during play. It lists everyone checked in and not on court, longest wait first, so the name at the top is always the person with the best claim on the next game.
Reading a row
The big number
How long since they came off court — or since they checked in, if they have not played yet. It turns orange past ten minutes, which is roughly two games: past that they have been skipped rather than simply not called yet.
avg
Their typical wait between games tonight. One unlucky wait barely moves it, so a high average is the real sign somebody is being left out.
Dots and NG
Their star level and games played, for deciding who can go on the strong court.
next up
They are already in the Next up lineup, so their turn is settled.
Out
Takes them out of the rotation in one tap. They move to the Out list under the board and drop out of matchmaking; Check in there puts them back on the waiting list. It refuses on anyone already in a lineup: swap them out with ✎ first, so one tap on one person never quietly discards a matchup built around three others.
+ Add player in the board’s header puts a name straight onto the waiting list — here and in the rotation, no second step — and lists your saved players for one-tap adds. Manage players opens the full table, with Remove beside each row for anyone who hasn’t played. Tap any name — on the board, in a lineup, or on a court mid-game — to open their player sheet: name, rating, DUPR ID, locked partner, account link.
Above the courts
Three numbers run across the top of the session screen: Courts (busy of total), Players (everyone on the list), and Waiting. They are the ones you cannot read off the rest of the screen without counting.
The Players sheet
Manage on the waiting board opens the full roster: a sortable table of everyone on the list, with the search box doubling as the add box. Someone who has played with you before carries a ★ Regular tag — their level, DUPR ID and account link came out of your saved players and will be there next week too, so a blank one is worth filling in. A player you add lands at the top of the table straight away, whether or not they have checked in yet.
8
Playing
4
Up next
6
Waiting
2
Resting
| Player | DUPR | Skill | Games | W/L | Win% | Paid | |
|---|---|---|---|---|---|---|---|
| Marco Villanueva◆ | K7XQ2M | ★★★★★ | 8 | 6/2 | 75% | Paid | Manage |
| Grace Lim◆ | P4RB8T | ★★★★★ | 5 | 3/2 | 60% | Unpaid | Manage |
| Jen Ocampo | — | ★★★★★ | 2 | 1/1 | 50% | Unpaid | Manage |
| Paolo CruzResting | — | ★★★★★ | 4 | 1/3 | 25% | Paid | Manage |
Sorts on most wins, then win rate — the same order as the live board, which is why a 100% entry can sit below an 80% one.
What Manage on a row does
Rename
Fixes a typo everywhere, including in lineups already queued.
Skill level
Five stars, using your session's own labels. Takes effect on the next generated lineup.
DUPR ID
Saved to your player book, so you only type it once. If they are linked to an account it comes from their account, and editing it here is a local override.
Here now
The presence checkbox. Unticked, they are registered but sit out of every lineup until they arrive.
Link an account
By email lookup, or by showing a QR they scan on their own phone.
Remove from session
Takes them off the list entirely. Check no queued lineup still has them in it first.
Out, retired and returning
Out is someone sitting out by choice — they stay on the list and come back the moment you tap Check in. Retired is automatic: they hit the games cap, and show in the Out list too. Neither can be drawn into a lineup. When retired players should keep playing, a banner offers Return them to the queue — removing the cap alone does not un-retire anyone.
The same list holds people who signed up and have not walked in yet. The app does not tell the two apart, and does not need to: both are off the waiting list, and both are one tap from being on it.
13
Payments & settle up
ScoreMaster does not take money. It works out who owes what and keeps a paid/unpaid checklist — you collect in whatever way your club already does.
During the session
Tap the Paid badge on any roster row to toggle it. That is the whole interaction. On split per game the amounts keep moving as games are played, so it is normal for the totals to look wrong until play is done.
At the end
The summary opens with the six numbers you need — matches, players, the average length of a game, who has paid, what is owed and the court fee — and the fee among them is editable right there: if the venue charged ₱2,600 rather than ₱2,400, tap it, change it, and every share recalculates. Under them the leaderboard sits beside the session highlights (the tightest game, the longest streak, the biggest win — the same ones the live link shows once the session ends).
18
Matches
14
Players
9/14
Paid
₱2,400
Total owed
₱2,400
Court fee ✎
Settle up & DUPR IDs
9/14 paid · ₱2,400.00 total
| Player | DUPR ID | Owed | Paid |
|---|---|---|---|
| Bea Tolentino | R9WK4D | ₱360.00 | Paid |
| Grace Lim | P4RB8T | ₱300.00 | Unpaid |
| Jen Ocampo | — | ₱120.00 | Unpaid |
| Marco Villanueva | K7XQ2M | ₱480.00 | Paid |
Money never leaves this screen. The public results board, the live board and the copy-to-chat message all carry results only — no fee, no amounts owed, no payment status. That is exactly what makes them safe to paste into a club group chat.
Common fee questions
Someone left early
Split per game already handles it — they owe for the games they played and nothing more.
Someone paid for a friend
Mark both as paid. The app tracks who has settled, not who handed over the note.
A match was recorded twice
Delete the duplicate from the summary. Game counts, W/L and fee shares all roll back with it.
The fee changed after the fact
Tap the court fee on the summary. Everyone's share recalculates immediately.
14
Ending & sharing results
End session (on a phone it is under the ⋯ menu at the top right, with Stop session, Live link and Edit session) asks twice. The first confirmation is a status report — matches still on court, lineups still queued, players still unpaid — so you can go back and finish rather than discover it later. The second is the actual yes.
Three ways to share the result
Post to the group chat
The results already written as plain text, ready to paste into Messenger, Viber or WhatsApp. The preview is shown, not hidden behind the button — you should read what you post. DUPR IDs are never included.
The live board
/live/<host>/<id>
Once the session ends it is the final board: standings, highlights, an All matches tab, and a Rank list image button that previews the picture and lets anyone share or download it. Unlisting it from the summary only takes it off the feed — the link keeps working.
Podiums
Optionally split the standings by level, so each tier gets its own first place rather than one table where the strongest bracket takes every spot.
How standings are ranked
Most wins first, then exact win rate, then strength of schedule. Exact ties share a rank. No win rate can put a 4–1 record above a 3–0 one — the ⓘ on every board explains the ordering to players who ask, and short records are footnoted as provisional against the session average.
Reopening
Ending is not final. Reopen session puts it back to live — useful when a scoreline was wrong, or a last game got played after you thought the morning was over. Archiving is different: it hides an event from your own list while the public link and every player’s record survive untouched.
15
DUPR export
ScoreMaster produces a CSV in DUPR’s match-import format, ready to upload. It downloads rather than uploads: DUPR’s import is a page a club admin signs into, and posting on your behalf would mean holding their credentials.
What DUPR needs from every game
- A DUPR ID for every player in it. One missing ID holds back every game that player was in.
- A real scoreline. DUPR rates on points, so a winner-only game has nothing to send — and that cannot be fixed after the fact.
- A finished match. Queued and in-progress games are not exported.
Where DUPR IDs live
On their account
the authoritative copy
Set by the player, on their own Account screen. Every host they link with picks it up automatically — you cannot lose it and they never have to give it out twice.
In your player book
your copy
For players with no account. Fill them in from Account → Your saved players and every session you export afterwards is already done.
On the session row
a one-off
Typed from Manage, the settle-up table, or inside the export sheet itself. For a linked player this is a local override their own next update wins back.
Export for DUPR
Saturday Morning Open Play · 18 finished games
14 of 18
games are ready to upload. The rest are listed below.
Scoring
Side-out is the traditional rule, where only the serving side can score. Pick whichever you played.
2 players need a DUPR ID
Type it here and their games join the export straight away. It’s saved to your player book, so next week they’re already done.
1 game can’t be exported
1 × no scores recorded
DUPR rates on scorelines, so a game recorded winner-only has nothing to send.
- Open the summary and find “Send results to DUPR”It is host-only and does not appear until at least one game is finished. It never shows on the public board — DUPR IDs belong to the players.
- Pick the scoring typeSide-out (only the serving side scores) or Rally. Pick whichever you actually played.
- Fill in the missing IDsEach named player says how many games they are holding back. Type the ID and watch the ready count climb.
- Download the CSVIt arrives as dupr-<session>-<date>.csv, already in DUPR's template.
- Upload it from DUPR's match import pageSign in there as a club admin and import the file as it is.
Two habits make this a five-second job. Record real scores rather than winner-only, and spend ten minutes once filling DUPR IDs into your saved player book. After that every export comes out clean without touching this sheet.
If an ID does not look like the usual six letters and numbers, the sheet says so before you download and includes it as typed — it is a nudge, not a block.
16
Linking player accounts
A linked player is worth the thirty seconds: their DUPR ID and their own cross-session record follow them into every session you run, and every game they play with you lands in the Open plays tab of their own dashboard, with its live link and their record.
By email
when you know it
In Manage, look the address up. The sheet then shows the account's name and email, so you can be sure you linked the right one of your two Marcos.
By QR
the usual case at a gym
Show the code from Manage. The player scans it on their own phone, logs in or signs up, and confirms it is them. The sheet flips to Linked on its own, the code is spent, and the session shows on their dashboard with their place in the queue.
From saved players
no session running
Open the saved player's Manage sheet and tap Show QR to scan. They scan it, log in or sign up, and every session they have played with you goes onto their account — the sheet flips to Linked on its own. Pick from accounts is the other way: it lists people who have already played one of your sessions signed in.
Whichever way you link, it carries the past as well as the future: every session that saved player has played with you goes onto their account, and every later one does too — the link lives on the saved player, not on one session’s row. A link made before this was true shows how many earlier sessions it left behind, with a button that brings them across.
Unlink account is the undo. It asks first, then takes those sessions back off the account’s record. The results themselves never change.
The door QR and the link QR are different codes. The door QR (/j/<id>) lets people mark themselves present. The link QR comes out of one player’s Manage sheet and connects that one row to that one account.
17
When something looks wrong
The failures a host actually hits, and what each one is telling you.
| What you see | What it means | What to do |
|---|---|---|
| Generate produces nothing | Not enough players marked present — doubles needs four | Manage on the waiting board: check the here now count, not the list count |
| “Lineups open once you start” | The session is Scheduled, or Stopped | Tap Start session, or Resume session |
| Skill matching ignores levels | Players are unrated, so they go wherever they are needed | Tap a name on the waiting board and set their stars |
| Someone keeps getting the same partner | The room is small, or they are a locked pair | Check the lock list; shuffle (⟳) the suggestion |
| “Can't reach the server” | Offline. Play continues from this device and keeps retrying | Keep the tab open — it syncs itself when the connection returns |
| “Refusing to save this session” | The server answered but rejected the write — usually an orphaned lineup slot | Cancel any lineup holding a removed player; quote the reference shown |
| Amounts owed look wrong mid-session | Split-per-game recalculates after every game | Read them on the summary, once play is done |
| Export says 0 of N ready | No DUPR IDs, or every game is winner-only | Fill IDs in the sheet; record scorelines from now on |
| A player can't check themselves in | They never joined the posting, or self check-in is off | Check them in yourself — Manage on the waiting board |
18
One-page cheat sheet
The whole flow, in the order it happens.
| When | Where | Do this |
|---|---|---|
| Once, ever | Account | Confirm your email; add your photo and your DUPR ID |
| Once, ever | Account → Saved players | Fill in DUPR IDs for your regulars |
| Days ahead | Open Plays → + New Open Play | Name, start time, venue, courts; matching style; court fee |
| Days ahead | Session → Live board link | Paste /live/ into the group chat |
| Night before | Session → Check-in QR | Print the /j/ code for the door |
| On arrival | Waiting board → Manage | Approve requests, tap in walk-ins, tag any missing skill levels |
| First serve | Session header | Start session |
| Every rotation | The session screen | Send Next up to a free court, which starts it — the next one is drawn for you |
| Every game end | Court card | Type both scores, tap the winning side |
| Rain / break | Session header | Stop session, then Resume session |
| Last game | Session header | End session — twice |
| Settling up | Summary | Correct the court fee; tick people off as they pay |
| Posting results | Summary | Copy the chat message, or share the /live/ board |
| Rating games | Summary → Export for DUPR | Fill missing IDs, download, upload to DUPR |
Things worth remembering
- Creating is not starting. Lineups stay closed until you tap Start.
- Registering is not checking in. Only presence gates lineups.
- Adding a player never checks them in, and you are never added to your own session.
- Stop is reversible, End is not — though Reopen exists for when it needed to be.
- Record scores, not just winners, or DUPR and the ladder have nothing to work with.
- Money never leaves your screen. No public page carries a fee or a payment status.
- Private only unlists a session. The live link still works for anyone you send it to.
- Longest wait is the top of the board, and the name at the top is in every lineup the app draws. Under Balanced the next seats follow the board in order too; only waits level to within five minutes are mixed.
Every screen in this handbook is an illustration built with sample players — Marco, Grace, Jen and the rest are not real people, and the figures are examples, not anyone’s data.