AutoBSPpackingTool: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (temporary fix for Dropbox link)
(update 18.0.0)
Line 16: Line 16:
| distribution = Freeware
| distribution = Freeware
| websites =
| websites =
| download = [https://www.dropbox.com/scl/fi/osdnn6bzcaqprghy3ssep/AutoBSPpackingTool_LATEST.exe?rlkey=fzlme4urd0v9nust04wfvikdq&st=do2y6eqd&dl=0 Dropbox]
| download = {{github|drinklc/AutoBSPpackingTool/releases|GitHub}}


<!-- Operating system(s)-->
<!-- Operating system(s)-->
Line 30: Line 30:
| enginesstyle = 1
| enginesstyle = 1


| version = 17.0.0
| version = 18.0.0
}}
}}
{{autobspp|4}} is a third party tool made for {{Src|4}} developers and mappers. It automatically detects and packs almost every possible custom asset that can be used in a [[BSP|map]].
{{autobspp|4}} is a third party tool made for {{Src|4}} developers and mappers. It automatically detects and packs almost every possible custom asset that can be used in a [[BSP|map]].
{{Note|The program requires Microsoft {{net|4}} 4.0 or higher.}}
{{Note|The program requires Microsoft {{net|4}} 4.0 or higher.}}
{{Note|The program uses [[VPK#Windows|vpk.exe]] and [[BSPZIP|bspzip.exe]], so you must have the SDK tools installed and the game itself you want to pack files for.}}
{{Tip|It will be better if you pack your custom content referenced in scripts by yourself, because there are a lot of situations in which it's impossible to detect custom assets used in scripts without running the engine.}}
{{Tip|It will be better if you pack your custom content referenced in scripts by yourself, because there are a lot of situations in which it's impossible to detect custom content used in scripts without running the engine.}}
{{Important|You should put the program in an individual folder, because it will create a cache folder and a folder to store game configurations in the directory the .exe file is in.}}
{{Important|You should put the program in an individual folder, because it will create a cache folder and a folder to store game configurations in the directory the .exe file is in.}}


Line 85: Line 84:


== Features ==
== Features ==
* Detects materials, textures, models, sounds ([[.wav]], [[.mp3]], [[.ogg]]), [[Skybox_(2D)|skybox]] materials, [[Detail props|detail files]], [[color correction|color correction profiles]], [[PCF_File_Format|particles]].
* Detects materials, textures, models, sounds ([[.wav]], [[MP3|.mp3]], {{wiki|Ogg|.ogg|icon=0}}, {{wiki|FLAC|.flac|icon=0}}), [[Skybox_(2D)|skybox]] materials, [[Detail props|detail files]], [[color correction|color correction profiles]], [[PCF_File_Format|particles]], etc.
* Detects materials and textures used in models (including [[Multiple Skins for a Single Model|skins]]), also detects [[$includemodel]] parameter and [[Creating custom gibs|gibs]].
* Detects materials and textures used in models (including [[Multiple Skins for a Single Model|skins]]), also detects [[$includemodel]] parameter and [[Creating custom gibs|gibs]].
* Recognizes [[patch]] materials.
* Recognizes [[patch]] materials.
* Detects [[.nav]] ([[Nav Mesh|navigation mesh]]), [[.ain]] ({{ent|info_node}}), .txt ([[Mapname.txt|map description]]), .txt ([[soundscape]]), .txt ([[soundscripts|soundscript]]), .cache ([[soundcache]]), .txt ([[Counter-Strike: Global Offensive/Game Modes/Retakes#Adding_Retakes_Support_to_a_Bomb_Scenario_Map|retake bombplants]]), .txt ([[CS:GO Spectator Tools#Spectator Cameras|camera positions]]), .txt (map story), .txt ([[Commentary System#The_Commentary_File|map commentary]]), .txt ([[Particles_manifest.txt|particles manifests]]), .txt ([[Creating_a_working_mini-map#Intro_and_Basics|radar information]]), .dds ([[Creating_a_working_mini-map#Intro_and_Basics|radar images]]), .svg (map icon), .png (map background), .kv ([[Choosing Player Models|player models]]), [[KeyValues3|.kv3]] ([[CS:GO Bot Behavior Trees|bots behaviour]]), .png ([[Counter-Strike: Global Offensive/Game Modes/Danger Zone#Map_Overviews|dz spawn mask]]), .png ([[CS:GO Game Modes/Danger Zone#Map_Overviews|dz deployment map]]), .vtf ([[Counter-Strike: Global Offensive/Game Modes/Danger Zone#Map_Overviews|dz tablet map]]).
* Detects [[.nav]] ([[Nav Mesh|navigation mesh]]), [[.ain]] ({{ent|info_node}}), .txt ([[Mapname.txt|map description]]), .txt ([[soundscape]]), .txt ([[soundscripts|soundscript]]), .cache ([[soundcache]]), .txt ([[Counter-Strike: Global Offensive/Game Modes/Retakes#Adding_Retakes_Support_to_a_Bomb_Scenario_Map|retake bombplants]]), .txt ([[CS:GO Spectator Tools#Spectator Cameras|camera positions]]), .txt (map story), .txt ([[Commentary System#The_Commentary_File|map commentary]]), .txt ([[Particles_manifest.txt|particles manifests]]), .txt ([[Creating_a_working_mini-map#Intro_and_Basics|radar information]]), .dds ([[Creating_a_working_mini-map#Intro_and_Basics|radar images]]), .svg (map icon), .png (map background), .kv ([[Choosing Player Models|player models]]), [[KeyValues3|.kv3]] ([[CS:GO Bot Behavior Trees|bots behaviour]]), .png ([[Counter-Strike: Global Offensive/Game Modes/Danger Zone#Map_Overviews|dz spawn mask]]), .png ([[CS:GO Game Modes/Danger Zone#Map_Overviews|dz deployment map]]), .vtf ([[Counter-Strike: Global Offensive/Game Modes/Danger Zone#Map_Overviews|dz tablet map]]).
* Detects sounds referenced in [[soundscape]] and [[soundscript]] files.
* Detects sounds referenced in [[soundscape]] and [[soundscript]] files.
* Detects scripts ([[.nut]] and [[.cfg]]).
* Detects [[.nut|scripts]] and [[.cfg|configs]].
* Detects models, sounds, bots behaviour files and other scripts inside detected scripts '''if and only if they are named with their file extensions''' ([[.mdl]], [[.wav]], [[.mp3]], [[.ogg]], [[.kv3]], [[.nut]], [[.cfg]]).
* Detects models, sounds, bots behaviour files and other scripts and configs inside detected scripts '''if and only if they are named with their file extensions''' ([[.mdl]], [[.wav]], [[MP3|.mp3]], {{wiki|Ogg|.ogg|icon=0}}, {{wiki|FLAC|.flac|icon=0}}, [[.kv3]], [[.nut]], [[.cfg]]).
{{warning|
{{warning|
* The program does not detect scripts with a space in the path ''(so does the logic_script entity in {{hammer|2}})''.
* The program does not detect assets referenced in scripts with a space in the path.
* The program does not detect sounds referenced in scripts with a space in the path.
}}
}}
* Also finds [[.vmf]] files specified in {{ent|func_instance}} entities and packs their data too.
* Also finds [[.vmf]] files specified in {{ent|func_instance}} entities and packs their custom assets too.
* The program reads <code>gameinfo.txt</code> (and <code>mount.cfg</code> for {{gmod|4}}) to get content search paths.
* The program reads <code>gameinfo.txt</code> (and <code>mount.cfg</code> for {{gmod|4}}) to get content search paths.
* The program also reads <code>libraryfolders.vdf</code> to get steam library folders paths.
* The program also reads <code>libraryfolders.vdf</code> to get steam library folders paths.
Line 117: Line 115:




; {{Code|-vmf <path>}}: Set the path to .vmf file.
; {{Code|--vmf <path>}}: Set the path to .vmf file.


; {{Code|-bsp <path>}}: Set the path to .bsp file (if not specified, a file with a list of all detected custom assets will be saved in the ''cache'' folder).
; {{Code|--bsp <path>}}: Set the path to .bsp file (if not specified, a file with a list of all detected custom assets will be saved in the ''cache'' folder).


; {{Code|-game <index {{!}} gamefolder {{!}} path>}}: Select the game to use. Index is a number of the game in the [[#Supported games|supported games list]] starting from 0 (the order of the games in the list may change in the future, so it is better to use the game folder name or the path to it).
; {{Code|--game <index {{!}} gamefolder {{!}} path>}}: Select the game to use. Index is a number of the game in the [[#Supported games|supported games list]] starting from 0 (the order of the games in the list may change in the future, so it is better to use the game folder name or the path to it).


: Also, if the program fails to find your Steam path and if you use the path to the game folder in this argument, then the Steam path will be obtained from it.
: Also, if the program fails to find your Steam path and if you use the path to the game folder in this argument, then the Steam path will be obtained from it.
:: Examples: ''0, 1, csgo, garrysmod, {{Path|C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/}}''
:: Examples: ''0, 1, csgo, garrysmod, {{Path|C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/}}''


; {{Code|-log}}: Create a log file. If this option is enabled and any argument is invalid, a ''cmd_exit_reason.log'' file will be created in the ''cache'' folder.
; {{Code|--log}} (or {{Code|-l}}): Create a log file. If this option is enabled and any argument is invalid, a ''cmd_exit_reason.log'' file will be created in the ''cache'' folder.


; {{Code|-notify}}: Show a notification when packing is finished.
; {{Code|--notify}} (or {{Code|-n}}): Show a notification when packing is finished.


; {{Code|-cachedir <path>}}: Override default ''cache'' folder path ({{Code|preset=1|<the directory .exe file is in>/cache/}}).
; {{Code|--use-native-tools}} (or {{Code|-u}}): Use native (built-in) tools instead of [[VPK#Windows|vpk.exe]] and [[BSPZIP|bspzip.exe]].


; {{Code|-addcfg <path>}}: Add game configuration (configurations located in {{Code|preset=1|<the directory .exe file is in>/game_cfgs/}} will be added automatically).
; {{Code|--addcfg <path>}}: Add game configuration (configurations located in {{Code|preset=1|<the directory .exe file is in>/game_cfgs/}} will be added automatically).


; {{Code|-gameinfo <path>}}: Set the path to the <code>gameinfo.txt</code> file if it isn't stored in the default location or the program fails to find it.
; {{Code|--gameinfo <path>}}: Set the path to the <code>gameinfo.txt</code> file if it isn't stored in the default location or the program fails to find it.


; {{Code|-mountcfg <path>}}: Set the path to the <code>mount.cfg</code> file if it isn't stored in the default location or the program fails to find it {{gmod|only}}.
; {{Code|--mountcfg <path>}}: Set the path to the <code>mount.cfg</code> file if it isn't stored in the default location or the program fails to find it {{gmod|only}}.
 
; {{Code|--cachedir <path>}}: Override default ''cache'' folder path ({{Code|preset=1|<the directory .exe file is in>/cache/}}).
 
; {{Code|--no-backup}} (or {{Code|-b}}): Don't create a backup copy of the [[.bsp]] file.


== Usage with Hammer ==
== Usage with Hammer ==
Line 146: Line 148:
# Set the ''Command'' to the full path of the program .exe file.<br>
# Set the ''Command'' to the full path of the program .exe file.<br>
#: Example: ''{{Path|C:/Users/user/Downloads/AutoBSPpackingTool|exe}}''
#: Example: ''{{Path|C:/Users/user/Downloads/AutoBSPpackingTool|exe}}''
# Set the ''Parameters'' to: {{Code|'''-vmf $path\$file.vmf -bsp $bspdir\$file.bsp -game $gamedir -notify'''}} and add other arguments if you want.<br>
# Set the ''Parameters'' to: {{Code|'''--vmf $path\$file.vmf --bsp $bspdir\$file.bsp --game $gamedir --notify'''}} and add other arguments if you want.<br>
# Done! Now press '''Go!''' and wait until the notification appears.
# Done! Now press '''Go!''' and wait until the notification appears.




{{Note|If you are using {{hpp|4}} with a game that isn't officially supported by it (for example, with {{p2|4}}), you may need to manually set the {{Code|-game}} parameter depending on the game you are using it with, so the complete ''Parameters'' for {{p2|4}} will look like this:<br>
{{Note|If you are using {{hpp|4}} with a game that isn't officially supported by it (for example, with {{p2|4}}), you may need to manually set the {{Code|--game}} parameter depending on the game you are using it with, so the complete ''Parameters'' for {{p2|4}} will look like this:<br>
{{Code|'''-vmf $path\$file.vmf -bsp $bspdir\$file.bsp -game "portal2" -notify'''}}}}
{{Code|'''--vmf $path\$file.vmf --bsp $bspdir\$file.bsp --game "portal2" --notify'''}}}}


== External links ==
== External links ==
=== Downloads ===
=== Downloads ===
* [https://www.dropbox.com/scl/fi/osdnn6bzcaqprghy3ssep/AutoBSPpackingTool_LATEST.exe?rlkey=fzlme4urd0v9nust04wfvikdq&st=do2y6eqd&dl=0 Dropbox mirror]
* {{github|drinklc/AutoBSPpackingTool|GitHub}}
* [https://drive.google.com/file/d/1gvOl2tBoZGTvLw5AYJS1e6dAluBpkPwy/view?usp=share_link Google Drive mirror]
 


=== Communities ===
=== Communities ===
* [https://www.reddit.com/r/hammer/comments/tuczcf/autobsppackingtool_a_magic_tool/ Reddit Thread]
* {{reddit|r/hammer/comments/tuczcf/autobsppackingtool_a_magic_tool|Reddit thread}}


== See also ==
== See also ==

Revision as of 14:24, 17 September 2024

English (en)Русский (ru)中文 (zh)Translate (Translate)
AutoBSPpackingTool
AutoBSPpackingTool interface
Developer(s)
Written in
C#
Operating system
Windows
Type
Third Party Tool
Target engine(s)
Distribution
Freeware
Download
Version
18.0.0

AutoBSPpackingTool AutoBSPpackingTool is a third party tool made for Source Source developers and mappers. It automatically detects and packs almost every possible custom asset that can be used in a map.

Note.pngNote:The program requires Microsoft .NET Framework .NET Framework 4.0 or higher.
Tip.pngTip:It will be better if you pack your custom content referenced in scripts by yourself, because there are a lot of situations in which it's impossible to detect custom assets used in scripts without running the engine.
Icon-Important.pngImportant:You should put the program in an individual folder, because it will create a cache folder and a folder to store game configurations in the directory the .exe file is in.
AutoBSPpackingTool settings
Checkbox Packed file(s), if existent 
.nav (navigation mesh) 🖿/maps/<mapname>.nav
.ain (info_node) 🖿/maps/graphs/<mapname>.ain
.txt (map description) 🖿/maps/<mapname>.txt
.txt (soundscape) 🖿/scripts/soundscapes_<mapname>.txt
.txt (soundscript) 🖿/maps/<mapname>_level_sounds.txt
.cache (soundcache) 🖿/maps/soundcache/<mapname>.cache
.txt (retake bombplants) 🖿/maps/<mapname>_retake.txt
.txt (camera positions) 🖿/maps/<mapname>_cameras.txt
.txt (map story) 🖿/maps/<mapname>_story.txt
.txt (map commentary) 🖿/maps/<mapname>_commentary.txt
.txt (particles manifests) 🖿/particles/particles_manifest.txt
🖿/maps/<mapname>_particles.txt
🖿/particles/<mapname>_manifest.txt
.txt (radar information) 🖿/resource/overviews/<mapname>.txt
.dds (radar images) 🖿/resource/overviews/<mapname>_radar.dds
🖿/resource/overviews/<mapname>_radar_spectate.dds
(and vertical sections)
.svg (map icon) 🖿/materials/panorama/images/map_icons/map_icon_<mapname>.svg
.png (map background) 🖿/materials/panorama/images/map_icons/screenshots/1080p/<mapname>.png
.kv (player models) 🖿/maps/<mapname>.kv
.kv3 (bots behaviour) 🖿/scripts/<any mentioned in scripts or .vmf>.kv3
.png (dz spawn mask) 🖿/maps/<mapname>_spawnmask.png
.png (dz deployment map) 🖿/materials/panorama/images/survival/spawnselect/map_<mapname>.png
.vtf (dz tablet map) 🖿/materials/models/weapons/v_models/tablet/tablet_radar_<mapname>.vtf

Features

Warning.pngWarning:
  • The program does not detect assets referenced in scripts with a space in the path.
  • Also finds .vmf files specified in func_instance entities and packs their custom assets too.
  • The program reads gameinfo.txt (and mount.cfg for Garry's Mod Garry's Mod) to get content search paths.
  • The program also reads libraryfolders.vdf to get steam library folders paths.
  • Can either pack all the found files into .bsp or save a file with a list of all detected custom assets.
  • The program will create a backup copy of the .bsp file (.bsp.backup)
  • The program checks for an update on startup.
  • The program shows a notification when packing is finished.

Supported games

Tip.pngTip:You can create your own game configuration or edit existing ones


Native support:

Options

The program can also be used via the command line interface. Below is a list of arguments that can be passed directly when launching the program.


--vmf <path>
Set the path to .vmf file.
--bsp <path>
Set the path to .bsp file (if not specified, a file with a list of all detected custom assets will be saved in the cache folder).
--game <index | gamefolder | path>
Select the game to use. Index is a number of the game in the supported games list starting from 0 (the order of the games in the list may change in the future, so it is better to use the game folder name or the path to it).
Also, if the program fails to find your Steam path and if you use the path to the game folder in this argument, then the Steam path will be obtained from it.
Examples: 0, 1, csgo, garrysmod, 🖿C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/
--log (or -l)
Create a log file. If this option is enabled and any argument is invalid, a cmd_exit_reason.log file will be created in the cache folder.
--notify (or -n)
Show a notification when packing is finished.
--use-native-tools (or -u)
Use native (built-in) tools instead of vpk.exe and bspzip.exe.
--addcfg <path>
Add game configuration (configurations located in <the directory .exe file is in>/game_cfgs/ will be added automatically).
--gameinfo <path>
Set the path to the gameinfo.txt file if it isn't stored in the default location or the program fails to find it.
--mountcfg <path>
Set the path to the mount.cfg file if it isn't stored in the default location or the program fails to find it (only in Garry's Mod).
--cachedir <path>
Override default cache folder path (<the directory .exe file is in>/cache/).
--no-backup (or -b)
Don't create a backup copy of the .bsp file.

Usage with Hammer

You can add a Hammer configuration to pack all the custom assets right after compile. Follow these steps if you want to.


  1. Add a new compile configuration in the expert compile mode.
  2. Set its name to [AutoBSPpackingTool] - Pack data or whatever you want.
  3. Set the Command to the full path of the program .exe file.
    Example: 🖿C:/Users/user/Downloads/AutoBSPpackingTool.exe
  4. Set the Parameters to: --vmf $path\$file.vmf --bsp $bspdir\$file.bsp --game $gamedir --notify and add other arguments if you want.
  5. Done! Now press Go! and wait until the notification appears.


Note.pngNote:If you are using Hammer++ Hammer++ with a game that isn't officially supported by it (for example, with Portal 2 Portal 2), you may need to manually set the --game parameter depending on the game you are using it with, so the complete Parameters for Portal 2 Portal 2 will look like this:
--vmf $path\$file.vmf --bsp $bspdir\$file.bsp --game "portal2" --notify

External links

Downloads

Communities

See also