This is a collection of other tools and scripts I've made over the years
I don't actively maintain these but perhaps others might find them useful..


VBSP++

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

Changelog:

- Automatically reduces brushes and brushsides usage of the map by 10-30%
- No t-junction limit
- No detail prop limit
- Raised overlay limit to 1024 and internal entity limit to 16384
- Added appid mounting if steam_appid.txt is present beside the exe
- Added support for mounting custom shaders in mods
- Added func_detail_blocker (like newer VBSPs)
- Added -blocksize (default is 1024)
	- Useful to compute visibility faster on open, large maps like surf (I recommend 2048)
	- Using a higher blocksize also reduces your vertex count, useful to circumvent vertex limit
- Added -allowdynamicpropsasstatic (allows props without allowstatic in propdata to be used as static props)
- Added proper support for compiling power of 4 displacements (like CS:GO)
- Added parallax_obb entity support for mods that have parallax cubemaps
- Added func_detail_illusionary (identical to func_detail but non solid)
- Added %compileNoShadows
- Added func_nobevel support
	- VBSP generates bounding box brushsides for angled geometry to improve collision accuracy
	- But a problem is that these can eat up brushsides quickly
	- Surround angled brushes with this to skip creating these extra brushsides
	- Accurate collision isn't needed for areas the player can't reach anyway (like out of bounds)
- Added -nobevel (disables brushsides for all angled geometry. I do not recommend using this, use func_nobevel instead)
- Added optimization to automatically disable vertex lighting for props with $bumpmap/$phong
	- Reduces time spent in VRAD with -staticproplighting
- func_occluder, func_areaportal, func_viscluster, func_nobevel, parallax_obb no longer count towards the brush limit
- Improved clarity of some warnings and removed useless warnings
- Fixed smoothing groups not working on func_detail
- Fixed displacements not being rotated correctly in instances
- Fixed missing texture cubemaps if skybox has mismatched side dimensions
- Fixed crash if an instance overflowed brush or brushsides limit

Installation:

Place into your game's bin/x64/ folder (where normal vbsp.exe is)
Update Hammer's game configuration to use vbspplusplus.exe as the BSP compiler

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: 26th July, 2025)

VRAD++

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

Changelog:

- Scales up to 64 threads
- Small performance optimizations
- Shared LDR/HDR compiling:
	- VRAD++ now always compiles in HDR mode
	- LDR lighting data will be redirected to HDR at no extra file size cost
	- This means you don't need to compile VRAD twice for LDR and HDR users anymore (compatible with both)
	- Passing in -ldr will still explicitly compile in LDR mode only
- Bypassed "numplanes + fakeplanes >= MAX_MAP_PLANES" limit
	- You will never see it again!
- Added appid mounting if steam_appid.txt is present beside the exe
- Added -reflectivityscale
- Added -worldtextureshadows
	- Allows $alphatest brush textures to cast proper shadows like props
	- Requires -textureshadows
- Added -translucentshadows
	- Similar to -worldtextureshadows but for $translucent brush textures
	- Requires -textureshadows and -worldtextureshadows
- Improved vertex lighting for props
	- Added -StaticPropIndirectMode to use old behavior if desired
	- See this page for a comparison
- Redundant vertex lighting is skipped for lightmapped props (saves compile time and file size)
- .dx90.vtx data is loaded for vertex lighting instead of .dx80.vtx
- Broken vertex data for props will now be skipped over when compiling
- Fixed bug where broken vertex data in props skipped vertex lighting for other props
- Named or styled lights are now sorted by brightness priority for faces
	- Reduces occurence of bad lighting from overlapping named/styled lights
- Added -scale, -ambient, -dlight, -sky, -notexscale, -coring debug options
- Unlimited texlight support in .rad files
- Comments in .rad files are now skipped
- Cleaned up formatting of some messages and warnings

Installation:

Place into your game's bin/x64/ folder (where normal vbsp.exe is)
Update Hammer's game configuration to use vbspplusplus.exe as the BSP compiler

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: 10th July, 2025)

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)

file_to_nut

Converts binary file to Squirrel array

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

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)