RigidBodyComponent
Defined in: physics/src/RigidBodyComponent.ts:39
Wraps a Rapier rigid body. All public API values are in pixels.
Component ordering: Transform must be added before RigidBodyComponent.
Extends
Section titled “Extends”Component
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new RigidBodyComponent(
config):RigidBodyComponent
Defined in: physics/src/RigidBodyComponent.ts:75
Parameters
Section titled “Parameters”config
Section titled “config”Returns
Section titled “Returns”RigidBodyComponent
Overrides
Section titled “Overrides”Component.constructor
Properties
Section titled “Properties”_bodyHandle
Section titled “_bodyHandle”_bodyHandle:
number=-1
Defined in: physics/src/RigidBodyComponent.ts:50
Internal
Rapier body handle, set during onAdd.
_currPosition
Section titled “_currPosition”_currPosition:
Vec2=Vec2.ZERO
Defined in: physics/src/RigidBodyComponent.ts:57
Internal
Current authoritative position (post physics step).
_currRotation
Section titled “_currRotation”_currRotation:
number=0
Defined in: physics/src/RigidBodyComponent.ts:59
Internal
Current authoritative rotation (post physics step).
_kinematicTargetPosition
Section titled “_kinematicTargetPosition”_kinematicTargetPosition:
Vec2=Vec2.ZERO
Defined in: physics/src/RigidBodyComponent.ts:61
Internal
Position the next step drives a kinematic body toward.
_kinematicTargetRotation
Section titled “_kinematicTargetRotation”_kinematicTargetRotation:
number=0
Defined in: physics/src/RigidBodyComponent.ts:63
Internal
Rotation the next step drives a kinematic body toward.
_lastWrittenPosition
Section titled “_lastWrittenPosition”_lastWrittenPosition:
Vec2=Vec2.ZERO
Defined in: physics/src/RigidBodyComponent.ts:68
Internal
Position physics last wrote to the Transform (kinematic only). A Transform that still holds it carries no game write to capture.
_lastWrittenRotation
Section titled “_lastWrittenRotation”_lastWrittenRotation:
number=0
Defined in: physics/src/RigidBodyComponent.ts:70
Internal
Rotation physics last wrote to the Transform (kinematic only).
_prevPosition
Section titled “_prevPosition”_prevPosition:
Vec2=Vec2.ZERO
Defined in: physics/src/RigidBodyComponent.ts:53
Internal
Previous position for interpolation.
_prevRotation
Section titled “_prevRotation”_prevRotation:
number=0
Defined in: physics/src/RigidBodyComponent.ts:55
Internal
Previous rotation for interpolation.
entity
Section titled “entity”entity:
Entity
Defined in: core/dist/index.d.ts:2716
Back-reference to the owning entity. Set by the engine when the component is added to an entity. Do not set manually.
Inherited from
Section titled “Inherited from”Component.entity
syncRotation
Section titled “syncRotation”syncRotation:
boolean
Defined in: physics/src/RigidBodyComponent.ts:47
If false, physics will not write rotation back to Transform.
readonlytype:BodyType
Defined in: physics/src/RigidBodyComponent.ts:44
Body type (dynamic, static, kinematic).
restorePriority
Section titled “restorePriority”
staticrestorePriority:number=10
Defined in: physics/src/RigidBodyComponent.ts:41
Snapshot restore order. On load, an entity’s components are re-added in
ascending priority, so a component whose onAdd() reads a sibling can
rely on lower-priority siblings being present and initialized.
Undeclared = 100. Engine components reserve 0-99; game and addon
components declare a value only when a sibling onAdd() dependency
requires it. Equal priorities restore in save-time add order.
Subclasses inherit their base class’s priority unless they declare
their own.
Overrides
Section titled “Overrides”Component.restorePriority
updatePriority?
Section titled “updatePriority?”
staticoptionalupdatePriority?:number
Defined in: core/dist/index.d.ts:2889
Class-level default for updatePriority: every instance runs at
this priority unless its own updatePriority is written. Undeclared = 0.
Subclasses inherit their base class’s value unless they declare their
own. Declare it on a component whose behavior depends on running after
(or before) a sibling, so the entity that adds it does not have to
control the add order.
class BoundsClamp extends Component { static updatePriority = 10; // after the follow that moves the camera}Inherited from
Section titled “Inherited from”Component.updatePriority
Accessors
Section titled “Accessors”context
Section titled “context”Get Signature
Section titled “Get Signature”get context():
EngineContext
Defined in: core/dist/index.d.ts:2770
Access the EngineContext from the entity’s scene. Throws if the entity is not in a scene.
Returns
Section titled “Returns”EngineContext
Inherited from
Section titled “Inherited from”Component.context
effectiveEnabled
Section titled “effectiveEnabled”Get Signature
Section titled “Get Signature”get effectiveEnabled():
boolean
Defined in: core/dist/index.d.ts:2740
Whether the component is actually running: enabled, on an active
entity, and past onAdd. This is the state onEnable and
onDisable track — read it when a method has to behave one way
live and another way dormant.
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”Component.effectiveEnabled
enabled
Section titled “enabled”Get Signature
Section titled “Get Signature”get enabled():
boolean
Defined in: core/dist/index.d.ts:2732
Whether this component runs. Disabled components are skipped by ComponentUpdateSystem.
Writing this fires onEnable / onDisable when the
effective state changes — enabled && entity.isActive. A component
disabled here stays disabled through a setActive(false) /
setActive(true) cycle on its entity.
Returns
Section titled “Returns”boolean
Set Signature
Section titled “Set Signature”set enabled(
value):void
Defined in: core/dist/index.d.ts:2733
Parameters
Section titled “Parameters”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.enabled
gravityScale
Section titled “gravityScale”Get Signature
Section titled “Get Signature”get gravityScale():
number
Defined in: physics/src/RigidBodyComponent.ts:342
Gravity multiplier for this body. 1 unless set.
Returns
Section titled “Returns”number
position
Section titled “position”Get Signature
Section titled “Get Signature”get position():
Vec2
Defined in: physics/src/RigidBodyComponent.ts:369
Body position in pixels — the exact simulated pose. A dynamic or
kinematic body’s Transform holds the interpolated pose that gets
drawn: smooth, and at most one fixed step behind this value.
Falls back to the entity’s world position when no Rapier body exists (e.g. after teardown has destroyed it).
Returns
Section titled “Returns”Vec2
positionX
Section titled “positionX”Get Signature
Section titled “Get Signature”get positionX():
number
Defined in: physics/src/RigidBodyComponent.ts:384
X component of the exact simulated position in pixels. Avoids the Vec2
allocation of position — prefer this and positionY on a per-frame
read path.
Returns
Section titled “Returns”number
positionY
Section titled “positionY”Get Signature
Section titled “Get Signature”get positionY():
number
Defined in: physics/src/RigidBodyComponent.ts:394
Y component of the exact simulated position in pixels. Avoids the Vec2
allocation of position.
Returns
Section titled “Returns”number
rotation
Section titled “rotation”Get Signature
Section titled “Get Signature”get rotation():
number
Defined in: physics/src/RigidBodyComponent.ts:407
Body rotation in radians — the exact simulated pose. A dynamic or
kinematic body’s Transform holds the interpolated rotation that gets
drawn: smooth, and at most one fixed step behind this value.
Falls back to the entity’s world rotation when no Rapier body exists.
Returns
Section titled “Returns”number
Get Signature
Section titled “Get Signature”get scene():
Scene
Defined in: core/dist/index.d.ts:2765
Access the entity’s scene. Throws if the entity is not in a scene.
Prefer this over threading through this.entity.scene in component
code.
Returns
Section titled “Returns”Scene
Inherited from
Section titled “Inherited from”Component.scene
Get Signature
Section titled “Get Signature”get speed():
number
Defined in: physics/src/RigidBodyComponent.ts:277
Speed (velocity magnitude) in pixels/s. No Vec2 allocation.
Returns
Section titled “Returns”number
speedSquared
Section titled “speedSquared”Get Signature
Section titled “Get Signature”get speedSquared():
number
Defined in: physics/src/RigidBodyComponent.ts:285
Squared speed in (pixels/s)². Cheaper than speed when only comparing
magnitudes (e.g. against a threshold).
Returns
Section titled “Returns”number
updatePriority
Section titled “updatePriority”Get Signature
Section titled “Get Signature”get updatePriority():
number
Defined in: core/dist/index.d.ts:2758
Where this component runs among its siblings. ComponentUpdateSystem
calls update / fixedUpdate on an entity’s components in ascending
priority; equal priorities run in add order. Undeclared = 0, so a
negative value runs before siblings that keep the default and a positive
value runs after them. Writable at any time, before or after add().
Defaults to the class’s static updatePriority.
class Player extends Entity { setup() { this.add(new Mover()); this.add(new Brain()).updatePriority = -1; // decides before Mover moves }}Returns
Section titled “Returns”number
Set Signature
Section titled “Set Signature”set updatePriority(
value):void
Defined in: core/dist/index.d.ts:2759
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.updatePriority
velocityX
Section titled “velocityX”Get Signature
Section titled “Get Signature”get velocityX():
number
Defined in: physics/src/RigidBodyComponent.ts:260
X component of linear velocity in pixels/s. Avoids the Vec2
allocation of getVelocity() — prefer this and velocityY on a
per-frame read path. Reading both components calls into Rapier twice;
for both as numbers without the double call, getVelocity() is still
the option.
Returns
Section titled “Returns”number
velocityY
Section titled “velocityY”Get Signature
Section titled “Get Signature”get velocityY():
number
Defined in: physics/src/RigidBodyComponent.ts:270
Y component of linear velocity in pixels/s. Avoids the Vec2
allocation of getVelocity().
Returns
Section titled “Returns”number
Methods
Section titled “Methods”_applyEnabled()
Section titled “_applyEnabled()”_applyEnabled(
effective):void
Defined in: core/dist/index.d.ts:2824
Internal
Force an effective-enabled transition, firing the hook on a flip. Used by
Entity for teardown, where enabled and the entity’s activeness both
still read true.
Parameters
Section titled “Parameters”effective
Section titled “effective”boolean
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._applyEnabled
_capturePendingTarget()
Section titled “_capturePendingTarget()”_capturePendingTarget():
void
Defined in: physics/src/RigidBodyComponent.ts:492
Internal
Adopt any pose the game wrote to the Transform as the kinematic step target. Runs before each physics step and before the interpolation lerp overwrites the Transform, so targets stay fresh even on frames that run several steps.
Returns
Section titled “Returns”void
_hasPendingTargetPosition()
Section titled “_hasPendingTargetPosition()”_hasPendingTargetPosition():
boolean
Defined in: physics/src/RigidBodyComponent.ts:461
Internal
True when the Transform’s world position no longer holds what physics last wrote — i.e. the game (or a moved parent) repositioned it, and the write is waiting to become the kinematic step target.
Returns
Section titled “Returns”boolean
_hasPendingTargetRotation()
Section titled “_hasPendingTargetRotation()”_hasPendingTargetRotation():
boolean
Defined in: physics/src/RigidBodyComponent.ts:475
Internal
Rotation counterpart of _hasPendingTargetPosition. Compares
along the shortest arc: a game that normalizes its own accumulated
rotation writes a numerically different, visually identical angle, which
is not a new target.
Returns
Section titled “Returns”boolean
_refreshEnabled()
Section titled “_refreshEnabled()”_refreshEnabled():
void
Defined in: core/dist/index.d.ts:2817
Internal
Recompute effective enabled-ness from enabled and the entity’s
activeness, firing the hook on a flip.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._refreshEnabled
_runCleanups()
Section titled “_runCleanups()”_runCleanups():
void
Defined in: core/dist/index.d.ts:2811
Internal
Run and clear all registered cleanups. Called by Entity.remove() and Entity._performDestroy() before onRemove/onDestroy.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component._runCleanups
addCleanup()
Section titled “addCleanup()”
protectedaddCleanup(fn):void
Defined in: core/dist/index.d.ts:2805
Register a cleanup function to run when this component is removed or destroyed.
Parameters
Section titled “Parameters”() => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.addCleanup
afterRestore()
Section titled “afterRestore()”afterRestore(
data):void
Defined in: physics/src/RigidBodyComponent.ts:541
Restore runtime state (velocities) after the Rapier body has been created.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.afterRestore
applyForce()
Section titled “applyForce()”applyForce(
force):void
Defined in: physics/src/RigidBodyComponent.ts:192
Apply a force (in pixels) at the center of mass.
Parameters
Section titled “Parameters”Vec2Like
Returns
Section titled “Returns”void
applyImpulse()
Section titled “applyImpulse()”applyImpulse(
impulse):void
Defined in: physics/src/RigidBodyComponent.ts:205
Apply an impulse (in pixels) at the center of mass.
Parameters
Section titled “Parameters”impulse
Section titled “impulse”Vec2Like
Returns
Section titled “Returns”void
applyTorque()
Section titled “applyTorque()”applyTorque(
torque):void
Defined in: physics/src/RigidBodyComponent.ts:295
Apply torque.
Parameters
Section titled “Parameters”torque
Section titled “torque”number
Returns
Section titled “Returns”void
fixedUpdate()?
Section titled “fixedUpdate()?”
optionalfixedUpdate(dt):void
Defined in: core/dist/index.d.ts:2863
Called every fixed timestep by the built-in ComponentUpdateSystem.
Parameters
Section titled “Parameters”number
Fixed timestep in seconds, scaled by scene and entity timeScale.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.fixedUpdate
getAngularVelocity()
Section titled “getAngularVelocity()”getAngularVelocity():
number
Defined in: physics/src/RigidBodyComponent.ts:309
Get angular velocity in radians/s.
Returns
Section titled “Returns”number
getMass()
Section titled “getMass()”getMass():
number
Defined in: physics/src/RigidBodyComponent.ts:319
Mass derived from the attached colliders (density × shape size).
applyImpulse(dv.scale(getMass())) changes velocity by exactly dv px/s.
Returns
Section titled “Returns”number
getVelocity()
Section titled “getVelocity()”getVelocity():
Vec2
Defined in: physics/src/RigidBodyComponent.ts:243
Get linear velocity in pixels/s.
Returns
Section titled “Returns”Vec2
listen()
Section titled “listen()”
protectedlisten<T>(entity,token,handler):void
Defined in: core/dist/index.d.ts:2797
Subscribe to events on any entity, auto-unsubscribe on removal.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”entity
Section titled “entity”Entity
EventToken<T>
handler
Section titled “handler”(data) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.listen
listenScene()
Section titled “listenScene()”
protectedlistenScene<T>(token,handler):void
Defined in: core/dist/index.d.ts:2803
Subscribe to scene-level events, auto-unsubscribe on removal. Handlers
fire for bubbled entity events (entity = source) and scene.emit
events (entity = undefined).
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”EventToken<T>
handler
Section titled “handler”(data, entity?) => void
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.listenScene
lockRotations()
Section titled “lockRotations()”lockRotations(
locked):void
Defined in: physics/src/RigidBodyComponent.ts:355
Lock or unlock rotations at runtime.
Parameters
Section titled “Parameters”locked
Section titled “locked”boolean
Returns
Section titled “Returns”void
onAdd()
Section titled “onAdd()”onAdd():
void
Defined in: physics/src/RigidBodyComponent.ts:82
Called when the component is added to an entity. Validate dependencies
here — a service, a sibling component, a render layer — and throw when
one is missing. The throw is attributed to this component, recorded in
Inspector.getErrors().callbackErrors, and rethrown, so it reaches the
caller of entity.add() unchanged.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onAdd
onDestroy()
Section titled “onDestroy()”onDestroy():
void
Defined in: physics/src/RigidBodyComponent.ts:184
Called when the component is destroyed (entity destroyed or component removed).
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onDestroy
onDisable()
Section titled “onDisable()”onDisable():
void
Defined in: physics/src/RigidBodyComponent.ts:126
Put the Rapier body to sleep without freeing it — the allocation is exactly what a reused entity gets to keep. Momentum and queued forces/torques are cleared and joints are detached, so waking the body cannot resume a motion — or a tether — that started a life ago.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onDisable
onEnable()
Section titled “onEnable()”onEnable():
void
Defined in: physics/src/RigidBodyComponent.ts:142
Bring the body back and snap interpolation to its current pose, so the first frame after reuse renders where the body is rather than lerping from where it slept.
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”Component.onEnable
onRemove()?
Section titled “onRemove()?”
optionalonRemove():void
Defined in: core/dist/index.d.ts:2851
Called when the component is removed from an entity.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.onRemove
serialize()
Section titled “serialize()”serialize():
RigidBodyData
Defined in: physics/src/RigidBodyComponent.ts:502
Serialize the component into a plain data object.
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Component.serialize
service()
Section titled “service()”
protectedservice<T>(key):T
Defined in: core/dist/index.d.ts:2787
Lazy proxy-based service resolution. Can be used at field-declaration time:
readonly input = this.service(InputManagerKey);The actual resolution is deferred until first property access.
Type Parameters
Section titled “Type Parameters”T extends object
Parameters
Section titled “Parameters”ServiceKey<T>
Returns
Section titled “Returns”T
Inherited from
Section titled “Inherited from”Component.service
setAngularVelocity()
Section titled “setAngularVelocity()”setAngularVelocity(
v):void
Defined in: physics/src/RigidBodyComponent.ts:302
Set angular velocity in radians/s.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
setEnabledTranslations()
Section titled “setEnabledTranslations()”setEnabledTranslations(
enableX,enableY):void
Defined in: physics/src/RigidBodyComponent.ts:348
Set which translation axes are enabled at runtime.
Parameters
Section titled “Parameters”enableX
Section titled “enableX”boolean
enableY
Section titled “enableY”boolean
Returns
Section titled “Returns”void
setGravityScale()
Section titled “setGravityScale()”setGravityScale(
scale):void
Defined in: physics/src/RigidBodyComponent.ts:334
Multiply gravity for this body: 1 is the scene’s gravity, 0 removes
it, larger values fall faster. This is the per-body control a platformer
needs for variable jump height and fast-fall, without moving scene
gravity for every other body.
Callable before the component is added — the value is applied when the Rapier body is created.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
setPosition()
Section titled “setPosition()”setPosition(
x,y):void
Defined in: physics/src/RigidBodyComponent.ts:418
Teleport to a position in pixels — no interpolation, no smoothing, for
any body type. On a kinematic body, transform.setPosition() instead
moves it there smoothly over one step.
Parameters
Section titled “Parameters”number
number
Returns
Section titled “Returns”void
setRotation()
Section titled “setRotation()”setRotation(
radians):void
Defined in: physics/src/RigidBodyComponent.ts:445
Teleport to a rotation in radians — no interpolation, no smoothing, for
any body type. The rotation counterpart of setPosition.
Parameters
Section titled “Parameters”radians
Section titled “radians”number
Returns
Section titled “Returns”void
setVelocity()
Section titled “setVelocity()”setVelocity(
velocity):void
Defined in: physics/src/RigidBodyComponent.ts:218
Set linear velocity in pixels/s.
Parameters
Section titled “Parameters”velocity
Section titled “velocity”Vec2Like
Returns
Section titled “Returns”void
setVelocityX()
Section titled “setVelocityX()”setVelocityX(
vx):void
Defined in: physics/src/RigidBodyComponent.ts:231
Set only the X component of velocity (px/s), preserving Y.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
setVelocityY()
Section titled “setVelocityY()”setVelocityY(
vy):void
Defined in: physics/src/RigidBodyComponent.ts:237
Set only the Y component of velocity (px/s), preserving X.
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
sibling()
Section titled “sibling()”
protectedsibling<C>(cls):C
Defined in: core/dist/index.d.ts:2795
Lazy proxy-based sibling component resolution. Can be used at field-declaration time:
readonly anim = this.sibling(AnimatedSpriteComponent);The actual resolution is deferred until first property access.
Type Parameters
Section titled “Type Parameters”C extends Component
Parameters
Section titled “Parameters”ComponentClass<C>
Returns
Section titled “Returns”C
Inherited from
Section titled “Inherited from”Component.sibling
update()?
Section titled “update()?”
optionalupdate(dt):void
Defined in: core/dist/index.d.ts:2858
Called every frame by the built-in ComponentUpdateSystem.
Parameters
Section titled “Parameters”number
Frame delta in seconds, scaled by scene and entity timeScale.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”Component.update
protecteduse<T>(key):T
Defined in: core/dist/index.d.ts:2778
Resolve a service by key, cached after first lookup. Scene-scoped values
(registered via scene._registerScoped) take precedence over engine
scope. A key declared with scope: "scene" that falls back to engine
scope emits a one-shot dev warning — almost always signals a missed
beforeEnter hook.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”ServiceKey<T>
Returns
Section titled “Returns”T
Inherited from
Section titled “Inherited from”Component.use
fromSnapshot()
Section titled “fromSnapshot()”
staticfromSnapshot(data):RigidBodyComponent
Defined in: physics/src/RigidBodyComponent.ts:523
Create a RigidBodyComponent from a serialized snapshot.
Parameters
Section titled “Parameters”Returns
Section titled “Returns”RigidBodyComponent