DocsComponents

Pieces

A piece (kind: piece) is a physical figure on the table — a meeple, a mini, a pawn, a chess knight, a board marker. Use it for any moving token that isn’t a card, die, or generic token.

Like every component, a piece is just an object players pick up and place. taybl does not know whose turn it is and never blocks a move — a "knight" can be dragged anywhere on the board. The piece-specific fields exist to draw the figure correctly and to hint at how it usually moves, not to police anything.

How to edit in the Studio

Open your game → Layout tab and select the piece. The component inspector shows the shared fields (name, quantity, per-player, behaviors) plus a Movement hints (UX only) disclosure unique to pieces. Front and back art are set through the face slots. The piece outline (shape) and a multi-cell footprint are set in the generated GDL rather than through a dedicated control — see shapes, behaviors & value bindings.

Piece-specific fields

FieldValuesDefaultWhat it does
kindpieceMarks this component as a piece
faces{ front?, back? } bindings.optional()Art for each side — both optional on a piece (a mini may be single-sided)
movementHintsarray of MovementHint.optional()Display-only highlights when a player lifts the piece — never enforced

Pieces also share shape, footprint, and behaviors with every kind — see shapes, behaviors & value bindings for the meeple silhouette (shape: polygon) and multi-cell footprint.

Movement hints

A MovementHint paints a suggestion of legal destinations when a player picks the piece up. It is a pure UX affordance — taybl highlights the cells, but the player can still drop the piece anywhere. Each hint has a type:

typeWhat it highlights
orthogonalStraight lines along rows and columns (rook)
diagonalDiagonal lines (bishop)
anyAny direction (queen / king)
lShapeKnight’s L-shaped jumps
pathAlong a connected path / track
customA bespoke pattern the renderer resolves

Each hint also takes optional refinements:

FieldValuesDefaultWhat it does
rangeinteger ≥ 1, or unlimited.optional()How many cells the highlight reaches
canJumptrue.optional()Whether the highlight ignores intervening pieces
directionforward backward.optional()Restricts the highlight relative to the piece’s seat (e.g. pawns)

Because hints never enforce anything, you don’t need them to be exact — they are a convenience for players, and the rules text is still the authority.

Sign in to ask Pip about building games.
Sign in