--- title: "Creating a Custom WAD with Wally" excerpt: "How to build a GoldSrc texture WAD in Wally: the 16-color-per-transparency rules, the 16-pixel dimension requirement, blue transparency and {\\ textures, and getting the WAD into your map without the missing-texture error." category: "mapping" tags: "wad, textures" image: "" read_time: "8 min read" ---
A .wad is a package of textures that GoldSrc maps reference by name, and Wally is the classic editor for building them. If you want custom walls, signs, or logos in a CS 1.6 map, you make a WAD, add it to your compile tools and editor, and apply the textures. Get the format rules wrong and you get corrupted colours, invisible faces, or the dreaded missing-WAD error at load. This covers building a clean WAD in Wally.
GoldSrc textures are not arbitrary images. The hard rules Wally enforces (and that break your map if violated):
In Wally, create a new WAD3 package (the GoldSrc/Half-Life format). Import your images — Wally converts each to the indexed palette on import. Resize any image whose dimensions are not multiples of 16 before importing, or crop inside Wally, so you are not fighting a stretched, misaligned result later.
GoldSrc gives certain name prefixes special meaning. The ones you will actually use:
{ (brace) prefix — a transparency/decal texture. The palette's last colour (index 255, pure blue 0 0 255) is rendered transparent. This is how you make fences, grates, and cut-out signs.sky — reserved; do not name a normal texture sky.+0name, +1name sequences.For a fence texture, name it {fence01, paint the see-through parts pure blue, and set that as palette index 255. In the editor you then set the brush's render mode to Solid so the blue drops out.
The transparency colour must be exact 0 0 255 and must be the last palette entry. If your image editor anti-aliased the edges, you get a blue fringe around the cut-out. Paint transparency areas with a hard, single-colour blue and no anti-aliasing so the edge is clean.
Save the WAD somewhere your editor and compiler can both reach. Then add it in two places:
hlcsg stage reads the WADs the map references. Either let the compiler find it via the wad path, or embed the used textures into the BSP with -wadinclude so the map is self-contained.If you ship the map to a server, players need the textures too. You either distribute the .wad alongside the BSP (and list it in the map's resource file) or embed the textures into the BSP at compile with -wadinclude. Embedding makes a bigger BSP but removes the "cannot find WAD" class of problem entirely on the server side — covered in the cannot-find-WAD guide.
.wad, or the map references a WAD you no longer have. Fix the wad path or -wadinclude the textures; see cannot find WAD.{ prefix, the blue is not exactly 0 0 255 at index 255, or the brush render mode is not set to Solid in the editor.Apply a custom texture to a test brush, apply a { transparency texture to a fence brush and set it to Solid render mode, then compile a small test map. Load it and confirm the wall texture displays correctly and the fence shows the world through its cut-out with no blue fringe. If the compile complains about the WAD, resolve the path before anything else. Once it renders in-game, the WAD is production-ready; manage how it ships with installing custom maps on the server.