Sunucu tanitimi
17 lines 6.4 KiB Markdown Source Rendered Raw Permalink History
---
title: "Packaging a Map for FastDL (bsp, res, wad, models)"
excerpt: "The exact folder layout for shipping a CS 1.6 map over FastDL: the bsp, its res manifest, external wads, models, sounds and sky, mirrored under cstrike."
category: "mapping"
tags: "fastdl, packaging"
image: ""
read_time: "9 min read"
---
<p>A finished map is more than a <code>.bsp</code>. 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, <code>ERROR</code> models, or a slow in-game trickle. This is the packaging checklist.</p><h2>1. Gather every file the map needs</h2><p>Start from the <a href="/tutorials/generate-res-file">.res file</a> &mdash; it is your packing list. You need:</p><ul><li><code>maps/de_mymap.bsp</code> &mdash; the compiled map</li><li><code>maps/de_mymap.res</code> &mdash; the content manifest</li><li>Any external <code>.wad</code> the map did <em>not</em> embed (if you used <a href="/tutorials/wadinclude-vs-external-wads">external WADs</a>)</li><li>Custom <code>models/</code>, <code>sound/</code>, <code>sprites/</code> the map references</li><li>The six <code>gfx/env/</code> skybox faces if the sky is custom</li><li><code>overviews/de_mymap.bmp</code> and <code>.txt</code> for the radar</li></ul><p>If you embedded textures with <code>-wadinclude</code>, you do not ship a WAD at all &mdash; the BSP carries them. That is the simplest package for a map with only a few custom textures.</p><h2>2. Lay them out under cstrike/</h2><p>Every path is relative to <code>cstrike/</code>, and the server and FastDL host must mirror that structure exactly:</p><pre>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</pre><p>Put these on the game server first so the map runs, and confirm it loads locally with all content before touching FastDL. See <a href="/tutorials/install-custom-maps-cs16-server">installing custom maps</a> for the server-side placement.</p><h2>3. Mirror the tree onto the FastDL host</h2><p>The FastDL web root must contain a <code>cstrike/</code> directory that mirrors the server, because the engine requests <code>&lt;sv_downloadurl&gt;/cstrike/maps/de_mymap.bsp</code> &mdash; the full game-relative path including the <code>cstrike/</code> level. Copy the same files to the same relative paths on the web host. If your <code>sv_downloadurl</code> is <code>http://dl.example.com/cs</code>, then the crate model must resolve at <code>http://dl.example.com/cs/cstrike/models/props/mymap_crate.mdl</code>. The full server/mirror wiring is in the <a href="/tutorials/fastdl-setup-guide">FastDL setup guide</a> and <a href="/tutorials/sv-allowdownload-settings">the download cvars</a>.</p><h2>4. Compress with bzip2 for fast transfers</h2><p>FastDL clients will fetch a <code>.bz2</code> version of a file if it exists, decompressing it on arrival &mdash; much faster than the raw file. Create <code>.bz2</code> copies of each large asset alongside the originals on the web host:</p><pre>de_mymap.bsp      -&gt; de_mymap.bsp.bz2
mymap_crate.mdl   -&gt; mymap_crate.mdl.bz2</pre><p>Keep both the plain and the <code>.bz2</code> so any client works. The mechanics and tooling are in <a href="/tutorials/fastdl-bzip2-compression">FastDL bzip2 compression</a>.</p><h2>5. Confirm the WAD is delivered or embedded</h2><p>If textures are external, the custom <code>.wad</code> must be on both the server and the FastDL host and listed so clients fetch it &mdash; otherwise you get <a href="/tutorials/fix-missing-black-textures">black textures</a>. If you embedded with <code>-wadinclude</code>, skip this: nothing to ship. Never ship the giant stock WADs &mdash; every client already has <code>halflife.wad</code> and <code>cstrike.wad</code>.</p><h2>6. Keep the server and mirror byte-identical</h2><p>The server and the FastDL host must hold the <em>same</em> 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 &mdash; a map that plays fine on the server but pulls an old <code>.bsp</code> from a stale mirror gives players a version mismatch and a failed download. A simple discipline that prevents this: build the complete <code>cstrike/</code> 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 <a href="/tutorials/install-custom-maps-cs16-server">server has the map installed</a> and the mirror has every file the <code>.res</code> names, because the download only works when both halves agree.</p><h2>Common errors</h2><ul><li><strong>Everything 404s over HTTP</strong> &mdash; the <code>cstrike/</code> level is missing or doubled in the web root. The path must be <code>&lt;url&gt;/cstrike/maps/...</code> exactly.</li><li><strong>Map downloads but models are <code>ERROR</code></strong> &mdash; the model is not in the <code>.res</code> or not on the mirror. Reconcile the <code>.res</code> with the files.</li><li><strong>Black/checkerboard textures</strong> &mdash; external WAD not delivered, or not embedded. See <a href="/tutorials/fix-missing-black-textures">missing textures</a>.</li><li><strong>Downloads crawl</strong> &mdash; no <code>.bz2</code> copies, or <code>sv_downloadurl</code> unreachable. Add bzip2 files and test the URL.</li><li><strong>Sky blank for players</strong> &mdash; the six <code>gfx/env/</code> faces are not in the package. Ship all six.</li></ul><h2>Verification</h2><p>Use a clean client with none of the custom content and connect to the server with FastDL live. Watch the download list: the <code>.bsp</code>, 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 <code>.res</code> line or its position in the <code>cstrike/</code> tree is wrong &mdash; fix that one path and re-test. That clean-client download is the only proof the package is complete.</p>