Dicey Table

ENTITY

ENTITY is the first section on every object selection, and it is deliberately not styled as an engine or platform component — see The Inspector for why. It is the entity itself: the fields every table Entity has regardless of what components it carries.

Source: the ENTITY EmCollapsible in TableEditModeShell.tsx's object Inspector branch.

Fields#

Field Type Range / units Default Runtime effect Replicates
Enabled boolean true (absent = enabled) Per PlayCanvas semantics, disabling the entity disables every component on itrender, rigidbody, collision, and any added light/camera — not just visibility. Written via the same path as the Hierarchy's eye toggle. Yes — metadata.enabled, part of TableObjectState.metadata
Name text ≤ 80 chars, free-form absent (falls back to slug) The human-readable displayName. Shown in the Hierarchy row, status messages, and the Live Entity's pc.Entity.name. Yes — TableObjectState.displayName
Slug text [a-z0-9-], unique in the scene, 1–80 chars derived from the entity's kind/preset on creation The machine-facing label. For a kind: "card" entity, this is the card's identity — it drives hidden-information redaction. Editing Name never touches Slug. Yes — TableObjectState.label
Parent select (entity picker) any other object in the scene, or none none Sets parentId. Parenting is transform-and-organization only; see working/parenting.md (not this page) for the kinematic/weld/joint distinctions. Yes — TableObjectState.parentId
Grabbable (shown only when parented) boolean false The grabbableWhileParented opt-out from grab escalation. Full behavior — including that it is ignored while welded and never overrides an ancestor's lock — is working/parenting.md's to document; this page only notes the field exists. Yes — metadata.grabbableWhileParented, part of TableObjectState.metadata
Tags chip input [a-z0-9_-], 1–32 chars, ≤ 100 tags [] Free-form grouping tags, plus the entity's platform tags (dt:object, dt:kind:<kind>) shown alongside as non-removable chips. See IDs, names and tags for the full dt: story. Yes — TableObjectState.tags
Position vector3 world units (feet), unbounded the entity's spawn position World-space location. Shown and typed in your display unit; the stored value is always world units. Yes — TableObjectState.position
Rotation vector3 degrees, unbounded — an angle is not a length, so the unit setting does not touch it the entity's spawn rotation Euler rotation. Yes — TableObjectState.rotation
Scale vector3 ≥ 0.01 per axis {1,1,1} Non-uniform scale is allowed and multiplies every descendant's world scale if this entity has children — see the parenting caveat about cards making poor parents. The lock button next to the label keeps proportions — see The scale lock. Yes — TableObjectState.scale

All ten fields are part of TableObjectState, so they round-trip through the scene document, survive delta/host-migration/save-load, and — once the mod is played — replicate to every peer via TableSnapshot exactly like any other object field (snapshotDelta.ts's OBJECT_FIELD_EQ covers label, displayName, parentId, tags, position, rotation, scale and metadata individually, so an edit to any one of them is not silently dropped).

The scale lock#

A lock button sits beside the Scale label (lock_open when off, lock when on).

  • Locked, typing a new value into one axis scales all three by the same ratio. Change X from 1 to 2 on a {1, 0.5, 1} entity and you get {2, 1, 2}. If the axis you edited was 0, there is no ratio to keep, so the typed value is copied to all three.
  • Locked, Scale-gizmo drags keep proportions too: whichever axis you dragged furthest drives all three.
  • Unlocked (the default), each axis is independent, as before.

The lock is a personal preference, not part of the entity: it writes nothing to the scene document, applies to every entity you select, and is remembered in this browser (localStorage, diceytable.editor.scaleLock).

In-editor callouts#

Two hints render conditionally inside ENTITY, both worth knowing about even though their full explanation belongs to working/parenting.md:

  • Directly under Parent, when the entity is parented: a hint explaining that Grabbable defaults off (grabbing moves the whole assembly) and is ignored once the assembly is welded.
  • When both this entity and its parent are dynamic bodies: a warning that parenting holds the child kinematic, and that two pieces that should both keep simulating want a Fixed Joint instead, or Weld on the parent.

What this section is not#

  • It is not a component, and its tone is deliberately unmarked rather than engine or platform — see The Inspector.
  • It does not show id — there is no Inspector field for it. id is assigned on creation, never edited, and the only thing anything addresses the entity by. See IDs, names and tags.
  • It does not show the live PlayCanvas guid or component list — that is ENTITY (ADVANCED), the read-only section at the bottom of the stack (inspector/entity-advanced.md, not this page).

See also#