Online darts: one match, two phones, and the TV on the wall

Every other page on this site is about a game. This one is about the half of the scoreboard that needed a server to exist: a room anyone can open, a code of four characters, a second board scoring the same match from the other side of the oche, a television showing it to the room, and a match that carries on when the room is over. It is free and there is no account — the numbers below are the ones the code actually uses, not a brochure.

Open the scoreboard and host a room →

What a room is

A room is one match. One board hosts it and gets a code back; every other screen joins with that code and is looking at the same position a fraction of a second later. Whoever throws enters the visit on their own board, that board pushes the whole match, and every other screen redraws from what it was sent — darts is turn-based, so the last board to write is always the one that just threw, and nothing has to be merged.

The code is four characters, drawn from an alphabet of 31 letters and digits with the ambiguous ones taken out: no 0, 1, I, L and O anywhere in it, because a code is read out across a noisy room at least as often as it is copied. That leaves 923,521 codes, and a code that has been used is not handed out again for six hours after its room closes, so a link somebody kept never opens a stranger's game.

There are three seats in a room and they are not the same. The host is the board that opened it and the only one that can close it. A guest is a second scoring board: same buttons, same undo, same match. A TV is a display and nothing else.

The link that is short enough to read out

A room code can be typed, but the thing that actually gets sent is a link, so the app offers one in the shape a person can say across a room: /r/ABCD, four characters after the slash and nothing else. Opening it lands on the board with the code already in the join box. Paste the whole line out of a chat and the join box still finds the code in it.

The spectator form is the same link with a flag on the end — /r/ABCD?tv — and it opens the read-only display rather than a scoring board. That is the one to send to the television, and the one difference between the two matters: a guest can score, and a TV cannot.

The display for the screen on the wall

TV mode is the same match drawn for a room rather than for a thumb: bigger type, the leg and the checkout where somebody standing at the oche can read them, and the screen kept awake for as long as the match runs. It takes no turns and it holds no buttons that change anything — a display that can undo a visit is a display somebody will lean on.

It also says what it knows about the feed, which is the thing every other darts display gets wrong by going quiet. The pill in the corner is one of five states, and they are the app's own words: live when the stream is open, connecting… for the first handshake, reconnecting… when the stream dropped and the browser is retrying, server busy — catching up when the server has asked this board to wait a second, and not sent when a score this board threw never reached the server — which it dials again, three times, with a widening gap. A board that has stopped hearing from the scorer says so instead of showing a position that is quietly ten minutes old, and a board the room has stopped hearing from says that too.

How many screens, and what a refusal says

One room carries up to 50 screens at once. That is far past any darts night and it is a ceiling rather than a target: the 51st screen is told That room is full in those words, and a code that has expired or was mistyped gets Room not found. Neither is a stack trace and neither is a silence, which is the whole point of having them written down.

Boards do not have to be on the same build. Every frame carries the version that wrote it, so a phone holding last month’s cached copy is told This room needs a newer version rather than drawing a match it half understands.

When the match ends, and when the room does

They are two different endings, and only one of them is yours. Closing the room stops the feed: the app says Room closed and then says the rest of it in its own words — What’s on the board is this device’s own copy. The archive, the career stats and the undo stack were always local, so the game carries on exactly where it was. Finishing the match does not close the room, so the winner card is what the room is looking at until somebody says otherwise.

A host who simply walks away is handled too: closing the tab on a match that has not moved for twenty minutes frees the room and its code on the way out, rather than leaving four people watching a board nobody is scoring. A room nothing has touched at all is reaped by the server later on its own.

What it costs

Nothing, in the same words the press page uses: no account, no ads, no in-app purchase, no app store. A room is a code held in memory on one small box, and the only thing that crosses it is the match position itself — no names you did not type, no logins, nothing to delete afterwards. Turn the wifi off and the board carries on scoring; the room is a feature of the evening, not a requirement of the app.

Common questions

Try it on the next leg

Any of the twenty modes can be played in a room — a 501 match on two phones, a Cricket board with the marks on the wall, a six-handed Killer where everybody watches their own life go. Open Friendly Fire Casper, set the game up the way you always do, and host a room from the same screen; the reading for the rest of it is the rules for all twenty modes, the printable checkout chart and the darts glossary.

Open the scoreboard and host a room →