Illustration for Add Custom Maps and Configure FastDL on a TF2 Server

Add Custom Maps and Configure FastDL on a TF2 Server

Add Workshop or BSP maps to a TF2 server and configure a FastDL mirror without download or version mismatch errors.

A TF2 server can load a map from Steam Workshop or from a .bsp file. For Workshop maps, let Steam distribute the matching version; reserve FastDL for custom files that you manage yourself. FastDL serves maps, sounds, models and materials over HTTP(S), outside the slower game channel.

Back up and choose the right method

Before changing anything, stop the server and back up tf/maps/, the active rotation file (mapcycle.txt or the file selected by mapcyclefile), tf/cfg/server.cfg, and custom materials/, models/ and sound/ content.

SourceRecommended methodUpdates
Steam WorkshopUse `workshop/ID` in commands and the rotationSteam supplies the version to server and players
BSP supplied by an authorCopy to `tf/maps/` and mirror on FastDLReplace manually on both server and mirror
Map with separate assetsBSP plus matching materials/models/sound pathsEvery file must stay in sync

Add a TF2 Workshop map

Copy the numeric ID from the end of the Workshop URL. Test it from the server console:

map workshop/MAP_ID

Once it loads and a clean client can join, add workshop/MAP_ID as a line in the rotation file that your server actually uses. This notation lets the server and clients retrieve the published Workshop build. Do not also copy a different BSP build to FastDL: files with the same name but different checksums cause “map differs from the server”.

Install a BSP and build the FastDL mirror

1

Install the content on the game server

Put my_map.bsp in tf/maps/. If the archive includes materials, models, sound, particles or resource, merge each folder under tf/ without changing its layout. Do not blindly overwrite system files from an untrusted archive.
2

Test before enabling FastDL

Run map my_map in the server console and read the log. Connect with a client that does not own the map. This validates the map name; stop the slow direct download after confirming the requested path if necessary.
3

Create the HTTP(S) mirror

On static web hosting, reproduce paths relative to tf/. If your base URL is https://cdn.example.net/tf2, the map must answer at https://cdn.example.net/tf2/maps/my_map.bsp or its .bz2 form. Mirror separate assets the same way.
4

Configure server.cfg

Enable downloads and point at the mirror root, quoted and without a trailing slash. Restart or execute the configuration, then inspect the effective cvar values in the console.
sv_allowdownload 1 sv_allowupload 0 sv_downloadurl "https://cdn.example.net/tf2"
5

Test with a clean client

Remove only the test map from the client cache, reconnect and watch HTTP requests. Load and walk through the map to spot purple materials, ERROR models or missing sounds.

You may provide a BZip2 version such as maps/my_map.bsp.bz2 on the mirror to reduce transfer size. Keep the normal .bsp in tf/maps/ on the game server: SRCDS loads the map, not the .bz2 archive.

Troubleshoot FastDL and custom maps

Checks in order

  • •Open the exact requested URL in a browser; an HTML 404 response is not a map file.
  • •Match letter case on Linux: Maps and maps are different directories.
  • •Quote sv_downloadurl; unquoted // may be parsed as a comment.
  • •Compare server, mirror and client files when the error says the map differs.
  • •Add loose assets with exact paths and, where needed, a SourceMod download table.
  • •Check sv_pure when content downloads but remains rejected or replaced.

For every non-Workshop map update, publish the new file to the server and mirror in the same maintenance window. Prefer a new filename for incompatible revisions; client caches make silently replacing a BSP under the same name unreliable.

Host TF2 with custom maps

Compare TF2 plans and check file access, mapcycle controls and FastDL space.

Frequently asked questions

Does a TF2 Workshop map need FastDL?
Not in the recommended flow. Reference it as workshop/ID so Steam supplies the matching build to server and players. Use FastDL for BSP files and assets you distribute yourself.
Why does a map show purple textures?
The BSP loaded but a material, texture or model is absent on the client. Reproduce every archive path under tf/ and on the mirror, then retest with a clean client cache.
Why does FastDL return 404?
The requested path is relative to sv_downloadurl. Check letter case, the no-trailing-slash rule, HTTP permissions and the exact normal or .bz2 file URL.

Sources: FastDL and TF2 Workshop map configuration and Source Dedicated Server documentation.

Our recommendation

Ready to launch your Team Fortress 2 server?

Here are the best Team Fortress 2 hosting deals right now, promo codes included. Still unsure? Our quiz finds the ideal host for you in under 2 minutes.

Budget

Team Fortress 2 — 4 Go

WinterNode

7.11€/month
-20% with code HOSTMYGAME
Max players:Unlimited
Mods:
Yes

Specifications

RAM:4 Go

Compatible games

Team Fortress 2

Features

  • ✓4 Go de RAM au minimum
  • ✓CPU sans limite fixe, sous politique d'usage raisonnable
  • ✓Stockage NVMe sans limite fixe, extension sur demande
  • ✓Sauvegardes automatiques toutes les 12 heures
  • +2 more features
Budget

Team Fortress 2

OptiNAS

3.49€/month
-10% with code HOSTMYGAME
Max players:Unknown
Mods:
Yes

Specifications

RAM:2 Go

Compatible games

Team Fortress 2

Features

  • ✓Environ 12 joueurs
  • ✓Minimum : 2 vCPU et 2 Go de RAM
  • ✓Conseillé : 2 vCPU et 2 Go de RAM
  • ✓Plugins et mods possibles selon le jeu
  • +2 more features
TF2 Custom Maps and FastDL Server Setup | HostMyGame