Team Fortress 2 Admin Commands: RCON & SourceMod List
Set rcon_password, moderate with kickid and banid, then run every SourceMod sm_ command — the full TF2 admin list with permission flags explained.
Team Fortress 2 gives you two separate admin systems: the built-in RCON console that ships with every Source dedicated server, and SourceMod, the plugin platform that adds the familiar sm_ commands and an in-game admin menu. This guide covers both — how to get access, where to type, and every command worth knowing.
RCON works out of the box, SourceMod does not
Everything in sections 1–5 works on a stock TF2 server with no plugins. The
sm_commands in section 6 require SourceMod to be installed first — see How to install SourceMod plugins for Team Fortress 2.
1. How TF2 Admin Access Works
There is no "op" list in vanilla TF2. Access is proven two ways:
| System | You authenticate with | Gives you |
|---|---|---|
| RCON | rcon_password (a shared password) |
Full server control from console or a remote tool |
| SourceMod | Your SteamID, listed in a config file | Per-command permissions and an in-game menu |
RCON is all-or-nothing — anyone with the password can run anything, including quit. SourceMod is what you want the moment you have more than one admin, because it grants specific powers to specific SteamIDs.
2. Set Up RCON
Add these to tf/cfg/server.cfg:
rcon_password "USE_A_LONG_RANDOM_STRING"
sv_password "" rcon_password— the admin password. Leave it empty to disable RCON entirely.sv_password— the join password. Empty means a public server.
Never reuse your Steam password here
rcon_passwordis transmitted by older clients in plain text and grants total control of the server process. Use a long random string that you use nowhere else, and change it if it is ever shared.
To authenticate from your own game client, open the developer console and run:
rcon_address <your.server.ip>:27015
rcon_password YOUR_PASSWORD
rcon status On the GSK panel you can skip RCON entirely
The Console tab in your GameServerKings panel is already authenticated against your server. Type commands there without the
rconprefix and without exposing a password.
3. Server & Player Management
Run these from the server console directly, or prefix with rcon from a game client.
| Command | What it does |
|---|---|
status |
List every connected player with userid, name, SteamID, ping and IP |
stats |
Server CPU, framerate and bandwidth |
kick "<name>" |
Kick a player by name |
kickid <userid> "<reason>" |
Kick by userid from status — safer, names can contain spaces |
banid <minutes> <steamid> |
Ban by SteamID, in the STEAM_0:1:12345678 form status prints. 0 minutes means permanent |
banip <minutes> <ip> |
Ban an IP address |
removeid <steamid> |
Lift a SteamID ban |
removeip <ip> |
Lift an IP ban |
writeid |
Save SteamID bans to disk |
writeip |
Save IP bans to disk |
listid |
Show current SteamID bans |
changelevel <map> |
Change map immediately |
exec <file> |
Run a config from tf/cfg/ |
quit |
Shut the server down |
Bans vanish on restart without
writeid
banidonly holds the ban in memory. Runwriteid(orwriteip) afterwards to commit it tobanned_user.cfg/banned_ip.cfg. This is the single most common reason a banned player walks straight back in after a map change or reboot.
4. Match & Gameplay Settings
These are convars — they hold a value rather than firing once. Set them in server.cfg to apply on every boot.
| Convar | Default | What it controls |
|---|---|---|
mp_timelimit |
30 |
Minutes before the map ends |
mp_winlimit |
0 |
Round wins before the map ends (0 = off) |
mp_maxrounds |
0 |
Rounds played before the map ends |
mp_friendlyfire |
0 |
Allow teammates to damage each other |
mp_autoteambalance |
1 |
Force-switch players to even the teams |
mp_teams_unbalance_limit |
1 |
Player difference tolerated before balancing |
mp_forcecamera |
0 |
1 restricts deathcam to your own team |
mp_disable_respawn_times |
0 |
1 respawns players instantly |
mp_scrambleteams |
— | Run once to scramble teams now |
mp_restartgame <sec> |
— | Restart the round after N seconds |
sv_alltalk |
0 |
1 lets both teams hear each other |
sv_pure |
1 |
Restrict client-side custom content |
sv_gravity |
800 |
World gravity |
nextlevel <map> |
— | Force the next map in rotation |
For competitive formats and the tournament-mode convars, see Team Fortress 2 Gamemodes.
5. Bots and Cheat Commands
sv_cheats 1 must be set before any command in the second table works. Turning it on flags the server, so use it on a private or test server rather than a live public one.
| Command | What it does |
|---|---|
tf_bot_add <count> [team] [difficulty] |
Add AI bots, e.g. tf_bot_add 4 blue normal |
tf_bot_kick <name|all> |
Remove bots |
tf_bot_quota <n> |
Target number of bots to maintain |
tf_bot_difficulty <0-3> |
Easy, Normal, Hard, Expert |
bot_kill <name|all> |
Kill bots without removing them |
With sv_cheats 1:
| Command | What it does |
|---|---|
noclip |
Fly through walls |
god |
Invulnerability |
buddha |
Take damage but never drop below 1 HP |
impulse 101 |
Full ammo and metal |
hurtme <n> |
Damage yourself by N (negative heals) |
kill |
Kill your own character |
explode |
Kill yourself dramatically |
mp_forcewin <team> |
Instantly end the round |
6. SourceMod Admin Commands
Once SourceMod is installed, these run from chat (! shows the output publicly, / hides it) or from console with the sm_ prefix. The flag column is the permission an admin needs — see section 7.
Core administration
| Command | What it does | Flag |
|---|---|---|
sm_admin |
Open the in-game admin menu — the fastest way to do everything below | admin |
sm_help |
List every admin command available to you | admin |
sm_who |
Show which players have admin and what flags | admin |
sm_kick <player> [reason] |
Kick a player | kick |
sm_ban <player> <minutes> [reason] |
Ban a connected player (0 = permanent) |
ban |
sm_addban <minutes> <steamid> [reason] |
Ban a SteamID that is offline | rcon |
sm_banip <minutes> <ip> |
Ban an IP address | ban |
sm_unban <steamid|ip> |
Lift a ban | unban |
sm_map <map> |
Change the current map | map |
sm_cvar <convar> [value] |
Read or set any convar | cvar |
sm_resetcvar <convar> |
Reset a convar to its default | cvar |
sm_rcon <command> |
Run a raw RCON command | rcon |
sm_execcfg <file> |
Execute a config file | config |
sm_reloadadmins |
Reload the admin list after editing it | config |
Punishment and moderation
| Command | What it does | Flag |
|---|---|---|
sm_slay <player> |
Kill a player | slay |
sm_slap <player> [damage] |
Slap a player around, optionally hurting them | slay |
sm_beacon <player> |
Attach a visible tracking ring | slay |
sm_burn <player> [seconds] |
Set on fire | slay |
sm_rename <player> <name> |
Rename a player | slay |
sm_gag <player> |
Block text chat | chat |
sm_mute <player> |
Block voice chat | chat |
sm_silence <player> |
Block both | chat |
sm_ungag / sm_unmute / sm_unsilence |
Reverse the above | chat |
Messaging
| Command | What it does | Flag |
|---|---|---|
sm_say <message> |
Say-chat message to everyone | chat |
sm_csay <message> |
Centre-screen message | chat |
sm_tsay <message> |
Top-left message | chat |
sm_hsay <message> |
Centre-bottom hint box | chat |
sm_msay <message> |
Message shown as a menu panel | chat |
sm_psay <player> <message> |
Private message to one player | chat |
sm_chat <message> |
Message visible to other admins only | chat |
sm_play <player> <file> |
Play a sound file on the server | admin |
Voting
| Command | What it does | Flag |
|---|---|---|
sm_vote <question> [options] |
Start an arbitrary vote | vote |
sm_votekick <player> |
Vote to kick | vote, kick |
sm_voteban <player> |
Vote to ban | vote, ban |
sm_voteslay <player> |
Vote to slay | vote, slay |
sm_voteburn <player> |
Vote to burn | vote, slay |
sm_votemap <map> [map2] … |
Vote to change map | vote, map |
sm_voteff |
Vote to toggle mp_friendlyfire |
vote |
sm_votealltalk |
Vote to toggle sv_alltalk |
vote |
sm_votegravity |
Vote to change sv_gravity |
vote |
sm_cancelvote |
Cancel a vote in progress | vote |
Some commands come from optional plugins
sm_beacon,sm_burnandsm_slapship in SourceMod's funcommands plugin, and thesm_vote*set in funvotes — both are bundled but can be disabled. If a command is unrecognised, check that its.smxfile is still inaddons/sourcemod/plugins. Community plugins add many more, such assm_freezeandsm_timebomb.
7. Granting SourceMod Admin
Edit tf/addons/sourcemod/configs/admins_simple.ini and add one line per admin:
"STEAM_0:1:12345678" "99:z" 99 is the immunity level (higher numbers cannot be targeted by lower ones) and z is the root flag — everything. For a moderator who should kick and ban but not touch convars or RCON, use the specific flags instead:
"STEAM_0:1:87654321" "50:bcdefj" | Flag | Grants |
|---|---|
a |
Reserved slot |
b |
Generic admin (required for most commands) |
c |
Kick |
d |
Ban |
e |
Unban |
f |
Slay / slap |
g |
Change map |
h |
Change convars |
i |
Run configs |
j |
Chat commands (gag, mute) |
k |
Start votes |
l |
Set a server password |
m |
RCON access |
n |
Enable cheats |
z |
Root — all of the above |
Run sm_reloadadmins after saving, or change the map, for the file to take effect.
Use the SteamID format SourceMod expects
admins_simple.iniwants the legacySTEAM_0:1:12345678form, not the 17-digit SteamID64. Runningstatuson your server prints each connected player in exactly the right format — copy it straight from there.
8. FAQ
How do I make myself admin on my own TF2 server?
For full control immediately, set rcon_password in tf/cfg/server.cfg and authenticate with rcon_password YOUR_PASSWORD from the in-game console. For named per-person admin with an in-game menu, install SourceMod and add your SteamID to admins_simple.ini with the z flag.
Why do my bans keep disappearing?
Because banid and banip only write to memory. Run writeid and writeip afterwards to save them to banned_user.cfg and banned_ip.cfg. SourceMod's sm_ban saves automatically, which is one reason to prefer it.
Do TF2 admin commands need a slash?
In the server console and over RCON, no — type status, not /status. SourceMod commands typed in chat need a prefix: ! runs the command and shows the reply to everyone, / runs it silently. From console, use the full sm_ name with no prefix.
What is the difference between kick and kickid?
kick matches on player name, which breaks when a name contains spaces or unicode. kickid uses the numeric userid shown by status and is always unambiguous — prefer it in scripts.
Can I run admin commands without SourceMod?
Yes. Everything in sections 3 through 5 is built into the Source engine. SourceMod adds per-admin permissions, the in-game menu, gagging and muting, and persistent bans — but it is not required for basic moderation.
Why does noclip say "unknown command"?
The cheat commands need sv_cheats 1 set first, and it must be set on the server, not your client. Note that enabling cheats is visible to players and will disable achievements for the session.
9. What to Read Next
- Getting started with your Team Fortress 2 Server for first boot and the core config
- How to install SourceMod plugins for Team Fortress 2 — required for every
sm_command above - How to use Custom Maps and setup FastDL for Team Fortress 2
- Team Fortress 2 Gamemodes
Made with 💜 by GameServerKings
Need a Team Fortress 2 server?
Deploy an instantly-provisioned Team Fortress 2 server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $5.40 /month