Packaging a Map for FastDL (bsp, res, wad, models)

June 4, 2026 Daemon666 9 min read 1 görüntülenme

A finished map is more than a .bsp. To ship it to a live server so players download everything cleanly, you assemble the map plus every asset it references into the exact folder layout the game expects, then mirror that layout onto your FastDL host. Miss one file or put it one folder too deep and players get missing textures, ERROR models, or a slow in-game trickle. This is the packaging checklist.

1. Gather every file the map needs

Start from the .res file — it is your packing list. You need:

  • maps/de_mymap.bsp — the compiled map
  • maps/de_mymap.res — the content manifest
  • Any external .wad the map did not embed (if you used external WADs)
  • Custom models/, sound/, sprites/ the map references
  • The six gfx/env/ skybox faces if the sky is custom
  • overviews/de_mymap.bmp and .txt for the radar

If you embedded textures with -wadinclude, you do not ship a WAD at all — the BSP carries them. That is the simplest package for a map with only a few custom textures.

2. Lay them out under cstrike/

Every path is relative to cstrike/, and the server and FastDL host must mirror that structure exactly:

cstrike/maps/de_mymap.bsp
cstrike/maps/de_mymap.res
cstrike/models/props/mymap_crate.mdl
cstrike/sound/ambient/mymap_wind.wav
cstrike/sprites/mymap_glow.spr
cstrike/gfx/env/mysky_up.tga   (and dn/lf/rt/ft/bk)
cstrike/overviews/de_mymap.bmp
cstrike/overviews/de_mymap.txt

Put these on the game server first so the map runs, and confirm it loads locally with all content before touching FastDL. See installing custom maps for the server-side placement.

3. Mirror the tree onto the FastDL host

The FastDL web root must contain a cstrike/ directory that mirrors the server, because the engine requests <sv_downloadurl>/cstrike/maps/de_mymap.bsp — the full game-relative path including the cstrike/ level. Copy the same files to the same relative paths on the web host. If your sv_downloadurl is http://dl.example.com/cs, then the crate model must resolve at http://dl.example.com/cs/cstrike/models/props/mymap_crate.mdl. The full server/mirror wiring is in the FastDL setup guide and the download cvars.

4. Compress with bzip2 for fast transfers

FastDL clients will fetch a .bz2 version of a file if it exists, decompressing it on arrival — much faster than the raw file. Create .bz2 copies of each large asset alongside the originals on the web host:

de_mymap.bsp      -> de_mymap.bsp.bz2
mymap_crate.mdl   -> mymap_crate.mdl.bz2

Keep both the plain and the .bz2 so any client works. The mechanics and tooling are in FastDL bzip2 compression.

5. Confirm the WAD is delivered or embedded

If textures are external, the custom .wad must be on both the server and the FastDL host and listed so clients fetch it — otherwise you get black textures. If you embedded with -wadinclude, skip this: nothing to ship. Never ship the giant stock WADs — every client already has halflife.wad and cstrike.wad.

6. Keep the server and mirror byte-identical

The server and the FastDL host must hold the same files at the same relative paths. If you fix a texture, recompile the map, or rename an asset, update both places in the same step — a map that plays fine on the server but pulls an old .bsp from a stale mirror gives players a version mismatch and a failed download. A simple discipline that prevents this: build the complete cstrike/ package once in a staging folder, verify the map loads from it locally, then push that same folder to the game server and to the web root. Never edit one side and forget the other. When you rotate the map into the cycle, confirm the server has the map installed and the mirror has every file the .res names, because the download only works when both halves agree.

Common errors

  • Everything 404s over HTTP — the cstrike/ level is missing or doubled in the web root. The path must be <url>/cstrike/maps/... exactly.
  • Map downloads but models are ERROR — the model is not in the .res or not on the mirror. Reconcile the .res with the files.
  • Black/checkerboard textures — external WAD not delivered, or not embedded. See missing textures.
  • Downloads crawl — no .bz2 copies, or sv_downloadurl unreachable. Add bzip2 files and test the URL.
  • Sky blank for players — the six gfx/env/ faces are not in the package. Ship all six.

Verification

Use a clean client with none of the custom content and connect to the server with FastDL live. Watch the download list: the .bsp, the models, sounds, sprites and sky faces should all transfer over HTTP, then the map should render with every texture, model and the correct sky. Open one asset's full FastDL URL in a browser to prove the path resolves. If a single file fails, its .res line or its position in the cstrike/ tree is wrong — fix that one path and re-test. That clean-client download is the only proof the package is complete.

Katkıda bulunanlar: Daemon666 ✦
Paylaş: