This article's documentation is for anything that uses the Source engine. Click here for more information.

VBSP: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Added note about how vbsp also places detail props)
No edit summary
 
(125 intermediate revisions by 50 users not shown)
Line 1: Line 1:
A compiling tool that creates the [[BSP]] (Binary Space Partition) file that will be your map. Can be run by itself to create a (test) map, but the additional use of the other two tools ([[vvis]] and [[vrad]]) is recommended for release maps.
{{LanguageBar}}
{{Source topicon}}
{{map compile pipeline|source1}}
{{toc-right}}
{{vbsp|4}} is the tool that compiles a raw [[VMF]] file into [[BSP (Source)|Source 1's BSP format]]. It is generally followed by [[VVIS]] and [[VRAD]].


Vbsp also places [[Detail Props]] on appropriate surfaces in a map.
VBSP will:
* Convert [[brush]]es to polygons
* Generate [[visleaf|visleaves]]
* Generate [[detail props]]
* Swallow most [[:Category:Internal entities|internal entities]] into [[Worldspawn|the world]]
* Replace [[$envmap|specular materials]] with [[patch]]ed versions that link to the nearest [[env_cubemap|cubemap]]
** Also generate blank cubemap textures (some custom VBSP may skip this by default).
* Report [[leak]]s as [[.lin]] files
* Embed the [[entity block]]
* Merge groups of [[prop_static|static props]] sharing the same [[material]] {{csgo|since}}


=Options=
While the resulting BSP file can be played directly it has no visibility control (poor performance) and no lighting.
Use these in combination with [[expert compile mode]] or a batch file:


==Common options (use -v to see all options)==
{{Bug|In non-{{l4dbranch|4}} games, [[MDL (Source)|MDL]] files that have the <code>IDST1</code> header will fail to load for VBSP, see [[VRAD]]'s bugs.}}
{{bug|tested={{src13}}|In {{src13|4}} and possibly other engine branches, [[smoothing groups]] are not properly written for {{ent|func_detail}} brush faces. This is fixed in the {{slamminsrc|2|nt=1}}, {{gmod|2}}'s VBSP, {{mapbase|2}}' VBSP and [[VBSP++]]. The code for this fix can be found in [https://github.com/ValveSoftware/source-sdk-2013/pull/391 pull request 391 on GitHub].}}
{{bug|tested={{src13}}|Vanilla VBSP doesn't recognize custom lightmapped shaders, and thus it won't allow [[VRAD]] to generate lightmaps for them. This is fixed in third party forks such as {{slamminsrc|2|nt=1}}, {{mapbase|2}}'s and [[VBSP++]]}}


-v (or -verbose): Turn on verbose output (also shows more command-line options).
== Launch options ==
=== Syntax ===
<vbsp.exe path> [options] <VMF File>


*-onlyents : This option causes vbsp to only import the entities from the vmf-file. -onlyents won't reimport brush models.
For example:
*-onlyprops : Only update the static props and detail props.
"Half-Life 2\bin\vbsp.exe" -onlyents sdk_trainstation_01
*-glview : Writes .gl files in the current directory that can be viewed with glview.exe. If you use -tmpout, it will write the files into the \tmp folder.
*-nodetail : Get rid of all detail geometry. The geometry left over is what affects visibility.
*-nowater : Get rid of water brushes.
*-low : Run as an idle-priority process.
*-linuxdata : Force it to write physics data for linux multiplayer servers. ( It will automatically write this data if it finds certain entities like info_player_terrorist, info_player_deathmatch, info_player_teamspawn, info_player_axis, or info_player_coop. )


*-vproject <directory> : Override the VPROJECT environment variable.
This will re-embed the entity block without affecting the world.
*-game <directory> : Same as -vproject.


==Other options==
=== Common options ===
*-novconfig : Don't bring up graphical UI on vproject errors.
{{Note|{{Code|-onlyents}} and {{Code|-keepstalezip}} will mark the map as stale by embedding the file stale.txt into the BSP. Loading stale maps in the engine will cause a "This map is not final!!" warning message in the console.}}
*-threads : Control the number of threads vbsp uses (defaults to the # of processors (times 2 for Hypertreading CPU's) on your machine).
{{CLParam|-v}} {{CLParam|-verbose|Turn on verbose output (also shows more [[Command Line Options|command-line options]] if used without any other parameters).}}
*-verboseentities: If -v is on, this disables verbose output for submodels.
{{CLParam|-onlyents|Only import the [[Entity|entities]] from the VMF. Brushes and internal entities are not modified. Brush Entities' boundaries will not be modified, however, their [[Keyvalues|Keyvalues]] will be. Conserves existing lighting and vis data.}}
*-noweld : Don't join face vertices together.
{{CLParam|-onlyprops|Only update static and detail props (i.e. the internal entities). Does not generate a .prt file, making VVIS fail!}}
*-nocsg : Don't chop out intersecting brush areas.
{{CLParam|-glview|Writes [[glview]] data to the VMF's directory. <code>-tmpout</code> will cause the files will be written to <code>\tmp</code> instead.}}
*-noshare : Emit unique face edges instead of sharing them.
{{CLParam|-nodetail|Removes [[func_detail]] brushes. The geometry left over is what affects visibility.}}
*-notjunc : Don't fixup t-junctions.
{{CLParam|-nowater|Get rid of water brushes. {{confirm|Does this affect CONTENTS_SLIME, or only CONTENTS_WATER?}}}}
*-noopt : By default, vbsp removes the 'outer shell' of the map, which are all the faces you can't see because you can never get outside the map. -noopt disables this behavior.
{{CLParam|-low|Run as an idle-priority process.}}
*-noprune : Don't prune neighboring solid nodes.
{{CLParam|-vproject|param=directory|Override the [[Game Directory|VPROJECT]] environment variable.}}
*-nomerge : Don't merge together chopped faces on nodes.
{{CLParam|-game|param=directory|Specify the folder of the <code>gameinfo.txt</code> file.}}
*-nomergewater: Don't merge together chopped faces on water.
{{CLParam|-insert_search_path|param=directory| Includes an extra base directory for mounting additional content (like [[Gameinfo.txt]] entries). Useful if you want to separate some assets from the mod for whatever reason.}}
*-nosubdiv : Don't subdivide faces for lightmapping.
{{CLParam|-embed|param=directory|game={{src13mp|since}}|Embed the contents of <directory> in the pakfile lump.}}
*-micro <#> : vbsp will warn when brushes are output with a volume less than this number (default: 1.0).
{{CLParam|-instancepath|param=directory|game={{p2ce|only}}| Overrides InstancePath key in gameinfo.}}
*-fulldetail : Mark all detail geometry as normal geometry (so all detail geometry will affect visibility).
*-leaktest : Stop processing the map if a leak is detected. Whether or not this flag is set, a leak file will be written out at <vmf filename>.lin, and it can be imported into Hammer.
*-nolinuxdata : Force it to not write physics data for linux multiplayer servers, even if there are multiplayer entities in the map.
*-bumpall : Force all surfaces to be bump mapped.
*-snapaxial : Snap axial planes to integer coordinates.
*-block # # : Control the grid size mins that vbsp chops the level on.
*-blocks # # # # : Enter the mins and maxs for the grid size vbsp uses.
*-dumpstaticprops: Dump static props to staticprop*.txt
*-dumpcollide : Write files with collision info.
*-luxelscale # : Scale all lightmaps by this amount (default: 1.0).
*-lightifmissing : Force lightmaps to be generated for all surfaces even if they don't need lightmaps.
*-keepstalezip : Keep the BSP's zip files intact but regenerate everything else.  


----
=== Advanced options ===
{{CLParam|-autoviscluster|param=int|game={{csgo|since}}|{{Todo|Used on dz_sirocco, found in <code>scripts/mapautocompile.txt</code>.}}
{{CLParam|-novconfig|Don't bring up graphical UI on vproject errors.}}
{{CLParam|-threads|param=int|Control the number of threads vbsp uses (defaults to the # of processors/cores (times 2 for Hypertheading/SMT CPU's) on your machine).}}
{{CLParam|-verboseentities|If verbose is enabled, this disables verbose output for submodels.}}
{{CLParam|-noweld|Don't join face vertexes together.}}
{{CLParam|-nocsg|Don't chop out intersecting brush areas.}}
{{CLParam|-noshare|Emit unique face edges instead of sharing them.}}
{{CLParam|-notjunc|Don't fixup any t-junctions.}}
{{CLParam|-allowdetailcracks|Don't fixup t-junctions on {{Ent|func_detail}}.}}
{{CLParam|-nodrawtriggers|Compiles all triggers as if they were using Nodraw texture. Only affects triggers using a texture with [[Material Map Compile Flags#%CompileTrigger_(toolstrigger)|%CompileTrigger]].}}
{{CLParam|-noopt}} By default, vbsp removes the 'outer shell' of the map, which are all the faces you can't see because you can never get outside the map. -noopt disables this behavior.}}
{{CLParam|-noprune|Don't prune neighboring solid nodes.}}
{{CLParam|-nomerge|Don't merge together chopped faces on nodes.}}
{{CLParam|-nomergewater|Don't merge together chopped faces on water.}}
{{CLParam|-nosubdiv|Don't subdivide faces for lightmapping. }}
{{CLParam|-micro|param=float|Warn when brushes are output with a volume less than this number (default: 1.0).}}
{{CLParam|-fulldetail|Mark all detail geometry as normal geometry (so all detail geometry will affect visibility).}}
{{CLParam|-alldetail|game={{only|{{as}} {{dota2}} {{asrd}}}}| Convert all structural brushes to detail brushes, except func_brush entities whose names begin with structure_.}}
{{CLParam|-leaktest|game={{not|{{mapbase}}}}| Stop processing the map if a leak is detected. Regardless of whether or not this flag is set, a leak file will be written out at <vmf filename>[[.lin]], and it can be imported into {{hammer|4}}.}}
{{CLParam|-noleaktest|game={{only|{{slamminsrc}} {{mapbase}}}}|Disables leaktest, as it is enabled by default.}}
{{CLParam|-bumpall|Force all surfaces to be treated as if they were [[bumpmap]]ed (generating four lightmaps for the surface instead of one), regardless of if they actually are.}}
{{CLParam|-snapaxial|Snap axial planes to integer coordinates.}}
{{CLParam|-block|param=vec2| Control the grid size mins that vbsp chops the level on. {{Bug|Causes VBSP to fail completely.}}}}
{{CLParam|-blocks|param=vec4|Enter the mins and maxs for the grid size vbsp uses.}}
{{CLParam|-blocksize|param=int|game={{csgo|since}}{{slamminsrc|also}}{{gmod|also}}|Control the size of each grid square that vbsp chops the level on. Default is 1024.}}
{{CLParam|-dumpstaticprops|Dump static props to staticprop*.txt.}}
{{CLParam|-dumpcollide|Write files with collision info.}}
{{CLParam|-forceskyvis}} Enable vis calculations in [[3D Skybox]] leaves.
{{tip|Use this if the 3D skybox room can be accessed without noclip.}}
{{CLParam|-luxelscale|param=float|Scale all lightmaps by this amount (default: 1.0).}}
{{CLParam|-minluxelscale|param=float|Lets you limit the minimum luxel scale in your map.}}
{{CLParam|-maxluxelscale|game={{slamminsrc|only}}| Lets you limit the maximum luxel scale in your map.}}
{{CLParam|-lightifmissing|Force lightmaps to be generated for all surfaces even if they don't need lightmaps.}}
{{CLParam|-localphysx}} {{Todo|Currently unknown.}}
{{CLParam|-keepstalezip|Keep the BSP's zip files intact but regenerate everything else.}}
{{CLParam|-visgranularity|param=vec3|game={{csgo|since}}{{slamminsrc|also}}|Force visibility splits # of units along X, Y, Z.}}
{{CLParam|-replacematerials|Substitute materials according to {{file|cfg/[[materialsub.cfg|materialsub]]|cfg}}.}}
{{CLParam|-FullMinidumps|Write large minidumps on crash.}}
{{CLParam|-novirtualmesh|Fix [[entities fall through displacements|physics entities falling through displacements in older versions of Source]] at cost of bigger BSP size.}}
{{CLParam|-xbox|Treat [[%CompileTrigger]] surfaces as nodraw, and treat [[%CompileWater]] surfaces as having [[%CompileNoLight]] (but not [[%CompileSlime]]). Implies {{code|-nodrawtriggers}}.}}
{{CLParam|-nodefaultcubemap|game={{slamminsrc|only}}|Disables automatic skybox cubemap generation.}}
{{CLParam|-defaultcubemap|game={{mapbase|only}}|By default in Mapbase "dummy" cubemaps are not generated during map compilation but can be forced to generate again by this parameter.}}
{{CLParam|-allowdynamicpropsasstatic|game={{gmod|only}}|Allow all models with the 'static' flag in the model viewer to be used on [[prop_static]], even when their propdata doesn't contain 'allowstatic'.{{warning|This will compile dynamic models with animation to Static too, which may causes visual glitches}}}}


'''See Also:'''
=== Static Prop Combine ===
{{csgo|since}}
{{CLParam|-StaticPropCombine|Merges static props together according to the rules defined in <code>scripts/hammer/spcombinerules/spcombinerules.txt</code>. This lowers the number of draw calls, increasing performance. It can also be used to lower the number of static props present in a map. See [[Static Prop Combine]].}}
{{CLParam|-StaticPropCombine_AutoCombine|Automatically generate static prop combine rules for props that VBSP deems should be combined. {{note|This does not write to <code>spcombinerules.txt</code>.}}}}
{{CLParam|-StaticPropCombine_ConsiderVis|Instead of using the distance limit, combine all props in the group that share visclusters.}}
{{CLParam|-StaticPropCombine_SuggestRules|Lists models sharing the same material that should be added to <code>spcombinerules.txt</code>.}}
{{CLParam|-StaticPropCombine_MinInstances|param=int|Set the minimum number of props in a combine group required to create a combined prop. {{Tip|Valve had this set to 3 for the new Dust 2.}}
{{CLParam|-StaticPropCombine_PrintCombineRules}} {{confirm|Prints the combine rules? Hasn't been working for me.}}}}
{{CLParam|-StaticPropCombine_ColorInstances}} {{confirm|Does this color the instances?}}
{{CLParam|-KeepSources|Don't delete the autogenerated QCs and unpacked model files after finishing.}}
{{CLParam|-CombineIgnore_FastReflection|Combine props, even if they have differing '''Render in Fast Reflections''' settings.}}
{{CLParam|-CombineIgnore_Normals|Combine props, even if they have differing '''Ignore Normals''' settings.}}
{{CLParam|-CombineIgnore_NoShadow|Combine props, even if they have differing '''Disable Shadows''' settings.}}
{{CLParam|-CombineIgnore_NoVertexLighting|Combine props, even if they have differing '''Disable Vertex lighting''' settings.}}
{{CLParam|-CombineIgnore_NoFlashlight|Combine props, even if they have differing '''Disable flashlight''' settings.}}
{{CLParam|-CombineIgnore_NoSelfShadowing|Combine props, even if they have differing '''Disable Self-Shadowing''' settings.}}
{{CLParam|-CombineIgnore_DisableShadowDepth|Combine props, even if they have differing '''Disable ShadowDepth''' settings.}}


[[Map Compiling Theory]]
=== Nonfunctional Options ===
{{CLParam|-linuxdata|Force it to write physics data for linux multiplayer servers. (It will automatically write this data if it finds certain entities like info_player_terrorist, info_player_deathmatch, info_player_teamspawn, info_player_axis, or info_player_coop.){{modernDeprecated|{{removed|{{src07}}}} All modern branches of Source use the same physics data on all platforms.}} }}
{{CLParam|-nolinuxdata|Force it to not write physics data for linux multiplayer servers, even if there are multiplayer entities in the map.}}
{{CLParam|-virtualdispphysics|Use virtual (not precomputed) displacement collision models}}


[[Decompiling Maps]]
=== Commented-out options ===
The following options have been commented out with <code>#if 0</code> in the VBSP source code, but still function if VBSP is recompiled with these uncommented.


[[Vrad|VRAD]]
Both options are restored in [[VBSP++]].
{{CLParam|-maxlightmapdim|param=float|Default 32. Set the maximum size a brush face's lightmap can be. VBSP will subdivide faces each time a brush face exceeds one minus this many luxels. Displacements do not get subdivided, but are still limited to this minus one times four.
:{{warning|Going above the default of 32 will result in the lightmap not loading in engine versions other than {{MCV}}{{strata}}.}}
}}
{{CLParam|-defaultluxelsize|param=float|Default 16. Set the default luxel scale that is used if a brush face's {{code|lightmapscale}} is set to 0 or is missing.
:{{important|Editing the face attributes of a face with a luxel scale of zero in [[Hammer]] or [[Hammer++]] will result in the luxel scale being rounded up to 1!}}
}}


[[Vvis|VVIS]]
== Console output ==
{{Todo|Add descriptions for other VBSP outputs (WriteBSP, PruneNodes, ProcessBlock_Thread, etc).}}


VBSP prints various information about the compile process to the console. Note that output from older versions of the tool can be different.
; <code>Patching WVT material: ''material path to patched WVT material''</code>
: The map contains WorldVertexTransition materials that are being used on non-displacement faces. VBSP patches these materials to use a different material shader (such as LightmappedGeneric) so that they properly render on these map faces.
; <code>FixTjuncs...</code>
: T-junctions are created when {{Ent|func_detail}} brushes touch world geometry. To avoid visual cracks or seams, VBSP fixes up these T-junctions.
; <code>Placing detail props : 0...1...2...3...4...5...6...7...8...9...10</code>
: [[Detail props]] are being placed in the map.


== See also ==
* [[Map Compiling Theory]]
* [[Decompiling Maps]]
* [[PTS]]
* [[PRT]]


[[Category:Tools]]
{{sdktools}}
[[Category:Level Design]]
 
[[Category:Glossary]]
[[Category:Official Source Tools]]
[[Category:Source 1 BSP compilers]]

Latest revision as of 13:54, 5 September 2025

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

VBSPVVISVRADBSPZIP

VBSP VBSP is the tool that compiles a raw VMF file into Source 1's BSP format. It is generally followed by VVIS and VRAD.

VBSP will:

While the resulting BSP file can be played directly it has no visibility control (poor performance) and no lighting.

Icon-Bug.pngBug:In non-Left 4 Dead engine branch Left 4 Dead engine branch games, MDL files that have the IDST1 header will fail to load for VBSP, see VRAD's bugs.  [todo tested in ?]
Icon-Bug.pngBug:In Source 2013 Source 2013 and possibly other engine branches, smoothing groups are not properly written for func_detail brush faces. This is fixed in the Slammin' Source Map Tools Slammin' VBSP, Garry's Mod Garry's Mod's VBSP, Mapbase Mapbase' VBSP and VBSP++. The code for this fix can be found in pull request 391 on GitHub.  (tested in: Source 2013)
Icon-Bug.pngBug:Vanilla VBSP doesn't recognize custom lightmapped shaders, and thus it won't allow VRAD to generate lightmaps for them. This is fixed in third party forks such as Slammin' Source Map Tools Slammin' VBSP, Mapbase Mapbase's and VBSP++  (tested in: Source 2013)

Launch options

Syntax

<vbsp.exe path> [options] <VMF File>

For example:

"Half-Life 2\bin\vbsp.exe" -onlyents sdk_trainstation_01

This will re-embed the entity block without affecting the world.

Common options

Note.pngNote:-onlyents and -keepstalezip will mark the map as stale by embedding the file stale.txt into the BSP. Loading stale maps in the engine will cause a "This map is not final!!" warning message in the console.
-v
-verbose
Turn on verbose output (also shows more command-line options if used without any other parameters).
-onlyents
Only import the entities from the VMF. Brushes and internal entities are not modified. Brush Entities' boundaries will not be modified, however, their Keyvalues will be. Conserves existing lighting and vis data.
-onlyprops
Only update static and detail props (i.e. the internal entities). Does not generate a .prt file, making VVIS fail!
-glview
Writes glview data to the VMF's directory. -tmpout will cause the files will be written to \tmp instead.
-nodetail
Removes func_detail brushes. The geometry left over is what affects visibility.
-nowater
Get rid of water brushes.
Confirm:Does this affect CONTENTS_SLIME, or only CONTENTS_WATER?
-low
Run as an idle-priority process.
-vproject <directory>
Override the VPROJECT environment variable.
-game <directory>
Specify the folder of the gameinfo.txt file.
-insert_search_path <directory>
Includes an extra base directory for mounting additional content (like Gameinfo.txt entries). Useful if you want to separate some assets from the mod for whatever reason.
-embed <directory> (in all games since Source 2013 Multiplayer)
Embed the contents of <directory> in the pakfile lump.
-instancepath <directory> (only in Portal 2: Community Edition)
Overrides InstancePath key in gameinfo.

Advanced options

-autoviscluster <integer> (in all games since Counter-Strike: Global Offensive)
Todo: Used on dz_sirocco, found in scripts/mapautocompile.txt.
-novconfig
Don't bring up graphical UI on vproject errors.
-threads <integer>
Control the number of threads vbsp uses (defaults to the # of processors/cores (times 2 for Hypertheading/SMT CPU's) on your machine).
-verboseentities
If verbose is enabled, this disables verbose output for submodels.
-noweld
Don't join face vertexes together.
-nocsg
Don't chop out intersecting brush areas.
-noshare
Emit unique face edges instead of sharing them.
-notjunc
Don't fixup any t-junctions.
-allowdetailcracks
Don't fixup t-junctions on func_detail.
-nodrawtriggers
Compiles all triggers as if they were using Nodraw texture. Only affects triggers using a texture with %CompileTrigger.
-noopt
By default, vbsp removes the 'outer shell' of the map, which are all the faces you can't see because you can never get outside the map. -noopt disables this behavior.
-noprune
Don't prune neighboring solid nodes.
-nomerge
Don't merge together chopped faces on nodes.
-nomergewater
Don't merge together chopped faces on water.
-nosubdiv
Don't subdivide faces for lightmapping.
-micro <float>
Warn when brushes are output with a volume less than this number (default: 1.0).
-fulldetail
Mark all detail geometry as normal geometry (so all detail geometry will affect visibility).
-alldetail  (only in Alien Swarm Dota 2 Alien Swarm: Reactive Drop)
Convert all structural brushes to detail brushes, except func_brush entities whose names begin with structure_.
-leaktest  (not in Mapbase)
Stop processing the map if a leak is detected. Regardless of whether or not this flag is set, a leak file will be written out at <vmf filename>.lin, and it can be imported into Hammer Hammer.
-noleaktest  (only in Slammin' Source Map Tools Mapbase)
Disables leaktest, as it is enabled by default.
-bumpall
Force all surfaces to be treated as if they were bumpmaped (generating four lightmaps for the surface instead of one), regardless of if they actually are.
-snapaxial
Snap axial planes to integer coordinates.
-block <vector2>
Control the grid size mins that vbsp chops the level on.
Icon-Bug.pngBug:Causes VBSP to fail completely.  [todo tested in ?]
-blocks <vector4>
Enter the mins and maxs for the grid size vbsp uses.
-blocksize <integer> (in all games since Counter-Strike: Global Offensive)(also in Slammin' Source Map Tools)(also in Garry's Mod)
Control the size of each grid square that vbsp chops the level on. Default is 1024.
-dumpstaticprops
Dump static props to staticprop*.txt.
-dumpcollide
Write files with collision info.
-forceskyvis
Enable vis calculations in 3D Skybox leaves.
Tip.pngTip:Use this if the 3D skybox room can be accessed without noclip.
-luxelscale <float>
Scale all lightmaps by this amount (default: 1.0).
-minluxelscale <float>
Lets you limit the minimum luxel scale in your map.
-maxluxelscale  (only in Slammin' Source Map Tools)
Lets you limit the maximum luxel scale in your map.
-lightifmissing
Force lightmaps to be generated for all surfaces even if they don't need lightmaps.
-localphysx
Todo: Currently unknown.
-keepstalezip
Keep the BSP's zip files intact but regenerate everything else.
-visgranularity <vector3> (in all games since Counter-Strike: Global Offensive)(also in Slammin' Source Map Tools)
Force visibility splits # of units along X, Y, Z.
-replacematerials
Substitute materials according to 🖿cfg/materialsub.cfg.
-FullMinidumps
Write large minidumps on crash.
-novirtualmesh
Fix physics entities falling through displacements in older versions of Source at cost of bigger BSP size.
-xbox
Treat %CompileTrigger surfaces as nodraw, and treat %CompileWater surfaces as having %CompileNoLight (but not %CompileSlime). Implies -nodrawtriggers.
-nodefaultcubemap  (only in Slammin' Source Map Tools)
Disables automatic skybox cubemap generation.
-defaultcubemap  (only in Mapbase)
By default in Mapbase "dummy" cubemaps are not generated during map compilation but can be forced to generate again by this parameter.
-allowdynamicpropsasstatic  (only in Garry's Mod)
Allow all models with the 'static' flag in the model viewer to be used on prop_static, even when their propdata doesn't contain 'allowstatic'.
Warning.pngWarning:This will compile dynamic models with animation to Static too, which may causes visual glitches

Static Prop Combine

(in all games since Counter-Strike: Global Offensive)

-StaticPropCombine
Merges static props together according to the rules defined in scripts/hammer/spcombinerules/spcombinerules.txt. This lowers the number of draw calls, increasing performance. It can also be used to lower the number of static props present in a map. See Static Prop Combine.
-StaticPropCombine_AutoCombine
Automatically generate static prop combine rules for props that VBSP deems should be combined.
Note.pngNote:This does not write to spcombinerules.txt.
-StaticPropCombine_ConsiderVis
Instead of using the distance limit, combine all props in the group that share visclusters.
-StaticPropCombine_SuggestRules
Lists models sharing the same material that should be added to spcombinerules.txt.
-StaticPropCombine_MinInstances <integer>
Set the minimum number of props in a combine group required to create a combined prop.
Tip.pngTip:Valve had this set to 3 for the new Dust 2.
-StaticPropCombine_PrintCombineRules
Confirm:Prints the combine rules? Hasn't been working for me.
-StaticPropCombine_ColorInstances
Confirm:Does this color the instances?
-KeepSources
Don't delete the autogenerated QCs and unpacked model files after finishing.
-CombineIgnore_FastReflection
Combine props, even if they have differing Render in Fast Reflections settings.
-CombineIgnore_Normals
Combine props, even if they have differing Ignore Normals settings.
-CombineIgnore_NoShadow
Combine props, even if they have differing Disable Shadows settings.
-CombineIgnore_NoVertexLighting
Combine props, even if they have differing Disable Vertex lighting settings.
-CombineIgnore_NoFlashlight
Combine props, even if they have differing Disable flashlight settings.
-CombineIgnore_NoSelfShadowing
Combine props, even if they have differing Disable Self-Shadowing settings.
-CombineIgnore_DisableShadowDepth
Combine props, even if they have differing Disable ShadowDepth settings.

Nonfunctional Options

-linuxdata
Force it to write physics data for linux multiplayer servers. (It will automatically write this data if it finds certain entities like info_player_terrorist, info_player_deathmatch, info_player_teamspawn, info_player_axis, or info_player_coop.)
Obsolete-notext.pngDeprecated:(removed since Source 2007) All modern branches of Source use the same physics data on all platforms.
-nolinuxdata
Force it to not write physics data for linux multiplayer servers, even if there are multiplayer entities in the map.
-virtualdispphysics
Use virtual (not precomputed) displacement collision models

Commented-out options

The following options have been commented out with #if 0 in the VBSP source code, but still function if VBSP is recompiled with these uncommented.

Both options are restored in VBSP++.

-maxlightmapdim <float>
Default 32. Set the maximum size a brush face's lightmap can be. VBSP will subdivide faces each time a brush face exceeds one minus this many luxels. Displacements do not get subdivided, but are still limited to this minus one times four.
Warning.pngWarning:Going above the default of 32 will result in the lightmap not loading in engine versions other than Military Conflict: VietnamStrata Source.
-defaultluxelsize <float>
Default 16. Set the default luxel scale that is used if a brush face's lightmapscale is set to 0 or is missing.
Icon-Important.pngImportant:Editing the face attributes of a face with a luxel scale of zero in Hammer or Hammer++ will result in the luxel scale being rounded up to 1!

Console output

Todo: Add descriptions for other VBSP outputs (WriteBSP, PruneNodes, ProcessBlock_Thread, etc).

VBSP prints various information about the compile process to the console. Note that output from older versions of the tool can be different.

Patching WVT material: material path to patched WVT material
The map contains WorldVertexTransition materials that are being used on non-displacement faces. VBSP patches these materials to use a different material shader (such as LightmappedGeneric) so that they properly render on these map faces.
FixTjuncs...
T-junctions are created when func_detail brushes touch world geometry. To avoid visual cracks or seams, VBSP fixes up these T-junctions.
Placing detail props : 0...1...2...3...4...5...6...7...8...9...10
Detail props are being placed in the map.

See also