What a sequence is
A sequence is a named, ordered list of steps that execute top to bottom. Each step performs a single action against the table -- drawing tiles, adjusting counters, rolling dice, moving pieces, or prompting players for input.
Sequences are the core building block of automation. They are reusable: a single sequence can be referenced by multiple triggers or called from other sequences using the Run Sequence step.
You create and manage sequences through the Sequences panel in the toolbar.
Sequences reach into every hand
A sequence is the game's own automation, so it is trusted to act on any player's cards. A player cannot flip, move or take a card in another player's hand, but a sequence step can, whoever runs it: Flip, Rotate, Move Piece, Move to Hand, Move to Stack, Return to Stack, Move to Table and Shuffle Tagged in Place all work on a card loose in any hand, on a card inside a deck someone holds, on a sleeve inside that deck, and on a card in that sleeve. This is what lets a sequence do things like "discard a random card from the next player's hand".
Acting on a hidden card does not show it to the player who ran the sequence. The card stays hidden wherever it stays hidden: a card turned face up in another player's hand is still only seen by that player, and the Sequence Debugger names pieces by their id, never by a hidden card's name. A card the sequence puts somewhere everyone can see, such as the table, is seen by everyone, as it would be if its holder had put it there.
Steps that reach into a deck by naming the deck itself (Draw from Stack, Deal to Hands, Shuffle Stack, Sort Pieces, and the deck that Move to Stack or Return to Stack puts cards into) only reach a deck held in a hand when the player who runs the sequence is its holder.
Step properties
Every step has these common properties regardless of type:
- Enabled -- a toggle that lets you disable a step without deleting it. Disabled steps are skipped during execution.
- Label (optional) -- a human-readable name shown in the step list. If omitted, the step type label is used.
- Only If (optional) -- a condition that gates execution. If the condition evaluates to false, the step is skipped.
- Save Result As (optional) -- a context key that captures the step's output for use by later steps. Only steps that produce a value offer it; steps that only act on pieces, such as Deal to Hands, Return to Stack or Flip, do not.
- Suppress Triggers (optional) -- prevents the step's side effects from firing reactive triggers. Use this when a step would otherwise cause an infinite trigger loop. For example, a sequence that moves a piece into a space would normally fire that space's Piece Added trigger -- enabling Suppress Triggers on that step prevents the cascade.
Context flow
Steps can produce values and save them to a context bag using the Save Result As property. Later steps can reference those saved values in their configuration. This lets you chain steps together -- for example, prompt a player for a number, then use that number as the amount in an Adjust Counter step.
Most steps that produce a value save it even when you leave Save Result As empty, under a default key: Select by Filter and Select Specific save under selected, the prompt steps under promptResult, and so on. The step card lists every key the earlier steps save, default keys included, under Available.
Context flows forward through the sequence. A step can only reference values saved by steps that came before it.
Conditions
Conditions appear in two places within sequences:
- Step-level Only If -- gates whether a step executes
- Stop If steps -- halts the sequence when a condition is met
Conditions inspect game state using subjects and operators.
Subjects
A subject is what the condition inspects:
| Subject | Description |
|---|---|
| Counter Value | The current numeric value of a counter |
| Stack Count | The number of tiles in a stack |
| Space Occupancy | The number of pieces in a space |
| Die Value | The current face value of a die |
| Timer Status | Whether a timer is stopped, running, or paused |
| Timer Remaining | The remaining time on a timer in milliseconds |
| Face Up | Whether a piece is showing its front face |
| Rotation | The rotation angle of a piece in degrees |
| Tags | The tags attached to a piece |
| Color | The color of a piece |
| Token Kind | The kind of a token (block, disc, etc.) |
| Piece in Space | Whether a piece is in a specific space |
| Piece in Hand | Whether a piece is in a specific player's hand |
| Context Entry | A value from the context bag saved by an earlier step |
| Whose Turn | Whether the current turn belongs to a given seat -- the acting player, a neighbour, or a specific seat. It asks about the table rather than about a piece, so it appears under Players. Compares as true/false with the is true / is false operators, never a numeric or text compare. |
| Seated Players | How many players are seated at the table right now. Use it to make a setup change with player count: a step with Only If Seated Players equals 2 runs only in a two-player game, and at least 4 covers four or more. It counts the same seats a deal to every player deals to. Appears under Players. |
Operators
An operator is how the condition compares. These are spelled exactly as the operator dropdown spells them, so you can match what you read against what you see.
| Operator | Description |
|---|---|
| equals | Value matches exactly |
| does not equal | Value does not match |
| greater than | Numeric value is greater |
| less than | Numeric value is less |
| at least | Numeric value is greater than or equal to |
| at most | Numeric value is less than or equal to |
| contains | Collection includes the value |
| does not contain | Collection does not include the value |
| is empty | Collection has no entries |
| is not empty | Collection has at least one entry |
| is true | Boolean value is true |
| is false | Boolean value is false |
Which operators are offered depends on the subject: a yes/no subject gets is true / is false only, a numeric one gets the comparisons, and a collection gets the membership operators.
Conditions compose with logical operators:
- All Of -- all child conditions must be true (AND)
- Any Of -- any child condition can be true (OR)
- Not -- inverts a child condition
Nesting
Sequences can call other sequences using the Run Sequence step, up to 8 levels deep. This lets you compose complex behaviors from small, focused sequences.
Limits
Each sequence can contain up to 30 steps.
Step reference
See Steps for a complete reference of every available step type.