Skip to main content
One of the best parts of running your own Counter-Strike 1.6 server is the map pool: two decades of community maps — surf, aim, fy, kz, zombie, and remakes of everything imaginable. This guide shows you how to upload maps, put them in rotation, and make sure players download them quickly.

What Makes Up a Custom Map

A map is at minimum a single .bsp file, but many maps ship with extra files that must be uploaded too:
File / folderGoes inPurpose
de_mymap.bspcstrike/maps/The map itself (required)
de_mymap.rescstrike/maps/Resource list — tells clients which extra files to download
de_mymap.txtcstrike/maps/Map briefing/description shown on join
de_mymap.bmp + de_mymap.txtcstrike/overviews/Radar/overview images
Custom soundscstrike/sound/...Map-specific audio
Custom models/spritescstrike/models/..., cstrike/sprites/...Map-specific visuals
Custom skyboxcstrike/gfx/env/Sky textures
Well-packaged maps come as an archive mirroring the cstrike/ folder structure. Extract it locally and upload the folders as-is — everything lands in the right place automatically.

Uploading Maps

1

Open the File Manager

In the Game Panel, open your server’s File Manager, or connect via SFTP for large batches of maps — see File Management.
2

Upload the files

Upload the .bsp into cstrike/maps/ along with any .res and .txt files, and place sounds, models, sprites, and overviews into their matching folders.
3

Test the map

In the panel console, switch to it directly:
changelevel de_mymap
Or from your in-game console using RCON:
rcon_password "YourRconPassword"
rcon changelevel de_mymap
Use the map’s exact filename without the .bsp extension.

Adding Maps to the Rotation

Edit cstrike/mapcycle.txt and add the map name (no extension), one per line:
de_dust2
de_mymap
cs_assault
The rotation advances when mp_timelimit or the round limits are hit — see Server Configuration. If you installed AMX Mod X, also add the map to cstrike/addons/amxmodx/configs/maps.ini so it shows up in vote menus.

Speeding Up Downloads with FastDL

When a player joins and is missing the map, the server sends it to them. Built-in HLDS transfers are throttled to a crawl — a 20 MB map can take several minutes, and many players give up. FastDL fixes this: you host a copy of your custom files on a regular web server, and clients fetch them over HTTP at full speed instead.
1

Get web hosting for the files

Any web host or web server that can serve static files works. You’ll upload a folder structure that mirrors cstrike/ — for example https://dl.example.com/cstrike/maps/de_mymap.bsp.
2

Mirror your custom content

Copy your custom maps/, sound/, models/, sprites/, gfx/, and overviews/ files to the web server, keeping the same relative paths they have under cstrike/. Only custom content is needed — never the default game files.
3

Point the server at the mirror

Add to your server.cfg:
sv_downloadurl "https://dl.example.com/cstrike/"
sv_allowdownload 1
Restart or exec server.cfg to apply.
4

Verify

Delete the map from your own client’s cstrike/maps/ folder, join the server, and watch the download bar — it should complete in seconds instead of minutes.
Without FastDL, HLDS automatically creates compressed .ztmp copies of files for its slow built-in transfer — you don’t need to compress anything yourself. With FastDL, files are served uncompressed over HTTP, so just upload them as-is.
If a player is missing a file that isn’t on the FastDL mirror (or the URL path doesn’t match exactly), they’ll fall back to slow direct download or fail to join. Keep the mirror in sync every time you add content.

Keeping Downloads Small

  • Prefer maps with modest file sizes when possible — every megabyte of custom sounds and models multiplies across every new player.
  • Trim unused content: if a map archive ships optional extras (alternate skins, bonus sounds), skip what you don’t need.
  • Audit occasionally: if a map never gets played, remove it from mapcycle.txt and the server to keep things tidy.

Need a CS 1.6 server for your map pool?

Counter-Strike 1.6 hosting from €6.49/month — NVMe storage, full SFTP access, and 24/7 support included.