Tools++

The compilers we are developing for Mann Versus Zombies

Includes

VBSP++ Higher map limits (brushes, planes, vertexes) and better stability
VVIS++ Orders of magnitude faster performance
VRAD++ Quicker compiles, new lighting features
BSPZIP++ Multi-threaded compression
StudioMDL++ New macro syntax, higher limits, more useful warnings

Download

Last updated: 4 September 2026

Chat about the tools in the official Discord Discord

NOTE: If you intend to redistribute the map compilers in your Source mod,
you must ask me for permission. DM me at @ficool2 on Discord

Installation

The ++ tools are now fully standalone. Extract the contents anywhere you want, such as onto your Desktop.

Then point your apps at the tools:

   Hammer -> Options -> Build Programs -> BSP executable   -> vbsp++
   Hammer -> Options -> Build Programs -> VIS executable   -> vvis++
   Hammer -> Options -> Build Programs -> RAD executable   -> vrad++
   Hammer -> Options -> Build Programs -> MDL executable   -> studiomdl++
   Packing tool (CompilePal, bspzipgui, ...)               -> bspzip++
   Crowbar -> Set Up Games -> Model Compiler               -> studiomdl++

Optionally, add the included "tools_plusplus.fgd" FGD file into Hammer's game configuration
Tools -> Options -> Game Configurations -> click Add beside Game Data files

Supported games:
- Garry's Mod
- All Valve Source 1 games (the ++ compilers will try autodetect BSP settings based on appid in gameinfo.txt)
- Sourcemods on old or new SDK 2013
- Insurgency (requires "-lightmapformat rgbea" in VRAD)

Unsupported games may work by adjusting options such as "-bspformat", "-lightmapformat", "-staticpropformat"

Other tools

Faceposer++

Faceposer++ is a modification of SDK2013 Faceposer with various new features and improvements

Changelog:

- Upgraded to 64-bit process
- Supports LipSinc (IMS) phoneme extraction out-of-the-box
- Upgraded graphics
	- Uses DirectX 9 instead of 8
	- Uses newer Windows UI stylining
	- Antialiasing is enabled
	- Basic material proxies are supported (prevents burn overlays on TF2 characters)
- Improved startup times
- Added MP3 and OGG audio support
- Added support for VPK sounds in phoneme editor
- Added phonemes text file support for MP3/OGG files
- Added reload sounds button in Sound Browser
- Added mouse-based zooming for phoneme editor
- Added shift hotkey scrolling for phoneme editor
- Emotion files from TF2 are now loaded automatically
- Space hotkey now toggles pause in choreo view
- Phoneme editor now zooms in/out faster and uses proportional zooming
- Fixed missing icons (they are embedded in the executable now)
- Fixed stuttery audio playback
- Fixed phoneme editor offset resetting on resize/scroll
- Fixed background color not working
- Fixed crash if speech API did not load successfully
- Fixed crash if a word had no phonemes
- Fixed crash if realigning word with no phonemes
- Fixed crash if pressing flex buttons with no scene
- Fixed crash on shutdown from materials
- Fixed window disappearing from the taskbar on startup
- Fixed active model not changing when switching with Recent Files list
- Fixed model list being loaded in reverse order
- Fixed ground floor not rendering correctly
- Fixed missing materials from the various rendering/control panel modes
- Fixed float precision loss in rendering waveforms at high zoom

Installation:

Place into your game's bin/x64/ folder (where normal hlfaceposer.exe is)
Launch the hlfaceposerplusplus.exe

The only supported games are 64-bit SDK2013-based games, for example:
- Team Fortress 2, Counter-Strike: Source, Day of Defeat: Source, Half-Life 2: Deathmatch
Garry's Mod is NOT supported.

Download (Last updated: 25 June 2026)

VTFEdit++

Upgraded version of VTFEdit Reloaded by misyltoad, Neil 'Jed' Jedrzejewski and Ryan Gregg

Changelog:

- Redesigned, cleaner user interface with Qt, and supports dark theme!
- Implemented .gif animation frame importing
- Added drag and drop importing of textures
- Non-power of two textures can now be created
- VMTs with syntax errors can now be imported successfully
- Default VTF version is now 7.4
- Default indentation in VMT editor is now 4 spaces
- Added document tabs, so multiple textures and materials can be opened at the same time
- Added zooming with mouse scroll wheel, and panning by holding left click
- Added error line highlighting for missing quotes, braces and unquoted vector/matrix values in VMTs
- Added sprite sheet editor for particles, similar to "mksheet" tool. Access it under Resources tab
- Added $distancealpha (signed distance field) generation when importing, under Advanced tab.
	- This also uses a new algorithm that is orders of magnitude faster than VTEX!
- Added Hotspot editor for materials with hotspot data/".rect" files
	- See this page for details
	- Can be accessed under "Texture" tab
- Added EXR/PFM/HDR import and export support
	- This now allows creating RGBA16161616, RGBA16161616F, RGBA32323232F and R32 VTFs
- Added support for importing and exporting DXT1A, ATI1N and ATI2N textures (now works correctly in-game)
- Added support for BC7 and BC6H formats (for mods that use DirectX 11), based on Strata Source spec
- Added support for VTF 7.6 (Strata Source format)
- Added support for aux compression under VTF 7.6
- Added support for NICE filtering in scaling/mipmaps
- Added recognition for PCC (Parallax Cubemap) VTF resource
- Added options to customize font, text size, indentation and color of VMT editor
- Added option to strip alpha channel on import
- Added quick texture flags to import
- Added multiple of 4 resizing when importing (for DXT formats)
- Added ability to change VTF version of existing textures
- Added line numbers to VMT editor
- Implemented single instance
	- Opening multiple VTFs at once will instead open in a singular VTFEdit instance as tabs
	- This behavior can be toggled under "Options"
- Mipmaps are now shown at full size when previewing, can be toggled under View -> Zoom Mipmaps
- Added framerate slider for animated textures
- When batch exporting, all frames, faces and slices are now exported
- Input/output folder when batch converting can now be manually edited
- Color and alpha format list now only list the formats that actually do or don't support alpha
- Alpha format is now automatically dropped from image if the alpha channel is fully blank, e.g. DXT5 -> DXT1
- Increased max texture dimensions to 16384
- Improved texture flag names, all of them can now be ticked
- Imported textures will now have their name automatically set to the original file's name
- sRGB flag is no longer applied on imports
- Re-ordered the color/alpha formats by common usage
- Fixed sluggish VMT editing
- Fixed crash related to VMT editing
- Fixed stray garbage pixel in bottom left when copying image to clipboard
- Removed WAD support
- Removed filters that weren't implemented
- Removed File System tab

Download (Last updated: 23rd August, 2026)

Source Code

Crowbar++

Modified version of Crowbar 0.74 by ZeqMacaw

Changelog:

- Console colors inverted to white-on-black
- More readable console font
- Studiomdl warnings/errors are now highlighted yellow and red respectively

Download (Last updated: 6th August, 2026)

bsp_iidefeat

Tool to recover map textures from the infamous IID nodraw anti-decompile protection on BSPs
Recovers majority of brush textures in the map. A bit of manual cleanup may still be needed.
If you encounter a protected map that does not work with this tool, let me know!

Updated: now supports fully removing "bspProtect" protection by Jakob Sailer. 
Updated: now supports removing crashing/junk entities from "BSP Protection" by SpySpaille
Updated 30th September: supports removing latest version of bspProtect
Updated 1st October: supports recovering hint brushes. Pass -nohint to disable this if it causes issues
Updated 3rd October: added -entrecovery option to recover brush entities and lights from entity-stripped maps
Updated 14th October: fixed bugs with light recovery, corrupt lumps are now skipped

Usage: run from cmd to see help options
Download (Last updated: 14th October, 2025)

check_mdl

Python script to check MDLs for corrupted vertex data
There is an unknown compiler bug where models very rarely have corrupt LOD data
Such corrupt models cause client crashes when decals are applied or users have lower graphics settings
This tool can identify those so they can be recompiled
Originally made to identify problematic props in the Greek Theme Pack for TF2

Usage: install Python, run the script inside a folder of models you want to check
Download (Last updated: 9th March, 2024)

cubemap2hdr

Converts a cubemap in LDR color format to HDR
Particularly useful for Left 4 Dead 2 where LDR cubemaps will look broken

Usage: drag and drop a cubemap onto the exe
Download (Last updated: November 11th, 2024)

tga2skybox

Converts 6 tga files into a cubemap VTF, and automatically creates a LDR and HDR version
Applies correction to the edges to blur seams as well
Useful for fake skyboxes with WindowImposter shader

Usage: run the tool and follow instructions
Download (Last updated: 31st May, 2024)

vtf_downscale

CLI tool to downscale a VTF to a lower mipmap losslessly. Useful to reduce file size without re-compressing the texture
Supports mass-automatic downscaling (for example to only downscale all 2048x2048 or higher textures)

Usage: run from cmd to see help options
Download (Last updated: 15th August, 2024)

vtfstripalpha

CLI tool to remove the alpha channel from VTFs without quality loss. Useful to reduce file size
Supports mass-automatic detection and removal of blank (white) alpha channels
Unfortunately, I lost the source code for this tool...

Usage: run from cmd to see help options
Download (Last updated: 24th August, 2022)

proptexelvtf

Converts a prop_static lightmap (.ppl file extracted from BSP) into VTF

Usage: drag and drop a .ppl onto the exe
Download (Last updated: Jan 11, 2021)

vtf_fix_mip2

Removes LOD settings from VTFs
Was useful to make some TF2 textures appear high-resolution, now obsolete as mat_picmip -10 is allowed again

Usage: put the exe into the desired folder of textures and run
Download (Last updated: 13th April, 2021)

dds_to_vtf

Converts a DDS texture to VTF directly without quality loss (automatically chooses closest matching format)
Mainly made this to easily convert textures from IW engine to Source, not tested on many types of DDS files

Usage: drag and drop a .dds onto the exe
Download (Last updated: 6th March, 2024)

file_to_nut

Converts binary file to Squirrel array

Usage: drag and drop a file
Download (Last updated: 22nd September, 2023)

sq

Standalone version of Squirrel language interpreter that supports bytecode disassembly of scripts

Usage: sq -c myscript.nut > myscript.cnut
Download (Last updated: 8th April, 2025)