# Q3Map2/BSP
### BSP phase minor switches:
#### -custinfoparms

* Enables custom surfaceparms for game mods without the need to recompile Q3Map2 itself. Custom surfaceparms are stored in custinfoparms.txt, in the "scripts" directory. Custom surfaceparms follow the format:
// Contentflags
// Surfaceflags

#### -debuginset

* Enables debugging of surface triangle insetting. //I'm totally not sure what this is?

#### -debugportals

* Draws the portals into the bsp as translucent polygons. Omit -vis and -light for best -debugportals results.

#### -debugsurfaces

* Colors every surface a different color (very trippy). Omit -vis and -light for best -debugsurfaces results.

#### -fakemap

* Creates a new .map file with a blank worldspawn entity and all the world brushes from your original .map file. //Don't know much about this one.

#### -flares

* Enable support for flares. They are used to generate a glare effect over bright light sources. Only supported by certain versions of the Quake3 Engine like those used in Raven's titles or ioQuake3.

#### -flat

* Forces all texture coordinates for a given surface to the pixel that best fits the average color of the assigned texture.

#### -fulldetail

* Will cause all detail brushes to be handled as if they were structural.

#### -leaktest

* Will cause Q3Map2 to abort compile if a leak is encountered.

#### -meta

* At one time, there was a clear definition as to what, exactly, the -meta switch did. Now, it has become the "magic" switch that is required for most of Q3Map2's advanced features. Always -meta, and always -v.

#### -mi <N>

* Sets the maximum per-surface index count to N.

#### -mv <N>

* Sets the maximum per-surface vertex count to N.

#### -nocurves

* Will not compile patch meshes into the .bsp.

#### -nodetail

* Will not compile detail brushes into the .bsp.

#### -nofog

* Will not compile fog brushes into the .bsp.

#### -nohint

* Will not compile hint brushes into the .bsp.

#### -nosubdivide

* Visible surfaces will not be split. TessSize is ignored.

#### -notjunc

* Will not fix T-Junctions (can cause sparklies and LOD cracks).

#### -nowater

* Will not compile liquid brushes into .bsp.

#### -np <shadeangle (1 through 179)>

* Forces all planar shaders to become nonplanar with the shadeangle specified.

#### -onlyents

* Only changes the entities in the compiled .bsp. Needs a compiled .bsp and a new entity file (.ent)

#### -patchmeta

* Creates meta surfaces from patch meshes. This "bakes" a set LOD into patches in your .bsp.

#### -skyfix

* Enables fix for buggy ATI GL_CLAMP behavior. Always use this.
Sidenote: ATI's behavior is correct. The bug was with *NVIDIA* drivers not distinguishing between GL_CLAMP and GL_CLAMP_TO_EDGE, and Q3 using the wrong one: since Q3 development was done predominantly on nVidia hardware, nobody noticed it until too late.

#### -snap

* Enables axial bevel plane snapping to reduce clipped model plane count (use with care). //I totally don't know a thing about this.

#### -texrange <N>

* Limits per-surface texel count to N.

#### -v

* Enables verbose mode for the bsp phase. Always use this.

#### -verboseentities

* Outputs more information about compiling entity sub-models into the .bsp.