Windows dedicated server
This is a setup guide that allows you to install a basic Team Fortress 2 Windows dedicated server. In the below example the server is installed onto the C drive in a folder called 'TF2server'.
Contents
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:\steamcmd
.
Create a SteamCMD script
- Create a file called
tf2_ds.txt
in the folder where you installed the tool. - Edit the file with this text, remember to replace
C:\TF2server\
with your own directory:
@ShutdownOnFailedCommand 1 @NoPromptForPassword 1 force_install_dir C:\TF2server\ login anonymous app_update 232250 quit
If you want to opt for the prerelease version of the TF2 dedicated server, add this line after the app_update ID, in the same line:
-beta prerelease
Important note: the force_install_dir
should be different from the folder where your tool is located!
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 .\steamcmd.exe 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 very large. - You may need to run the file multiple times until the message "Success! App '232250' fully installed." or "Success! App '232250' already up to date." displays.
Create/update server files
- Create a file
server.cfg
inC:\TF2server\tf\cfg
(make sure it's not a text file!) - Edit the file with these details:
// The server name that players will see in the server browser and in the scoreboard hostname "Your server's name" // Leave empty if you do not want a password sv_password "" // Password to enable rcon access from the console rcon_password "Your_Rcon_Password" // Time per map in the rotation, in minutes. 0 to never rotate the map on a timer. mp_timelimit 30 // Maximum number of rounds to play per map before forcing a mapchange mp_maxrounds 10 // Allow clients to upload customization files (e.g. sprays) sv_allowupload 1 // Allow clients to download files (e.g. sprays, custom maps, custom content, etc.) sv_allowdownload 1 // Maximum allowed file size for uploading in MB (Optional) net_maxfilesize 15
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:\TF2server\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:\TF2server\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:\TF2server\srcds.exe
. Name the shortcut an appropriate name, - Right click on the shorcut, select properties,
- Set Target to:
"C:\TF2server\srcds.exe" -console -game tf sv_pure 1 map ctf_2fort maxplayers 24
- Set Start in to:
C:\TF2Server
- Allow it to use networking when the pop-up appears.
- Run the shortcut you have created to start your server.
This will start a pure server with 24 slots running on 2Fort by default. If you don't wish to apply pure server rules, you can remove sv_pure 1
. You can also change the value of maxplayers
up to 32.
Connecting to the Server
- Once you have run the server, scroll up in the console until you find a line of the form:
Network: IP <your ip address>, mode MP, dedicated Yes, ports <your port> SV / 27005 CL
. - Launch Team Fortress 2, and open up the developer console and enter
connect <your ip address>:<your port>
. - You should now be successfully connected to your server.
Other command line options
Some other common command-line options for TF2 are:
-ip 1.2.3.4
- 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 when starts the server.servercfgfile
- Whichtf\cfg\
file to execute on map change, defaults toserver.cfg
.mapcyclefile
- Whichtf\cfg\
file contains this server's mapcycle, defaults tomapcycle.txt
. Will also look intf\
-replay
- Executesreplay.cfg
and adds an additional slot for the replay bot, but removes it from the player count.