Dicey Table

Glossary

Every term the Developer Docs use is defined here, once. Each entry has a stable anchor, so other pages link to a definition rather than repeating it — for example /docs/editor/concepts/glossary#scene-entity.

This vocabulary is normative. If a term you need is missing, add it here rather than coining a synonym elsewhere.

A#

Asset#

Loose term for a file in the project tree — a model, texture, material, script or deck. In the vocabulary it is a Definition: it lives in the asset explorer, not in the scene.

C#

Capability#

A permission a mod must declare in its manifest before its script may use the matching part of the mod API. The ten capabilities are log, spawn-object, register-action, read-context, read-world, object-action, saved-data, subscribe-events, ui and play-sound. A script that calls an API guarded by a capability it did not declare is rejected.

Card identity#

Which card a kind: "card" entity is, as opposed to what it is called. Carried by label, and the input to hidden-information redaction. Changing a card's slug changes its identity.

Component#

Data and behavior attached to one Entity. Only ever an engine component: render, rigidbody, collision, light, camera, script, sound, element, screen. Never a synonym for a thing placed on the table — that is an Entity. See Engine Component, Intrinsic component, Optional component.

D#

Definition#

The reusable blueprint for something, held in the project tree or asset explorer and not in the scene. Templates, presets, materials, textures, scripts, models and decks are all Definitions. Dragging one into the scene creates a Scene Entity from it. Also called a Template, a Preset or an Asset.

Detached#

A seat that owns its own world-space zones, name label and card holders and ignores the Seat template. The state every seat is in when a scene has no template, and what Linked is the opposite of. Detaching is a visual no-op: the template's current geometry is frozen onto the seat first, and its card holders stay put as ordinary entities.

displayName#

An entity's optional human name. Free-form, up to 80 characters, edited in the Inspector's Name field, shown in the Hierarchy row and used as the Live Entity's engine name. Falls back to label when absent. Not an address.

dt: namespace#

The reserved prefix for platform-owned tags. Unauthorable: the author-tag character class excludes :, so dt: tags cannot be forged by an author or a mod. They are shown dimmed and non-removable in the editor, and they do appear in anything that reads an entity's tags. Members: dt:internal, dt:object, dt:kind:<kind>, dt:seat-group, dt:child.

Draft#

The local, unsaved state of a scene you are editing. Lives in your browser, is written to a browser-local mirror of your eventual repository, and is never uploaded to a DiceyTable server.

E#

Edit Mode#

DiceyTable's authoring environment, at /editor and via the Edit Mode toggle on the table toolbar. Edits the scene document with physics Frozen by default.

Engine#

Provenance value: provided by PlayCanvas. Engine components and engine systems.

Engine Component#

A Component, qualified to make clear it is the engine's kind rather than a Platform panel. Inspector sections for engine components carry a distinct header accent.

Entities (N)#

The Hierarchy folder that holds a scene's Scene Entities. N counts every entity in the scene, not only the un-parented ones. Formerly, and wrongly, called Components (N).

Entity#

A container with a transform and no behavior of its own. Every Hierarchy row with a transform is an Entity. The composition-axis term for a thing you place on the table. See also Scene Entity, Live Entity.

F#

Folder#

A Hierarchy grouping row that is not an Entity and has no transform: Room, Walls, Lights, Table, Player Zones, Entities (N). Shows folder in the TYPE column. Not addressable from a script or a mod.

Frozen#

The viewport state in which physics does not step and entities hold their authored position. The default in Edit Mode. Its counterpart is Live.

G#

guid#

The engine's identifier for a Live Entity. Unstable — entities are destroyed and recreated whenever the document is applied, so guids change. Never persisted, never replicated, never exposed to a script or a mod. The stable key is id.

H#

Hand zone#

A Seat zone of type hand: the seat's private hand area. The single writer of an entity's owning seat — dropping an entity inside one is what makes it a hand card, routes deals to it, and subjects it to face-down hidden-information redaction. At most one per seat, enforced by the schema. A volume, not an entity; contrast the card holder, which is a named pile location with a capture radius. The two compose.

Hidden zone#

A Seat zone of type hidden: its contents are concealed from any viewer not entitled to the seat regardless of face-up or face-down, which is what distinguishes it from a hand zone. There is no GM or see-all role anywhere in DiceyTable — no spectator, referee or dungeon-master exemption exists.

Hidden-information redaction#

The host-authoritative mechanism that removes identity-bearing state from what a peer receives, so a player cannot learn a face-down card by reading network traffic. Keyed on card identity.

Hierarchy#

The editor's left-hand tree. An authoring view of the scene document, keyed by id — not the engine's scene graph. See Document vs engine.

Host-authoritative#

The replication model: exactly one peer is the host, owns the authoritative state, and is the only peer whose mutations count. Other peers send intents and wait for the resulting state.

I#

id#

An entity's address: assigned on creation, up to 96 characters, stable for the entity's lifetime, unique in the scene, and never edited by hand. The only thing that resolves an entity — parentId points at it, actions target it, queries return it.

Inspector#

The editor's right-hand panel: one collapsible section per engine component and per Platform panel, plus the ENTITY header and the read-only ENTITY (ADVANCED) view.

Intent#

A single described mutation of table state. Peers send intents to the host rather than mutating shared state themselves.

Intrinsic component#

One of render, collision, rigidbody. Present on every Scene Entity, authored in physics and metadata rather than in a component list, and configured and disabled, never removed. RIGIDBODY and COLLISION have enable flags; RENDER does not — the entity's own Enabled toggle is the control.

J#

Joint#

A physics constraint connecting two independently-dynamic bodies. Not parenting and not a weld: both bodies keep simulating.

K#

Kind#

See Platform kind.

L#

label#

An entity's slug: lowercase, dash-separated, unique in the scene, up to 80 characters, edited in the Inspector's Slug field. The machine-facing name — scripts and mods use it — and, for kind: "card", the card identity. Not an address.

Linked#

A seat whose zones, name label and card holders are the Seat template's. It stores only its group transform (position and rotation Y), its color and an optional label text override — deliberately no scale, so every linked seat matches the template by construction. Renders no children in the Hierarchy. The opposite of Detached.

Live#

The viewport state in which physics steps normally. Counterpart to Frozen. Running a scene script switches Frozen to Live automatically.

Live Entity#

The pc.Entity the runtime builds from a Scene Entity. Ephemeral, addressed by guid, never persisted, destroyed and recreated on every document apply. Carries the Engine Components.

M#

Manifest#

The file that declares a mod: its identity, entry point, capabilities and assets. Validated against a shared schema on registration.

Mod#

A GitHub-hosted package that adds a game to DiceyTable. Its script is untrusted, runs in a sandboxed iframe, and reaches the table only through the capability-gated mod API.

Mod Scripting#

The mod-facing script surface: JavaScript, hosted in a mod's GitHub repository, reaching the table through the api global, gated by capabilities, and statically scanned before it is accepted. Distinct from Table Scripting; the two are not interchangeable and share no globals.

O#

Optional component#

An engine component listed in a Scene Entity's components[] array: addable, removable, capped at 8 entries with at most one per type. The addable set is light and camera. script is not among them — it is attached through metadata.scriptId and the SCRIPT section.

P#

Parenting#

Giving one entity another as its parent, so the parent's transform propagates. Transform and organization only. A parented child is held kinematic so it cannot fight its parent; its authored body type is untouched and restored on unparent. Chains are capped at depth 8. Not a joint and not a weld.

PIECE#

An Inspector Platform panel holding an entity's Platform kind (TYPE) and physical SURFACE. Sits above RENDER because those are not engine-render fields.

Piece#

Retired as a formal term. Fine in ordinary prose; never a UI type label, an identifier in new code, or a type name in these docs. Say Entity.

Platform#

Provenance value: defined by DiceyTable and available in every project. Platform kinds and platform concepts such as Seat zone, Seat template, Snap Point, Decal, Text Label, Joint, Wall, Poster and Room Light.

Platform kind#

A Scene Entity's DiceyTable classification: card, deck, die, token, board, bag, custom, card-holder. Shown as TYPE in the PIECE panel.

Platform panel#

An Inspector section that is not an engine component: PIECE, DIE SETTINGS, SOUND SETS (BUILT-IN), SOUND OVERRIDES. Carries a different header accent from engine sections.

Project#

Provenance value: defined by an author inside one mod or scene. Project materials, textures, scripts, models, decks, and the authored scene itself.

Provenance#

The axis that answers who defined this: Engine, Platform or Project.

S#

Scene document#

The authored source of truth for a scene: entities and their transforms, physics, materials, tags, parents and components; seat zones; the room, its walls, posters and lights; project scripts; snap points. The engine's entity tree is rebuilt from it, never the reverse.

Scene Entity#

An authored instance placed in the scene. Persisted, replicated, and addressed by id. Instantiated at runtime as a Live Entity.

Scene script#

A project script attached to the scene as a whole, rather than to one entity. See Table Scripting.

Seat group#

One of the eight fixed player-color seats, as a Tag Group under the Player Zones Folder: a group transform, its Seat zones and exactly one name label. Addressed by the stable, color-independent id seat-group-<index>, and targeted as a set by the seat-group tag. Not a parent — a seat's card holders are root entities tagged for the seat, not children of it.

Seat-local space#

The frame a Seat template's geometry is authored in: origin at the seat's group pivot, +Z pointing at the table centre, world units (feet), rotations in degrees. Each linked seat's group transform converts it to world space. The one convention an author can get wrong silently.

Seat template#

A scene's single authored layout — one name label, typed Seat zones and card-holder definitions, all in seat-local space — applied to any number of seats at once. Lives in the scene document, never on the wire. It is the source of truth for a Linked seat; that seat's own stored zones are a derived cache re-materialized on every load and save, so a consumer that has never heard of templates still reads correct world geometry.

Seat zone#

An authored translucent box owned by a Seat group or by the Seat template, carrying a type that decides what it does. Two-dimensional: a footprint on the table plane with no height.

Type Effect
hand See Hand zone.
area Gates who may interact with what is inside. Confers no ownership.
hidden See Hidden zone.
scripting Geometry only — raises enter/leave events and nothing else.
reveal · layout · randomize · fog-of-war · drop Parse and render; no behaviour yet. Listed in the schema so a scene authored on a newer client still loads on an older one.

Every type raises enter and leave events. A zone's tag filter gates occupancy itself: no tags matches everything, one or more matches an entity sharing at least one of them.

Slug#

See label. Also the Inspector field that edits it.

Snapshot#

The replicated form of table state. The host broadcasts full snapshots as keyframes and incremental deltas in between.

System#

Owns every instance of one component type and processes them in batches. Engine-internal; never surfaced in the editor, a scene script or a mod.

T#

Table Scripting#

The in-editor script surface: TypeScript, authored in the editor, reaching the table through the world, globalEvents and refObject globals. Distinct from Mod Scripting; the two surfaces share no globals and are documented separately.

Tag#

A short lowercase token attached to an entity for grouping. Character class [a-z0-9_-], 1–32 characters, up to 100 per entity, stored lowercase and de-duplicated. Tags whose names begin dt: belong to the dt: namespace and cannot be authored.

Tag Group#

A set of Entities defined by a shared tag, such as seat-group. Shows tag group in the TYPE column. Not a parent — membership is by tag, so moving the "group" moves nothing.

Template#

See Definition.

W#

Weld#

Merging a parented assembly into the parent's single compound rigidbody: the parent's collider becomes compound, descendants keep collision and lose rigidbody. One dynamic body with combined mass and inertia. Welded members cannot be grabbed individually, and welding a member of an already-welded assembly is rejected. Not parenting and not a joint.