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 withCOLLISION_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 toCOLLISION_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  In  | ||
| 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. 
 In  | ||
| 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  | ||
| 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  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_NPCif not testing againstCOLLISION_GROUP_PLAYER. | ||
| Yes | Yes | Yes | Yes | Yes | Set on NPCs playing out a scripted_sequence, if NPC collisions are set to be disabled. In  | 
Extended collision groups in  Team Fortress 2 only:
 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_GRENADESand 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_PLAYERbut 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_ROCKETSbut doesn't collide with other rockets. | 
Extended collision groups in  Garry's Mod:
 Garry's Mod:
| Name | Value | Solid to players | Solid to hitscan | Solid to projectiles | Solid to physics | Solid to world | Description | 
|---|---|---|---|---|---|---|---|
| [Todo] Unknown | [Todo] Unknown | [Todo] Unknown | [Todo] Unknown | [Todo] Unknown | Doesn't collide with players/props | 
Extended collision groups in  Portal 2:
 Portal 2:
| Name | Value | Solid to players | Solid to hitscan | Solid to projectiles | Solid to physics | Solid to world | Description | 
|---|---|---|---|---|---|---|---|
| Yes | Yes | Yes | Yes | Yes | |||
| No | No | No | No | No | Solid only to the camera's test trace. | ||
| No | No | No | No | No | Solid only to the placement tool's test trace. | ||
| No | Yes | Yes | Yes | Yes | Held objects that shouldn't collide with players. | ||
| Yes | Yes | Yes | Yes | Yes | Cubes need a collision group that acts roughly like COLLISION_GROUP_NONE but doesn't collide with debris or interactive. | ||
| No | No | No | No | No | Supposedly only collides with bullets, but does not. |