Components
A component is a physical object type on the table — a meeple, a card,
a die, a wooden cube. One entry describes one type, and it is an infinite
template: it has no count of its own. Physical copies come from where it is
placed — a setup placement count, or a
deck member quantity. taybl never spawns, scores, or removes
components on its own: players pick them up and move them by hand, exactly
as at a real table.
Every component has a kind — the discriminant that decides which extra
fields it carries:
- Piece (
kind: piece) — meeples, minis, pawns, markers. - Card (
kind: card) — anything that flips between a front and a shared back. - Die (
kind: die) — a randomiser with two or more faces. - Token (
kind: token) — chips, cubes, coins, counters. - Sheet (
kind: sheet) — a printed pad players write on rather than move: a score card, a character sheet, a notepad.
Pick the kind by what the object is at the table, not by what it does in the rules — a "resource cube" is a token, a "hero figure" is a piece, even if the rulebook treats them similarly.
How to edit in the Studio
Open your game → Layout tab. Click a component on the table to open the component inspector on the right. There you set the Name, Behaviors, and the kind-specific extras; the inspector also shows the derived number of copies (read-only). Front and back art are set through the face slots (upload or replace inline). How many copies appear is set on the setup placement that places the component (its Count, plus Per player for one set per seat), or — for a deck — on each card's quantity in its group. Cards are grouped into decks from the Component Groups section — see decks.
The Component Library
You do not have to build every component from scratch, and you do not have to upload art for the common ones. The Components tab in the Studio is a component library — a catalogue of ready-made object types, grouped into categories: Figures, Cards, Dice & random, Tokens & resources, Boards & tracks, Zones & containers, and Timing. Each entry is drawn procedurally, so it needs no uploaded image at all.
Pick an entry and you get its own settings before you add it. A Die offers its number of sides (d4 through d20), pips or numbers, a colour swatch, and a quantity; a Token offers a colour, a value and a label; a Spinner lets you author each wedge with its own label, colour and likelihood. Adjust those, then use Add to <your game> (the button carries your game’s name) and the component joins it — after which you place it like any other, with a setup placement.
The library is a starting point, not a separate class of object. Once added, a library component is an ordinary component: it appears in the Layout tab, takes the same shared fields as anything else, and its catalogue settings stay editable from the component inspector. You can equally build the same object with Add component and set it up by hand — the library just saves you the setup and the art.
You can also just ask Pip for one — “add four red meeples to the supply”, “give me a d20”, “add wood, brick and ore cubes”. Pip picks the catalogue entry and its settings for you. Remember that the count lives on the setup placement, not the component (a component is an unlimited template — see setup placements), so name the zone the pieces belong in and Pip will place them there. Without a zone the component is still created — it just waits in the components list until you place it.
When taybl picks a piece for you
If your rules name a component you never uploaded art for — the pawns in a roll-and-move, the resource cubes in a euro — generation does not leave it blank. It matches the component to the closest library entry and dresses it in that silhouette, so a “Red King” arrives as a red piece rather than a bare letter. The component inspector flags every one it picked with an Auto-assigned by taybl note and a Swap component button, so you can see exactly what it guessed and change it. Nothing else about the component is touched: its name, size and setup placements are the ones the rules produced. Upload real art for it whenever you like and your art takes over — the procedural look is only ever the fallback.
To add a new type from scratch, use Add component in the Layout toolbar; to retire one
without deleting it, toggle hidden (below). A new component is not placed
anywhere until you place it — with one exception. A sheet is a
pad players write on rather than move, and one nobody can find is useless, so
creating a sheet also mints its home: a zone whose pads open from the felt’s
Sheets card, plus the setup placement that puts a pad in it. It is playable
straight away, and you can still move it onto the table if it belongs there.
Fields shared by every kind
| Field | Values | Default | What it does |
|---|---|---|---|
kind | piece card die token sheet | — | The discriminant; picks the kind-specific fields |
id | lowercase snake_case | — | Unique id, referenced by setup and zones |
name | text | — | Human label shown in the inspector and hover preview |
faces | FaceBinding per side | .optional() (required on card) | Art bindings — see shapes, behaviors & value bindings and below |
size | { w, h, thickness } | .optional() | Size in abstract table units — only the ratio to the table matters, so it also decides which way up the component is drawn (a sheet wider than it is tall is a landscape pad; there is no separate orientation field). Absent → sized from the host zone box (whose fitContents scales the contents to the box — see layout) |
properties | record of string / number / boolean | .optional() | Free-form data tags (suit, faction, point value) — never enforced |
hidden | true | .optional() | Skip this type during setup and hide it from pickers. The type stays in the GDL so flipping it back re-enables it |
Face bindings
Art is bound through a FaceBinding — faces.front and faces.back. A
binding is format-agnostic: { image } for the current 2D renderer,
{ model } reserved for a future 3D renderer, { color } as a flat-colour
fallback or tint. Components reference assets by id only, so adding 3D
later is purely additive.
| Field | Values | Default | What it does |
|---|---|---|---|
image | asset id | .optional() | 2D sprite, drawn by the current renderer |
model | asset id | .optional() | 3D model id, reserved for a future renderer |
color | colour string | .optional() | Flat-colour fallback / tint when no art is bound |
Related
- Pieces —
kind: piece - Cards —
kind: card - Dice —
kind: die - Tokens —
kind: token - Sheets —
kind: sheet - Shapes, behaviors & value bindings —
shape,footprint,behaviors,valueBinding,attachable - Decks — grouping cards into a deck
- Uploading assets — where face art comes from
- Studio tour — the Studio tabs, including Components