Limited support
This feature is only present in Portal 2: Community Edition and Portal: Revolution.

Script Constants

Collision Groups

These constants are used with the extended trace API to filter entities by their collision group.

NameValue
COLLISION_GROUP_NONE0
COLLISION_GROUP_DEBRIS1
COLLISION_GROUP_DEBRIS_TRIGGER2
COLLISION_GROUP_INTERACTIVE_DEBRIS3
COLLISION_GROUP_INTERACTIVE4
COLLISION_GROUP_PLAYER5
COLLISION_GROUP_BREAKABLE_GLASS6
COLLISION_GROUP_VEHICLE7
COLLISION_GROUP_PLAYER_MOVEMENT8
COLLISION_GROUP_NPC9
COLLISION_GROUP_IN_VEHICLE10
COLLISION_GROUP_WEAPON11
COLLISION_GROUP_VEHICLE_CLIP12
COLLISION_GROUP_PROJECTILE13
COLLISION_GROUP_DOOR_BLOCKER14
COLLISION_GROUP_PASSABLE_DOOR15
COLLISION_GROUP_DISSOLVING16
COLLISION_GROUP_PUSHAWAY17
COLLISION_GROUP_NPC_ACTOR18
COLLISION_GROUP_NPC_SCRIPTED19
COLLISION_GROUP_PZ_CLIP20
COLLISION_GROUP_CAMERA_SOLID21
COLLISION_GROUP_PLACEMENT_SOLID22
COLLISION_GROUP_PLAYER_HELD23
COLLISION_GROUP_WEIGHTED_CUBE24
COLLISION_GROUP_DEBRIS_BLOCK_PROJECTILE25

Contents Flags

NameValueDefinition
CONTENTS_EMPTY00
CONTENTS_SOLID10x1
CONTENTS_WINDOW20x2
CONTENTS_AUX40x4
CONTENTS_GRATE80x8
CONTENTS_SLIME160x10
CONTENTS_WATER320x20
CONTENTS_BLOCKLOS640x40
CONTENTS_OPAQUE1280x80
LAST_VISIBLE_CONTENTS128CONTENTS_OPAQUE
ALL_VISIBLE_CONTENTS255(LAST_VISIBLE_CONTENTS | (LAST_VISIBLE_CONTENTS-1))
CONTENTS_TESTFOGVOLUME2560x100
CONTENTS_SLIDE5120x200
CONTENTS_BLOCKLIGHT10240x400
CONTENTS_TEAM120480x800
CONTENTS_TEAM240960x1000
CONTENTS_IGNORE_NODRAW_OPAQUE81920x2000
CONTENTS_MOVEABLE163840x4000
CONTENTS_AREAPORTAL327680x8000
CONTENTS_PLAYERCLIP655360x10000
CONTENTS_MONSTERCLIP1310720x20000
CONTENTS_BRUSH_PAINT2621440x40000
CONTENTS_GRENADECLIP5242880x80000
CONTENTS_DRONECLIP10485760x100000
CONTENTS_UNUSED320971520x200000
CONTENTS_UNUSED441943040x400000
CONTENTS_UNUSED583886080x800000
CONTENTS_ORIGIN167772160x1000000
CONTENTS_MONSTER335544320x2000000
CONTENTS_DEBRIS671088640x4000000
CONTENTS_DETAIL1342177280x8000000
CONTENTS_TRANSLUCENT2684354560x10000000
CONTENTS_LADDER5368709120x20000000
CONTENTS_HITBOX10737418240x40000000

Trace Masks

Trace masks are used with the extended trace API to filter entities by category.

NameValueDefinition
MASK_ALL-10xFFFFFFFF
MASK_SOLID33570827(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_MONSTER | CONTENTS_GRATE)
MASK_PLAYERSOLID33636363(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_PLAYERCLIP | CONTENTS_WINDOW | CONTENTS_MONSTER | CONTENTS_GRATE)
MASK_NPCSOLID33701899(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTERCLIP | CONTENTS_WINDOW | CONTENTS_MONSTER | CONTENTS_GRATE)
MASK_NPCFLUID33701891(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTERCLIP | CONTENTS_WINDOW | CONTENTS_MONSTER)
MASK_WATER16432(CONTENTS_WATER | CONTENTS_MOVEABLE | CONTENTS_SLIME)
MASK_OPAQUE16513(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_OPAQUE)
MASK_OPAQUE_AND_NPCS33570945(MASK_OPAQUE | CONTENTS_MONSTER)
MASK_BLOCKLOS16449(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_BLOCKLOS)
MASK_BLOCKLOS_AND_NPCS33570881(MASK_BLOCKLOS | CONTENTS_MONSTER)
MASK_VISIBLE24705(MASK_OPAQUE | CONTENTS_IGNORE_NODRAW_OPAQUE)
MASK_VISIBLE_AND_NPCS33579137(MASK_OPAQUE_AND_NPCS | CONTENTS_IGNORE_NODRAW_OPAQUE)
MASK_SHOT1174421507(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_WINDOW | CONTENTS_DEBRIS | CONTENTS_HITBOX)
MASK_FLOORTRACE67125251(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_DEBRIS)
MASK_WEAPONCLIPPING100679683(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_WINDOW | CONTENTS_DEBRIS)
MASK_SHOT_BRUSHONLY67125251(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_DEBRIS)
MASK_SHOT_HULL100679691(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_WINDOW | CONTENTS_DEBRIS | CONTENTS_GRATE)
MASK_SHOT_PORTAL33570819(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_MONSTER)
MASK_SOLID_BRUSHONLY16395(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_GRATE)
MASK_PLAYERSOLID_BRUSHONLY81931(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_PLAYERCLIP | CONTENTS_GRATE)
MASK_NPCSOLID_BRUSHONLY147467(CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_WINDOW | CONTENTS_MONSTERCLIP | CONTENTS_GRATE)
MASK_NPCWORLDSTATIC131083(CONTENTS_SOLID | CONTENTS_WINDOW | CONTENTS_MONSTERCLIP | CONTENTS_GRATE)
MASK_NPCWORLDSTATIC_FLUID131075(CONTENTS_SOLID | CONTENTS_WINDOW | CONTENTS_MONSTERCLIP)
MASK_SPLITAREAPORTAL48(CONTENTS_WATER | CONTENTS_SLIME)
MASK_DEADSOLID65547(CONTENTS_SOLID | CONTENTS_PLAYERCLIP | CONTENTS_WINDOW | CONTENTS_GRATE)

Button Flags

NameValueDefinition
IN_ATTACK10x1
IN_JUMP20x2
IN_DUCK40x4
IN_FORWARD80x8
IN_BACK160x10
IN_USE320x20
IN_CANCEL640x40
IN_LEFT1280x80
IN_RIGHT2560x100
IN_MOVELEFT5120x200
IN_MOVERIGHT10240x400
IN_ATTACK220480x800
IN_RUN40960x1000
IN_RELOAD81920x2000
IN_ALT1163840x4000
IN_ALT2327680x8000
IN_SCORE655360x10000
IN_SPEED1310720x20000
IN_WALK2621440x40000
IN_ZOOM5242880x80000
IN_WEAPON110485760x100000
IN_WEAPON220971520x200000
IN_GRENADE183886080x800000
IN_GRENADE2167772160x1000000
IN_LOOKSPIN335544320x2000000
IN_USEORRELOAD671088640x4000000
IN_COOP_PING1342177280x8000000
IN_REMOTE_VIEW2684354560x10000000

MoveType

NameValue
MOVETYPE_NONE0
MOVETYPE_ISOMETRIC1
MOVETYPE_WALK2
MOVETYPE_STEP3
MOVETYPE_FLY4
MOVETYPE_FLYGRAVITY5
MOVETYPE_VPHYSICS6
MOVETYPE_PUSH7
MOVETYPE_NOCLIP8
MOVETYPE_LADDER9
MOVETYPE_OBSERVER10
MOVETYPE_CUSTOM11

MoveCollide

NameValue
MOVECOLLIDE_DEFAULT0
MOVECOLLIDE_FLY_BOUNCE1
MOVECOLLIDE_FLY_CUSTOM2
MOVECOLLIDE_FLY_SLIDE3

Paint Types

NameValue
BOUNCE_POWER0
REFLECT_POWER1
SPEED_POWER2
PORTAL_POWER3
NO_POWER4
STICK_POWER5

Cube Shape

Cube shape is used by the Shape/Behavior system for weighted cubes. A cube's shape indicates which buttons it can press. Note that other values are permitted for custom cubes.

NameValue
CUBE_SHAPE_CUBIC1
CUBE_SHAPE_SPHERICAL2

Cube Behavior

Cube behavior is used by the Shape/Behavior system for weighted cubes. A cube's behavior indicates the functionality of the cube.

NameValue
CUBE_BEHAVIOR_REGULAR1
CUBE_BEHAVIOR_REFLECTIVE2
CUBE_BEHAVIOR_SCHRODINGER3

Surface Type Flags

NameValueDefinition
SURF_LIGHT10x1
SURF_SKY2D20x2
SURF_SKY40x4
SURF_WARP80x8
SURF_TRANS160x10
SURF_NOPORTAL320x20
SURF_TRIGGER640x40
SURF_NODRAW1280x80
SURF_HINT2560x100
SURF_SKIP5120x200
SURF_NOLIGHT10240x400
SURF_BUMPLIGHT20480x800
SURF_NOSHADOWS40960x1000
SURF_NODECALS81920x2000
SURF_NOPAINT8192SURF_NODECALS
SURF_NOCHOP163840x4000
SURF_HITBOX327680x8000
SURF_SKYNOEMIT655360x10000
SURF_SKYOCCLUSION1310720x20000
SURF_SLICK2621440x40000

Misc. Constants

NameValue
RAND_MAX2147483647
PI3.14159
_charsize_1
_floatsize_8
_intsize_8