Skip to content

Physics components

Every field below is derived from the engine’s own component registry — the same one the editor’s Details panel reads — so the types and defaults here are the values you get when you add the component, and they cannot drift from the code. The prose that explains how to use each one lives in the guides linked per entry.

BoxCollider2D

A rectangular collision shape. Sizes are in **metres**, not pixels.

Explained in gameplay/physics.

FieldTypeDefaultNotes
halfExtentsVec2(0.5, 0.5)
offsetVec2(0, 0)
radiusnumber0.05
densitynumber1
frictionnumber0.3
restitutionnumber0
isSensorbooleanfalse
enabledbooleantrue
categoryBitsnumber1
maskBitsnumber65535

BoxCollider3D

A box collision shape in 3D. Half-extents are in world units.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
halfExtentsVec3(0.5, 0.5, 0.5)
frictionnumber0.3 Range ≥ 0.
restitutionnumber0 Range 0–1.
isSensorbooleanfalse
enabledbooleantrue

CapsuleCollider2D

A capsule collision shape — the usual choice for a character body.

Explained in gameplay/physics.

FieldTypeDefaultNotes
radiusnumber0.25
halfHeightnumber0.5
offsetVec2(0, 0)
densitynumber1
frictionnumber0.3
restitutionnumber0
isSensorbooleanfalse
enabledbooleantrue
categoryBitsnumber1
maskBitsnumber65535

CapsuleCollider3D

An upright capsule — what a 3D character is. Total height is 2*(halfHeight + radius).

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
radiusnumber0.3 Range ≥ 0.
halfHeightnumber0.5 Range ≥ 0.
frictionnumber0.3 Range ≥ 0.
restitutionnumber0 Range 0–1.
isSensorbooleanfalse
enabledbooleantrue

ChainCollider2D

A polyline of edges — open or looped — for static terrain.

Explained in gameplay/physics.

FieldTypeDefaultNotes
pointsVec2[][{"x":-1,"y":0},{"x":0,"y":0.5},{"x":1,"y":0},{"x":0,"y":-0.5}]
isLoopbooleantrue
frictionnumber0.6
restitutionnumber0
categoryBitsnumber1
maskBitsnumber65535
enabledbooleantrue

CharacterController2D

Kinematic character movement that slides along walls, climbs slopes and reports ground contact.

Explained in gameplay/physics.

FieldTypeDefaultNotes
velocityVec2(0, 0)
upVec2(0, 1)
floorMaxAnglenumber0.7854Max walkable slope from up (radians) Range 0–1.5708, step 0.01.
maxSlidesnumber4 Range 1–8, step 1.
skinWidthnumber1 Range ≥ 0, step 0.25.
snapLengthnumber0Floor-snap probe length; 0 disables stair/slope stick Range ≥ 0, step 0.5.
slideOnCeilingbooleantrue
maskBitsnumber65535
isOnFloorbooleanfalse
isOnWallbooleanfalse
isOnCeilingbooleanfalse
floorNormalVec2(0, 0)
realVelocityVec2(0, 0)

CharacterController3D

A kinematic 3D mover: swept against the world, climbs steps, stays glued to slopes, and reports the ground it is on.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
velocityVec3(0, 0, 0)
radiusnumber0.3 Range ≥ 0.
halfHeightnumber0.5 Range ≥ 0.
maxSlopenumber0.87Steepest ground it can stand on Range 0–1.5708, step 0.01.
layernumber0 Range 0–15, step 1.
stepHeightnumber0.4 Range ≥ 0, step 0.05.
snapDownnumber0.5 Range ≥ 0, step 0.05.
massnumber70 Range ≥ 0.
pushForcenumber5000How hard it can shove what it walks into Range ≥ 0.
enabledbooleantrue
isOnFloorbooleanfalse
floorNormalVec3(0, 0, 0)
realVelocityVec3(0, 0, 0)

CircleCollider2D

A circular collision shape. Radius is in **metres**.

Explained in gameplay/physics.

FieldTypeDefaultNotes
radiusnumber0.5
offsetVec2(0, 0)
densitynumber1
frictionnumber0.3
restitutionnumber0
isSensorbooleanfalse
enabledbooleantrue
categoryBitsnumber1
maskBitsnumber65535

ConvexCollider3D

Collides against the convex hull of an imported mesh — the shape a solver can push, unlike a mesh collider.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
meshAsset<mesh>noneGeometry (.esmesh) whose convex hull collides.
frictionnumber0.3 Range ≥ 0.
restitutionnumber0 Range 0–1.
isSensorbooleanfalse
enabledbooleantrue

DistanceJoint2D

Holds two bodies a fixed (or spring-limited) distance apart.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)Where the joint attaches on the connected body, in that body's frame (pixels).
anchorBVec2(0, 0)Where it attaches on this entity, in its own frame (pixels).
lengthnumber1
enableSpringbooleanfalse
hertznumber1
dampingRationumber0.5
enableLimitbooleanfalse
minLengthnumber0.5
maxLengthnumber2
enableMotorbooleanfalse
maxMotorForcenumber0
motorSpeednumber0
collideConnectedbooleanfalse
enabledbooleantrue

DistanceJoint3D

Keeps two 3D bodies a distance apart: a rope, a rod, or a spring when a frequency is given.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorVec3(0, 0, 0)
connectedAnchorVec3(0, 0, 0)
minLengthnumber0
maxLengthnumber100
frequencynumber0
dampingnumber0.5
collideConnectedbooleanfalse
enabledbooleantrue

FixedJoint2D

Locks two bodies rigidly together, with optional spring give.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)Where the joint attaches on the connected body, in that body's frame (pixels).
anchorBVec2(0, 0)Where it attaches on this entity, in its own frame (pixels).
linearHertznumber0
angularHertznumber0
linearDampingRationumber1
angularDampingRationumber1
collideConnectedbooleanfalse
enabledbooleantrue

FixedJoint3D

Locks two 3D bodies together in the pose they were placed in — no freedom at all.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
connectedEntityEntity-1
collideConnectedbooleanfalse
enabledbooleantrue

Health

What something has left, and what makes it damageable at all — written only by the system that answers the Damage bus.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
currentnumber100 Range ≥ 0.
maxnumber100 Range ≥ 0.

HingeJoint2D

Pins two bodies at a point and lets them rotate — a hinge, with optional limits and a motor.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)Where the joint attaches on the connected body, in that body's frame (pixels).
anchorBVec2(0, 0)Where it attaches on this entity, in its own frame (pixels).
enableMotorbooleanfalse
motorSpeednumber0
maxMotorTorquenumber0
enableLimitbooleanfalse
lowerAnglenumber0
upperAnglenumber0
collideConnectedbooleanfalse
enabledbooleantrue

HingeJoint3D

One axis of rotation between two 3D bodies — a door or a driven wheel, with optional limits and a motor.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorVec3(0, 0, 0)Where the joint attaches, in THIS entity's frame (world units).
axisVec3(0, 1, 0)
enableLimitbooleanfalse
lowerAnglenumber-1.5708
upperAnglenumber1.5708
enableMotorbooleanfalse
motorSpeednumber0
maxMotorTorquenumber0
collideConnectedbooleanfalse
enabledbooleantrue
anglenumber0

Hunter

A character that hunts what it perceives: it asks navigation for a route, the character controller for the movement, and the animator for a swing — the concrete twin of ThirdPersonController.

Explained in gameplay/ai/overview.

FieldTypeDefaultNotes
attackRangenumber110How close it gets before it swings. Range ≥ 0.
attackIntervalnumber1.6 Range ≥ 0.
rotationSpeednumber540 Range ≥ 0.
idleThresholdnumber8 Range ≥ 0, step 0.05.
enabledbooleantrue
statestring"idle" Read-only — the engine computes it.
cooldownnumber0 Read-only — the engine computes it.

MeleeAttack

A swing whose timing is the animation’s and whose reach is the physics world’s: a `hit` beat asks what is around an animated anchor, and gameplay decides who may be hurt.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
radiusnumber60 Range ≥ 0.
damagenumber25 Range ≥ 0.
layersnumber0 Range 0–15, step 1.
anchorEntitynoneThe animated socket the swing reaches from.
enabledbooleantrue
attackIdnumber0 Read-only — the engine computes it.
hitCountnumber0 Read-only — the engine computes it.

MeshCollider3D

Collides against an imported mesh’s own triangles — terrain, stairs, a room. Always static, and one-sided.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
meshAsset<mesh>noneGeometry (.esmesh) to collide against.
layernumber0 Range 0–15.
frictionnumber0.3 Range ≥ 0.
restitutionnumber0 Range 0–1.
enabledbooleantrue

MotorJoint2D

Drives one body toward a target offset and angle — moving platforms and conveyors.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
linearVelocityVec2(0, 0)
maxVelocityForcenumber0
angularVelocitynumber0
maxVelocityTorquenumber0
linearHertznumber0
linearDampingRationumber0
maxSpringForcenumber0
angularHertznumber0
angularDampingRationumber0
maxSpringTorquenumber0
collideConnectedbooleanfalse
enabledbooleantrue

OneWayPlatform2D

Makes a collider solid from one side only, so a body passes up through it and lands on top.

Explained in gameplay/physics.

FieldTypeDefaultNotes
normalVec2(0, 1)
enabledbooleantrue

PointJoint3D

Holds two 3D bodies at a shared point, free to turn on all three axes — a chain link, a ragdoll limb.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorVec3(0, 0, 0)Where the joint attaches, in THIS entity's frame (world units).
collideConnectedbooleanfalse
enabledbooleantrue

PolygonCollider2D

A convex polygon collision shape from your own points.

Explained in gameplay/physics.

FieldTypeDefaultNotes
verticesVec2[][{"x":-0.5,"y":-0.5},{"x":0.5,"y":-0.5},{"x":0.5,"y":0.5},{"x":-0.5,"y":0.5}]
radiusnumber0
densitynumber1
frictionnumber0.3
restitutionnumber0
isSensorbooleanfalse
enabledbooleantrue
categoryBitsnumber1
maskBitsnumber65535

RigidBody2D

Puts the entity under the flat solver: static, kinematic or dynamic, with damping, gravity scale and sleep.

Explained in gameplay/physics.

FieldTypeDefaultNotes
bodyTypeenumDynamic One of Static, Kinematic, Dynamic.
gravityScalenumber1
linearDampingnumber0 Range ≥ 0.
angularDampingnumber0 Range ≥ 0.
fixedRotationbooleanfalse
bulletbooleanfalse
enabledbooleantrue

RigidBody3D

Puts the entity under the 3D solver — its own component set, so a 2D scene keeps the world it already has.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
bodyTypeenumDynamic One of Static, Kinematic, Dynamic.
layernumber0 Range 0–15.
gravityScalenumber1 Range ≥ 0.
linearDampingnumber0.05 Range ≥ 0.
angularDampingnumber0.05 Range ≥ 0.
fixedRotationbooleanfalse
continuousCollisionbooleanfalseCheck the whole path a step covers — what a bullet needs
enabledbooleantrue

SegmentCollider2D

A single line segment — a one-sided wall or edge.

Explained in gameplay/physics.

FieldTypeDefaultNotes
point1Vec2(-0.5, 0)
point2Vec2(0.5, 0)
densitynumber1
frictionnumber0.3
restitutionnumber0
isSensorbooleanfalse
enabledbooleantrue
categoryBitsnumber1
maskBitsnumber65535

SliderJoint2D

Constrains two bodies to slide along one axis — a piston or lift.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)Where the joint attaches on the connected body, in that body's frame (pixels).
anchorBVec2(0, 0)Where it attaches on this entity, in its own frame (pixels).
axisVec2(1, 0)Direction of travel, in the connected body's frame.
enableSpringbooleanfalse
hertznumber1
dampingRationumber0.5
enableLimitbooleanfalse
lowerTranslationnumber0
upperTranslationnumber0
enableMotorbooleanfalse
maxMotorForcenumber0
motorSpeednumber0
collideConnectedbooleanfalse
enabledbooleantrue

SliderJoint3D

One axis of travel between two 3D bodies — a lift or a piston, with optional limits and a motor.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorVec3(0, 0, 0)Where the joint attaches, in THIS entity's frame (world units).
axisVec3(0, 1, 0)
enableLimitbooleanfalse
lowerTranslationnumber-100
upperTranslationnumber100
enableMotorbooleanfalse
motorSpeednumber0
maxMotorForcenumber0
collideConnectedbooleanfalse
enabledbooleantrue
translationnumber0

SphereCollider3D

A sphere collision shape in 3D.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
radiusnumber0.5 Range ≥ 0.
frictionnumber0.3 Range ≥ 0.
restitutionnumber0 Range 0–1.
isSensorbooleanfalse
enabledbooleantrue

ThirdPersonCamera

An eye that orbits a target under pointer control and pulls in when something solid stands between.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
targetEntitynoneThe transform this camera orbits.
distancenumber420
yawnumber0
pitchnumber15
minPitchnumber-30
maxPitchnumber70
sensitivitynumber0.2
followDampingnumber12 Range ≥ 0.
targetOffsetVec3(0, 90, 0)
obstructionbooleantrue
obstructionRadiusnumber15 Range ≥ 0.
obstructionLayersnumber0 Range 0–15, step 1.
enabledbooleantrue

ThirdPersonController

Turns input into a movement request for a CharacterController3D, and reports what the character actually did to its Animator.

Explained in gameplay/physics-3d.

FieldTypeDefaultNotes
moveSpeednumber320
accelerationnumber2400
decelerationnumber3200
rotationSpeednumber720
jumpSpeednumber0Upward speed a jump starts with. 0 = cannot jump. Range ≥ 0.
airControlnumber0.3 Range 0–1, step 0.05.
cameraRelativebooleantrue
cameraEntitynoneWhose forward the stick is read against.
idleThresholdnumber8 Range ≥ 0, step 0.05.
enabledbooleantrue

WheelJoint2D

A suspension axis plus a spinning axle — the wheel half of a vehicle.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)Where the joint attaches on the connected body, in that body's frame (pixels).
anchorBVec2(0, 0)Where it attaches on this entity, in its own frame (pixels).
axisVec2(0, 1)Direction of travel, in the connected body's frame.
enableSpringbooleantrue
hertznumber5
dampingRationumber0.7
enableLimitbooleanfalse
lowerTranslationnumber0
upperTranslationnumber0
enableMotorbooleanfalse
maxMotorTorquenumber0
motorSpeednumber0
collideConnectedbooleanfalse
enabledbooleantrue