BSP flags (Quake and GoldSrc)

Remember to check for any notes left by the tagger at this article's talk page.

Surface flags
Despite having a 32-bit integer available to be used, most flags go unused. Vanilla Quake engines and GoldSrc only use TEX_SPECIAL.
Bit | Name | Dev comment | Notes |
---|---|---|---|
0x00000001 | TEX_SPECIAL | sky or slime, no lightmap or 256 subdivision | Surface does not have a lightmap.
Used by |
0x00000002 | TEX_MISSING | johnfitz -- this texinfo does not have a texture | Used by fitzquake and derivatives to indicate a missing texture |
0x00000800 | ??? | N/A | Used by VERTEXNORMALS BSPX lump to indicate a face that should have smooth shading based upon its vertex normals. |
Contents types
Contents are stored as a signed 32-bit integer, and are always negative.
Value | Internal name | Dev comment | Notes |
---|---|---|---|
-1 | CONTENTS_EMPTY | ||
-2 | CONTENTS_SOLID | ||
-3 | CONTENTS_WATER | ||
-4 | CONTENTS_SLIME | ||
-5 | CONTENTS_LAVA | ||
-6 | CONTENTS_SKY | ||
-7 | CONTENTS_ORIGIN | Replaces an entity's origin KV, then is removed by CSG (does not exist in compiled BSP).
In GoldSrc, if a brush has this contents at runtime, it will be treated like water. | |
-8 | CONTENTS_CLIP | changed to contents_solid | |
-9 | CONTENTS_CURRENT_0 | ||
-10 | CONTENTS_CURRENT_90 | ||
-11 | CONTENTS_CURRENT_180 | ||
-12 | CONTENTS_CURRENT_270 | ||
-13 | CONTENTS_UP | ||
-14 | CONTENTS_DOWN | ||
-15 | CONTENTS_TRANSLUCENT (in all games since goldsrc) | Like water, but never solid | |
-16 | CONTENTS_LADDER (in all games since goldsrc) | ||
-17 | CONTENTS_FLYFIELD (in all games since goldsrc) | Zero gravity | |
-18 | CONTENTS_GRAVITY_FLYFIELD (in all games since goldsrc) | ||
-19 | CONTENTS_FOG (in all games since goldsrc) |
Ambient Types
Ambients are stored as an array of 4 unsigned bytes, indicating volume. Only Quake uses them, and it only uses AMBIENT_SKY and AMBIENT_WATER, which are hardcoded in the engine to play specific sounds when a visleaf containing the given ambient type is in the current PVS.
Index | Header text | Header text |
---|---|---|
0 | AMBIENT_WATER | |
1 | AMBIENT_SKY | |
2 | AMBIENT_SLIME | |
3 | AMBIENT_LAVA |