Procedures (legacy)
A procedure is a single named button that runs several steps at once — for example “draw five cards, reorder them, place them back on top.” It is the one place in the schema that looks like a tiny program rather than a physical arrangement.
That is exactly why you almost never want one. taybl models a physical table, not a rules engine: players move, flip, and deal things by hand and resolve every rule themselves from the rules sidebar. A procedure short-circuits that — and the more a game leans on procedures, the less it behaves like a real table.
Do not author procedures
This is the important part:
- Generated games never emit a
proceduresblock. The AI pipeline is built to express everything as components, zones, and rules text instead. - You should not add one by hand. There is no Studio panel for authoring procedures, by design.
- The schema retains
proceduresonly so that a handful of older, hand-authored games keep loading. Treat it as legacy.
Whenever something feels like it needs a procedure, the taybl-native answer is
almost always a zone (with the right accepts and
visibility) plus a line of
rules text telling the player what to do. The player
performs the steps; the rules describe them.
For completeness: the step vocabulary
If you ever read a legacy definition, a procedure is an id, a name, a
description, and an ordered list of steps. Each step is keyed by a do
verb. You will not write these, but here is what they mean:
do | What the step does |
|---|---|
move / deal | Relocate components between zones; deal can fan out perSeat |
shuffle / flip | Randomise or flip a zone’s contents |
reveal / hide | Change a zone’s face-up state |
prompt / choose | Show a message, or ask the player to pick components |
setProperty / adjust | Set or bump a global or per-player counter |
moveObject / removeObject | Act on the specific object the procedure was invoked on |
attachObject / detachObject | Pin one object onto another (e.g. a counter on a piece) |
An object-targeted procedure carries an appliesTo filter so it appears only
in the right object’s context menu. Again — these exist for backward
compatibility, not for new authoring.
Related
- Rules reference — the taybl-native way to tell players what to do
- Zones overview — where behaviour belongs instead
- What taybl is — the table-as-scene mental model