SetSolid()

From Valve Developer Community
Jump to navigation Jump to search

SetSolid() defines the manner in which this entity's collisions are handled. SetSolidFlags() can be used to tweak behaviour further.

Note.pngNote:Behaviour can change subtly depending on whether the object is colliding or being collided with.

SolidTypes

SOLID_NONE
The entity does not generate its own collisions. Depending on the MoveType, its origin may still collide with brushes but will Touch() unreliably.
Tip.pngTip:Use SetMoveType(MOVETYPE_NOCLIP) to completely disable all movement collision.
SOLID_BSP
The entity has a brush model defined by the map. Does not collide with other SOLID_BSP entities.
SOLID_BBOX
The entity collides with an axis-aligned bounding box. Collides with everything. Required for hitbox tests.
Use UTIL_SetSize() to define the extents of the box.
Icon-Bug.pngBug:Stop calling SetSize if the entity changes to another SolidType, or you will get a crash that disappears when a debugger is attached!  [todo tested in?]
SOLID_OBB
SOLID_OBB_YAW
The entity collides with an object-aligned bounding box. OBB_YAW restricts orientation to the Z-axis. UTIL_SetSize() can be used to define the box's extents.
SOLID_CUSTOM
TestCollision() is called every frame to handle collisions.
Todo: Relationship with FSOLID_CUSTOMRAYTEST and FSOLID_CUSTOMBOXTEST?
SOLID_VPHYSICS
Loads a collision mesh from the entity's model. This results in the same collision shape as VPhysics would have, without actually enabling VPhysics collisions or simulation.

See also