Physics Mayhem
You can help by adding links to this article from other relevant articles.
Physics Mayhem is a physics engine bug present in all Source branches using Havok.
If an entity's solidity type or collision group is changed manually (for example, by using addoutput solid 2
with I/O or NetProps.SetPropInt(entity, "m_CollisionGroup"
in VScript), internal cached physics information will not be updated. Eventually, Havok can implode attempting to run the simulation with the stale information when this entity comes in contact with other objects. Effects range from unpredictable, bouncy prop behavior to all VPhysics-simulated objects falling through all geometry. This bug is global and once it occurs, it is unrecoverable. The only fix is a full server restart.
To avoid this bug, do not set the solid or collision group fields manually. Instead, use the game's native routines to handle this. In VScript, this is SetSolid
and SetCollisionGroup
. In SourceMod, use CollisionRulesChanged
.