Reference
Deck and Card Layout Editor Fields for AI Agents
Deck and card layout editor field ids for AI agents: the deck, card list and card layout tabs of the DiceyTable item editor, with kinds and ranges.
On this page6 sections
These are the fields of the item editor tabs for decks, card lists and card layouts. Each id takes the item it belongs to, such as the deck or layout you have open. The UI Layout tab's fields have their own page.
Panels in this group#
5 panels, with the id prefixes item.deck, item.cards, item.card-layouts. The field catalogue lists every group.
| Panel | Label | Tab | Fields | Actions |
|---|---|---|---|---|
item.deck |
Deck tab | editor |
30 | 14 |
item.cards |
Card Data tab | editor |
35 | 14 |
item.card-layouts |
Card Layouts tab | editor |
0 | 4 |
item.card-layouts.layouts |
Card Layouts ▸ Card Layouts | editor |
31 | 16 |
item.card-layouts.counters |
Card Layouts ▸ Counters | editor |
17 | 4 |
item.deck#
Deck tab · surface editor · target deck
How it opens: Open the .deck.json from the explorer (Deck tab).
Fields (30)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
item.deck.settings.name |
Deck name | text |
— | deck |
W | — | The deck's display name, written to the .deck.json on Save (no sheet regeneration needed). |
item.deck.settings.card-width-px |
Card width (px) | integer |
— | deck |
W | ≥ 32, ≤ 2048, step 1 | Per-card resolution width in pixels. Applies to NEW card imports and to the sheet cell size; changing it requires Generate & Save. |
item.deck.settings.card-height-px |
Card height (px) | integer |
— | deck |
W | ≥ 32, ≤ 2048, step 1 | Per-card resolution height in pixels. Applies to NEW card imports and to the sheet cell size; changing it requires Generate & Save. |
item.deck.settings.sideways |
Sideways | boolean |
— | deck |
W | — | TTS "Sideways": the deck's cards render landscape on the table. |
item.deck.settings.rotation-field |
Rotate cards by field | select |
— | deck |
W | — | The card field whose value selects each card's rotation (options are the deck's card field keys; "" removes the rule). Only shown once the deck has at least one card field. |
item.deck.settings.back-is-hidden |
Back is hidden | boolean |
— | deck |
W | — | TTS "Back is Hidden" flag, kept for compatibility with existing decks. |
item.deck.settings.back-image |
Back image | select |
— | deck |
W | — | The shared card-back image: "" for the default card back, else the repo path of a project image (options are the project's image assets). |
item.deck.art.bleed-px |
Bleed (px) | integer |
— | deck |
W | ≥ 0, step 1 | Pushes card art at least this many card-cell pixels past the card edge when the sheet is composed. Baked into the sheet: needs Generate & Save. |
item.deck.art.corner-radius |
Corner rounding | number |
— | deck |
W | ≥ 0, step 0.01 | Card corner radius as a fraction of the card's short edge; shapes the generated card body as well as the art. Needs Generate & Save. |
item.deck.art.background |
Background | color |
— | deck |
W | — | Fill colour for the letterbox in "Fit inside" and outside the rounded corners, as [r, g, b] in 0..1. Needs Generate & Save. |
item.deck.rotation-rule.rotation |
Rotation for field value | select |
— | deck |
W | ``, 1, 2, 3 |
How cards whose rule field carries this value are turned when drawn ("" = upright). Target <deck id>#rotation:<field value>. |
item.deck.card.rotation |
Rotation | select |
— | deck |
W | auto, 0, 1, 2, 3 |
Pins one card's rotation (quarter turns clockwise, "0".."3"), or "auto" to follow the deck's rotation rule. Target <deck id>#card:<card image repo path>. |
item.deck.card.label |
Card label | text |
— | deck |
W | — | One card's name. Target <deck id>#card:<card image repo path>. |
item.deck.card.copies |
Copies | integer |
— | deck |
W | ≥ 1, step 1 | How many physical copies of this card a spawned deck holds (copies share one sheet cell). Target <deck id>#card:<card image repo path>. |
item.deck.card.value-text |
Card value (text) | text |
— | deck |
W | — | Overrides one card's value for a TEXT card field. Target <deck id>#card:<card image repo path>/field:<field key>. |
item.deck.card.value-number |
Card value (number) | number |
— | deck |
W | — | Overrides one card's value for a NUMBER card field. Target <deck id>#card:<card image repo path>/field:<field key>. |
item.deck.card.value-boolean |
Card value (yes/no) | boolean |
— | deck |
W | — | Overrides one card's value for a YES/NO card field. Target <deck id>#card:<card image repo path>/field:<field key>. |
item.deck.card.value-choice |
Card value (choice) | select |
— | deck |
W | — | Overrides one card's value for a CHOICE card field; options are the field's declared choices ("" clears it). Target <deck id>#card:<card image repo path>/field:<field key>. |
item.deck.field.key |
Field key | text |
— | deck |
W | — | A data-model field's key (letter or _ first, then letters, digits, _; max 40) — the name scripts read. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.type |
Field type | select |
— | deck |
W | text, number, boolean, select |
A data-model field's value type. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.label |
Field display name | text |
— | deck |
W | — | A data-model field's display name ("" falls back to the key). Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.choices |
Field choices | text |
— | deck |
W | — | A CHOICE field's allowed values, comma separated (each trimmed and cut to 120 characters, blanks dropped, at most 64 kept). Only shown for Choice fields. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.default-text |
Field default (text) | text |
— | deck |
W | — | The inherited default of a TEXT data-model field. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.default-number |
Field default (number) | number |
— | deck |
W | — | The inherited default of a NUMBER data-model field. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.default-boolean |
Field default (yes/no) | boolean |
— | deck |
W | — | The inherited default of a YES/NO data-model field. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.field.default-choice |
Field default (choice) | select |
— | deck |
W | — | The inherited default of a CHOICE data-model field; options are its declared choices ("" clears it). Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.data.value-text |
Deck value (text) | text |
— | deck |
W | — | The deck's own value for a TEXT deck field. Target <deck id>#data:<field key>. |
item.deck.data.value-number |
Deck value (number) | number |
— | deck |
W | — | The deck's own value for a NUMBER deck field. Target <deck id>#data:<field key>. |
item.deck.data.value-boolean |
Deck value (yes/no) | boolean |
— | deck |
W | — | The deck's own value for a YES/NO deck field. Target <deck id>#data:<field key>. |
item.deck.data.value-choice |
Deck value (choice) | select |
— | deck |
W | — | The deck's own value for a CHOICE deck field; options are its declared choices ("" clears it). Target <deck id>#data:<field key>. |
Actions (14)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
item.deck.save |
Save | W | deck |
Rewrite only the .deck.json (name, copies, data, back, flags, rotation). Disabled while the sheet needs regenerating — use Generate & Save then. |
item.deck.generate-and-save |
Generate & Save | D | deck |
Re-compose every face sheet from the current cards and art settings, OVERWRITE the deck's sheet-N.webp files, delete sheets it no longer needs, then write the .deck.json. |
item.deck.apply-size-preset |
Card size preset | W | deck |
Set the per-card resolution to a preset (Poker 512×716, Bridge 460×716, Square 512×512). Target <deck id>#preset:<poker|bridge|square>. |
item.deck.art.fit-cover |
Cover | W | deck |
Card art fit: fill the whole card, cropping whatever overflows. Needs Generate & Save. |
item.deck.art.fit-contain |
Fit inside | W | deck |
Card art fit: fit the whole image inside the card, filling the rest with the Background colour. Needs Generate & Save. |
item.deck.card.preview |
Show this card in the art preview | R | deck |
Show one card in the Card art preview (editor view state only). Target <deck id>#card:<card image repo path>. |
item.deck.card.move-up |
Move up | W | deck |
Move one card earlier in the sheet order (needs Generate & Save). Target <deck id>#card:<card image repo path>. |
item.deck.card.move-down |
Move down | W | deck |
Move one card later in the sheet order (needs Generate & Save). Target <deck id>#card:<card image repo path>. |
item.deck.card.remove |
Remove from the deck | D | deck |
Remove one card (and its data overrides) from the deck; its image stays in the project. Target <deck id>#card:<card image repo path>. |
item.deck.card.revert-value |
Reset to the deck default | W | deck |
Clear one card's override for a card field so it inherits the field default. Target <deck id>#card:<card image repo path>/field:<field key>. |
item.deck.add-card-field |
Add card field | W | deck |
Append a field to the card data model; every card inherits its default. Refused at the field limit. |
item.deck.add-deck-field |
Add deck field | W | deck |
Append a field describing the deck itself. Refused at the field limit. |
item.deck.field.remove |
Remove field | D | deck |
Remove a data-model field AND every value stored under it. Target <deck id>#card-field:<index> (card data model) or <deck id>#deck-field:<index> (deck data), 0-based. |
item.deck.data.revert-value |
Reset to the deck default | W | deck |
Clear the deck's own value for a deck field so it falls back to the field default. Target <deck id>#data:<field key>. |
item.cards#
Card Data tab · surface editor · target asset
How it opens: Open the card data file from the explorer (Card Data tab).
Fields (35)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
item.cards.source.name |
Name | text |
— | asset |
W | — | Display name of the game this card data describes ("" removes it). |
item.cards.source.kind |
Cards from | select |
— | asset |
W | static, plugin |
Where cards come from: a catalogue file this mod ships (static), or a registered plugin. Switching seeds the other kind's settings. |
item.cards.source.catalogue-path |
Catalogue file | text |
— | asset |
W | — | Repo-relative path of the card catalogue (…/<name>.cards.json). Only shown when cards come from this mod. |
item.cards.source.plugin-id |
Plugin id | text |
— | asset |
W | — | The registered plugin (reverse-DNS id) that supplies the cards. Only shown when cards come from a plugin. |
item.cards.source.endpoint |
Endpoint | text |
— | asset |
W | — | Which of the plugin's card endpoints to read ("" takes its first one). Only shown when cards come from a plugin. |
item.cards.source.search-param |
Search parameter | text |
— | asset |
W | — | The endpoint parameter the deck builder's search box fills in ("" = the plugin's default). Only shown when cards come from a plugin. |
item.cards.source.page-param |
Page parameter | text |
— | asset |
W | — | The endpoint parameter that carries the next-page token while prefetching ("" = the plugin's default). Only shown when cards come from a plugin. |
item.cards.source.deck-import-plugin |
Deck import plugin | text |
— | asset |
W | — | A plugin whose deck-import block the deck builder offers for this game, independent of where cards come from ("" removes it). |
item.cards.roles.key |
Identity | select |
— | asset |
W | — | The field holding each card's stable identity (what saved decks store). Options are the document's field keys. |
item.cards.roles.title |
Title | select |
— | asset |
W | — | The field shown as each card's name. Options are the document's field keys. |
item.cards.roles.art |
Card image | select |
— | asset |
W | — | The field holding each card's image URL ("" = none; tiles render name-only). Options are the document's field keys. |
item.cards.roles.group |
Group by | select |
— | asset |
W | — | The field a decklist is grouped by ("" = a flat list). Options are the document's field keys. |
item.cards.roles.type |
Card type | select |
— | asset |
W | — | The field holding each card's type, which layout templates can pick from a list ("" = none). Options are the document's field keys. |
item.cards.filter.field |
Filter field | select |
— | asset |
W | — | The field a deck-builder search filter reads. Options are the document's field keys. Target <card data id>#filter:<index>. |
item.cards.filter.control |
Filter control | select |
— | asset |
W | text, enum-multi, enum-chips, range, boolean |
The widget a search filter uses (must suit the field's type — see Problems). Target <card data id>#filter:<index>. |
item.cards.column.field |
Column field | select |
— | asset |
W | — | The field a deck-builder table column shows. Options are the document's field keys. Target <card data id>#column:<index>. |
item.cards.column.header |
Column header | text |
— | asset |
W | — | A table column's header text ("" falls back to the field's name). Target <card data id>#column:<index>. |
item.cards.stat.kind |
Stat kind | select |
— | asset |
W | histogram, breakdown, sum |
The aggregate a deck stat shows (histogram and sum need a number field). Target <card data id>#stat:<index>. |
item.cards.stat.field |
Stat field | select |
— | asset |
W | — | The field a deck stat aggregates. Options are the document's field keys. Target <card data id>#stat:<index>. |
item.cards.partition.id |
Partition id | text |
— | asset |
W | — | A deck partition's id (lowercase letters, digits, hyphens). Target <card data id>#partition:<index>. |
item.cards.partition.name |
Partition name | text |
— | asset |
W | — | A deck partition's display name. Target <card data id>#partition:<index>. |
item.cards.partition.default |
Default | boolean |
— | asset |
W | — | Make this the partition an entry with no partition lands in; setting it clears every other partition's default. Target <card data id>#partition:<index>. |
item.cards.field.key |
Field key | text |
— | asset |
W | — | A field's key (letter or _ first, then letters, digits, _; max 40). Renaming moves every role, filter, column, stat and layout reference with it. Target <card data id>#field:<index> (0-based). |
item.cards.field.type |
Field type | select |
— | asset |
W | text, number, boolean, select |
A field's value type. Target <card data id>#field:<index> (0-based). |
item.cards.field.label |
Field display name | text |
— | asset |
W | — | A field's display name ("" falls back to the key). Target <card data id>#field:<index> (0-based). |
item.cards.field.choices |
Field choices | text |
— | asset |
W | — | A CHOICE field's allowed values, comma separated (each trimmed and cut to 120 characters, blanks dropped, at most 64 kept). Only shown for Choice fields. Target <card data id>#field:<index> (0-based). |
item.cards.field.default-text |
Field default (text) | text |
— | asset |
W | — | The default of a TEXT field. Target <card data id>#field:<index> (0-based). |
item.cards.field.default-number |
Field default (number) | number |
— | asset |
W | — | The default of a NUMBER field. Target <card data id>#field:<index> (0-based). |
item.cards.field.default-boolean |
Field default (yes/no) | boolean |
— | asset |
W | — | The default of a YES/NO field. Target <card data id>#field:<index> (0-based). |
item.cards.field.default-choice |
Field default (choice) | select |
— | asset |
W | — | The default of a CHOICE field; options are its declared choices ("" clears it). Target <card data id>#field:<index> (0-based). |
item.cards.catalogue.find |
Find | text |
— | asset |
W | — | Filter which catalogue rows are shown (case-insensitive match on any value; at most 200 rows render). Editor view state; nothing is saved. Only shown for a static catalogue. |
item.cards.card.value-text |
Card value (text) | text |
— | asset |
W | — | One catalogue card's value for a TEXT field. Target <card data id>#card:<catalogue index>/field:<field key>. |
item.cards.card.value-number |
Card value (number) | number |
— | asset |
W | — | One catalogue card's value for a NUMBER field. Target <card data id>#card:<catalogue index>/field:<field key>. |
item.cards.card.value-boolean |
Card value (yes/no) | boolean |
— | asset |
W | — | One catalogue card's value for a YES/NO field. Target <card data id>#card:<catalogue index>/field:<field key>. |
item.cards.card.value-choice |
Card value (choice) | select |
— | asset |
W | — | One catalogue card's value for a CHOICE field; options are the field's declared choices ("" clears it). Target <card data id>#card:<catalogue index>/field:<field key>. |
Actions (14)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
item.cards.save |
Save card data | W | asset |
Write the card data document (and, for a static source, the catalogue file). Refused while the document has problems. |
item.cards.add-field |
Add field | W | asset |
Append a text field (key fieldN) to the data model. Refused at the field limit. |
item.cards.field.remove |
Remove field | D | asset |
Remove a field and every filter, column, stat, copy exception and layout region that references it (refused while a role points at it). Target <card data id>#field:<index> (0-based). |
item.cards.add-filter |
Add filter | W | asset |
Append a text search filter on the first field. Refused at the filter limit. |
item.cards.filter.remove |
Remove filter | D | asset |
Remove one search filter. Target <card data id>#filter:<index>. |
item.cards.add-column |
Add column | W | asset |
Append a table column on the first field. Refused at the column limit. |
item.cards.column.remove |
Remove column | D | asset |
Remove one table column. Target <card data id>#column:<index>. |
item.cards.add-stat |
Add stat | W | asset |
Append a breakdown stat on the first field. Refused at the stat limit. |
item.cards.stat.remove |
Remove stat | D | asset |
Remove one deck stat. Target <card data id>#stat:<index>. |
item.cards.add-partition |
Add partition | W | asset |
Append a deck partition (partition-N). Refused at the partition limit. |
item.cards.partition.remove |
Remove partition | D | asset |
Remove one deck partition. Target <card data id>#partition:<index>. |
item.cards.add-card |
Add card | W | asset |
Append a catalogue card with a fresh identity (card-N) and title. Only shown for a static catalogue; refused at the card limit. |
item.cards.card.remove |
Remove card | D | asset |
Remove one catalogue card. Target <card data id>#card:<catalogue index>. |
item.cards.open-layout-editor |
Open the layout editor | R | asset |
Open this document's Card Layouts tab (regions, overlays, counters). It reads the SAVED document, so save first. |
item.card-layouts#
Card Layouts tab · surface editor · target asset
How it opens: Open the card layouts file from the explorer (Card Layouts tab).
Actions (4)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
item.card-layouts.show-layouts |
Card Layouts | R | asset |
Switch the tab to its Card Layouts sub-tab (templates, preview, region inspector). View state only. |
item.card-layouts.show-counters |
Counters | R | asset |
Switch the tab to its Counters sub-tab. View state only. |
item.card-layouts.show-attachments |
Attachments | R | asset |
Switch the tab to its Attachments sub-tab (an explanation only; nothing there is editable yet). View state only. |
item.card-layouts.save |
Save card layouts | W | asset |
Validate and write this tab's layouts, counters and corner rounding into the card data document in the project draft (read-modify-write: fields the Card Data tab owns are preserved). Refuses an invalid document. |
item.card-layouts.layouts#
▸ · surface editor · target asset
How it opens: Card Layouts tab ▸ Card Layouts sub-tab (templates, the card preview and the region inspector).
Fields (31)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
item.card-layouts.card.corner-radius |
Corner rounding (% of short edge) | number |
— | asset |
W | ≥ 0, ≤ 50, step 0.5 | How rounded this set's cards are printed, as a PERCENT of the card's short edge (stored as the fraction cardCornerRadius). Used everywhere the cards are drawn. 0 is square-cut; 8 is standard playing-card stock. |
item.card-layouts.preview.card |
Preview card | select |
— | asset |
W | — | Which catalogue card (among those the selected template claims) the preview draws. The value is the index into the matching cards as a string; options are live. View state only; nothing is saved. |
item.card-layouts.layout.name |
Name | text |
— | asset |
W | — | The selected template's display name. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.id |
Id | text |
— | asset |
W | — | The selected template's stable id inside the document (lower-case letters, digits, hyphens). Changing it is a rename. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.type |
Card types | boolean |
— | asset |
W | — | Whether the selected template renders cards of one type (types are an OR, combined with the clauses by AND; none ticked = any type). The target is <asset id>#layout:<layout id>/type:<type value>. |
item.card-layouts.layout.clause.field |
Clause field | select |
— | asset |
W | — | The card field a match clause tests (a field key; options are the document's fields). The target is <asset id>#layout:<layout id>/clause:<index>. |
item.card-layouts.layout.clause.op |
Clause operator | select |
— | asset |
W | equals, contains |
How a match clause compares (case-insensitive). The target is <asset id>#layout:<layout id>/clause:<index>. |
item.card-layouts.layout.clause.value |
Clause value | text |
— | asset |
W | — | The value a match clause compares against. The target is <asset id>#layout:<layout id>/clause:<index>. |
item.card-layouts.region.label |
Label | text |
— | asset |
W | — | The region's display label; "" removes it (the id is shown instead). The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.id |
Id | text |
— | asset |
W | — | The region's stable id within its template. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.source |
Source | select |
— | asset |
W | static, field, counter |
What the region draws: fixed text, a card field, or a live counter. Switching resets the binding to that kind's defaults. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.text |
Text | text |
— | asset |
W | — | The fixed text a Static text region draws. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.field |
Field | select |
— | asset |
W | — | The card field (field key) a Card field region draws; options are the document's fields. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.live |
Players may change this | boolean |
— | asset |
W | — | Makes a Card field region's value MUTABLE at the table (the only part of a layout that replicates). The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.live-mode |
Show as | select |
— | asset |
W | delta, override |
How a live value combines with the printed one: delta adds to it, override replaces it. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.counter |
Counter | boolean |
— | asset |
W | — | Whether a Live counter region draws one declared counter. A number region draws exactly one (ticking another replaces it); a tokens region draws every ticked counter in draw order, newly ticked last. The target is <asset id>#region:<layout id>/<region id>/counter:<counter id>. |
item.card-layouts.region.render |
Draw as | select |
— | asset |
W | number, chips |
How a Live counter region draws: the count as a number, or tokens arranged inside the region's rectangle. Switching to number keeps only the first counter and drops the token size bounds. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.chip-min-size |
Min token size (% of card) | number |
— | asset |
W | ≥ 0, ≤ 100, step 0.5 | Smallest token height in a tokens region, as a percent of the card height; 0 = unset. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.chip-max-size |
Max token size (% of card) | number |
— | asset |
W | ≥ 0, ≤ 100, step 0.5 | Largest token height in a tokens region, as a percent of the card height; 0 = unset (one row fills the area). The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.style.weight |
Weight | select |
— | asset |
W | regular, bold |
The region text's weight. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.style.size |
Size (% of card) | number |
— | asset |
W | ≥ 0.1, ≤ 100, step 0.1 | The region text's cap height as a percent of the card's height (> 0, up to 100). The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.style.color |
Colour | text |
— | asset |
W | — | The region text's colour as #rrggbb; "" removes it (default colour). The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.style.outline |
Outline | text |
— | asset |
W | — | The region text's outline colour as #rrggbb; "" removes the outline. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.style.align |
Align | select |
— | asset |
W | left, center, right |
Horizontal alignment of the region text. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.face |
Face | select |
— | asset |
W | front, back, both |
Which card face the region draws on. Rendering only; it never changes what a peer is sent. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.visibility |
Others see | select |
— | asset |
W | hidden, count-only, full |
Host-side REDACTION of the region's live value (the anti-cheat control). full publishes the value even on a face-down card; prefer hidden unless the game needs it public. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.permission |
Permission | select |
— | asset |
W | host, controller, seated, script |
Who may change the region's live value; enforced by the host's intent handler. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.rect.x |
x | number |
— | asset |
W | ≥ 0, ≤ 1 | Region left edge as a fraction (0..1) of the card face width; the rect is kept inside the face. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.rect.y |
y | number |
— | asset |
W | ≥ 0, ≤ 1 | Region top edge as a fraction (0..1) of the card face height; the rect is kept inside the face. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.rect.w |
w | number |
— | asset |
W | ≥ 0, ≤ 1 | Region width as a fraction (> 0, up to 1) of the card face width. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.rect.h |
h | number |
— | asset |
W | ≥ 0, ≤ 1 | Region height as a fraction (> 0, up to 1) of the card face height. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
Actions (16)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
item.card-layouts.layout.select |
Select template | R | asset |
Select a template so its match rules, preview and regions show. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.move-up |
Move up | W | asset |
Move a template one place earlier (templates are evaluated top to bottom, first match wins). The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.move-down |
Move down | W | asset |
Move a template one place later. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.remove |
Remove | D | asset |
Delete a template and all its regions from the unsaved draft. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.add |
+ New template | W | asset |
Append a new template (with a clause on the first field) and select it. |
item.card-layouts.layout.clear-types |
Clear types | W | asset |
Untick every card type on the selected template (it then renders any type). The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.clause.add |
+ clause | W | asset |
Add a match clause to the selected template. The target is <asset id>#layout:<layout id>. |
item.card-layouts.layout.clause.remove |
Remove clause | D | asset |
Delete one match clause from the selected template. The target is <asset id>#layout:<layout id>/clause:<index>. |
item.card-layouts.preview.shuffle |
Shuffle through matching cards | R | asset |
Show a random other card the selected template claims in the preview. View state only. |
item.card-layouts.preview.next |
Next matching card | R | asset |
Show the next card the selected template claims in the preview. View state only. |
item.card-layouts.region.select |
Select region | R | asset |
Select a region of the selected template so its inspector fields mount. The target is <asset id>#region:<layout id>/<region id>. |
item.card-layouts.region.add |
+ Add | W | asset |
Add a region to the selected template and select it. The target is <asset id>#layout:<layout id>. |
item.card-layouts.region.reset-rect |
Reset this region to the centre of the card | W | asset |
Move the selected region back to a small rectangle in the centre of the card. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.remove |
Remove region | D | asset |
Delete the selected region from its template in the unsaved draft. The target is <asset id>#region:<layout id>/<region id>; the region must be the selected one. |
item.card-layouts.region.counter-earlier |
Draw earlier | W | asset |
Move a ticked counter one place earlier in a tokens region's draw order. The target is <asset id>#region:<layout id>/<region id>/counter:<counter id>. |
item.card-layouts.region.counter-later |
Draw later | W | asset |
Move a ticked counter one place later in a tokens region's draw order. The target is <asset id>#region:<layout id>/<region id>/counter:<counter id>. |
item.card-layouts.counters#
▸ · surface editor · target asset
How it opens: Card Layouts tab ▸ Counters sub-tab (counter definitions and the redaction preview).
Fields (17)
| Field id | Label | Kind | Unit | Target | Class | Range / options | Description |
|---|---|---|---|---|---|---|---|
item.card-layouts.counter.name |
Name | text |
— | asset |
W | — | The counter's editor name. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.id |
Id | text |
— | asset |
W | — | The counter's stable id (regions and transfers reference it). The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.label |
Badge label | text |
— | asset |
W | — | Short text drawn on the badge ("+1/+1"), up to 24 characters; "" removes it. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.art-source |
Source | select |
— | asset |
W | builtin, asset |
Whether the counter's art is a built-in chip or an image from this mod. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.art-shape |
Shape | select |
— | asset |
W | chip, pip, badge |
The built-in art's shape. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.art-texture |
Texture | select |
— | asset |
W | — | The image (repo-relative path of an image already in this project, never a URL) the counter draws. Options are the project's images. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.color |
Colour | text |
— | asset |
W | — | The counter's colour as #rrggbb; "" removes it. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.anchor |
Anchor | select |
— | asset |
W | top-left, top, top-right, left, center, right, bottom-left, bottom, bottom-right |
Where on the card the counter's badge sits. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.offset-x |
Offset x | number |
— | asset |
W | ≥ -1, ≤ 1, step 0.01 | Horizontal nudge from the anchor, as a fraction (-1..1) of the card face. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.offset-y |
Offset y | number |
— | asset |
W | ≥ -1, ≤ 1, step 0.01 | Vertical nudge from the anchor, as a fraction (-1..1) of the card face. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.stacking |
Stacking | select |
— | asset |
W | number, row, column |
How several of the counter are drawn: one numbered badge (recommended), or a row/column of chips. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.max |
Max | integer |
— | asset |
W | ≥ 1, step 1 | The most of this counter one card can hold. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.visibility |
Others see | select |
— | asset |
W | hidden, count-only, full |
Host-side REDACTION of the counter's count. full publishes it even on a face-down card; prefer hidden unless the game needs it public. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.face |
Draw on face | select |
— | asset |
W | front, back, both |
Which card face the counter draws on. Rendering only. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.flip |
Lifecycle | select |
— | asset |
W | persist, discharge, transfer |
What happens to the count when the card flips: keep it, clear it, or move it to another counter (transfer picks the first eligible target; set Transfer to after). The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.transfer-to |
Transfer to | select |
— | asset |
W | — | The counter id a transfer-on-flip moves the count to (options: counters that do not themselves transfer). The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
item.card-layouts.counter.permission |
Permission | select |
— | asset |
W | host, controller, seated, script |
Who may change the counter's count; enforced by the host's intent handler. The target is <asset id>#counter:<counter id>; the counter must be the selected one. |
Actions (4)
| Action id | Label | Class | Target | Description |
|---|---|---|---|---|
item.card-layouts.counter.select |
Select counter | R | asset |
Select a counter so its inspector fields mount. The target is <asset id>#counter:<counter id>. |
item.card-layouts.counter.add |
+ New counter | W | asset |
Declare a new counter and select it. |
item.card-layouts.counter.remove |
Remove | D | asset |
Delete a counter declaration from the unsaved draft. The target is <asset id>#counter:<counter id>. |
item.card-layouts.counter.preview-view |
Counter preview | R | asset |
Show which counters a viewer sees for one preview cell (own face up, own face down, an opponent's face-down card after redaction). The target is <asset id>#preview:<view>. View state only. |
