1 Why you need FastDL

By default, Garry's Mod sends custom content (maps, models, materials, sounds) to players over the game's own connection — and it's throttled to a crawl. On a content-heavy DarkRP or build server that means new players sit on the loading screen for minutes, or worse, join to missing textures and errors because the download timed out.

FastDL fixes this by hosting the same files on a normal web server and telling the game to grab them over HTTP — often 10–50× faster. It's the difference between a 5-second join and a 5-minute one.

2 What you'll need

  • A place to host files over HTTP — your game host's built-in FastDL space, a small web host, or object storage with a public URL. Many hosts (Solace included) give you a FastDL folder.
  • SFTP/file access to both your game server and the web host.
  • Optionally a tool to bzip2-compress files (more below).

3 Point the server at your FastDL URL

In your server.cfg, add (and allow downloads):

sv_downloadurl "https://fastdl.yoursite.com/garrysmod/"
sv_allowdownload 1
sv_allowupload 0

The URL is the web folder that holds your content. Everything after it must line up with the in-game paths (next step).

Not sure where these lines go? Our GMod server.cfg generator writes sv_downloadurl, sv_allowdownload and the Workshop launch line in the right places for you.

4 Mirror the folder structure — this is where people slip up

The files on your web host must sit in the same folders they live in inside garrysmod/. If a map is garrysmod/maps/rp_downtown.bsp on the server, it must be reachable at https://fastdl.yoursite.com/garrysmod/maps/rp_downtown.bsp.

your-fastdl-web-root/
└── garrysmod/
    ├── maps/        rp_downtown_v4c_v2.bsp
    ├── materials/   ... .vmt / .vtf
    ├── models/      ... .mdl / .vtx / .phy
    ├── sound/       ... .wav / .mp3 / .ogg
    └── resource/    ... fonts, etc.

Copy the relevant folders from your server's garrysmod/ up to the web host, keeping the paths identical. Wrong paths = the file isn't found = the player falls back to slow download or gets an error.

5 Compress with bzip2 (faster + smaller)

Garry's Mod will request a .bz2 version of each file first. If you upload bzip2-compressed copies, downloads are smaller and faster — and the game decompresses them automatically.

  • Compress each file so maps/rp_downtown.bsp also has maps/rp_downtown.bsp.bz2 next to it.
  • Keep the .bz2 in the same folder, same name + .bz2.
  • You can serve uncompressed files too, but compressing the big ones (maps especially) is the single biggest speed win.

6 Make clients actually download it

Pointing at a URL isn't enough — the server has to tell clients which files to fetch. Two ways:

Custom content (non-Workshop)

In garrysmod/lua/autorun/server/, create a file (e.g. fastdl.lua) that lists what clients need:

-- lua/autorun/server/fastdl.lua
resource.AddFile("maps/rp_downtown_v4c_v2.bsp")
resource.AddFile("materials/mylogo.vmt")
resource.AddFile("materials/mylogo.vtf")
-- ...one line per file clients must have

The map your server is running is sent automatically, but extra materials/models usually need an explicit resource.AddFile.

Workshop addons (the easier modern way)

If your content is on the Steam Workshop, skip manual FastDL for it and let Steam deliver it:

-- force a whole collection
resource.AddWorkshop("YOUR_COLLECTION_ID")

Even better, set +host_workshop_collection YOUR_COLLECTION_ID on your server's launch line so the collection auto-downloads on join. FastDL is then only for custom content that isn't on the Workshop.

7 Common mistakes

  • Missing/pink textures in-game → the material/model wasn't on FastDL or wasn't resource.AddFile'd. Check the path matches exactly.
  • Files still download slowlysv_downloadurl typo, wrong folder structure, or the web host is returning 404 for the file. Open the file's full URL in a browser — it should download, not 404.
  • Nothing downloadssv_allowdownload is 0, or you forgot the resource.AddFile lines.
  • Web host blocks the file types → make sure your host serves .bsp, .bz2, .vtf etc. (correct MIME / no blocking).

FastDL space, built in

Solace Garry's Mod servers come with FastDL and Workshop support ready to go, on high-clock CPUs with NVMe storage and DDoS protection — so content delivery is one setting, not a side project.

View Garry's Mod hosting

8 Quick recap

  1. FastDL = your content served over fast HTTP instead of GMod's slow built-in route.
  2. Set sv_downloadurl + sv_allowdownload 1 in server.cfg.
  3. Mirror the exact garrysmod/ folder structure on the web host.
  4. bzip2-compress the big files (.bz2 next to each).
  5. resource.AddFile() custom content; use a Workshop collection for addons.
  6. Pink textures or 404s = a path that doesn't match — fix the path.