A custom spray is a small decal you paint on walls with a keypress. CS 1.6 is fussy about the image format, and most "my spray shows up black" complaints come from feeding it a file it cannot use. This covers the exact image requirements, how to import it, how to bind the spray, and the server-side limits that stop you spamming it.
1. Make the image in the right format
The importer accepts a BMP (or TGA), but it must meet old-engine rules:
- 8-bit, 256-colour indexed BMP. A 24-bit truecolour BMP imports wrong or black — convert to indexed colour in your editor first.
- Power-of-two dimensions. Width and height each from the set 16, 32, 64, 128, 256. A common good size is 64×64; the maximum practical is 256×256.
- Keep it simple — high-contrast art reads far better than a photo once it is on a wall at distance.
If your editor cannot save 8-bit indexed BMP, reduce the colour depth to 256 colours (Indexed mode) before exporting.
2. Import it through the game menu
The reliable path is the in-game importer, which converts your file into the internal decal the engine uses:
- Launch CS 1.6 and open Options → Multiplayer.
- Use the Advanced / spray-logo import control and browse to your BMP.
- Confirm. The game writes the converted decal into
cstrike/tempdecal.wad— that generated file is your active spray.
You do not hand-place files for a basic spray; let the importer produce tempdecal.wad. If the preview looks wrong at this stage, the source image failed the format rules in step 1 — fix the BMP and re-import.
3. Bind the spray key
Spraying is the impulse 201 command. Bind it to a comfortable key in your autoexec.cfg so it survives restarts:
bind "t" "impulse 201"
Aim at a wall and press the key. Sprays go on solid surfaces, not on players or the sky.
4. Understand why it will not always appear
Even a perfect spray is throttled by the server and by decal settings, and this is deliberate:
decalfrequency— a server cvar setting the minimum seconds between a player's sprays. Spray again too soon and nothing paints. Admins raise this to curb spam; see the server cvars list.r_decals— your own client cap on how many decals render at once. If it is very low, older decals (including sprays) are culled quickly.- Some servers disable custom sprays entirely, or a plugin filters them. On those, your spray simply will not show for others.
5. Keep or swap your spray
Because the active spray lives in tempdecal.wad, keeping several is a matter of saving copies. Back up the generated file under a new name, and to switch sprays, copy the one you want over tempdecal.wad (with the game closed) or just re-import a different image. Note the game can regenerate tempdecal.wad on launch, which is why re-importing is the dependable way to change it.
6. Design for distance and low colour
A spray that looks great as a 256-colour file on your desktop can turn into an unreadable smudge on a wall across the map. Two habits keep it legible: use bold shapes and thick outlines rather than fine detail, and pick a small, high-contrast palette. Because you are limited to 256 indexed colours anyway, a design built from a handful of flat colours converts cleanly, while a gradient-heavy image bands badly during the reduction to indexed mode. Test the finished spray in-game at range before you settle on it — the wall at fifteen metres is the only preview that matters, and a logo that reads clearly there is worth more than one that only looks sharp in the importer.
Common errors
- Spray shows up as a black or garbled box — the source BMP was 24-bit truecolour, not 8-bit indexed. Convert to 256-colour indexed and re-import.
- Import is rejected or looks stretched — dimensions are not powers of two. Resize to 64×64 (or another 16/32/64/128/256 pair).
- Nothing paints when you press the key — no bind, or you sprayed again within
decalfrequency. Confirm the bind and wait a few seconds between sprays. - Others do not see your spray — the server disabled custom sprays or a plugin blocks them. Nothing to fix client-side.
- Spray reverts after restart — the game regenerated
tempdecal.wad. Re-import the image you want as the active spray.
Verification
Host a local server or join any server that allows sprays, face a wall, and press your spray key:
impulse 201
Your logo should appear crisp and in the right colours. If it paints correctly offline but not on a particular server, that server is throttling or disabling sprays — not a problem with your file. Read your bind back with bind t to confirm it is set, and if the image itself is wrong, the fault is always the source BMP's format, so return to step 1.









