Creating a Custom WAD with Wally

March 12, 2026 Daemon666 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.

1. Understand the GoldSrc texture format

GoldSrc textures are not arbitrary images. The hard rules Wally enforces (and that break your map if violated):

  • Each texture has a 256-colour palette (8-bit indexed). Wally handles the conversion, but subtle gradients will band.
  • Both dimensions must be divisible by 16 — 64x64, 128x128, 256x256, 16x32, and so on. A 100x100 texture is invalid.
  • Texture names are limited to 15 characters and are how the map references them — keep them unique and descriptive.

2. Create a new WAD and add textures

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.

3. Use the special texture prefixes

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.
  • Animated textures use +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.

4. Keep the blue truly blue

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.

5. Save and wire the WAD into your tools

Save the WAD somewhere your editor and compiler can both reach. Then add it in two places:

  • Your editor (JACK/Hammer) — add the WAD to the texture/game configuration so the textures appear in the browser. See JACK editor setup.
  • The compile — the 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.

6. Decide: external WAD or embedded

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.

Common errors

  • Compile fails with a WAD-not-found error — the compiler cannot locate the .wad, or the map references a WAD you no longer have. Fix the wad path or -wadinclude the textures; see cannot find WAD.
  • Texture looks corrupted / wrong colours — the palette conversion mangled a gradient, or the image was not truly indexed. Re-import in Wally and accept its palette.
  • Transparency not working, whole texture is opaque blue — the name is missing the { 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.
  • "Texture is not 16 aligned" — a dimension is not divisible by 16. Resize to the nearest multiple of 16.
  • Texture does not appear in the editor browser — the WAD is not added to the editor's game configuration. Add it and refresh.

Verification

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.

Mitwirkende: Daemon666 ✦
Teilen: