Component · physics
Collider
Collision geometry, material, layer and trigger settings.
Fields
kind
ColliderKindPrimitive type or externally cooked shape.
default "box"
One ofboxspherecapsulecylindercookedmodelConvexmodelMesh
center
vec3Shape center in body-local metres, after visual scale is baked. The body origin remains at Transform/PhysicsPose; rotation also rotates this offset.
default [0,0,0]m
halfExtents
vec3Box half extents; scale must be baked before physics extraction.
default [0.5,0.5,0.5]m≥ 0.0001shown when kind is box or modelConvex or modelMesh
radius
f32Sphere, capsule or cylinder radius.
default 0.5m≥ 0.0001shown when kind is sphere or capsule or cylinder
halfHeight
f32Cylinder half height, excluding the capsule hemispheres.
default 0.5m≥ 0shown when kind is capsule or cylinder
asset
option<asset>Cooked collision asset (
@path#id); resolve into CookedCollider before ticking.default nullshown when kind is cooked or modelConvex or modelMesh
node
option<string>Source model node name/index for model-derived geometry; absent uses its default scene.
default nullshown when kind is modelConvex or modelMesh
primitive
option<u32>Subtree-local primitive for model-derived geometry; absent uses the complete subtree.
default nullshown when kind is modelConvex or modelMesh
layer
u32Zero selects static/moving defaults from the body; 1..15 select an explicit group.
default 00 – 15
sensor
boolReport trigger events without a collision response.
default false
friction
f32Coulomb friction coefficient.
default 0.6≥ 0
restitution
f32Elasticity: zero is inelastic, one is perfectly elastic.
default 00 – 1
Usage
Every edit is an undoable command: from the CLI as below, or the same JSON from an agent over MCP. See component.add and property.set.
Add it
ara do component.add -p entity=name:Crate -p component=Collider --why "Add Collider"Set a field
ara do property.set -p entity=name:Crate -p path=Collider.kind -p value="box" --why "Tune Collider"In a scene document
{
"Collider": {
"kind": "box"
}
}From C#
/// <summary>Give a crate a grippy surface.</summary>
public static void UseCollider(Entity entity, in Tick tick)
{
ref var component = ref World.Get<Collider>(entity);
component.Friction = 0.8f;
}From C#
Scripts read and write it with Get<Collider>(); see the Collider struct.