Dedicated server configuration
From TF2 Wiki
Windows-based Server Installation
To install a Team Fortress 2 Dedicated Server on a Windows-based computer, try using the Steam-based, command console Half-Life Dedicated Server Update Tool. HldsUpdateTool is an application that will update an existing Half-Life Dedicated Server installation to the latest version or will download the latest version (from scratch) if an existing version is not found.
Find the HldsUpdateTool here http://www.steampowered.com/download/hldsupdatetool.exe
Run this tool from a command shell and a GUI installer will pop-up and walk you through the initial tool installation. To save time/bandwidth downloading files, it's better to install HldsUpdateTool into the root folder of an existing Half-Life Dedicated Server installation.
Detailed installation instructions can be found here: http://forums.srcds.com/viewtopic/5439
To modify the welcome message that is displayed when a player first joins the server, edit the text in the motd.txt file.
File may not be greater than 1k (or maybe 1536 characters) in size.
Some more info here:
A tutorial how to create a MOTD that seamlessly fits into the TF2 chalkboard can be found at SpecialAttack
Outside of VAC securing a server, the first line of defence against cheating is the variable sv_pure. This variable controls where a client gets its information and acts as a means to restrict what kind of content and files can be modified/substituted on the player's side. This can be easily exploited by players if not configured properly. Its important to set this variable to 1 or 2 if you don't want to allow cheating on your servers because by default sv_pure is set to 0 which restricts nothing. Possible values are 0, 1, and 2 which are explained below.
- sv_pure = 0
- allows the client to specify the location of ANY game file. A client can potentially use modified files to gain an unfair advantage by doing things such as replacing enemy player models with ones that use bright colored skins, make walls invisible, add beacons onto the intelligence, or just about anything else you can think of. VAC doesn't protect against these kinds of exploits because they don't modify the game process itself. Its up to the server to decide what its clients can do.
- sv_pure =1
- restricts where the client can get information from based on a white list. The default white list is still set to allow custom player models as well as any potential exploits such as bright skins.
- sv_pure = 2
- forces the client to ignore ALL user content, and instead use the information supplied by steam. While this is the most secure, sv_pure 2 will prevent the use of even custom sprays.
For more information on Pure servers, including information on the white list format, see Pure Servers on the Valve Developer wiki.
The recommended value for this variable is typically 1 together with a modified white list either to allow directories of content that are difficult or impossible to cheat with, or remove the ability for players to supply their own models.
Command Line Options
Example Server.cfg for TF2 dedicated server
// General Settings // // Hostname for server. hostname yourserver.com TF2 Server // Overrides the max players reported to prospective clients sv_visiblemaxplayers 24 // Maximum number of rounds to play before server changes maps mp_maxrounds 5 // Set to lock per-frame time elapse host_framerate 0 // Set the pause state of the server setpause 0 // Control where the client gets content from // 0 = anywhere, 1 = anywhere listed in white list, 2 = steam official content only sv_pure 0 // Is the server pausable sv_pausable 0 // Type of server 0=internet 1=lan sv_lan 0 // Whether the server enforces file consistency for critical files sv_consistency 1 // Collect CPU usage stats sv_stats 1 // Execute Banned Users // exec banned_user.cfg exec banned_ip.cfg writeid writeip // Contact & Region // // Contact email for server sysop sv_contact firstname.lastname@example.org // The region of the world to report this server in. // -1 is the world, 0 is USA east coast, 1 is USA west coast // 2 south america, 3 europe, 4 asia, 5 australia, 6 middle east, 7 africa sv_region 0 // Rcon Settings // // Password for rcon authentication rcon_password yourpw // Number of minutes to ban users who fail rcon authentication sv_rcon_banpenalty 1440 // Max number of times a user can fail rcon authentication before being banned sv_rcon_maxfailures 5 // Log Settings // // Enables logging to file, console, and udp < on | off >. log on // Log server information to only one file. sv_log_onefile 0 // Log server information in the log file. sv_logfile 1 // Log server bans in the server logs. sv_logbans 1 // Echo log information to the console. sv_logecho 1 // Rate Settings // // Frame rate limiter fps_max 600 // Min bandwidth rate allowed on server, 0 == unlimited sv_minrate 0 // Max bandwidth rate allowed on server, 0 == unlimited sv_maxrate 20000 // Minimum updates per second that the server will allow sv_minupdaterate 10 // Maximum updates per second that the server will allow sv_maxupdaterate 66 // Download Settings // // Allow clients to upload customizations files sv_allowupload 1 // Allow clients to download files sv_allowdownload 1 // Maximum allowed file size for uploading in MB net_maxfilesize 15 // Team Balancing // // Enable team balancing mp_autoteambalance 1 // Time after the teams become unbalanced to attempt to switch players. mp_autoteambalance_delay 60 // Time after the teams become unbalanced to print a balance warning mp_autoteambalance_warning_delay 30 // Teams are unbalanced when one team has this many more players than the other team. (0 disables check) mp_teams_unbalance_limit 1 // Round and Game Times // // Enable timers to wait between rounds. WARNING: Setting this to 0 has been known to cause a bug with setup times lasting 5:20 (5 minutes 20 seconds) on some servers! mp_enableroundwaittime 1 // Time after round win until round restarts mp_bonusroundtime 8 // If non-zero, the current round will restart in the specified number of seconds mp_restartround 0 //Enable sudden death mp_stalemate_enable 1 // Timelimit (in seconds) of the stalemate round. mp_stalemate_timelimit 300 // game time per map in minutes mp_timelimit 35 // Client CVARS // // Restricts spectator modes for dead players mp_forcecamera 0 // toggles whether the server allows spectator mode or not mp_allowspectators 1 // toggles footstep sounds mp_footsteps 1 // toggles game cheats sv_cheats 0 // After this many seconds without a message from a client, the client is dropped sv_timeout 900 // Maximum time a player is allowed to be idle (in minutes), made this and sv_timeout equal same time? mp_idlemaxtime 15 // Deals with idle players 1=send to spectator 2=kick mp_idledealmethod 2 // time (seconds) between decal sprays decalfrequency 30 // Communications // // enable voice communications sv_voiceenable 1 // Players can hear all other players, no team restrictions 0=off 1=on sv_alltalk 0 // amount of time players can chat after the game is over mp_chattime 10 // enable party mode // tf_birthday 1
Disable Respawn Times
Valve added the option to disable TF2's respawn timer as part of the game's 220.127.116.11 update released in August 2008.