Skip to main content

Overview

The BspSourceConfig class provides comprehensive configuration options for controlling the BSPSource decompilation process. All configuration fields are public and can be modified directly. Package: info.ata4.bspsrc.decompiler Source: BspSourceConfig.java:27

Constructors

BspSourceConfig

public BspSourceConfig()
Creates a new configuration with default values. Source: BspSourceConfig.java:78
public BspSourceConfig(BspSourceConfig config)
Copy constructor that creates a new configuration from an existing one.
config
BspSourceConfig
required
The configuration to copy from.
Source: BspSourceConfig.java:83

Public Fields

General Options

defaultAppId
int
default:"SourceAppId.UNKNOWN"
The default Source engine application ID to use when auto-detection fails.
brushMode
BrushMode
default:"BrushMode.BRUSHPLANES"
The brush decompilation mode (BRUSHPLANES, ORIGFACES, ORIGFACES_PLUS, SPLITFACES).
sourceFormat
SourceFormat
default:"SourceFormat.AUTO"
The output VMF format version (AUTO, NEW, OLD).
debug
boolean
default:"false"
Enable debug mode with verbose logging and config dump.

Entity Options

writeAreaportals
boolean
default:"true"
Include areaportal entities in the output.
writeBrushEntities
boolean
default:"true"
Include brush-based entities (func_detail, func_door, etc.).
writeCubemaps
boolean
default:"true"
Include env_cubemap entities.
writeDetails
boolean
default:"true"
Include func_detail entities.
writeOccluders
boolean
default:"true"
Include func_occluder entities.
writeOverlays
boolean
default:"true"
Include info_overlay entities.
writePointEntities
boolean
default:"true"
Include point entities (lights, spawns, etc.).
writeStaticProps
boolean
default:"true"
Include prop_static entities.
writeLadders
boolean
default:"true"
Include func_ladder entities.
writeVisClusters
boolean
default:"true"
Include func_viscluster entities.
fixEntityRot
boolean
default:"true"
Fix entity rotation angles to proper VMF format.
apForceManualMapping
boolean
default:"false"
Force manual areaportal mapping instead of automatic detection.
detailMerge
boolean
default:"false"
Merge adjacent detail brushes with similar properties.
detailMergeThresh
float
default:"1"
Distance threshold for detail brush merging.
maxCubemapSides
int
default:"8"
Maximum number of brush sides to assign to a single cubemap.
maxOverlaySides
int
default:"64"
Maximum number of brush sides to assign to a single overlay.

Brush Options

writeWorldBrushes
boolean
default:"true"
Include world brushes (structural geometry).
writeDisp
boolean
default:"true"
Include displacement surfaces.
backfaceDepth
float
default:"1"
Depth in units for generated backfaces on brush planes.

Texture Options

backfaceTexture
String
default:"\"\""
Custom texture to apply to generated backfaces (empty = use TOOLS/TOOLSNODRAW).
faceTexture
String
default:"\"\""
Custom texture to apply to all faces (empty = use original textures).
fixCubemapTextures
boolean
default:"true"
Fix cubemap texture references to remove runtime-generated suffixes.
fixToolTextures
boolean
default:"true"
Fix tool texture paths (e.g., convert lowercase to uppercase).

Miscellaneous Options

nullOutput
boolean
default:"false"
Disable VMF output (useful for benchmarking or testing).
loadLumpFiles
boolean
default:"true"
Load external lump files (.lmp) if present.
skipProt
boolean
default:"false"
Skip protection check (allows decompiling protected maps).
writeVisgroups
boolean
default:"true"
Create visgroups in the VMF for organizing entities.
writeCameras
boolean
default:"true"
Include camera entities in the output.
unpackEmbedded
boolean
default:"false"
Extract embedded files from the pakfile lump.
smartUnpack
boolean
default:"true"
Skip VBSP-generated files and patched materials when unpacking.
vmfDoubleScale
int
default:"8"
Scale factor for VMF coordinate precision.
vmfDoubleScaleTextureAxes
int
default:"4"
Scale factor for texture axis precision.
vmfDoubleScaleTextureScale
int
default:"4"
Scale factor for texture scale precision.

Public Methods

dumpToLog

public void dumpToLog()
Dumps all configuration values to the default logger for debugging. Source: BspSourceConfig.java:128
public void dumpToLog(Logger logger)
Dumps all configuration values to the specified logger.
logger
Logger
required
The logger to write configuration values to.
Source: BspSourceConfig.java:132

isWriteEntities

public boolean isWriteEntities()
Returns true if any entity writing is enabled. Returns: True if writeBrushEntities or writePointEntities is enabled Source: BspSourceConfig.java:149

setWriteEntities

public void setWriteEntities(boolean writeEntities)
Sets both brush and point entity writing flags.
writeEntities
boolean
required
Value to set for both writeBrushEntities and writePointEntities.
Source: BspSourceConfig.java:153

Usage Example

import info.ata4.bspsrc.decompiler.BspSourceConfig;
import info.ata4.bspsrc.decompiler.modules.geom.BrushMode;
import info.ata4.bspsrc.lib.app.SourceAppId;

// Create default configuration
BspSourceConfig config = new BspSourceConfig();

// Configure general options
config.defaultAppId = SourceAppId.HALF_LIFE_2;
config.brushMode = BrushMode.ORIGFACES;
config.debug = false;

// Configure entity options
config.writeWorldBrushes = true;
config.writeBrushEntities = true;
config.writePointEntities = true;
config.writeStaticProps = true;
config.writeDisp = true;
config.writeOverlays = true;
config.writeCubemaps = true;

// Configure texture options
config.fixCubemapTextures = true;
config.fixToolTextures = true;
config.backfaceTexture = "tools/toolsnodraw";

// Configure detail merging
config.detailMerge = true;
config.detailMergeThresh = 2.0f;

// Configure embedded file extraction
config.unpackEmbedded = true;
config.smartUnpack = true;

// Load external lump files
config.loadLumpFiles = true;

// Dump configuration in debug mode
if (config.debug) {
    config.dumpToLog();
}

// Create a copy of the configuration
BspSourceConfig configCopy = new BspSourceConfig(config);
configCopy.debug = true; // Modify copy without affecting original

// Quick entity toggle
config.setWriteEntities(false); // Disables both brush and point entities

See Also

Build docs developers (and LLMs) love