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 it — render, 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
Xfrom1to2on a{1, 0.5, 1}entity and you get{2, 1, 2}. If the axis you edited was0, 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
toneis deliberately unmarked rather thanengineorplatform— see The Inspector. - It does not show
id— there is no Inspector field for it.idis 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
guidor component list — that isENTITY (ADVANCED), the read-only section at the bottom of the stack (inspector/entity-advanced.md, not this page).
See also#
- The scene model — Entity vs Component vs Folder.
- IDs, names and tags — the full three-names story.
- PIECE — the Platform classification panel directly below
ENTITY.
