VBSP: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (added -instancepath, only in P2CE)
No edit summary
Line 1: Line 1:
{{lang|VBSP|title=VBSP}}
{{lang|VBSP}}


{{toc-right}}
{{toc-right}}


'''VBSP''' is the tool that compiles a raw [[VMF]] file into the [[Binary Space Partition]] format. It is generally followed by [[VVIS]] and [[VRAD]].
'''VBSP''' is the tool that compiles a raw [[Valve Map Format|VMF]] file into the [[BSP|Binary Space Partition]] format. It is generally followed by [[VVIS]] and [[VRAD]].


VBSP will:
VBSP will:
* Convert [[brush]]es to polygons
* Convert [[brush]]es to polygons
* Generate [[visleaf|visleaves]]
* Generate [[visleaf|visleaves]]
* Generate [[detail props]]
* Generate [[detail props]]
* Swallow most [[internal entity|internal entities]] into [[the world]]
* 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]]
* Replace [[$envmap|specular materials]] with [[patch]]ed versions that link to the nearest [[env_cubemap|cubemap]]
* Embed the [[entity block]]
* Embed the [[entity block]]
* {{csgo}} Merge groups of [[prop_static|static props]] sharing the same [[VMT|material]]
* Merge groups of [[prop_static|static props]] sharing the same [[material]] {{csgo|only}}


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


{{bug|In non-L4D branch games, <code>.mdl</code> files that have the <code>IDST1</code> header will fail to load for VBSP, see [[VRAD]]'s bugs.}}
{{bug|In non-{{l4dbranch|3}} games, <code>.[[MDL|mdl]]</code> files that have the <code>IDST1</code> header will fail to load for VBSP, see [[VRAD]]'s bugs.}}
 
== Launch options ==
=== Syntax ===


  vbsp [options...] vmf_file
==Launch options==
===Syntax===
  <vbsp.exe path> [options] <VMF File>


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


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


=== Common options ===
===Common options===
 
{{note|<code>-onlyents</code> and <code>-keepstalezip</code> 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.}}
{{Note|<code>-onlyents</code> and <code>-keepstalezip</code> 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.}}
{{def|code=1|-v}} {{def|code=1|-verbose}} Turn on verbose output (also shows more [[Command Line Options|command-line options]]). Use without any other parameters.
 
{{def|code=1|-onlyents}} Only import the [[Entity|entities]] from the VMF. Brushes and internal entities are not modified. Conserves existing lighting data.
; <code>-v</code>
{{def|code=1|-onlyprops}} Only update static and detail props (i.e. the internal entities). Does not generate a .prt file, making VVIS fail!
; <code>-verbose</code>
{{def|code=1|-glview}} Writes [[glview]] data to the VMF's directory. <code>-tmpout</code> will cause the files will be written to <code>\tmp</code> instead.
: Turn on verbose output (also shows more command-line options). Use without any other parameters.
{{def|code=1|-nodetail}} Removes [[func_detail]] brushes. The geometry left over is what affects visibility.
; <code>-onlyents</code>
{{def|code=1|-nowater}} Get rid of water brushes.
: Only import the entities from the VMF. Brushes and internal entities are not modified. Conserves existing lighting data.
{{def|code=1|-low}} Run as an idle-priority process.
; <code>-onlyprops</code>
{{def|code=1|-vproject <directory>}} Override the [[Game Directory|VPROJECT]] environment variable.
: Only update static and detail props (i.e. the internal entities). Does not generate a .prt file, making VVIS fail!
{{def|code=1|-game <directory>}} Specify the folder of the <code>gameinfo.txt</code> file.
; <code>-glview</code>
{{def|code=1|-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.
: Writes [[glview]] data to the VMF's directory. <code>-tmpout</code> will cause the files will be written to <code>\tmp</code> instead.
{{def|code=1|-embed <directory>}} Embed the contents of <directory> in the packfile. {{confirm|Which game introduced/removed this option, if any at all? Not present in any current games.}}
; <code>-nodetail</code>
{{def|code=1|-instancepath <directory>|add={{p2ce|only}}}} Overrides InstancePath key in gameinfo.
: Removes [[func_detail]] brushes. The geometry left over is what affects visibility.
; <code>-nowater</code>
: Get rid of water brushes.
; <code>-low</code>
: Run as an idle-priority process.
; <code>-vproject <directory></code>
: Override the [[VPROJECT]] environment variable.
; <code>-game <directory></code>
: Specify the folder of the <code>gameinfo.txt</code> file
; <code>-insert_search_path <directory></code>
: 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.
; <code>-embed <directory></code>
: Embed the contents of <directory> in the packfile
: {{Confirm|Which game introduced/removed this option, if any at all? Not present in any current games.}}
{{IO|-instancepath|param=directory|Overrides InstancePath key in gameinfo.|only={{P2CE}}}}
 
=== Advanced options ===
{{ColumnBox|count=1|
; <code>-autoviscluster #</code> {{since|{{csgo}}}}
: {{todo|Used on dz_sirocco, found in <code>scripts/mapautocompile.txt</code>}}
; <code>-novconfig</code>
: Don't bring up graphical UI on vproject errors.
; <code>-threads</code>
: Control the number of threads vbsp uses (defaults to the # of processors (times 2 for Hypertreading/SMT CPU's) on your machine).
; <code>-verboseentities</code>
: If -v is on, this disables verbose output for submodels.
; <code>-noweld</code>
: Don't join face vertexes together.
; <code>-nocsg</code>
: Don't chop out intersecting brush areas.
; <code>-noshare</code>
: Emit unique face edges instead of sharing them.
; <code>-notjunc</code>
: Don't fixup any t-junctions.
; <code>-allowdetailcracks</code>
: Don't fixup t-junctions on func_detail.
; <code>-nodrawtriggers</code>
: Compiles all triggers as if they were using Nodraw texture, only affects triggers using a texture with [[%CompileTrigger]].
; <code>-noopt</code>
: 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.
; <code>-noprune</code>
: Don't prune neighboring solid nodes.
; <code>-nomerge</code>
: Don't merge together chopped faces on nodes.
; <code>-nomergewater</code>
: Don't merge together chopped faces on water.
; <code>-nosubdiv</code>
: Don't subdivide faces for lightmapping.
; <code>-micro <#></code>
: vbsp will warn when brushes are output with a volume less than this number (default: 1.0).
; <code>-fulldetail</code>
: Mark all detail geometry as normal geometry (so all detail geometry will affect visibility).
; <code>-leaktest</code>
: 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.
; <code>-bumpall</code>
: Force all surfaces to be bump mapped.
; <code>-snapaxial</code>
: Snap axial planes to integer coordinates.
; <code>-block # #</code>
: Control the grid size mins that vbsp chops the level on.
{{bug|Causes VBSP to fail completely.}}
; <code>-blocks # # # #</code>
: Enter the mins and maxs for the grid size vbsp uses.
; <code>-blocksize #</code> {{since|{{csgo}}}}
: Control the size of each grid square that vbsp chops the level on.  Default is 1024.
; <code>-dumpstaticprops</code>
: Dump static props to staticprop*.txt
; <code>-dumpcollide</code>
: Write files with collision info.
; <code>-forceskyvis</code>
: Enable vis calculations in [[3D Skybox]] leaves.
; <code>-luxelscale #</code>
: Scale all lightmaps by this amount (default: 1.0).
; <code>-lightifmissing</code>
: Force lightmaps to be generated for all surfaces even if they don't need lightmaps.
; <code>-localphysx</code>
: {{todo|Currently unknown.}}
; <code>-keepstalezip</code>
: Keep the BSP's zip files intact but regenerate everything else.
; <code>-visgranularity # # #</code> {{since|{{csgo}}}}
: Force visibility splits # of units along X, Y, Z
; <code>-replacematerials</code>
: Substitute materials according to materialsub.txt in content\maps
; <code>-FullMinidumps</code>
: Write large minidumps on crash.
; <code>-novirtualmesh</code>
: Fix Physics [[Entities fall through displacements]] at cost of bigger bsp size
; <code>-allowdynamicpropsasstatic</code> {{only|{{gmod}}}}
: 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'.
}}
 


=== Static Prop Combine {{since|{{csgo}}}} ===
===Advanced options===
{{ColumnBox|count=1|
{{def|code=1|-autoviscluster #|add={{csgo|since}}}} {{todo|Used on dz_sirocco, found in <code>scripts/mapautocompile.txt</code>.}}
; <code>-StaticPropCombine</code>
{{def|code=1|-novconfig}} Don't bring up graphical UI on vproject errors.
: 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]].
{{def|code=1|-threads}} Control the number of threads vbsp uses (defaults to the # of processors (times 2 for Hypertreading/SMT CPU's) on your machine).
; <code>-StaticPropCombine_AutoCombine</code>
{{def|code=1|-verboseentities}} If -v is on, this disables verbose output for submodels.
: Automatically generate static prop combine rules for props that VBSP deems should be combined. {{Note|This does not write to <code>spcombinerules.txt.</code>}}
{{def|code=1|-noweld}} Don't join face vertexes together.
; <code>-StaticPropCombine_ConsiderVis</code>
{{def|code=1|-nocsg}} Don't chop out intersecting brush areas.
: Instead of using the distance limit, combine all props in the group that share visclusters.
{{def|code=1|-noshare}} Emit unique face edges instead of sharing them.
; <code>-StaticPropCombine_SuggestRules</code>
{{def|code=1|-notjunc}} Don't fixup any t-junctions.
: Lists models sharing the same material that should be added to <code>spcombinerules.txt</code>.
{{def|code=1|-allowdetailcracks}} Don't fixup t-junctions on {{ent|func_detail}}.
; <code>-StaticPropCombine_MinInstances <[[int]]></code>
{{def|code=1|-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]].
: Set the minimum number of props in a combine group required to create a combined prop.  
{{def|code=1|-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.
: {{Tip|Valve had this set to 3 for the new Dust 2.}}
{{def|code=1|-noprune}} Don't prune neighboring solid nodes.
; <code>-StaticPropCombine_PrintCombineRules</code>
{{def|code=1|-nomerge}} Don't merge together chopped faces on nodes.
: {{Confirm|Prints the combine rules? Hasn't been working for me.}}
{{def|code=1|-nomergewater}} Don't merge together chopped faces on water.
; <code>-StaticPropCombine_ColorInstances</code>
{{def|code=1|-nosubdiv}} Don't subdivide faces for lightmapping.
: {{Confirm|Does this color the instances?}}
{{def|code=1|-micro|type=float}} vbsp will warn when brushes are output with a volume less than this number (default: 1.0).
; <code>-KeepSources</code>
{{def|code=1|-fulldetail}} Mark all detail geometry as normal geometry (so all detail geometry will affect visibility).
: Don't delete the autogenerated QCs and unpacked model files after finishing.
{{def|code=1|-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|4}}.
; <code>-CombineIgnore_FastReflection</code>
{{def|code=1|-bumpall}} Force all surfaces to be bump mapped.
: Combine props, even if they have differing '''Render in Fast Reflections''' settings.
{{def|code=1|-snapaxial}} Snap axial planes to integer coordinates.
; <code>-CombineIgnore_Normals</code>
{{def|code=1|-block # #}} Control the grid size mins that vbsp chops the level on. {{bug|Causes VBSP to fail completely.}}
: Combine props, even if they have differing '''Ignore Normals''' settings.
{{def|code=1|-blocks # # # #}} Enter the mins and maxs for the grid size vbsp uses.
; <code>-CombineIgnore_NoShadow</code>
{{def|code=1|-blocksize|typel=integer|type=int|add={{csgo|since}}}} Control the size of each grid square that vbsp chops the level on. Default is 1024.
: Combine props, even if they have differing '''Disable Shadows''' settings.
{{def|code=1|-dumpstaticprops}} Dump static props to staticprop*.txt.
; <code>-CombineIgnore_NoVertexLighting</code>
{{def|code=1|-dumpcollide}} Write files with collision info.
: Combine props, even if they have differing '''Disable Vertex lighting''' settings.
{{def|code=1|-forceskyvis}} Enable vis calculations in [[3D Skybox]] leaves.
; <code>-CombineIgnore_NoFlashlight</code>
{{def|code=1|-luxelscale|type=float}} Scale all lightmaps by this amount (default: 1.0).
: Combine props, even if they have differing '''Disable flashlight''' settings.
{{def|code=1|-lightifmissing}} Force lightmaps to be generated for all surfaces even if they don't need lightmaps.
; <code>-CombineIgnore_NoSelfShadowing</code>
{{def|code=1|-localphysx}} {{todo|Currently unknown.}}
: Combine props, even if they have differing '''Disable Self-Shadowing''' settings.
{{def|code=1|-keepstalezip}} Keep the BSP's zip files intact but regenerate everything else.
; <code>-CombineIgnore_DisableShadowDepth</code>
{{def|code=1|-visgranularity # # #|add={{csgo|since}}}} Force visibility splits # of units along X, Y, Z.
: Combine props, even if they have differing '''Disable ShadowDepth''' settings.
{{def|code=1|-replacematerials}} Substitute materials according to materialsub.txt in content\maps.
}}
{{def|code=1|-FullMinidumps}} Write large minidumps on crash.
{{def|code=1|-novirtualmesh}} Fix Physics [[entities fall through displacements]] at cost of bigger bsp size.
{{def|code=1|-allowdynamicpropsasstatic|add={{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'.


===Static Prop Combine===
{{csgo|since}}
{{def|code=1|-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]].
{{def|code=1|-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>.}}
{{def|code=1|-StaticPropCombine_ConsiderVis}} Instead of using the distance limit, combine all props in the group that share visclusters.
{{def|code=1|-StaticPropCombine_SuggestRules}} Lists models sharing the same material that should be added to <code>spcombinerules.txt</code>.
{{def|code=1|-StaticPropCombine_MinInstances|typel=Integer|type=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.}}
{{def|code=1|-StaticPropCombine_PrintCombineRules}} {{confirm|Prints the combine rules? Hasn't been working for me.}}
{{def|code=1|-StaticPropCombine_ColorInstances}} {{confirm|Does this color the instances?}}
{{def|code=1|-KeepSources}} Don't delete the autogenerated QCs and unpacked model files after finishing.
{{def|code=1|-CombineIgnore_FastReflection}} Combine props, even if they have differing '''Render in Fast Reflections''' settings.
{{def|code=1|-CombineIgnore_Normals}} Combine props, even if they have differing '''Ignore Normals''' settings.
{{def|code=1|-CombineIgnore_NoShadow}} Combine props, even if they have differing '''Disable Shadows''' settings.
{{def|code=1|-CombineIgnore_NoVertexLighting}} Combine props, even if they have differing '''Disable Vertex lighting''' settings.
{{def|code=1|-CombineIgnore_NoFlashlight}} Combine props, even if they have differing '''Disable flashlight''' settings.
{{def|code=1|-CombineIgnore_NoSelfShadowing}} Combine props, even if they have differing '''Disable Self-Shadowing''' settings.
{{def|code=1|-CombineIgnore_DisableShadowDepth}} Combine props, even if they have differing '''Disable ShadowDepth''' settings.


=== Nonfunctional Options ===
===Nonfunctional Options===
; <code>-linuxdata</code>
{{def|code=1|-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.)
: 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. )
{{def|code=1|-nolinuxdata}} Force it to not write physics data for linux multiplayer servers, even if there are multiplayer entities in the map.
; <code>-nolinuxdata</code>
{{def|code=1|-virtualdispphysics}} Use virtual (not precomputed) displacement collision models
: Force it to not write physics data for linux multiplayer servers, even if there are multiplayer entities in the map.
{{def|code=1|-xbox}} Enable mandatory Xbox 1 optimisation.
; <code>-virtualdispphysics</code>
: Use virtual (not precomputed) displacement collision models
; <code>-xbox</code>
: Enable mandatory Xbox 1 optimisation.


== Console output ==
==Console output==
{{todo|Add description about every output (WriteBSP, other)}}
{{todo|Add description about every output (WriteBSP, other).}}


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


{{SDKTools}}
{{sdktools}}


[[Category:Level Design]]
[[Category:Level Design]]

Revision as of 04:15, 28 July 2022

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

VBSP is the tool that compiles a raw VMF file into the Binary Space Partition 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 games, .mdl files that have the IDST1 header will fail to load for VBSP, see VRAD's bugs.  [todo tested in ?]

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). Use without any other parameters.
-onlyents
Only import the entities from the VMF. Brushes and internal entities are not modified. Conserves existing lighting 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.
-low
Run as an idle-priority process.
<kbd id="-vproject <directory>" style=padding
0>-vproject <directory>
Override the VPROJECT environment variable.
<kbd id="-game <directory>" style=padding
0>-game <directory>
Specify the folder of the gameinfo.txt file.
<kbd id="-insert_search_path <directory>" style=padding
0>-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.
<kbd id="-embed <directory>" style=padding
0>-embed <directory>
Embed the contents of <directory> in the packfile.
Confirm:Which game introduced/removed this option, if any at all? Not present in any current games.
<kbd id="-instancepath <directory>" style=padding
0>-instancepath <directory> (only in Portal 2: Community Edition)
Overrides InstancePath key in gameinfo.

Advanced options

-autoviscluster # (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
Control the number of threads vbsp uses (defaults to the # of processors (times 2 for Hypertreading/SMT CPU's) on your machine).
-verboseentities
If -v is on, 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>
vbsp will 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).
-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 Hammer.
-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.
Icon-Bug.pngBug:Causes VBSP to fail completely.  [todo tested in ?]
-blocks # # # #
Enter the mins and maxs for the grid size vbsp uses.
-blocksize<int> (in all games since Counter-Strike: Global Offensive)
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.
-luxelscale<float>
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.
-localphysx
Todo: Currently unknown.
-keepstalezip
Keep the BSP's zip files intact but regenerate everything else.
-visgranularity # # # (in all games since Counter-Strike: Global Offensive)
Force visibility splits # of units along X, Y, Z.
-replacematerials
Substitute materials according to materialsub.txt in content\maps.
-FullMinidumps
Write large minidumps on crash.
-novirtualmesh
Fix Physics entities fall through displacements at cost of bigger bsp size.
-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'.

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<int>
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.)
-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
-xbox
Enable mandatory Xbox 1 optimisation.

Console output

Todo: Add description about every output (WriteBSP, other).

See also