BSPX
		
		
		
		Jump to navigation
		Jump to search
		

BSPX is a standard for adding new lumps to  id Tech 2,
 id Tech 2,  id Tech 3, and
 id Tech 3, and  GoldSrc BSP files, which are used to add additional features to be used by source ports or custom renderers without breaking vanilla compatibility. As BSPX lumps are placed at the end of the BSP file, they are not loaded by vanilla engines, so a BSP with BSPX lumps is backwards compatible.
 GoldSrc BSP files, which are used to add additional features to be used by source ports or custom renderers without breaking vanilla compatibility. As BSPX lumps are placed at the end of the BSP file, they are not loaded by vanilla engines, so a BSP with BSPX lumps is backwards compatible.
Structure
typedef struct {
	char lumpname[24]; // up to 23 chars, zero-padded
	int fileofs;  // from file start
	int filelen;
} bspx_lump_t;
typedef struct {
	char id[4];  // 'BSPX'
	int numlumps;
	bspx_lump_t lumps[1];
} bspx_header_t;
Lumps
Todo: other lumps; see FTE and Ericw-tools source codes
| Lump name | Use case | Notes | 
|---|---|---|
| DECOUPLED_LM | "Decouple" lightmap scale and UVs from texels | Used by  Quake II remaster; compile with ericw-tools using _world_units_per_luxelKV in worldspawn or-world_units_per_luxel #in QBSP. | 
| LIGHTING_E5BGR9 | HDR lightmaps | Functions similarly to the RGBE8 lightmaps in  Source, but with an additional bit of precision per color instead of having the exponent be 8 bits. | 
External links
- BSPX spec in  repo repo
