Widgets
A widget is a complete, pre-assembled block of timer screen content: the countdown with its blinds and player count, a payout list, a knockout leaderboard. Instead of building one cell at a time, you drop a widget in and it arrives fully styled and already wired to live tournament data.
Open the gallery from edit mode: tap a + button where you want the block to land, then choose Widget.
Built-in widgets
Section titled “Built-in widgets”Thirteen widgets ship with the app. Most of them hide themselves until the tournament actually has something to show, so it’s safe to add them at any point — a Payouts widget added before anyone has bought in simply stays invisible until money comes in.
| Widget | Shows | Appears when |
|---|---|---|
| Knockouts | The top five players by knockouts, with their totals | Someone has been eliminated |
| Bounties | The top ten bounty winners and their winnings | The tournament uses bounty chips and someone has won one |
| Points | The final standings — the top ten finishers and the points each earned | The tournament has finished |
| Payouts | The prize list — place, player, and amount, in three aligned columns | Money has been collected |
| High hand | Who holds the current high hand, the hand’s name, and its cards | A high hand has been recorded |
| Chip leaders | The top three active players by stack, with their totals | A player has reported a chip count and the tournament is still running |
| Color up! | Which chip denominations to take off the table, drawn as the chips themselves | It’s a break and the blinds have outgrown a chip since the last break |
| Rebuy countdown | How much of the rebuy period is left | Rebuys are on, a rebuy period is set, and the tournament is under way |
| Timer | The full default block — tournament title, level title and subtitle, the countdown clock, a Color up! banner, and the next three widgets nested inside it | Until the tournament finishes |
| Blinds and antes | The small and big blind for the current level, plus any ante | The level has a blind or an ante |
| Next level and break | What’s coming next — the next blinds, or the length of the next break, and how long until the break after that | There is a level after the current one |
| Player count, etc. | Players remaining out of the total, average stack, and big blinds in play | There are chips in play |
| Current time | The time of day | Always |
Payouts, bounties, and knockouts follow the same data the Payouts, Bounties, and Managing players screens use, so they update as you run the tournament.
The default timer layout is built from these: a Rebuy countdown, a Timer, a Points, and a High hand in one column, a Payouts, a Knockouts, and a Chip leaders in another. The Payouts screen layout is a Points, a Payouts, and a Bounties side by side.
Because those conditions are opposites, the screen changes character when the last player is knocked out — see When the tournament finishes.
Points
Section titled “Points”The Points widget is the final standings: everyone who finished, winner first, with the points each earned in two aligned columns. It lists the top ten and marks a longer field with a trailing ”…”.
The scores come from the Player points formula on the Stats screen — the same formula that feeds the Club stats leaderboard. Whatever scoring your league uses, the widget shows it. There is nothing to configure and nothing to keep in sync: change the formula and the widget follows.
It waits for the tournament to be over, because until then the numbers would keep moving. A player scores nothing until they have a finishing place, so mid-game the list would grow as players bust. Worse, a rebuy clears that player’s place and shifts everyone else’s up, which would retract points already on the screen. Once the last player is knocked out, every place is settled and the winner joins the list.
To watch the standings build instead, waiting for the rebuy period to close is safer than dropping the gate outright:
!rebuysOpen && playersEliminated.count > 0Once rebuys are closed, no place can be taken back, so the scores only ever grow. Put that condition in all four places: on the block, and on each of the three content items inside it (see A widget can be gated twice). If the tournament has no rebuy end level, rebuysOpen never turns false, so use playersEliminated.count > 0 on its own.
Points is part of the default layout and of the Payouts screen, so a tournament you haven’t customized shows the standings on its own when it ends. If you have customized your layout, it’s kept as you built it — add Points from the gallery wherever you want it.
Any text you write can read the same values: p.points gives a player’s score under your formula. See Tournament data.
Chip leaders
Section titled “Chip leaders”The Chip leaders widget is driven by the counts players report themselves. When players connect to a shared tournament and report their current chips (see Player profile updates), the app tracks each active player’s latest count and lists the top three by stack — names and totals in two aligned columns, most chips first, like the Knockouts widget. When a fourth player is tied with the third shown, a trailing ”…” marks that the leaderboard doesn’t stop there.
Color up!
Section titled “Color up!”As the blinds climb, the smallest chips stop being needed — nobody makes change for a 25 when the small blind is 500. The Color up! widget watches for that and, at each break, names the denominations that became retirable since the previous break: a compact orange banner reading Color up! followed by the chips themselves, drawn as your actual chip images.
It only shows the chips coming off the table. Which chip they turn into is deliberately left out — people read that second chip as also being removed.
A chip is only suggested once. If the 25s became unnecessary at the first break, the second break doesn’t mention them again — it names whatever has become retirable since. And a chip is never suggested while any blind, ante, or bring-in from the current level onward still needs it.
The banner is part of the default Timer block, so a new tournament gets it during breaks without you doing anything. It’s also in the gallery on its own, for layouts you’ve built yourself.
It’s driven by the colorUpChips value — see Tournament data. Any text you write can show chips too: type a chip’s value followed by an s (25s, 1,000s) in a content item and the timer draws the chip in place of the text.
Rebuy countdown
Section titled “Rebuy countdown”Set Rebuys end after in Settings and this widget appears on the timer for the rest of the rebuy period, then disappears on its own when the period closes. It counts the break that follows the last rebuy level as part of the period, so it keeps running through the break where rebuys and add-ons are usually taken.
What it says depends on the clock. While the timer is running it counts down — “Rebuys end in 32:00!” A remaining time means nothing while the timer is stopped, so when you pause it switches to naming the deadline instead: “Rebuys end after Level 3!”
That’s two content items, rebuy countdown and rebuy countdown paused, stacked in one cell with opposite conditions — so only one is ever showing. Edit either one to reword it; see Content.
The conditions behind “appears when”
Section titled “The conditions behind “appears when””Nothing about the “appears when” column is hard-coded — each built-in widget carries an ordinary condition that you can read, edit, or remove after inserting it. Select the widget’s outermost cell in edit mode and open Condition:
| Widget | Condition |
|---|---|
| Knockouts | playersEliminated.count > 0 |
| Bounties | useBountyChips && players.where(func(p) { p.bountyChipWinnings > 0 }).count > 0 |
| Points | isPostgame |
| Payouts | totalCollected > 0 |
| High hand | hasHighHand |
| Chip leaders | chipLeaders.isNotEmpty && !isPostgame |
| Timer | !isPostgame |
| Color up! | isBreakLevel && colorUpChips.isNotEmpty |
| Rebuy countdown | rebuysAllowed && secondsUntilRebuysEnd > 0 && isInGame && !isPregameLevel |
| Blinds and antes | currentLevel.bigBlind > 0 || currentLevel.ante > 0 |
| Next level and break | levelIndex + 1 < levels.length |
| Player count, etc. | totalChipsInPlay > 0 |
Current time has no condition, which is why it always shows.
A widget can be gated twice
Section titled “A widget can be gated twice”The block’s condition is not always the only one in play. Several widgets also carry a condition on the content inside them, and a block whose items are all hidden renders nothing at all. Change the outer condition on one of these and it can stay invisible, because the content is still holding it back:
| Widget | Content items | Their condition |
|---|---|---|
| Points | points title, points names, points totals | isPostgame |
| High hand | high hand title, high hand | hasHighHand |
| Chip leaders | chip leader title, chip leader names, chip leader totals | chipLeaders.isNotEmpty |
| Color up! | color up title, color ups | isBreakLevel && colorUpChips.isNotEmpty |
| Rebuy countdown | rebuy countdown, rebuy countdown paused | the widget’s condition, plus isTimerRunning on the first and !isTimerRunning on the second |
To reach them, select a text cell in the block and open Content: the highlighted item has an Edit button, and Manage content at the top right lists them all. Every other built-in widget leaves its content unconditional, so the outer condition is the only gate.
The ⓘ on a hidden gallery card names whichever condition is the one still blocking, which is the quickest way to tell the two apart. See Why a widget looks empty.
When the tournament finishes
Section titled “When the tournament finishes”Knock out the last player and the timer screen turns into a results board. Nothing is switched off manually; the widgets simply have opposite conditions, and isPostgame flips the moment the tournament has a winner.
Away go the things that describe a game in progress:
- the Timer block, and with it the tournament title, the clock, the blinds, the next level, and the player count
- Chip leaders, since there are no stacks left to lead
- the chip images and the table diagrams along the edge of the screen
In their place, Points appears beside the results that were already there — Payouts, Knockouts, and the High hand.
The chips and tables are the one part that isn’t a widget condition, so it works a little differently: hiding them is only the default. A view that asks for them explicitly still gets them, which is why the Seating view keeps showing the winner’s table rather than going blank. See After the tournament ends.
Every part of this is yours to change. Delete !isPostgame from the Timer block’s condition and the clock stays up after the game. Points takes one step more, because its three content items carry isPostgame too: clear it there as well and it shows the standings as they build, moving numbers and all. See A widget can be gated twice.
Why a widget looks empty
Section titled “Why a widget looks empty”Every card in the gallery is a live preview, rendered against your tournament as it stands right now — not a stock picture. That’s useful, but it means a widget with nothing to say looks blank.
When that happens the card shows a crossed-out eye and an ⓘ button (its tooltip reads Currently hidden). Tap it and the app explains why, in plain terms:
- The condition ”…” is currently false. — the widget’s own condition, or the condition on the content inside it, isn’t met yet
- ”…” currently has no value. — the content resolves, but produces no text
- Missing variable ”…”. — a text cell points at a content item that no longer exists
- The widget has no content. — an empty row or column
An empty card is almost never a problem. Add the widget anyway; it will fill in when the tournament reaches it.
Saving your own widgets
Section titled “Saving your own widgets”Once you’ve built a block you like, select its outermost cell and tap Save as widget. Give it a name and it joins the gallery alongside the built-ins, ready to drop into any tournament.
Saved widgets are stored with your account, so when you’re signed in they follow you to all your devices.
Any custom content the widget uses travels with it. Inserting the widget into another tournament brings those content items along — skipping any name that tournament already has, so your existing content is never overwritten.
Managing the gallery
Section titled “Managing the gallery”Sort and Edit appear in the gallery’s app bar once you’ve saved at least one widget.
- Sort orders the whole gallery by Modified or Name, and the choice sticks between sessions. Built-in widgets share a single fixed modified date, so sorting by Modified keeps them together and floats your own work to the top.
- Edit puts a Rename and a Delete button on each of your saved widgets. Deleting asks for confirmation. Built-in widgets can’t be renamed or deleted, so if you want your own version of one, insert it, adjust it, and save the result under a new name.
While Edit is on, tapping a card no longer inserts it. Tap Done to go back to inserting.