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.

BoxCollider

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

CapsuleCollider

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

ChainCollider

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

CharacterController

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)

CircleCollider

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

DistanceJoint

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

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)
anchorBVec2(0, 0)
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

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

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)
axisVec3(0, 1, 0)
enableLimitbooleanfalse
lowerAnglenumber-1.5708
upperAnglenumber1.5708
enableMotorbooleanfalse
motorSpeednumber0
maxMotorTorquenumber0
collideConnectedbooleanfalse
enabledbooleantrue
anglenumber0

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

MotorJoint

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

OneWayPlatform

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)
collideConnectedbooleanfalse
enabledbooleantrue

PolygonCollider

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

PrismaticJoint

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

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)
anchorBVec2(0, 0)
axisVec2(1, 0)
enableSpringbooleanfalse
hertznumber1
dampingRationumber0.5
enableLimitbooleanfalse
lowerTranslationnumber0
upperTranslationnumber0
enableMotorbooleanfalse
maxMotorForcenumber0
motorSpeednumber0
collideConnectedbooleanfalse
enabledbooleantrue

RevoluteJoint

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)
anchorBVec2(0, 0)
enableMotorbooleanfalse
motorSpeednumber0
maxMotorTorquenumber0
enableLimitbooleanfalse
lowerAnglenumber0
upperAnglenumber0
collideConnectedbooleanfalse
enabledbooleantrue

RigidBody

Puts the entity under the 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

SegmentCollider

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

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)
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

WeldJoint

Locks two bodies rigidly together, with optional spring give.

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)
anchorBVec2(0, 0)
linearHertznumber0
angularHertznumber0
linearDampingRationumber1
angularDampingRationumber1
collideConnectedbooleanfalse
enabledbooleantrue

WheelJoint

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

Explained in gameplay/physics.

FieldTypeDefaultNotes
connectedEntityEntity-1
anchorAVec2(0, 0)
anchorBVec2(0, 0)
axisVec2(0, 1)
enableSpringbooleantrue
hertznumber5
dampingRationumber0.7
enableLimitbooleanfalse
lowerTranslationnumber0
upperTranslationnumber0
enableMotorbooleanfalse
maxMotorTorquenumber0
motorSpeednumber0
collideConnectedbooleanfalse
enabledbooleantrue