How to Make a Custom Spray in CS 1.6: Color and Transparent
HL TagConverter, Wally or the game itself - plus why sprays turn gray and how to fix it
Counter-Strike 1.6 has always been more than just aim and reflexes - it's about personality. One of the most famous ways players express that personality is through a custom spray in CS 1.6. Every true player remembers the pride of tagging their logo on a wall after a clutch round. That little spray - your name, clan tag, or funny meme - became your signature on the server.
In this guide, I'll go through every reliable way to create a custom spray in Counter-Strike 1.6 - using HL TagConverter, Wally, and the classic BMP import built into the game. You'll learn how sprays actually work inside the engine, how to prepare your image, convert it to 8-bit / 256 colors, handle transparency correctly, and get a spray that appears bright and clean instead of that one-color gray mess everyone has seen at least once.
CS 1.6 Spray Requirements and Format
Before creating a custom spray in Counter-Strike 1.6, it's important to understand how the game handles them. Sprays in CS 1.6 aren't regular images - they're small 8-bit textures that the engine loads from a special file called tempdecal.wad in your cstrike folder. When you join a server, the game uploads this file, and the server passes it on to other players.
I went through the engine code (ReHLDS, the open reconstruction of the original engine) to see what it actually checks. Here's what a working spray needs:
- File
- tempdecal.wad in WAD3 format (Half-Life texture package) with exactly one texture inside. Two or more textures - and the game falls back to a default spray.
- Colors
- 8-bit indexed image, 256 colors at most. No 24-bit, no PNG transparency.
- The last color
-
The 256th color of the palette (index 255) decides everything. If it's pure blue
RGB(0,0,255), you get a full-color spray, and every pixel painted with that blue becomes transparent. If it's anything else, the engine treats the spray as a one-color stencil - that's where the gray sprays come from. - Size
- The engine accepts up to 256 px per side, but the classic, safe sizes stay around 12,000-14,000 pixels in total: 64×64, 96×96, 128×80, 112×96, 112×112. Keep both sides divisible by 16 - that's what every tool expects.
There are two kinds of sprays in the game, and it helps to know which one you're making:
- Color spray - up to 255 colors plus one transparent. Made with HL TagConverter or Wally. This is what you want for logos, memes and photos.
- One-color spray - the picture's brightness becomes transparency, and the whole spray is painted in one color. This is what the game's own BMP import makes.
How to Make a Color Spray with HL TagConverter
If you want the fastest and most reliable way to create your own custom spray for Counter-Strike 1.6, HL TagConverter is the classic tool that does everything automatically. It accepts almost any image format - PNG, JPG, or BMP - and converts it into the proper 8-bit format used by the game, with the palette set up right. Unlike other methods, HL TagConverter builds a colorful, fully working spray without any manual preparation.
You can download it from my Counter-Strike 1.6 Tools page or with the button below. The program is a single executable file (.exe) and doesn't require installation - just run it and start creating.
- Open HL TagConverter.
- Click "1. Open Image" and choose any picture - your logo, meme, clan tag, or artwork.
-
Click "
2. Adjust Image
". The program automatically sets the optimal size (
96×96,128×80, or112×96 px). You can tweak it manually - just keep the total area around12,288 px, the program's own limit. You can also set a transparent background and then press " Apply changes and convert to 256 colors ".
- Click "3. Save Tag" → choose "Export to WAD file". Name it tempdecal.wad and save it.
- Copy (or replace) this file in your Counter-Strike 1.6 directory: ...\Half-Life\cstrike\
You now have a colorful, ready-to-use spray that always works - even if you didn't prepare the image manually. HL TagConverter handles everything - size, palette, and transparency - making it the best starting point for quick, high-quality results.
How to Make a CS 1.6 Spray with Wally (Manual WAD Editing)
One of the most powerful tools for GoldSrc-based games is Wally. It's a texture editor for WAD files - archives that store textures and interface elements. Originally made for Half-Life modding, it also works perfectly for creating sprays in Counter-Strike 1.6.
Unlike HL TagConverter, Wally doesn't prepare the image for you - it needs a ready 8-bit (256-color) BMP with the right palette. That's the part most guides skip, and it's the reason so many hand-made sprays come out gray.
Prepare the BMP in GIMP
- Resize the picture to one of the safe sizes, for example
96×96or112×112(Image → Scale Image). - Paint the background you want transparent with pure blue
RGB(0,0,255). If you don't need transparency, just make sure the picture itself has no pure blue. - Convert to 256 colors: Image → Mode → Indexed, "Generate optimum palette", 256 colors.
- Move the blue to the very end of the palette: Colors → Map → Rearrange Colormap , drag the blue swatch to the last place. If your picture has fewer than 256 colors, add colors until the blue is number 256.
- Export as BMP: File → Export As → spray.bmp.
Build tempdecal.wad in Wally
- Open Wally, go to File → New, and choose "Half-Life Package (wad3) (.wad)", then click OK.
- You'll see an empty window titled Untitled1.
- Drag and drop your prepared 8-bit BMP image into that window. Only one texture - the game rejects a WAD with two or more.
- Go to File → Save As... and name the file tempdecal.wad.
- Save it in your CS 1.6 directory: ...\Half-Life\cstrike\.
Launch the game - your custom spray will now be ready to use.
Importing a Spray Using the Classic BMP Method
This is the old-school method built right into Counter-Strike 1.6 - no external tools, no converters, just the game itself. The engine can take a BMP from the logos folder and build tempdecal.wad from it when you pick it in the options.
The catch: this method always makes a one-color spray. The game uses the picture's brightness as transparency and paints the whole thing in a single color - that's how the default sprays are made. So it's great for a simple logo or a text tag, but not for a colorful picture.
How to Import a BMP Spray
- Create or prepare a small
8-bit (256-color)BMP image - recommended size64×64 px. Simple, high-contrast pictures work best here. - Place the file in this folder: ...\Half-Life\valve\logos\
- Launch Counter-Strike 1.6.
- Open Options → Multiplayer → Spraypaint Image.
- Select your BMP file and click OK. The game will convert and save it as tempdecal.wad.
Your spray will now appear in-game without any external software. One thing to keep in mind: every time you press OK in the Multiplayer options, the game rebuilds tempdecal.wad from the picture selected there - and overwrites a color spray you made with TagConverter or Wally. More on that below.
How to Use Your Spray in CS 1.6
The default spray key is T. Look at a wall and press it. If you lost the bind, put it back in the console or in userconfig.cfg:
bind "t" "impulse 201"
You can spray once every 30 seconds by default - that's the server cvar decalfrequency, and some servers change it.
For other players to see your spray, both sides need to allow it:
- You:
cl_allowupload 1- sends your spray to the server.cl_allowdownload 1- lets you see other players' sprays. -
Server:
sv_allowupload 1andsv_send_logos 1. If the admin turned them off, nobody sees custom sprays there - that's the server's choice, not a problem with your file. On ReHLDS servers the admin can also limit sprays to 64×64 withsv_rehlds_allow_large_sprays 0.
To keep the game from replacing your spray, set tempdecal.wad to Read-only once it's working: right-click the file → Properties → check Read-only. Then the game can't rebuild it when you click OK in the Multiplayer options.
The sprays you've seen on servers are stored in custom.hpk in the cstrike folder. Over time it grows; you can safely delete it - the game makes a new one.
CS 1.6 Spray Not Working: Causes and Fixes
| Symptom | Cause | Fix |
|---|---|---|
| Spray is gray or one color | The last palette color isn't pure blue, or the spray was made by the game's BMP import | Make it with HL TagConverter, or put RGB(0,0,255) at the end of the palette in GIMP |
| Default spray instead of yours | Broken WAD: more than one texture, wrong format, side over 256 px. The console shows "Bad cached wad" | Rebuild the file with one texture in a safe size |
| Your spray is replaced after a restart | You pressed OK in the Multiplayer options, and the game rebuilt tempdecal.wad | Put your file back and set it to Read-only |
| Works on one server, not on another | The server blocks uploads or limits spray size | Nothing to fix on your side, try a 64×64 version |
| Nobody sees your spray | cl_allowupload 0 on your side |
cl_allowupload 1 |
| Background isn't transparent | The background isn't the last palette color, or it isn't exactly pure blue | Repaint it with RGB(0,0,255) and move that color to the end of the palette |
| Nothing happens on T | The bind is gone or the 30 s timer hasn't run out | bind "t" "impulse 201" and wait |
Conclusion
Creating a custom spray in Counter-Strike 1.6 is one of those small but iconic details that make the game personal. Whether it's your clan logo, a meme, or just your nickname, the right spray gives every round a little extra identity. I always uploaded something funny =)
The simplest and most effective way to make one is still HL TagConverter. It takes any image - PNG, JPG, or BMP - and automatically builds a bright, colorful spray ready for action. No complex setup, no palette headaches, no gray surprises. Just pick your picture, convert, and play. And if you build it by hand, remember the one rule that matters: pure blue as the last palette color.
If you enjoy going deeper into modding and customizing your Counter-Strike 1.6 experience, check out my Counter-Strike 1.6 Tools page. There you'll find essential utilities used by both beginners and experienced modders:
- Half-Life MDL Decompiler - lets you unpack and edit player or weapon models.
- Half-Life Sprite Viewer - used to preview and inspect .spr files such as muzzle flashes, HUD icons, or crosshairs.
- Half-Life Sprite Wizard - helps you create or convert your own animated sprites for maps or effects.
- Half-Life Model Viewer - the go-to tool for examining 3D models in detail, including textures and hitboxes.
- Valve Hammer Editor - the legendary map editor for creating custom levels and environments.
Each of these tools opens another layer of what makes CS 1.6 truly timeless - the ability to shape the game however you like. So start small with your own spray, explore the modding tools, and see just how much you can create inside the world of Counter-Strike 1.6.
Invisible Nick in CS 1.6
An empty name in the scoreboard. Old trick, still works, and the guide explains why.
open →
Weapon Skins and Player Models
Where the files live and how to replace them safely.
open →
CS 1.6 Config Guide
Commands and settings for the classic game on a modern PC.
open →CS 1.6 Custom Spray FAQ
Why does my spray appear black and white in CS 1.6?
Either it was made through the game's own BMP import (that one is always single-color), or the last color of its palette isn't pure blue RGB(0,0,255) - then the engine treats it as a one-color stencil. Build it with HL TagConverter, or fix the palette in GIMP and rebuild it in Wally.
What is the correct file path for my spray?
Your spray must be placed in:
...\Half-Life\cstrike\tempdecal.wad
That's the file the game loads and sends to servers.
Can I use JPG or PNG images?
Yes. HL TagConverter accepts any common image format (JPG, PNG, BMP) and converts it automatically to the correct 8-bit format. Wally needs an 8-bit BMP.
How do I make the background transparent?
Paint the background with pure blue RGB(0,0,255) and make it the last (256th) color of the palette - or just set the transparent color in HL TagConverter. Partial transparency or soft edges aren't supported in a color spray.
What's the maximum spray size in CS 1.6?
The engine accepts up to 256 px per side, but the safe sizes are 64×64 to 112×112 - around 12,000-14,000 pixels. Bigger sprays may not show on some servers and old clients.
The default spray appears instead of my custom one on some servers. Why?
That's normal - many servers intentionally block custom sprays for moderation reasons. Some players used to upload inappropriate or offensive images, so server admins often disable uploads entirely. In such cases, there's nothing wrong with your setup.
How can I prevent my spray from resetting?
After you've set up your spray, go to the file properties of tempdecal.wad and mark it as Read-only. This stops the game from rebuilding it from the Multiplayer options.
Does this work on Steam and Non-Steam versions?
Yes - the same process applies to both. The only difference might be the installation folder path, but the spray system works identically.