Bots
This article or section may need to be rewritten entirely to comply with Team Fortress Wiki's quality standards. You can help. The discussion page may contain suggestions. |
There are two types of bots in TF2:
- The first type is AI Bots. They are coded with sophisticated artificial intelligence designed to emulate player actions in game. Regular use of these bots does not disable achievements.
- The second type is Puppet Bots. They have no AI coding, and are useful for testing and training. They require the server to have cheats enabled, disabling achievements.
Contents
AI Bots
AI bots can take the place of human players. They can only be spawned, and cannot be directly controlled. In addition, you cannot choose which class of bot to spawn -- they are randomly chosen by the game. They use sophisticated AI code, based on the PlayerBot and Infected AI in the Left 4 Dead series [1]. They do not require the server to have cheats enabled, therefore human players can gain achievements while playing with them.
However, bots can be indirectly controlled, to a certain extent:
- Any friendly bot that you place your crosshair over during the setup time will taunt automatically,
- A bot Medic will heal you if you press the "Medic!" voice command.
- If a Medic Bot is healing you and has an ÜberCharge ready, using the voice commands "Go go go!" or "Activate Charge!" will force the Bot to activate his stored ÜberCharge.
Current AI Bot Status
- They are still in beta testing. Therefore, they are incomplete and will become more sophisticated as they are patched.
- Not all classes have proper AI; a perfect example of this is the Spy. Valve is most likely still working on this. When playing with bots, the Spy will only be used: when playing in Highlander mode, by typing tf_bot_force_class Spy into the Developer's Console, or by setting class restrictions with a third party program.
- AI Bots only work properly for most official King of the Hill maps, and Dustbowl, other than both Harvest variants. On other maps, they will simply sit in the spawn room and will attack any enemy that enters.
- They seem to work fine on pl upward if the user previously created npc navigation meshes. However, the navigation meshes are not official, and they do not yet work very well on other Payload maps.
- Bots currently can not use or equip unlockable content: including any weapons in the drop system, hats, miscellaneous items or any other form of cosmetic item.
- It is possible to use AI bots on non-supported maps, but results will vary. To do this, the server must have cheats enabled (players will not be able to earn achievements), and bot pathing must be generated.
The method for using bots on unsupported maps:
- Type sv_cheats 1
- Type nav_generate
- Wait a few minutes while the game works out where and how to use the bots
- Map will exit and reload (navigation is saved, so no need to repeat previous step)
- Open console and type tf_bot_add <number> as above
- Bots do not work on Capture the Flag or Payload maps even if the above tutorial is used.
AI Bot Behavior
- It is very easy to tell a disguised Spy bot from a regular bot. Disguised Spy bots will run away from the player or other enemy bots while facing them if they are approached. They will also never use Cloak and are terrible at ambushing.
- Bots currently can not, or will not jump, rocketjump or stickyjump on purpose in any form of way.
AI Bot Commands
To use AI bots on supported maps, the server administrator opens the console and types in the following commands:
Command | Description |
---|---|
tf_bot_add | This command will create one or more AI bots of random classes on random teams. They will also be assigned amusing human-like names.
|
tf_bot_difficulty | Defines the skill of bots joining the game.
|
tf_bot_force_class | If set to a class name, all TFBots will respawn as that class.
|
tf_bot_join_after_player | If nonzero, bots wait until a player joins before entering the game.
|
tf_bot_keep_class_after_death | If zero, bots will always respawn as a different class.
|
tf_bot_kick |
This command will remove one or all AI bots.
|
tf_bot_prefix_name_with_difficulty | If nonzero, append the skill level of the bot to the bot's name
|
tf_bot_quota | Determines the total number of tf bots in the game. Only has effect is "tf_bot_quota_mode" = "fill" or "match".
|
tf_bot_quota_mode | Determines the type of quota.
|
Notes
- A pack of pre-made bot meshes has been compiled for many popular maps.
Puppet Bots
Puppet bots have no AI code, and therefore cannot replace human players. They can not move or act on their own. You can use them like puppets though, manipulating them to do things such as follow you around and fire their weapons.
They are mainly useful for testing, and with a hint of imagination and creativity; making stunning visuals. They are also good for the sheer fun of manipulating groups into coreographed attacks.
Because they require the server to have cheats enabled, achievements are disabled.
Puppet Bot Commands
Some of these commands work and some don't. For clarity, the complete list is included. Note that for all commands, entering the command without any options will display the command's current setting and a brief (one line) help.
Command | Description | |||
---|---|---|---|---|
bot | This command will create a bot on the given team with the specified class and name. If team or name is omitted, they will be assigned randomly.
| |||
bot_changeclass | Force all bots to change to the specified class.
Does not seem to be implemented, nothing happens. | |||
bot_changeteams |
Make all bots change teams. This forces all the bots to switch teams. If a bot was on the RED team then it will now be on the BLU team and vice versa. | |||
bot_command | Sends specified command on behalf of specified bot.
| |||
bot_defend | Set to a team number, and that team will all keep their combat shields raised.
For instance, Heavies will spin their miniguns. | |||
bot_dontmove | Bots are allowed or prevented from moving. When set to 1 the bots cannot move but they can still turn and jump. Note with a combination of this command and bot_mimic you can move bots to where you want them and leave them there.
| |||
bot_forceattack | This will make all the bots automatically fire whatever weapon they currently have selected. If bot_forceattack2 is set to 0, then the bots will execute primary_fire. If bot_forceattack2 is set to 1, then the bots will execute secondary_fire.
Note this does nothing if
| |||
bot_forceattack2 | This will make all the bots execute secondary_fire on whatever weapon they currently have selected when bot_forceattack is set to 1.
| |||
bot_forceattack_down | When firing, don't tap fire, hold it down. If this is set to 0 then the bot will act like they are continuously tapping the fire button (useful for the Pistol, but not for the Heavy's Minigun). If this is set to 1 then the bot will act as if it is holding down the fire button (useful for the Heavy).
| |||
bot_forcefireweapon | Forces all bots who have the specified weapon to switch to and fire it.
If a bot does not have this weapon, nothing happens to it (unless it is firing a different weapon, in which it stops)
| |||
bot_kill |
Kills the specified bot.
| |||
bot_mimic | Bot uses usercmd of player by index.
The bot will execute all keystrokes issued by a player, mimicking movements, turns, jumps, fire, etc. Note this overrides
| |||
bot_mimic_yaw_offset |
Offsets the bots' yaw. The bots will face in a direction this angle from the player. By default this is set to 180 so that all bots will face the player. Setting this to 0 will face the bots in the same direction as the player.
| |||
bot_randomnames |
This will add text to bot names, apparently used for testing during development, some examples: "Yet more Bot names, medium size," "Another bot," "This is a medium Bot," "This is a super long bot name t" AI Bot NamesThe AI bots are programmed to have different names. A lot of their names are references to many of Valve's works, such as, but not limited to, Portal, Left 4 Dead and its sequel, and the Half-Life series. They also include some references to Team Fortress and the fandom as well. Many of these names have been requested on the Steam forums.
bot_randomnames <0/1>
| |||
bot_refill | Refills all bots' Ammo counts, including Metal for Engineers.
Syntax: | |||
bot_saveme | This makes all the bots call for a Medic, equivalent to issuing bot_command <botname> "voicemenu 0 0" to every bot.
Syntax:
| |||
bot_selectweaponslot | This makes the first bot select weapon in specified weapon slot.
0 = primary; 1 = secondary; 2 = melee; 3 = special Note this only works for the first bot spawned. There doesn't seem to be a way to specify other bots.
| |||
bot_teleport | Teleports a specified bot to a given coordinate.
Map coordinates of where you are standing can be found by typing
| |||
bot_whack | Delivers lethal damage from player to specified bot. This basically kills the bot with the currently selected weapon, probably used for testing during development.
|