> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wasabihosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Custom Maps to a Counter-Strike 1.6 Server

> Upload custom maps to your Counter-Strike 1.6 server hosting, add them to the map rotation, change maps via RCON, and speed up player downloads with FastDL.

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 / folder                   | Goes in                                     | Purpose                                                     |
| ------------------------------- | ------------------------------------------- | ----------------------------------------------------------- |
| `de_mymap.bsp`                  | `cstrike/maps/`                             | The map itself (required)                                   |
| `de_mymap.res`                  | `cstrike/maps/`                             | Resource list — tells clients which extra files to download |
| `de_mymap.txt`                  | `cstrike/maps/`                             | Map briefing/description shown on join                      |
| `de_mymap.bmp` + `de_mymap.txt` | `cstrike/overviews/`                        | Radar/overview images                                       |
| Custom sounds                   | `cstrike/sound/...`                         | Map-specific audio                                          |
| Custom models/sprites           | `cstrike/models/...`, `cstrike/sprites/...` | Map-specific visuals                                        |
| Custom skybox                   | `cstrike/gfx/env/`                          | Sky textures                                                |

<Tip>
  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.
</Tip>

## Uploading Maps

<Steps>
  <Step title="Open the File Manager">
    In the [Game Panel](https://panel.wasabihosting.com), open your server's **File Manager**, or connect via SFTP for large batches of maps — see [File Management](/server/file-management).
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

## 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](/games/cs16/server-configuration). If you installed [AMX Mod X](/games/cs16/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.

<Steps>
  <Step title="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`.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Point the server at the mirror">
    Add to your `server.cfg`:

    ```cfg theme={null}
    sv_downloadurl "https://dl.example.com/cstrike/"
    sv_allowdownload 1
    ```

    Restart or `exec server.cfg` to apply.
  </Step>

  <Step title="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.
  </Step>
</Steps>

<Info>
  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.
</Info>

<Warning>
  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.
</Warning>

## 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.

<Card title="Need a CS 1.6 server for your map pool?" icon="rocket" href="https://wasabihosting.com/game-servers/counter-strike-1.6">
  Counter-Strike 1.6 hosting from **€6.49/month** — NVMe storage, full SFTP access, and 24/7 support included.
</Card>
