Windows dedicated server
Download and install the SteamCMD Tool
It is recommended you create a separate user to install and run game servers. It is also recommended you use the non-beta version of the Steam client, otherwise it won't be able to locate Steam libraries.
- Download steamcmd.zip
- Unzip steamcmd.zip to a directory, for example 'C:\hlserver'.
Create a SteamCMD script
- Create a file called tf2_ds.txt in the folder where you installed the tool. In this example, that is 'C:\hlserver'
- Edit the file with this text:
@ShutdownOnFailedCommand 1 @NoPromptForPassword 1 login anonymous force_install_dir c:\hlserver\tf2 app_update 232250 quit
If you want to opt in to the prerelease version of the TF2 dedicated server, add this line before the app_update line:
Create an updating batch file
- Create a file called update.bat in the folder where you installed the tool.
- Edit the file with this text:
@echo off title update.bat steamcmd +runscript tf2_ds.txt
Start the download/update
- Run the update.bat to start the download. This may take several hours as dedicated server content is currently 5.8 GB.
- You may need to run the file *multiple* times until the message "Success! App '232250' fully installed." displays.
Create/Update server files
- Create a file called server.cfg in 'C:\hlserver\tf2\tf\cfg'
- Edit the file with these details:
hostname "Your server's name" //The server name that players will see in the server browser and in the scoreboard sv_password "" //Leave empty if you do not want a password rcon_password "Your_Rcon_Password" //Password to enable rcon access from the console mp_timelimit 30 //Time per map in the rotation, in minutes. 0 to never rotate the map on a timer. mp_maxrounds 10 //Maximum number of rounds to play per map before forcing a mapchange sv_allowupload 1 // Allow clients to upload customization files (e.g. sprays) sv_allowdownload 1 // Allow clients to download files (e.g. sprays, custom maps, custom content, etc.) net_maxfilesize 15 // Maximum allowed file size for uploading in MB (Optional)
An example with more cvars (console variables) can be found in Example Server.cfg for TF2 dedicated server.
- Create the files motd.txt and mapcycle.txt in 'C:\hlserver\tf2\tf\cfg'
- You may want to use the motd_default.txt and mapcycle_default.txt as references
- Create a file called pure_server_whitelist.txt in 'C:\hlserver\tf2\tf\cfg'
- It is advised that you copy and paste the contents of the pure_server_whitelist_example.txt file into your file first, and then apply any modifications you may want
Create a file to run the server
- Create a shortcut that references to the file 'C:\hlserver\tf2\srcds.exe'. Name the shortcut an appropriate name,
- Right click on the shorcut, select properties,
- Set Target to:
C:\hlserver\tf2\srcds.exe -console -game tf +sv_pure 1 +map ctf_2fort +maxplayers 24
- Set Start in to:
- Run the shortcut you have created to start your server.
Other command line options
Some other common command-line options for TF2 are:
-ip 184.108.40.206- Bind to a specific IP address. By default, the server listens on all network interfaces.
-port 27015- Bind to a different port (27015 is the default)
-strictportbind- If a server is already running on the specified port, the server will shut down instead of moving to the next available port.
+randommap- Use instead of +map to select a map at random
+servercfgfile- Which tf\cfg\ file to execute on map change, defaults to server.cfg
+mapcyclefile- Which tf\cfg\ file contains this server's mapcycle, defaults to mapcycle.txt. Will also look in tf\
-replay- Executes replay.cfg and adds an additional slot for the replay bot, but removes it from the player count.