This page details how collision works for voxel objects in Voxel Playground, including setup, penetration mechanics, and advanced configuration.
For most voxel objects, you should use the VoxelObjectProxy component.
VoxelObjectProxy takes care of it.Voxel Playground uses a custom physics to simulate object penetration based on material hardness and velocity. This allows harder objects to penetrate softer ones (e.g., a metal ball going through wood, or a car crashing through a brick wall).
The system compares the Hardness of the two colliding objects (see Material ID and Visual for hardness values).
When using VoxelObjectProxy, the VoxelObjectProxyType determines how the underlying components (VoxelVolume, PxVoxelColliderGenerator, VoxelDestructor) are configured. You usually don't need to touch these manually.
Here is a summary of how different types configure the object:
| Proxy Type | Connectivity Check | Chemistry Effect | Layer | Destructible | Notes |
|---|---|---|---|---|---|
| WeaponItem | false |
true |
Item | No (Indestructible) | Used for handheld weapons. Doesn't break apart. |
| BuildingItem | true |
true |
Item | Yes | Standard prop/item that can break. |
| SceneStatic | false |
false |
Building | No (Indestructible/Unyielding) | Static level geometry. Unyielding means it won't be pushed. |
| SceneDynamic | true |
true |
Item | Yes | Dynamic level objects (crates, etc.). |
| SceneConnected | true |
true |
Item | Yes | (Weak/Strong) Connected structures. |
Item vs Building).VoxelDestructor. SceneStatic is generally set to Indestructible.