Configure TF2 through tf/cfg/server.cfg, the map rotation and a plugin system that matches your server build. Afterwards, check Steam login, joining and map changes. Round rules, network access and moderation permissions are separate tasks and should be tested individually.

Valve's TF2 dedicated server documentation covers the launch parameters in more detail; the player count belongs in the supported startup configuration.

Requirements

For the configuration you need access to your TF2 server in the game-serverhosting panel, the file manager or SFTP access, the server console and, ideally, RCON. If you want to use SourceMod, you also need MetaMod:Source and SourceMod from the official download sources.

Valve provides the management of Game Server Login Tokens via Documentation at steamcommunity.com. For Team Fortress 2, use the app ID 440 there if you want to enter your own token instead of the automatically assigned one.

At game-serverhosting, technical control is front and center: you can work conveniently in the panel, but you can still make changes directly to files such as server.cfg, mapcycle.txt and SourceMod configurations whenever you need to.

Order Your Server and Open Access

Select Team Fortress 2 as your game in the order wizard. After provisioning, open the server management page, the console and the file manager in the panel. You can also find the starting point for the entire community server setup in the guide Rent a Team Fortress 2 Server – Community Server Guide.

For other Source or survival servers, file paths and settings differ significantly. If you run multiple games, the separate guides on Rent a CS2 Server: Settings, Plugins & Workshop Maps 2025 and Rent a Valheim Server: Mods, Configuration & Boss Order 2026 help you compare the workflows.

Setting Up the GSLT Properly

The Game Server Login Token registers your server with Steam. At game-serverhosting, the token is automatically entered into the startup variable STEAM_ACC for normal operation. Check this value if your server does not appear in lists, players are disconnected immediately or the console reports token errors.

You can optionally use your own GSLT. Create it at Documentation at steamcommunity.com with app ID 440 and enter it in the panel under the startup variables:

STEAM_ACC=YOUR_GSLT_TOKEN

Use a separate token for each server and restart the server after the change. Do not share the token publicly, because it is tied to your Steam account.

Editing Server Variables in the Panel

The fastest way to configure TF2 is the guided editor directly in the panel on the server management page. You set player cheats (sv_cheats), round limits (mp_timelimit, mp_winlimit, mp_maxrounds), team balance (mp_autoteambalance) and friendly fire through labeled fields with help texts. game-serverhosting writes the changes back to tf/cfg/server.cfg. You can find the editor under Game Settings → Server Variables.

Guided server variables editor for Team Fortress 2 in the game-serverhosting panel
Guided server variables editor for Team Fortress 2 in the game-serverhosting panel

Editing server.cfg Manually

If you want to set ConVars that are not available in the editor, edit tf/cfg/server.cfg directly. Back up the file beforehand or use the backup function in the panel.

// Server name
hostname "My TF2 Server"

// Maximum players
// GSH sets +maxplayers from the booked slots; for a different slot tier, change your package

// RCON password for remote control
rcon_password "MyRCONPassword"

// Server password (empty = public)
sv_password ""

// Server region label; changes neither location nor latency
sv_region 3

// Send heartbeat to the Steam master server
heartbeat

// Prevent player cheats
sv_cheats 0
sv_pure 1

// Voice restrictions (optional)
// sv_voiceenable 1

// Pure server mode (prevents client modifications)
sv_pure_kick_clients 1

// TF2-specific: casual/competitive settings
mp_tournament 0
mp_teams_unbalance_limit 1
mp_autoteambalance 1

Do not leave sensitive values like rcon_password in screenshots or public support posts. After making changes, restart the server or run suitable RCON commands if the respective variable can be changed at runtime.

Setting Up Maps and the Mapcycle

You control the rotation through tf/cfg/mapcycle.txt. Each line contains a map name without a file extension:

cp_dustbowl
ctf_2fort
koth_harvest_final
pl_badwater
cp_granary
koth_nucleus
ctf_turbine
pl_upward
Prefix Game mode
cp_ Control Points
ctf_ Capture the Flag
koth_ King of the Hill
pl_ Payload
arena_ Arena
mvm_ Mann vs. Machine

You can trigger an immediate change via RCON or the panel console:

rcon changelevel koth_harvest_final
rcon mp_nextmap cp_dustbowl

Upload custom maps as .bsp files to tf/maps/. The entry in mapcycle.txt must match the file name exactly. With sv_allowdownload 1, clients can download missing files when joining; for large maps, a properly set up FastDL or Workshop workflow is better than slow direct downloads.

Installing and Managing SourceMod

SourceMod extends TF2 servers with admin commands, permission management and plugins. You can find the official downloads at Documentation at sourcemm.net and Documentation at sourcemod.net.

  1. Download MetaMod:Source.
  2. Download SourceMod.
  3. Extract both archives into the tf/ directory so that addons/metamod/ and addons/sourcemod/ exist.
  4. Restart the server.
  5. Check in the console that MetaMod and SourceMod load without errors.

You assign admin permissions in addons/sourcemod/configs/admins_simple.ini:

"STEAM_0:1:12345678"    "99:z"     // Super admin (all permissions)
"STEAM_0:0:98765432"    "bdk"      // Moderator (ban, kick)

You can find your Steam ID from your profile URL, for example via Documentation at steamid.io. Place plugins as .smx files in addons/sourcemod/plugins/.

Plugin Function
TF2 Scramble Team scramble after a round for balance
TF2 RTD Roll the Dice — random effects per round
AFKManager Automatically kick AFK players
SteamFriendsList Anti-cheat through friend check
MapChooser Vote-based map rotation
TFTrue Competitive rule sets (whitelist etc.)

Important ConVars for Operation

You can set these values in server.cfg, via RCON or through suitable panel fields:

// Respawn time
mp_respawnwavetime 10

// Critical hits
tf_weapon_criticals 1
tf_weapon_criticals_melee 2

// Player count for automatic start
mp_minplayers 6

// Play time per round in minutes
mp_timelimit 30

// Enable overtime
mp_overtime_enable 1

// Voice chat (0 = disabled)
sv_voiceenable 1

Always change only a few values at a time and document why you set them. That way you can find out more quickly later whether a problem comes from a ConVar, a plugin or a map.

Checking the Result

Restart the server and check the console first. No token, map or plugin errors should appear. Then connect as a player, test a map change, check RCON, open the admin menu and verify that the next mapcycle entry is loaded.

For visibility on Steam, a valid GSLT, reachable server ports, a working heartbeat and unproblematic tags are important. Only use values in sv_tags that actually describe your server, and remove old experiments if the server is not listed.

Troubleshooting

Server does not appear in the list

Check STEAM_ACC, server logs, port reachability and heartbeat. Then restart the server and wait a moment before searching again.

SourceMod plugin does not start

First check whether MetaMod:Source has been loaded. Then verify the file path, plugin version and the SourceMod logs. Many errors are caused by an incorrect folder structure after extracting.

Map change fails

Check whether the map is located in tf/maps/ and whether the name in mapcycle.txt matches exactly. For custom maps, also watch out for missing accompanying files.

Players are disconnected immediately

Common causes are token problems, sv_pure conflicts or faulty custom files. Read the last log lines after the join attempt and temporarily test with an official map.

Verifying a ConVar Against Its Actual Value

A line in server.cfg does not prove that it was applied. After startup, query the value in the server console and check for Unknown command as well as later configurations that may override it. The slot count is taken in the GSH setup as a start value from the booked slots; a custom CFG change does not expand the package; and the physical server region does not change through sv_region. For plugin problems, check MetaMod and SourceMod separately from native server plugins. Then test a normal join and a map change, because map-related configs can set round values again. Keep the GSLT and RCON password out of public logs.

FAQ

Do I need a separate GSLT for each TF2 server?

Yes. Use a separate Game Server Login Token for each server. At game-serverhosting, a token is set automatically for standard operation; you can optionally enter your own token via STEAM_ACC.

Should I use server.cfg or the panel editor?

Use the panel editor for common values such as round limits, cheats and team balance. Edit server.cfg directly if you need additional ConVars or want to maintain an existing configuration under version control.

How do I keep unwanted players out of private rounds?

Set a server password via sv_password, use a strong RCON password and only grant admin permissions to trusted Steam IDs. For public servers, clear rules and moderation plugins help.

Which maps are suitable for getting started?

For short, easy-to-follow rounds, koth_harvest_final and ctf_2fort are well suited. Payload maps like pl_badwater work better when your group already plays in a coordinated way.

Can I set up competitive rules?

Yes, you set basic values via ConVars. For stricter rule sets, whitelists and league-style workflows, check suitable league configurations and extensions. TFTrue is a native server plugin and not a SourceMod plugin; follow its own installation method and test the configuration separately before matches.