In old Source games, the player and NPCs have 2 bounding boxes.
One is the simplistic QPhys bbox, and the other is the advanced VPhys bbox.
the QPhys box is responsible for the basic player collision with the world, while the VPhys one is responsible for collision with other VPhys objects, such as physics props or cars.
These bounding boxes coexist, and handle the player's collision.
If, in a completely theoretical, impossible scenario, the player were to lose their QPhys bbox, they would simply pass through everything and fall through the world. If the same happened with the VPhys bbox, the player would still be able to collide with most things - but physics objects would not be able to collide with the player. Nothing would stop a crate from going through the player, but the player would still be able to walk on one.
This is because the player is a QPhys object, and the VPhys bbox is just an additional shadow, meant to allow QPhys objects to interact with physics objects in a limited way. The camera is locked to the QPhys bbox.
The VPhys bbox is sometimes refered to as "Havok bbox" in the speedrunning community. Similarly, QPhys is sometimes refered to as Quake.
The command
ent_bbox player
can be used to view the player's bounding boxes.developer 1
must be active for it to work.
If certain conditions are met, the QPhys BBox will teleport to the Havok bbox. This is exploited in glitches like Quickclip and BBT.
Generally, it is imagined in the speedrunning community as a "priority system".
By default, the Quake bbox is the one with priority, but whenever the player touches a physics objects with their quake box, the Havok box will have priority.
If the Havok box is NOT in the same place as the Quake box while the former has priority, the Quake box will simply teleport to the havok box.
This will also usually stop the Quake box from touching a physics object - causing the priority to return to it.