From Valve Developer Community
Jump to: navigation, search
English (en)
AutoBSPpackingTool interface
Written in
Operating system
Third Party Tool
Target engine(s)

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.
Note.pngNote:The program uses vpk.exe and bspzip.exe, so you must have the SDK tools installed and the game itself you want to pack files for.
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 content 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
.txt (radar information) πŸ–Ώ/resource/overviews/<mapname>.txt
.dds (radar images) πŸ–Ώ/resource/overviews/<mapname>
(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


  • The program does not detect scripts with a space in the path (so does the logic_script entity in Hammer Hammer).
  • The program does not detect sounds referenced in scripts with a space in the path.
  • Also finds .vmf files specified in func_instance entities and packs their data 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:


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/
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.
Show a notification when packing is finished.
-cachedir <path>
Override default cache folder path (<the directory .exe file is in>/cache/).
-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).

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



See also