Collision groups
Collision groups define what types of collision can collide with each other. For example, an entity using COLLISION_GROUP_DEBRIS
will only collide with the world and not any dynamic entities.
When the game tests a pair collision groups, the lower collision group is always first in the checks. All collision groups can touch triggers.
List
These are defined in public/const.h
:
Name | Value | Solid to players | Solid to bullets | Solid to projectiles | Solid to physics | Solid to world | Description |
---|---|---|---|---|---|---|---|
Yes | Yes | Yes | Yes | Yes | Default collision group | ||
No | No | No | No | Yes | Typically used for small objects that shouldn't interfere with gameplay. Will not touch triggers unless the trigger has the Debris spawnflag enabled. Collides with COLLISION_GROUP_PUSHAWAY .
| ||
No | No | No | No | Yes | Despite the name, this is the same as COLLISION_GROUP_DEBRIS , but does not collide with COLLISION_GROUP_PUSHAWAY .
| ||
No Yes |
No | No | No | Yes | Same as above, but doesn't collide with other COLLISION_GROUP_INTERACTIVE_DEBRIS . VPhysics props that are asleep will be converted to COLLISION_GROUP_DEBRIS
| ||
Yes | Yes | Yes | Yes | Yes | Does not collide with debris. Gibs from models not flagged as debris are set to this group. func_door and func_door_rotating use this if set to ignore debris. | ||
Yes | Yes | Yes Depends |
Yes | Yes | Used by players, but NOT for movement collision. Does not collide with COLLISION_GROUP_PASSABLE_DOOR .
Except in , this will not collide with In , does not collide with grenade, engineer buildings (except teleporters), combat object groups and tank groups. | ||
Yes | Yes | Yes | Yes | Yes | Used by func_breakable_surf. Does not collide with other COLLISION_GROUP_BREAKABLE_GLASS . NPCs ignore these for weapon LOS checks.
| ||
Yes | Yes | Yes | Yes | Yes | Used by driveable vehicles. Always collides against COLLISION_GROUP_VEHICLE_CLIP
| ||
Yes Depends |
Yes | Yes No |
Yes | Yes | Used by player movement collision tests.
Behaves identically to In , will not collide with projectile, rocket, grenade, combat object and tank groups. Engineer buildings (except teleporters), players (if | ||
Yes | Yes | Yes | Yes | Yes | Used by NPCs. Always collides with COLLISION_GROUP_DOOR_BLOCKER
| ||
No | No | No | No | No | Set on players/NPCs which enter a vehicle. | ||
No | Yes | Yes Depends |
Yes | Yes | Used by weapons, including when dropped. | ||
No | No | No | No | No | Used by func_vehicleclip. Ony collides with COLLISION_GROUP_VEHICLE .
| ||
Yes No |
Yes | No Depends |
Yes | Yes | Set on projectiles. Does not collide with other projectiles.
In , rockets and grenades have their own collision groups. This will not collide with rockets, however it does collide with grenades! | ||
No | No | No Depends |
No | No | Used by prop_door_rotating (creates a entity_blocker entity). Only supposed to collide with COLLISION_GROUP_NPC .
In , also collides with rockets, grenades and certain projectiles. Todo: Investigate the projectile behavior more
| ||
No | Yes | Yes | Yes | Yes | Used by func_door and func_door_rotating when the non-solid spawnflag is set. | ||
No | Yes | No | Yes | Yes | Set on entities dissolved with env_entity_dissolver. Only collides with COLLISION_GROUP_NONE .
| ||
No Yes |
Yes | Yes | Yes | Yes | Set by func_physbox_multiplayer. Also set by prop_physics_multiplayer on spawn and when awakened, if sv_turbophysics is enabled. Collides with COLLISION_GROUP_DEBRIS . Used to push away props from the player in and .
| ||
Yes No |
Yes | Yes | Yes | Yes | Set on NPCs when they are potentially stuck in a player. Behaves identically to COLLISION_GROUP_NPC if not testing against COLLISION_GROUP_PLAYER .
| ||
Yes | Yes | Yes | Yes | Yes | Set on NPCs playing out a scripted_sequence, if NPC collisions are set to be disabled.
In , does not collide with other |
Extended collision groups in Team Fortress 2 only:
Name | Value | Solid to players | Solid to hitscan | Solid to projectiles | Solid to physics | Solid to world | Description |
---|---|---|---|---|---|---|---|
No | Yes | N/A Depends |
Yes | Yes | Set by grenade projectiles. Does not collide with other TFCOLLISIONGROUP_GRENADES and rockets.
| ||
N/A Depends |
Yes | Yes | Yes | Yes | Set by Engineer buildings except teleporters. Uses team-specific contents on players. | ||
Yes | Yes | Yes | Yes | Yes | Set on teleporters. | ||
No | Yes | Yes | Yes | Yes | Set by placed sappers and the medigun shield (entity_medigun_shield). | ||
No | Yes | No | Yes | Yes | Set by rocket projectiles. Collides with COLLISION_GROUP_PLAYER but not player movement. Does not collide with weapons or any projectiles except rockets. Collides with medigun shields.
| ||
Yes | No | No | No | No | Used by func_respawnroom and func_respawnroomvisualizer. | ||
No | Yes | Yes | Yes | Yes | Set by team-assigned tf_pumpkin_bombs. | ||
No | Yes | No | Yes | Yes | Set by arrows and the Short Circuit's secondary attack (tf_projectile_mechanicalarmorb). Same as TFCOLLISION_GROUP_ROCKETS but doesn't collide with other rockets.
|