Mann vs Machine runs on a normal Team Fortress 2 dedicated server: start it on an mvm_ map with -maxplayers 32, and six human defenders play against waves of robot bots driven by a mission file. Missions are .pop files in tf/scripts/population/, chosen with tf_mvm_popfile, and community servers can write their own. What a community server cannot do is Mann Up: tickets, tours of duty and the loot drops are tied to Valve's official matchmaking. Every other TF2 mode works the same way - the map prefix picks the mode, a few tf_ cvars change it, and the popular community modes (Versus Saxton Hale, dodgeball, MGE, prop hunt, jump) are SourceMod plugins or specially built maps on top. This guide covers MvM end to end, then the rest of the mode catalogue and what each one needs from a server.
How TF2 picks a game mode#
TF2 does not have a game mode setting. The map decides. When a map loads, the game reads the entities inside it - capture points, flags, payload carts, an MvM bomb - and runs the matching rules. The map prefix is a naming convention that tells humans what to expect.
| Prefix | Mode | Notes |
|---|---|---|
ctf_ | Capture the Flag | Also Mannpower with tf_powerup_mode 1 |
cp_ | Control Points | 5CP, attack/defend and medieval maps |
pl_ | Payload | One cart, attack/defend |
plr_ | Payload Race | Two carts racing |
koth_ | King of the Hill | One point, timers per team |
arena_ | Arena | One life per round |
sd_ | Special Delivery | Neutral flag to a rocket |
pass_ | PASS Time | Ball game |
rd_ / pd_ | Robot / Player Destruction | Collect and score |
tc_ | Territorial Control | Rotating point pairs |
mvm_ | Mann vs Machine | Co-op against robot waves |
That means a server's mode is its map list. A payload server is a server whose mapcycle.txt holds only pl_ maps; a mixed server alternates. The setup basics - SteamCMD, the token, server.cfg and the map cycle - are in the Team Fortress 2 server guide; this post assumes that part works.
Mann vs Machine: what the server needs#
MvM is the one mode with genuinely different server requirements, because the robots are real bot players.
- Slots. The robots occupy player slots. Six human defenders plus the robot waves need far more than six slots, which is why MvM servers are started with
-maxplayers 32. Starting with fewer slots caps how many robots can be alive at once and breaks missions designed for more. - Six humans maximum. The defending team is capped at six. Extra humans join as spectators.
- An `mvm_` map and a mission. Each map ships with one or more
.popmission files. Without a valid mission the map loads and nothing spawns. - Navigation meshes. Robots path using the map's
.navfile intf/maps/. Valve's MvM maps ship with them; custom MvM maps must include one, or the robots stand still. - CPU. Twenty-odd bots pathing, shooting and using abilities cost far more than six humans. MvM is the heaviest stock TF2 mode per human player.
$ ./srcds_run -game tf -console -port 27015 -maxplayers 32 \ +sv_setsteamaccount <token> +map mvm_coaltown| Setup | RAM | CPU | Notes |
|---|---|---|---|
| Valve missions, 6 players | 2-3 GB | 1.5-2 cores | Late waves with many robots are the peak |
| Custom missions, 6 players | 3-4 GB | 2+ cores | Custom robots and bigger waves |
| MvM plus SourceMod plugins | add 0.5 GB | add some | Depends on plugins |
On RE:NODE, Team Fortress 2 plans start at 2 GB with three port allocations, so the game and SourceTV each have their own number. A Valve-mission MvM server fits the lower tiers; a server built around custom missions belongs a tier or two higher, and the CPU graph against the plan's limit during the final wave is the honest test. CPU vs RAM for game servers explains how to read that.
Missions and pop files#
A mission is a population file: a KeyValues text file that defines the starting money, the waves, which robots appear in each wave, how many, where they spawn and what they carry. Valve's files are in tf/scripts/population/ inside the game's VPKs, and community ones are loose files in the same folder.
tf/scripts/population/ mvm_coaltown.pop normal difficulty mvm_coaltown_advanced.pop advanced mvm_coaltown_expert.pop expert robot_standard.pop shared robot templates robot_giant.popChanging mission is a console command on a running mvm_ map:
changelevel mvm_coaltowntf_mvm_popfile mvm_coaltown_advancedtf_mvm_popfile takes the file name without .pop and restarts the mission. Players can also vote for a different mission from the vote menu if votes are allowed. Valve's official maps are mvm_coaltown, mvm_decoy, mvm_mannworks, mvm_bigrock, mvm_rottenburg, mvm_mannhattan and the Halloween mvm_ghost_town; the exact list of missions per map depends on the game version.
Writing or installing custom missions
Custom missions are the reason most community MvM servers exist. A custom .pop file reuses the shared robot templates and adds its own: different weapons, attributes, health, abilities and wave structures. Installing one is a file copy - the .pop into tf/scripts/population/, plus any custom map, its .nav file and any custom content the mission needs.
The shape of a mission file is easier to understand from a small one. This is a single wave of twenty scouts, at most eight alive at once, spawning four at a time:
#base robot_standard.popWaveSchedule{ StartingCurrency 800 RespawnWaveTime 6 CanBotsAttackWhileInSpawnRoom no Wave { WaveSpawn { Where spawnbot TotalCount 20 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 5 TotalCurrency 200 TFBot { Class Scout Skill Normal } } }}StartingCurrency is the money players have before wave one, TotalCurrency is what that wave drops in total, and MaxActive is the number that decides how hard the server works - it is the cap on live robots from that spawn. Where names a spawn point in the map, and the names differ between maps, so copy them from the map's own Valve mission. Real missions also fire the map's relays at wave start and end for doors and announcements; open Valve's .pop for the same map to see which ones it uses. Load the file with tf_mvm_popfile mvm_coaltown_test and play the wave alone before showing it to anyone.
A few things to know before you go down this route:
- Players need the content. A custom map must be downloadable, which on TF2 means FastDL. Mission files themselves stay on the server.
- Templates are powerful and fragile. A robot with a misspelled attribute is not an error; it is a robot with that attribute silently missing. Test each wave alone with a friend before opening it.
- Some custom missions depend on plugins. Large community MvM projects extend robots with SourceMod plugins for behaviour the pop format cannot express. Check what a mission pack requires before installing it.
- Difficulty creep. It is easy to write a mission that is impossible with six players. Balance against your real player count.
Valve's other modes and the cvars that change them#
Most stock modes need nothing beyond the right maps. A few have switches worth knowing:
| Cvar | Mode | What it does |
|---|---|---|
tf_powerup_mode 1 | Mannpower | Grappling hooks and powerup runes on ctf_ maps built for it |
tf_medieval 1 | Medieval | Melee and a few ranged weapons only |
tf_medieval_autorp 1 | Medieval | Rewrites chat into mock-medieval phrasing |
tf_arena_use_queue 1 | Arena | Queues players who cannot fit in a round |
tf_arena_first_blood 1 | Arena | Crit bonus for the first kill |
tf_weapon_criticals 0 | All | Disables random crits |
tf_use_fixed_weaponspreads 1 | All | Fixed shotgun spread pattern |
mp_timelimit | All | Minutes per map |
mp_winlimit | All | Rounds won before the map ends |
The last four are the ones community servers argue about. tf_weapon_criticals 0 and tf_use_fixed_weaponspreads 1 are the "no random crits, no random spread" pair that many community servers advertise in their names, and they are the closest thing TF2 has to a competitive ruleset outside a league config.
Valve has also adopted some community modes into the game in recent updates - Versus Saxton Hale and Zombie Infection among them - with their own map prefixes. The official versions work on a plain server with the official maps; the plugin-driven community versions still exist and differ in detail.
Community modes: plugins and maps#
Everything else is SourceMod on top of a normal TF2 server. TF2 SourceMod plugins covers installing Metamod:Source and SourceMod and setting up admins; the modes below assume that is done.
| Mode | What it is | Built from |
|---|---|---|
| Versus Saxton Hale / Freak Fortress 2 | Everyone against one boss player | Plugin, plus boss packs for FF2 |
| Dodgeball | Homing rockets bounced by airblast | Plugin and tfdb_ maps |
| MGE | 1v1 arenas for duel practice | Plugin and mge_ maps |
| Prop Hunt | Hide as props, hunters search | Plugin and prop hunt maps |
| Jump | Rocket and sticky jump courses | jump_ maps, plugins for regen and saves |
| Surf | Momentum surfing | surf_ maps, usually with a timer plugin |
| Jailbreak | Guards and prisoners with a warden | Plugin and jb_ maps |
| x10 | Weapon stats multiplied by ten | Plugin and attribute tools |
| Slender Fortress | Co-op horror | Plugin, models and maps |
The three modes people ask for first
Versus Saxton Hale and Freak Fortress 2. One player becomes a boss with a huge health pool scaled to the number of opponents; everyone else tries to kill them before the round timer or the boss kills everyone. VSH has one boss and a fixed ruleset; Freak Fortress 2 is the extended version with boss packs - each boss a config, a model, sounds and abilities. FF2 servers are content-heavy, so FastDL is not optional, and a pack of thirty bosses is thirty sets of downloads. Start with a handful.
Dodgeball. Homing rockets spawn and target a player, who has to airblast them back as Pyro. Rockets speed up with each deflection until somebody misses. The plugin forces everyone to Pyro and spawns rockets on tfdb_ maps; the config sets rocket speed, turn rate and how much each deflection adds. It is one of the cheapest modes to host - few players alive, one or two projectiles - and one of the stickiest for regulars.
MGE. A map of small arenas where players queue for 1v1 duels, scored by an Elo-style rating that the plugin stores in a database. It is how competitive players practise their class away from a full team, and it needs very little: the plugin, mge_ maps and a database for ratings. Each game plan on RE:NODE comes with a database slot whose credentials are generated in the panel - check the plugin supports its engine, or use the local SQLite option that most SourceMod plugins offer.
Three practical rules apply to all of them:
- One mode per server. Each of these plugins assumes it owns the rules. Running dodgeball and VSH on one server with a map vote between them is how you get bosses with homing rockets.
- Check the plugin's dependencies. Many community modes depend on extensions such as TF2Items, TF2Attributes or TF2 Econ Data. Since TF2 moved to 64-bit server binaries, every extension needs a 64-bit build; a mode that was fine in 2023 may not load until its dependencies were rebuilt. Check each project's page for a current build before installing.
- Expect custom content. Boss models, sounds and maps all need to reach players. Set up FastDL before launch, not after the first player complains of missing textures.
Keeping a mode server populated#
A community mode server lives or dies by having people on it at the time other people look. MvM is the easiest: six players is a full game, so a group of friends can fill it alone and strangers join the leftover slots. Dodgeball and MGE fill quickly from small numbers. VSH, prop hunt and jailbreak need twelve or more to be fun, which is a real commitment.
Things that help:
- A clear server name. Mode, rules and region: "MvM custom missions | DE", "Dodgeball | no randoms". Players filter the browser by words.
- Tight map lists. Five good maps beat thirty mediocre ones. A map vote that keeps offering broken custom maps empties the server.
- Fast downloads. Custom modes without FastDL lose half their joiners at the download screen.
- Seed hours. Pick a regular evening, invite your group, and let the browser do the rest. Growing a game server community has more on this.
Performance and stability#
Stock modes are light; MvM and plugin-heavy modes are not. The common causes of a struggling mode server are the same each time: too many bots in MvM, plugins that run timers every frame, extensions built for the wrong architecture, and memory that creeps over days. A scheduled restart at an empty hour solves the last one. On RE:NODE the Schedules tab runs that restart from a cron expression, and the console graph shows CPU and memory against the plan's limits so you can see a wave spike rather than guess at it. Restart schedules that help covers how often is often enough.
When a TF2 update lands, mode servers break first. Metamod, SourceMod and every extension may need a new build; gamedata files go stale; plugins that read weapon attributes may misbehave. Take a backup before updating, and keep a vanilla fallback map cycle so the server can at least run stock maps while plugins catch up.
Troubleshooting#
MvM map loads but no robots spawn. No valid mission, or not enough slots. Check -maxplayers 32, then set a mission with tf_mvm_popfile.
Robots stand still or walk into walls. The map's .nav file is missing or out of date. Custom MvM maps must ship one; do not try to generate one for an MvM map yourself unless you know the mission's spawn and path setup.
"Bad population file" in the console. A syntax error in a custom .pop file. KeyValues are brace-sensitive; the line number in the error is usually near the problem.
A community mode plugin does not load after a TF2 update. The 64-bit change or stale gamedata. Check sm plugins list and sm exts list, update the extension and its gamedata, and look in addons/sourcemod/logs/ for the error.
Players see missing textures and error models. Custom content is not reaching clients. Set sv_downloadurl to a working FastDL host and check that every file is there in the same paths.
The server is full but only six people are playing MvM. That is correct - robots are using the other slots. Do not lower -maxplayers to "save" slots.
FAQ#
Can I run Mann Up on my own server?
No. Mann Up tours, tickets and loot drops only work on Valve's official MvM servers. Community servers run the same maps and missions, plus custom ones, without those rewards.
How many slots does an MvM server need?
Start it with -maxplayers 32. Only six humans can defend, but robots are bot players and need slots of their own; fewer slots break missions built around large waves.
Where do MvM mission files go?
In tf/scripts/population/ as .pop files. Load one with tf_mvm_popfile <name> on an mvm_ map, without the .pop extension.
Do community modes like VSH need special maps?
Most do. Dodgeball needs tfdb_ maps, MGE needs mge_ arenas, jailbreak needs jb_ maps. Versus Saxton Hale plays on boss-friendly maps, and Valve's official VSH has its own map set.
Why did my community mode stop working after an update?
TF2 updates often break SourceMod gamedata and extensions, and the move to 64-bit server binaries means old 32-bit extensions no longer load at all. Update SourceMod, the extensions and the plugin, in that order.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.