Skip to content

TF2 Server Management 101⚓︎

So you've decided to rent a private server for your team, or you're reserving one from a service for a scrim. Now you're left wondering, how do I run this thing? Working a TF2 server can be a daunting task for the inexperienced, but fret not, we're here to help! This guide will help you understand the basics of server management so you'll be able to get your games up and running smoothly.

RCON (Remote Console)⚓︎

Remote console (RCON) is the primary method of issuing console commands to the server from within the TF2 client. This enables you to perform admin actions such as changing maps or kicking players.

First you need to provide the RCON password using the command rcon_password [password]. This password is set by the server owner or the reservation owner, and you will not be able to use RCON unless your provided password is correct. Make sure you do not share this password with untrusted players! RCON does not support permission levels, so anyone with the password would be granted unrestricted access to controlling the server.

Once that's taken care of, using RCON is as simple as appending the prefix rcon to your console commands, for example: rcon sv_cheats 1 or rcon kick sigafoo. This will send the command to the server instead of executing them on your client, so you can control the server remotely.

Now that we know how RCON works, let's take a look at some important commands for competitive play. We will be omitting the rcon prefix in the following sections, so make sure to add it in yourself if you need to execute these commands remotely!

Executing configuration files⚓︎

Configuration files (config, .cfg) are text files using the .cfg file extension that often contain a series of commands. When used in conjunction with the exec console command, TF2 can automatically execute all the commands within the config as if they were entered directly into the console. RGL uses config files to store a list of server settings that are required during league matches.

To execute a config file, use the command exec [cfgname]. This will execute the specified config file within the \tf\cfg\ folder. RGL provides a series of config files to be used in different formats and gamemodes, the names of which are listed in the table below:

Highlander Prolander 6s
rgl_HL_koth rgl_7s_koth rgl_6s_5cp_match
rgl_HL_koth_bo5 rgl_7s_koth_bo5 rgl_6s_5cp_match_half1
rgl_HL_stopwatch rgl_7s_stopwatch rgl_6s_5cp_match_half2

For matches, your match page comes with a comment from your league admin with instructions on which config(s) to use. Make sure you check that you're using the right one for your games!

Setting item whitelists⚓︎

Item whitelists are text files with information on which equippable items are allowed/banned. When a whitelist is in use, players attempting to use a banned item will instead be equipped with the stock item in that slot. RGL uses whitelists to ban items and weapons considered broken or overpowered, with a different whitelist for each format.

To execute a whitelist, use the command mp_tournament_whitelist “[whitelistname].txt”. This will implement the specified whitelist file starting from the base \tf\ folder. If you want to use a whitelist file from within a subfolder, simply add the folder path before the whitelist name in the command, like so: mp_tournament_whitelist “cfg/rgl_whitelist_6s.txt”. By default, all RGL whitelists are stored with the config files within the \tf\cfg\ folder.

Additionally, if the server you're playing on has TFTrue or the SourceMod plugin downloader installed, you can use the commands tftrue_whitelist_id [id/presetname] or sm_whitelist_id [id/presetname] respectively to download and execute a whitelist from the website Since these commands download a whitelist when requested, they can be used to automatically use the most up-to-date version of the whitelist.

RGL uses a different whitelist for each format, the names of which are listed in the table below:

Format Whitelist file name preset name
Highlander rgl_whitelist_HL.txt rgl_9v9
Prolander rgl_whitelist_PL.txt rgl_7v7
6s rgl_whitelist_6s.txt rgl_6v6

Do note that if you're using any RGL config, the corresponding whitelist will automatically be applied.

Changing the current map⚓︎

To change the current map, use the command changelevel [mapname]. Do not use the command map as this will restart the server, forcing all players to reconnect and reconfigure the server. The map name provided must exactly match the file name of the map, so simply typing changelevel process will not work, for example, but you must use changelevel cp_process_final.

Kicking and banning players⚓︎

Sometimes players just won't leave when you need them to, whether they've gone AFK or they're just plain unwilling. Kicking and banning players is as simple as using the commands kick “[playername]” and ban “[playername]” respectively. You can also use the commands kickid “[id]” and banid “[id]" to remove players by their user ID or unique ID instead. Both names and IDs can be found for players currently on the server using the command status. Once you find the player you're looking for, simply copy their name or ID into your console command and give them the boot.

Setting up your private server⚓︎

Congratulations, you've decided to take the leap into server ownership! Depending on your server provider, managing your own server can be accomplished in any number of ways, but we're here to go over the most common methods of configuring and controlling your server. This guide should not be considered a replacement for official support; if you're having trouble doing something with your server, be sure to check in with your server provider first.

Most of this guide deals with renting a server from a provider that directly offers game servers such as Swiftnode, NFOservers, and GameServers. If you're looking to manually set up a TF2 server on a VPS or a machine you directly control, you will need to set up the Source Dedicated Server (SRCDS) yourself: click the following links for tutorials on installing a basic TF2 dedicated server on Windows or Linux.

RGL does not allow servers directly hosted on a player-owned machine or outside dedicated server providers to be used for league matches.

FTP (File Transfer Protocol)⚓︎

First thing now that you've got your server: how do you get files onto it? While many servers' control panels offer a file uploading interface, FTP is the standard for remotely transferring files between a client and a remote server. An FTP client application is required to make use of the protocol; we recommend FileZilla, a free and open-source client with a graphical interface.

Connecting to your FTP server is a lot like logging in to any other service: you need to provide a host address, username, password, and port. Most of the time, the host address will be your server's IP address, your username and password will be the same as your details with the server provider, and the port will be 21. Your server provider will have resources for you to find or change your FTP access details; make sure to look through your server's control panel!

Once you log in, your FTP client will display your game server's directory. Do some exploring and you'll notice it looks a lot like your own TF2 directory! From here it's just a matter of uploading the files you need into the necessary folders. Maps go in maps, configs in cfg, and so on and so forth. Be sure to get familiar with your FTP client so you can manage your server to its fullest!

Configuring your server.cfg⚓︎

server.cfg is the server's primary config file, automatically executed every time the server starts (just like autoexec.cfg for clients). While RGL configs apply many server variables required for competitive play, they don't set many of the basic variables that determine how the server runs by default. Your server should come with a premade server.cfg ready to go, but for now let's look at an example server.cfg of our own:

// ### - Example server.cfg ###
// This is an example of server.cfg contents.
// Text that appears after two slashes are “comments”.
// These two slashes will prevent the rest of the line from executing any commands and are used for commenting on the contents of the config.
// Let's start with some basic server variables/commands.

// Basic server convars
hostname “Example Server Name” // What your server will be named on the server browser
sv_password “changeme” // Sets a password to join the server
rcon_password “changemetoo” // Sets a password for RCON - do not share with others!
sv_pure 2 // Forces clients to use game files consistent with the server's

// SourceTV convars - Check out our full guide to STV for more details
tv_enable 1 // Enables SourceTV
tv_autorecord 1 // Enables auto-recording of STV demos
tv_password “changemethree” // Sets a password for STV

// Execute bans - These commands execute your saved user and user ID bans
exec banned_user.cfg
exec banned.cfg

// Ban write - These commands write any new bans from this session into your banned configs from the beginning

Click here to download our example server.cfg. You can use this as a template for writing your own.

Configuring FastDL⚓︎

FastDL is an option supported in TF2 servers that allows players to download maps and other files they need from a HTTP web server, instead of directly through TF2 which severely limits download speeds. Server providers often provide a courtesy web space to use for FastDL (which you can upload files to using FTP), but you can use any web server with the necessary files and folders.

Setting up FastDL is as simple as adding three commands to your server.cfg: sv_allowdownload 1, sv_allowupload 1, and sv_downloadurl “[fastdlurl]”. The directory the URL leads to should match the server's \tf\ directory, i.e. it should have folders like maps and materials immediately available from the address. Simply upload the files your players will need onto the web server and they'll be able to retrieve them at high speeds.

Installing SourceMod and plugins⚓︎

SourceMod is a server modification add-on that extends server functionality and administration, allowing owners to use plugins that change server behavior in new ways. Virtually every community server you play on uses SourceMod, and RGL requires SourceMod and some plugins to be installed on servers used for league matches.

As SourceMod is so ubiquitously used among server owners, virtually all major server providers offer a convenient way to automatically install SourceMod through their control panels. The SourceMod website also provides instructions on manually installing SourceMod into your server.

Once you've successfully installed SourceMod, installing most plugins is as simple as uploading their .smx files into the server's SourceMod plugins folder at \tf\addons\sourcemod\plugins\. Some plugins come with additional files that need to be unpacked in other folders, so make sure to read each plugin's installation instructions carefully.

Additionally, some plugins require configuring new server variables within server.cfg after installation for full functionality. For example, the uploader plugin requires that the command logstf_apikey "[apikey]" be added to server.cfg for logs to be automatically uploaded to their website, and will not work unless the variable is valid. As with general installation, be sure to read the plugin's instructions carefully!

RGL requires that servers used for league matches have these plugins installed for competitive integrity (click here to read the rules for more information):

  • Metamod 1.11
  • SourceMod 1.11
  • RGL Server Resources Updater Plugin, which bundles the following:
  • RGL Match Configs for all formats
  • Updated Updater Plugin
  • Updated Pause Plugin
  • TF2 Comp Fixes
  • SrcTV+
  • RGL QOL Tweaks
  • Progressive Ruleset Timer Plugins
  • TF2 Halftime
  • LogsTF/SupStats2/MedicStats by F2
  • OR: TFTrue
  • Note: Match logs must be auto uploaded using either TFTrue or LogsTF/SupStats2/MedicStats.
  • Uploader
  • Note: Teams may choose to not auto-upload demos, but must provide scrim/match STV demos when requested by an admin or anti-cheat.
    • It is up to teams to agree to an unlisted STV demo request, league staff will not facilitate or mediate STV demo requests.

Last update: June 12, 2023