Converting WADs to Materials With
(May 21, 2018)
At some point, Valve removed
xwad, the command-line utility for converting a WAD of GoldSrc textures to materials, from the utilities packed in with most of the Source games. The reason for this is unknown, but as a result, it's become much more difficult to convert WADs to materials. One of the oldest guides on this site detailed two ways to do it, extracting textures with TexMex and batch-converting them either with
vtex or with VTFEdit. Both of these methods were clunky and did not properly handle textures with dimensions that weren't powers of two.
xwad, however, does correctly convert these textures and resizes them in-editor, letting them keep their original dimensions when you load the original map file. All you need is a copy of the program.
Converting the WAD with
The first step would be to obtain a copy of
xwad. Here's ours. It runs independent of Steam and no vproject needs to be set. More specifically,
xwad converts all textures in a WAD file to TGA, an uncompressed format commonly used within the Source SDK. These are stored in the
materialsrc folder of the mod, for instance
steamapps\common\Half-Life 2\hl2\materialsrc. To demonstrate, we'll be using a WAD from Half-Life: Opposing Force, specifically
xwad requires two parameters to work, a
-BaseDir, which sets the mod directory, and
-WadFile, which is the WAD to convert. (
xwad doesn't check if the mod directory is valid, and will take any folder. If the mod directory is nonexistent, it'll make it. Don't confuse yourself.) We'll be setting our textures to export to the
steamapps\common\Half-Life 2\hl2 mod folder.
xwad -BaseDir "C:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\hl2" -WadFile "C:\Program Files (x86)\Steam\steamapps\common\Half-Life\gearbox\OPFOR.WAD"
After running this command, two directories will exist inside
hl2, if they don't already. The
materials directory will contain VMT files for the WAD, along with
RESIZEINFO files (which will be used later), and the
materialsrc directory will contain the resized TGA files for all of the textures in the WAD.
This still requires you to convert the TGA files yourself, however.
xwad has the ability to invoke
vtex on its own, but we've been unable to get it working in any permutation.
vtex is easy enough to use on its own, however:
vtex -game "C:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\hl2" "C:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\hl2\materialsrc\OPFOR\*.tga"
This will output VTF files into
hl2\materials\opfor for all the TGAs in that folder. (You no longer need the
materialsrc folder after the textures have been converted.) You might need to convert multiple WADs, depending on which ones were used in the original map.
Using the textures in Hammer
After loading your RMF or VMF in Hammer, you'll notice all surfaces are textured blank white; this means the texture for that face is missing, as they're still pointing to their original places in the WAD. You don't need to fix all the textures individually, however. The "Convert WAD to VMT" option in the File menu will take care of everything automatically. This is where those
RESIZEINFO files come in handy: while
xwad resizes textures to fit into powers of two, Hammer uses the
RESIZEINFO files to stretch them back into shape.
This is by far the least painful way to convert the textures of a GoldSrc map to Source.