ConstReadonlyWorld: numberStatic level geometry (mesh/height-field/static boxes). Non-moving.
ReadonlyPlayer: numberPlayer characters.
ReadonlyEnemy: numberEnemy characters.
ReadonlyBullet: numberProjectiles.
ReadonlyProp: numberDynamic debris / physics props (the default for dynamic bodies).
ReadonlyTrigger: numberSensor/trigger volumes (doors, detection zones, reverb areas).
ReadonlyAll: 65535Collides with everything.
Named collision layers as bit flags (Godot-style). A body's
layersays which layer(s) it belongs to; itsmasksays which layers it collides with. Two bodies interact only when each one's layer appears in the other's mask (an AND of both directions, matching Jolt'sObjectLayerPairFilterMask). Give "passively collidable" bodies (static world, the player capsule)mask: Alland put the selective filtering on the active body (e.g. a bullet that should hit onlyWorld | Enemy).Worldis the static-geometry partition and is mapped to the non-moving broad-phase layer for efficiency; every other bit maps to the moving layer. (Broad-phase mapping is only a performance hint — putting a static sensor on a "moving" layer is correct, just slightly less optimal.) Up to 16 layers fit in the group field.