TimerEntity
Defined in: TimerEntity.ts:17
A pre-built entity that exposes the ProcessComponent API directly. Useful for scene-level timing without manual component wiring.
const timers = this.spawn(TimerEntity);timers.run(Process.delay(0.5, () => { ... }));const cd = timers.slot({ duration: 0.3 });Extends
Section titled “Extends”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new TimerEntity(
name?,tags?):TimerEntity
Defined in: Entity.ts:104
Parameters
Section titled “Parameters”string
Iterable<string, any, any>
Returns
Section titled “Returns”TimerEntity
Inherited from
Section titled “Inherited from”Properties
Section titled “Properties”
readonlyid:number
Defined in: Entity.ts:54
Unique auto-incrementing ID.
Inherited from
Section titled “Inherited from”
readonlyoptionalkey?:string
Defined in: Entity.ts:65
Stable identity key, scene-scoped. Set at spawn-time when
options.key is passed to scene.spawn / entity.spawnChild;
undefined otherwise. Used with scene.findByKey and as a stable
id in reactive stores (e.g. a createSet<string>() persisted under "world.opened").
Inherited from
Section titled “Inherited from”
readonlyname:string
Defined in: Entity.ts:56
Display name for debugging.
Inherited from
Section titled “Inherited from”
readonlytags:Set<string>
Defined in: Entity.ts:58
Tags for group queries.
Inherited from
Section titled “Inherited from”timeScale
Section titled “timeScale”timeScale:
number=1
Defined in: Entity.ts:80
Per-entity time-scale multiplier. Mirrors Scene.timeScale but
scoped to this single entity: the engine composes the delta time passed
to this entity’s components (and its ProcessComponent, particle
emitters) as dt * scene.timeScale * entity.timeScale. 1 = normal
speed, 0.5 = half speed, 0 = frozen, 2 = double speed.
Physics is deliberately NOT affected: PhysicsSystem steps a single
shared Rapier world per scene under scene.timeScale only, so a
rigid-body entity’s simulation cannot be individually slowed or sped up
via this field. Use a kinematic body or scale velocities manually if you
need per-body time control.
Inherited from
Section titled “Inherited from”[TRAITS_KEY]
Section titled “[TRAITS_KEY]”
static[TRAITS_KEY]:Set<symbol>
Defined in: Entity.ts:52
Inherited from
Section titled “Inherited from”Accessors
Section titled “Accessors”activeSelf
Section titled “activeSelf”Get Signature
Section titled “Get Signature”get activeSelf():
boolean
Defined in: Entity.ts:235
This entity’s own activeness bit — what setActive last wrote. An entity
whose activeSelf is true can still be dormant, if an ancestor is not.
Use isActive for the state the engine acts on.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”children
Section titled “children”Get Signature
Section titled “Get Signature”get children():
ReadonlyMap<string,Entity>
Defined in: Entity.ts:279
Named children as a read-only map. Empty map if no children.
Returns
Section titled “Returns”ReadonlyMap<string, Entity>
Inherited from
Section titled “Inherited from”generation
Section titled “generation”Get Signature
Section titled “Get Signature”get generation():
number
Defined in: Entity.ts:160
Which life of this entity is current. An EntityPool member is reused, so one object serves many lives; the counter moves on whenever a life ends, by release or by destruction. handle compares against it. Compare for equality only — a destruction cascade can advance it more than once, so it does not count lives. Written by the engine only.
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”isActive
Section titled “isActive”Get Signature
Section titled “Get Signature”get isActive():
boolean
Defined in: Entity.ts:245
Whether the entity is active: its own activeSelf and every ancestor’s.
A dormant entity keeps all of its components and its place in
scene.getEntities(), but drops out of queries, findEntity,
findEntitiesByTag and findEntities, and its components stop updating.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”isDestroyed
Section titled “isDestroyed”Get Signature
Section titled “Get Signature”get isDestroyed():
boolean
Defined in: Entity.ts:140
True once the entity is dead — after destroy() is called, or once its
scene starts tearing it down on scene exit.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”isPooled
Section titled “isPooled”Get Signature
Section titled “Get Signature”get isPooled():
boolean
Defined in: Entity.ts:149
True while an EntityPool owns this entity. Pool members are left out of save snapshots: a pool restores empty and refills, so whatever was in flight when the game was saved is gone on load.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”parent
Section titled “parent”Get Signature
Section titled “Get Signature”get parent():
Entity|null
Defined in: Entity.ts:274
The parent entity, or null if this is a root entity.
Returns
Section titled “Returns”Entity | null
Inherited from
Section titled “Inherited from”Get Signature
Section titled “Get Signature”get scene():
Scene
Defined in: Entity.ts:122
The scene this entity belongs to. Throws if the entity is not attached
to a scene — which in practice only happens before scene.spawn /
addChild wires it up, or after the entity is destroyed (end-of-frame
flush after destroy(), or scene teardown on exit). Inside lifecycle
methods (setup, component onAdd, update, and component
onDestroy during destruction) this is always safe to access.
For the rare case where you genuinely need to inspect whether an
entity has a scene (e.g. defensive code in systems iterating a query
result), use tryScene instead.
Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”tryScene
Section titled “tryScene”Get Signature
Section titled “Get Signature”get tryScene():
Scene|null
Defined in: Entity.ts:132
The scene this entity belongs to, or null if detached.
Returns
Section titled “Returns”Scene | null
Inherited from
Section titled “Inherited from”Methods
Section titled “Methods”_componentsInUpdateOrder()
Section titled “_componentsInUpdateOrder()”_componentsInUpdateOrder():
Iterable<Component>
Defined in: Entity.ts:564
Internal
Internal: components in the order ComponentUpdateSystem calls them —
ascending updatePriority, ties in add order. Identical to getAll()
until a component declares a priority. The sorted array is replaced, not
mutated, when a component is added or removed, so a pass already
iterating it finishes over the old order; a component added mid-pass
first runs next frame. The map iterator on the default path is live, so
there a component added mid-pass can run in the same pass.
Returns
Section titled “Returns”Iterable<Component>
Inherited from
Section titled “Inherited from”Entity._componentsInUpdateOrder
_destroyOwned()
Section titled “_destroyOwned()”_destroyOwned():
void
Defined in: Entity.ts:609
Internal
Internal: destroy for real, skipping the pool redirect. Used by the owning pool when it disposes, and by the cascade below.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_endLife()
Section titled “_endLife()”_endLife():
void
Defined in: Entity.ts:721
Internal
Internal: end this life so handles taken during it stop resolving. The
subtree follows, because it is released or destroyed with this entity.
Called by EntityPool when a lease ends; destruction goes through
_markDestroyed instead.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_invalidateUpdateOrder()
Section titled “_invalidateUpdateOrder()”_invalidateUpdateOrder(
component):void
Defined in: Entity.ts:578
Internal
Internal: a component was added or its updatePriority was written.
Switches the entity onto the sorted update path once any component
leaves the default priority, and drops the cached order so the next
update pass rebuilds it.
Parameters
Section titled “Parameters”component
Section titled “component”Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_markDestroyed()
Section titled “_markDestroyed()”_markDestroyed():
void
Defined in: Entity.ts:708
Internal
Internal: mark the entity destroyed without queueing it. Called by Scene
during teardown so every entity reads isDestroyed === true before any
component onDestroy runs, and by _destroyOwned. Idempotent, and the
one place a destruction ends a life.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_markPooled()
Section titled “_markPooled()”_markPooled(
owner):void
Defined in: Entity.ts:225
Internal
Internal: mark the entity as a pool member. Called by EntityPool when
it constructs one.
Parameters
Section titled “Parameters”EntityPoolOwner
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_performDestroy()
Section titled “_performDestroy()”_performDestroy():
void
Defined in: Entity.ts:733
Internal
Internal: perform actual destruction — remove all components and clear state. Called by Scene during endOfFrame flush.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_resyncActive()
Section titled “_resyncActive()”_resyncActive():
void
Defined in: Entity.ts:652
Internal
Internal: recompute effective activeness against the current parent and
propagate to descendants. Called after setActive, after a re-parent,
and once per restored root when a snapshot finishes rebuilding the
hierarchy.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_setActiveSuppressed()
Section titled “_setActiveSuppressed()”_setActiveSuppressed(
activeSelf):void
Defined in: Entity.ts:663
Internal
Internal: write activeSelf and park the entity as dormant without
firing hooks or touching queries. Used by snapshot restore, which must
hold every restored entity inert until the parent links are back — the
single _resyncActive per root afterwards fires each hook exactly once.
Parameters
Section titled “Parameters”activeSelf
Section titled “activeSelf”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_setKey()
Section titled “_setKey()”_setKey(
key):void
Defined in: Entity.ts:836
Internal
Internal: assign the stable identity key. Called by Scene._registerKey
during spawn. Throws if the entity already has a key — keys are
immutable for an entity’s lifetime.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”_setScene()
Section titled “_setScene()”_setScene(
scene,callbacks):void
Defined in: Entity.ts:825
Internal
Internal: set the scene and callbacks. Called by Scene.spawn().
Parameters
Section titled “Parameters”Scene | null
callbacks
Section titled “callbacks”EntityCallbacks | null
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”add<
C>(component):C
Defined in: Entity.ts:444
Add a component instance. Returns the component for chaining.
Type Parameters
Section titled “Type Parameters”C extends Component
Parameters
Section titled “Parameters”component
Section titled “component”C
Returns
Section titled “Returns”C
Inherited from
Section titled “Inherited from”addChild()
Section titled “addChild()”addChild(
name,child):void
Defined in: Entity.ts:284
Add a named child entity. Auto-adds to parent’s scene if not already in one.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”afterRestore()?
Section titled “afterRestore()?”
optionalafterRestore(data,resolve):void
Defined in: Entity.ts:799
Called after components are restored during save/load. Rebuild non-serializable state here.
Parameters
Section titled “Parameters”unknown
resolve
Section titled “resolve”Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”cancel()
Section titled “cancel()”cancel(
tag?):void
Defined in: TimerEntity.ts:39
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
destroy()
Section titled “destroy()”destroy():
void
Defined in: Entity.ts:595
Retire the entity. For an ordinary entity that means deferred destruction, with the real cleanup at end of frame.
A pool member is retired by going back to its pool instead — its pool
owns its lifetime and destroys it only when the pool itself is disposed.
That keeps destroy() usable from the places retirement is actually
decided: a collision handler, an update, an event listener, all of which
see a plain Entity and hold no pool reference.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”emit()
Section titled “emit()”Call Signature
Section titled “Call Signature”emit(
token):void
Defined in: Entity.ts:521
Emit a typed event on this entity. Bubbles to the scene.
Parameters
Section titled “Parameters”EventToken<void>
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Call Signature
Section titled “Call Signature”emit<
T>(token,data):void
Defined in: Entity.ts:522
Emit a typed event on this entity. Bubbles to the scene.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”EventToken<T>
T
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”get<
C>(cls):C
Defined in: Entity.ts:472
Get a component by class. Throws if not found.
Type Parameters
Section titled “Type Parameters”C extends Component
Parameters
Section titled “Parameters”Returns
Section titled “Returns”C
Inherited from
Section titled “Inherited from”getAll()
Section titled “getAll()”getAll():
Iterable<Component>
Defined in: Entity.ts:550
Get all components as an iterable, in add order.
Returns
Section titled “Returns”Iterable<Component>
Inherited from
Section titled “Inherited from”getChild()
Section titled “getChild()”getChild(
name):Entity
Defined in: Entity.ts:430
Get a child by name. Throws if not found.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”handle()
Section titled “handle()”handle():
EntityHandle<TimerEntity>
Defined in: Entity.ts:193
Capture a reference that expires with this entity’s current life, read
back through .current.
class Turret extends Entity { private target?: EntityHandle<Enemy>;
onSpotted(enemy: Enemy) { this.target = enemy.handle(); }
update() { const enemy = this.target?.current; // undefined once that enemy is gone if (enemy) this.aimAt(enemy); }}Take a handle whenever pooled entities are involved — a member can be retired from anywhere, so a stored plain reference goes stale silently. A plain reference is fine for entities that live as long as the scene, or when the code storing the reference also controls when the entity goes away.
A handle taken outside a live life never resolves: on a pool member (or an entity under one) whose pool is not currently lending it out, or on an entity that is destroyed or sits under a destroyed ancestor. In all of those the caller is holding a reference from a life that is already over.
Returns
Section titled “Returns”EntityHandle<TimerEntity>
Inherited from
Section titled “Inherited from”has(
cls):boolean
Defined in: Entity.ts:488
Check if entity has a component of the given class.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”hasTrait()
Section titled “hasTrait()”hasTrait<
T>(token):this is TimerEntity & T
Defined in: Entity.ts:802
Check if this entity’s class implements a given trait. Acts as a type guard.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”TraitToken<T>
Returns
Section titled “Returns”this is TimerEntity & T
Inherited from
Section titled “Inherited from”on<
T>(token,handler): () =>void
Defined in: Entity.ts:506
Subscribe to a typed event on this entity. Returns an unsubscribe function.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”EventToken<T>
handler
Section titled “handler”(data) => void
Returns
Section titled “Returns”() => void
Inherited from
Section titled “Inherited from”onAcquire()?
Section titled “onAcquire()?”
optionalonAcquire(…args):void
Defined in: Entity.ts:785
Per-reuse reset, called by EntityPool every time the entity is
handed out — including the first time, right after setup(). Its
parameters become the pool’s acquire(...) arguments, so a bullet that
needs a position and a direction declares
onAcquire(x: number, y: number, dir: Vec2).
A pooled class must declare this hook: nothing else resets the state the
entity kept while dormant. Declare an empty one if there is genuinely
nothing to reset. It runs on a fully active entity, and must be
synchronous and non-overloaded — the pool derives acquire’s signature
from it, and a set of overloads keeps only the last.
Parameters
Section titled “Parameters”…unknown[]
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”onRelease()?
Section titled “onRelease()?”
optionalonRelease():void
Defined in: Entity.ts:793
Called by EntityPool when the entity is released, before it goes
dormant. Optional even for pooled classes: turning components off is the
job of onDisable, so this is for game-level cleanup — dropping a
target reference, clearing a listener registered outside setup().
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”remove()
Section titled “remove()”remove(
cls):void
Defined in: Entity.ts:493
Remove a component by class.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”removeChild()
Section titled “removeChild()”removeChild(
name):Entity
Defined in: Entity.ts:412
Remove a named child. Returns the detached entity.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”removeSlot()
Section titled “removeSlot()”removeSlot(
slot):boolean
Defined in: TimerEntity.ts:35
Parameters
Section titled “Parameters”Returns
Section titled “Returns”boolean
requireKey()
Section titled “requireKey()”requireKey():
string
Defined in: Entity.ts:811
Return the stable key, or throw if this entity was spawned without one.
Use inside component setup() when the component depends on identity
(e.g. reading from a createSet keyed by entity key).
Returns
Section titled “Returns”string
Inherited from
Section titled “Inherited from”run(
process,options?):Process
Defined in: TimerEntity.ts:24
Parameters
Section titled “Parameters”process
Section titled “process”options?
Section titled “options?”clock?
Section titled “clock?”string[]
Returns
Section titled “Returns”serialize()?
Section titled “serialize()?”
optionalserialize():unknown
Defined in: Entity.ts:796
Return a JSON-serializable snapshot of this entity’s custom state. Used by the save system.
Returns
Section titled “Returns”unknown
Inherited from
Section titled “Inherited from”setActive()
Section titled “setActive()”setActive(
active):void
Defined in: Entity.ts:267
Turn the entity on or off without destroying it. Descendants follow: a
child of a dormant entity is dormant whatever its own activeSelf says.
Components whose effective enabled-ness flips get onDisable /
onEnable. Per-component enabled flags are left alone, so a component
you disabled by hand stays disabled after the entity comes back.
bullet.setActive(false); // hidden, updates skippedbullet.get(Transform).setPosition(x, y);bullet.setActive(true); // back in play, no respawnAn entity with a RigidBodyComponent must be moved through
rb.setPosition(x, y) instead — physics owns the transform of a dynamic
body and overwrites a direct Transform write on the next frame.
Parameters
Section titled “Parameters”active
Section titled “active”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”setup()
Section titled “setup()”setup():
void
Defined in: TimerEntity.ts:20
Optional setup method. Called by scene.spawn(Class, params) after the
entity is wired to its scene, so components can access services.
Override in subclasses — do NOT use the constructor for component setup.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”slot()
Section titled “slot()”slot(
config?):ProcessSlot
Defined in: TimerEntity.ts:31
Parameters
Section titled “Parameters”config?
Section titled “config?”Returns
Section titled “Returns”spawnChild()
Section titled “spawnChild()”Call Signature
Section titled “Call Signature”spawnChild(
name,options?):Entity
Defined in: Entity.ts:337
Spawn a new entity in this entity’s scene and add it as a named child.
Combines scene.spawn(...) + this.addChild(name, ...) in one call —
the idiomatic way to compose entity trees (logical root + visual body
- UI sibling + …).
Mirrors the overload shape of Scene.spawn: pass an Entity subclass
(with optional setup params), a Blueprint, or omit for an anonymous
base Entity.
this.spawnChild("body", EnemyBody, { color: 0xff6b6b });this.spawnChild("hp", EnemyHealthBar);Parameters
Section titled “Parameters”string
options?
Section titled “options?”Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”Call Signature
Section titled “Call Signature”spawnChild<
E>(name,Class, …rest):E
Defined in: Entity.ts:338
Spawn a new entity in this entity’s scene and add it as a named child.
Combines scene.spawn(...) + this.addChild(name, ...) in one call —
the idiomatic way to compose entity trees (logical root + visual body
- UI sibling + …).
Mirrors the overload shape of Scene.spawn: pass an Entity subclass
(with optional setup params), a Blueprint, or omit for an anonymous
base Entity.
this.spawnChild("body", EnemyBody, { color: 0xff6b6b });this.spawnChild("hp", EnemyHealthBar);Type Parameters
Section titled “Type Parameters”E extends Entity
Parameters
Section titled “Parameters”string
() => E
…ClassSpawnArgs<E>
Returns
Section titled “Returns”E
Inherited from
Section titled “Inherited from”Call Signature
Section titled “Call Signature”spawnChild<
P>(name,blueprint,params,options?):Entity
Defined in: Entity.ts:343
Spawn a new entity in this entity’s scene and add it as a named child.
Combines scene.spawn(...) + this.addChild(name, ...) in one call —
the idiomatic way to compose entity trees (logical root + visual body
- UI sibling + …).
Mirrors the overload shape of Scene.spawn: pass an Entity subclass
(with optional setup params), a Blueprint, or omit for an anonymous
base Entity.
this.spawnChild("body", EnemyBody, { color: 0xff6b6b });this.spawnChild("hp", EnemyHealthBar);Type Parameters
Section titled “Type Parameters”P
Parameters
Section titled “Parameters”string
blueprint
Section titled “blueprint”Blueprint<P>
params
Section titled “params”P
options?
Section titled “options?”Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”Call Signature
Section titled “Call Signature”spawnChild(
name,blueprint,options?):Entity
Defined in: Entity.ts:349
Spawn a new entity in this entity’s scene and add it as a named child.
Combines scene.spawn(...) + this.addChild(name, ...) in one call —
the idiomatic way to compose entity trees (logical root + visual body
- UI sibling + …).
Mirrors the overload shape of Scene.spawn: pass an Entity subclass
(with optional setup params), a Blueprint, or omit for an anonymous
base Entity.
this.spawnChild("body", EnemyBody, { color: 0xff6b6b });this.spawnChild("hp", EnemyHealthBar);Parameters
Section titled “Parameters”string
blueprint
Section titled “blueprint”Blueprint<void>
options?
Section titled “options?”Returns
Section titled “Returns”Inherited from
Section titled “Inherited from”tryGet()
Section titled “tryGet()”tryGet<
C>(cls):C|undefined
Defined in: Entity.ts:483
Get a component by class, or undefined if not found.
Type Parameters
Section titled “Type Parameters”C extends Component
Parameters
Section titled “Parameters”Returns
Section titled “Returns”C | undefined
Inherited from
Section titled “Inherited from”tryGetChild()
Section titled “tryGetChild()”tryGetChild(
name):Entity|undefined
Defined in: Entity.ts:439
Get a child by name, or undefined if not found.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Entity | undefined