Difference between revisions of "Bots"
m (That works on non-MvM TFBots too.) |
GrampaSwood (talk | contribs) (Changed header at the top to Other uses) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[File:Tr_dustbowl0003.png|right|thumb|300px|A [[Soldier]] bot in action on the [[Dustbowl (Training)|Dustbowl Training]] map.]] | [[File:Tr_dustbowl0003.png|right|thumb|300px|A [[Soldier]] bot in action on the [[Dustbowl (Training)|Dustbowl Training]] map.]] | ||
− | {{ | + | {{Other uses|this=the computer-controlled players|Robot}} |
− | |||
− | |||
− | |||
− | |||
{{Quotation|'''The Soldier'''|Human teammates might judge you, but will these soulless automatons? YES. They're not blind. But they ARE mute, so your incompetence is a secret they will take to their grave.}} | {{Quotation|'''The Soldier'''|Human teammates might judge you, but will these soulless automatons? YES. They're not blind. But they ARE mute, so your incompetence is a secret they will take to their grave.}} | ||
Line 16: | Line 12: | ||
==Stock AI bots== | ==Stock AI bots== | ||
The stock AI bots, or TFBots, are designed to emulate human players and are not directly controlled. Additionally, their [[classes]] are chosen at random. They use sophisticated AI code based on the PlayerBot and Infected AI featured in the ''Left 4 Dead'' series.<ref>[http://teamfortress.com/post.php?id=3279 Team Fortress Official Blog - Erectin a dispenser]</ref> AI bots do not require the server to have cheats enabled; therefore, achievements are enabled while playing with them. There is one exception, however; Bots do not see [[Deathcam]] shots when killed; therefore, a player cannot attain Deathcam-related achievements. Also, killing a bot with a [[Strange]] weapon will not increase the weapon's kill count, unless the weapon has a [[Strange Parts|Strange Part]]: Robots Destroyed applied to it, in which case, the kill will be added to the Strange Part and not the main counter. | The stock AI bots, or TFBots, are designed to emulate human players and are not directly controlled. Additionally, their [[classes]] are chosen at random. They use sophisticated AI code based on the PlayerBot and Infected AI featured in the ''Left 4 Dead'' series.<ref>[http://teamfortress.com/post.php?id=3279 Team Fortress Official Blog - Erectin a dispenser]</ref> AI bots do not require the server to have cheats enabled; therefore, achievements are enabled while playing with them. There is one exception, however; Bots do not see [[Deathcam]] shots when killed; therefore, a player cannot attain Deathcam-related achievements. Also, killing a bot with a [[Strange]] weapon will not increase the weapon's kill count, unless the weapon has a [[Strange Parts|Strange Part]]: Robots Destroyed applied to it, in which case, the kill will be added to the Strange Part and not the main counter. | ||
− | |||
− | |||
AI bots can be indirectly controlled to an extent: | AI bots can be indirectly controlled to an extent: | ||
Line 25: | Line 19: | ||
* A Medic bot with an ÜberCharge ready will immediately activate the charge if he or the healing target gets hurt significantly. | * A Medic bot with an ÜberCharge ready will immediately activate the charge if he or the healing target gets hurt significantly. | ||
* Bots will attempt to join teammates performing a partner taunt (e.g. the [[High Five!|High Five]]) or a group taunt (e.g. the [[Conga]]). | * Bots will attempt to join teammates performing a partner taunt (e.g. the [[High Five!|High Five]]) or a group taunt (e.g. the [[Conga]]). | ||
+ | |||
+ | === Skill levels === | ||
+ | AI bots come in four skill levels ranging from easy to expert. Below is a table with a breakdown with some differences between bot skill levels. | ||
+ | |||
+ | {{Bot skill levels}} | ||
+ | |||
+ | {{TFBot quiet weapons list}} | ||
===Pathfinding=== | ===Pathfinding=== | ||
Line 31: | Line 32: | ||
====Using bots on unsupported maps==== | ====Using bots on unsupported maps==== | ||
− | {{hatnote| See also: {{vdc| | + | {{hatnote|See also: [[vdc:Navigation Meshes|Navigation Meshes]] and {{vdc|Nav Mesh Editing}}}} |
− | # Nav mesh editing requires cheats enabled, so type | + | # Nav mesh editing requires cheats enabled, so type {{code|sv_cheats 1}} in the [[console]]. |
− | # Build the initial nav mesh using the | + | # Build the initial nav mesh using the {{code|nav_generate}} command. |
# Wait while the game generates AI paths, progress is tracked in the console. | # Wait while the game generates AI paths, progress is tracked in the console. | ||
# Map will reload. | # Map will reload. | ||
− | # Optionally tweak the generated nav mesh to add missing data and remove erroneous data. Use | + | # Verify the nav mesh exists on all stages of the map by using the {{code|nav_edit 1}} command, then traveling across all the stages. Use the {{code|nav_mark_walkable}} command on all of the stages without a nav mesh, then use the {{code|nav_generate}} command again to apply the changes. |
+ | # Optionally tweak the generated nav mesh to add missing data and remove erroneous data. Use {{code|nav_edit 1}} to enter nav mesh editing mode. | ||
# Reload/Restart the server (optional, but if it is not done, then achievements will be disabled). | # Reload/Restart the server (optional, but if it is not done, then achievements will be disabled). | ||
− | # Open console and type | + | # Open console and type {{code|tf_bot_add <number>}} as above to add bots. |
'''WARNING: The game is likely to crash if you edit the navigation mesh with bots enabled.''' | '''WARNING: The game is likely to crash if you edit the navigation mesh with bots enabled.''' | ||
− | Bots can be used on any map on which the above steps have been performed without having to repeat them, except for entering the | + | Bots can be used on any map on which the above steps have been performed without having to repeat them, except for entering the {{code|tf_bot_add <number>}} command each time bots need to be added. |
Auto-generated nav meshes work best on Control Points, King of the Hill, Payload, and Capture the Flag maps. On [[Mannpower]] maps, the bots will play as Capture the Flag, but be unable to use [[Grappling Hook]]s or intelligently use the Powerups they walk over. | Auto-generated nav meshes work best on Control Points, King of the Hill, Payload, and Capture the Flag maps. On [[Mannpower]] maps, the bots will play as Capture the Flag, but be unable to use [[Grappling Hook]]s or intelligently use the Powerups they walk over. | ||
− | Setting the value of the console command | + | Setting the value of the console command {{code|tf_bot_offense_must_push_tim}} to {{code|0}} allows bots to fight each other in maps without objectives that they can recognize, unless the map doesn't have any respawn room entities. |
==== Stock maps with no official bot support ==== | ==== Stock maps with no official bot support ==== |
Latest revision as of 21:41, 12 December 2024
“ | Human teammates might judge you, but will these soulless automatons? YES. They're not blind. But they ARE mute, so your incompetence is a secret they will take to their grave.
— The Soldier
|
” |
A bot is a computer-controlled player on a server. There are two types of bots in Team Fortress 2: AI bots and Puppet bots. AI bots are coded with sophisticated artificial intelligence designed to emulate player actions in game, and can be used without enabling cheats. Puppet bots have no AI coding, but are useful for testing and training. Puppet bots require the server to have cheats enabled, which also disables achievements.
Contents
Stock AI bots
The stock AI bots, or TFBots, are designed to emulate human players and are not directly controlled. Additionally, their classes are chosen at random. They use sophisticated AI code based on the PlayerBot and Infected AI featured in the Left 4 Dead series.[1] AI bots do not require the server to have cheats enabled; therefore, achievements are enabled while playing with them. There is one exception, however; Bots do not see Deathcam shots when killed; therefore, a player cannot attain Deathcam-related achievements. Also, killing a bot with a Strange weapon will not increase the weapon's kill count, unless the weapon has a Strange Part: Robots Destroyed applied to it, in which case, the kill will be added to the Strange Part and not the main counter.
AI bots can be indirectly controlled to an extent:
- Any friendly and enemy bot that the player focuses on with their crosshair during setup time will taunt.
- A friendly Medic bot will heal a player if they utilize the "Medic!" voice command.
- If a Medic bot is healing and has an ÜberCharge ready, using the voice commands "Go go go!" or "Activate Charge!" will cause the bot to immediately activate his ÜberCharge.
- A Medic bot with an ÜberCharge ready will immediately activate the charge if he or the healing target gets hurt significantly.
- Bots will attempt to join teammates performing a partner taunt (e.g. the High Five) or a group taunt (e.g. the Conga).
Skill levels
AI bots come in four skill levels ranging from easy to expert. Below is a table with a breakdown with some differences between bot skill levels.
Differences between bot skill levels | ||||||||
---|---|---|---|---|---|---|---|---|
Skill | Skill level | Notes | ||||||
Easy | Normal | Hard | Expert | |||||
Reaction time | 1 second | 0.50 seconds | 0.30 seconds | 0.20 seconds | Time until bot reacts to a player entering its field of view | |||
Aiming interval | 0.25 seconds | 0.10 seconds | 0.05 seconds | How often the bot adjusts their aim. Spies are always forced to Normal skill level | ||||
Grenade Launcher/Stickybomb Launcher aim | Vertical compensation: Yes |
Compensates based on tf_bot_ballistic_elevation_rate . Will not compensate based on projectile speed. Will not compensate on Loose Cannon at all.
| ||||||
Huntsman aim | Vertical compensation: No Aims for headshot? No |
Vertical compensation: Yes Aims for headshot? Only close range (150 Hammer units) |
Vertical compensation: Yes Aims for headshot? Always |
Aims based on the console command tf_bot_arrow_elevation_rate
| ||||
Rocket Launcher aim | Always aim at the enemy's center | Aims at the target's feet if they are closer than 150 Hammer units. Aims at head if closer than 150 Hammer units. | Bots with the Direct Hit or Cow Mangler 5000 will always aim at the body | |||||
Sniper Rifle aim | Always aims for body | Aims between the head and center | Always aims for the head | N/A | ||||
Reacting to quiet weapons† within a radius of 500 Hammer units | 10% chance | 30% chance | 60% chance | 90% chance | 100% chance up to 3000 Hammer units (based on tf_bot_notice_gunfire_range ) for loud weapons. Quiet weapon radius based on tf_bot_notice_quiet_gunfire_range
| |||
Will prioritize Medic over healing target? | No | 50% chance | Yes | N/A | ||||
Will consider Medics, Engineers, and Snipers beyond 500 Hammer units a threat? | No | Yes | Other enemies further than 500 Hammer units are considered lower priority threats | |||||
Dodging skills | Will never attempt to dodge | Will dodge when holding a damage-dealing weapon | Will never dodge if the bot is in a hurry, they are under the effect of any ÜberCharge, are taunting, are zoomed in as Sniper, are spun-up as Heavy, are charging up a Huntsman arrow. Additionally, Engineers will never attempt to dodge | |||||
Avoids running into enemies? | No | Yes | Usually only used by Spy bots to avoid bumping into enemies while cloaked | |||||
Chance to airblast | 0% chance | 50% chance | 90% chance | 100% chance | Used for both reflecting projectiles and pushing players away | |||
Disguise choice | Random class | Random member of the enemy team's class | N/A | |||||
Disguise behavior | Looks towards enemy players when in view | Avoids looking at enemies | ||||||
Attempts to backstab? | Will always attempt to backstab players, even if enemy is facing the bot | Only backstabs if the enemies are turned less than 45 degrees away | Only backstabs if the enemies are turned less than 78 degrees away | Only backstabs if a backstab is possible on the enemy | ||||
Will switch to secondary? | Never | Scouts switch away if primary is empty Soldiers switch away if primary is empty and enemy is closer than 500 Hammer units Snipers switch away if enemy is closer than 750 Hammer units Pyros switch away if enemies are further than 750 Hammer units, unless the enemy is a Soldier or Demoman | ||||||
Retreats to reload? | No | Yes | Only if the bot's AI has no other input about retreating. Bots will never retreat to reload if they under the effect of an ÜberCharge | |||||
Chance to roam far away when defending control point? | 10% chance | 50% chance | 75% chance | 90% chance | Bots will only roam if there is enough time left on the clock (determined by tf_bot_defense_must_defend_time )
| |||
Will attempt to block the capture of a control point? | No | Yes | N/A | |||||
Notes | †A list of quiet weapons can be found below |
Pathfinding
Maps with official bot support
Map | Game mode | File name |
---|---|---|
Altitude† | Attack/Defend | cp_altitude
|
Dustbowl | Attack/Defend | cp_dustbowl
|
Gorge | Attack/Defend | cp_gorge
|
Gorge Event | Attack/Defend | cp_gorge_event
|
Mann Manor | Attack/Defend | cp_manor_event
|
Mercenary Park | Attack/Defend | cp_mercenarypark
|
Mossrock | Attack/Defend | cp_mossrock
|
Badlands | Control Point | cp_badlands
|
Foundry | Control Point | cp_foundry
|
Granary | Control Point | cp_granary
|
Gullywash | Control Point | cp_gullywash_final1
|
Metalworks | Control Point | cp_metalworks
|
Process | Control Point | cp_process_final
|
Snakewater | Control Point | cp_snakewater_final1
|
Sunshine | Control Point | cp_sunshine
|
Vanguard | Control Point | cp_vanguard
|
Turbine | Capture the Flag | ctf_turbine
|
Badlands | King of the Hill | koth_badlands
|
Brazil | King of the Hill | koth_brazil
|
Eyeaduct | King of the Hill | koth_viaduct_event
|
Ghost Fort | King of the Hill | koth_lakeside_event
|
Kong King | King of the Hill | koth_king
|
Lakeside | King of the Hill | koth_lakeside_final
|
Laughter | King of the Hill | koth_slaughter_event
|
Lazarus | King of the Hill | koth_lazarus
|
Moldergrove | King of the Hill | koth_undergrove_event
|
Moonshine Event | King of the Hill | koth_moonshine_event
|
Nucleus | King of the Hill | koth_nucleus
|
Probed | King of the Hill | koth_probed
|
Sawmill | King of the Hill | koth_sawmill
|
Slasher | King of the Hill | koth_slasher
|
Viaduct | King of the Hill | koth_viaduct
|
Badwater Basin | Payload | pl_badwater
|
Barnblitz | Payload | pl_barnblitz
|
Bloodwater | Payload | pl_bloodwater
|
Camber | Payload | pl_camber
|
Brimstone | Payload | pl_fifthcurve_event
|
Embargo† | Attack/Defend | pl_embargo
|
Enclosure | Payload | pl_enclosure_final
|
Gold Rush | Payload | pl_goldrush
|
Gravestone | Payload | pl_rumble_event
|
Hoodoo | Payload | pl_hoodoo_final
|
Pier | Payload | pl_pier
|
Precipice† | Payload | pl_precipice_event_final
|
Swiftwater | Payload | pl_swiftwater_final1
|
Thunder Mountain | Payload | pl_thundermountain
|
Upward | Payload | pl_upward
|
Pier | Payload | pl_pier
|
Wutville† | Payload | pl_wutville_event
|
† BLU bots get stuck trying to leave one of BLU's spawn points. Therefore, BLU can only win if few or no BLU bots die when the faulty spawn point is in use.
Using bots on unsupported maps
- Nav mesh editing requires cheats enabled, so type
sv_cheats 1
in the console. - Build the initial nav mesh using the
nav_generate
command. - Wait while the game generates AI paths, progress is tracked in the console.
- Map will reload.
- Verify the nav mesh exists on all stages of the map by using the
nav_edit 1
command, then traveling across all the stages. Use thenav_mark_walkable
command on all of the stages without a nav mesh, then use thenav_generate
command again to apply the changes. - Optionally tweak the generated nav mesh to add missing data and remove erroneous data. Use
nav_edit 1
to enter nav mesh editing mode. - Reload/Restart the server (optional, but if it is not done, then achievements will be disabled).
- Open console and type
tf_bot_add <number>
as above to add bots.
WARNING: The game is likely to crash if you edit the navigation mesh with bots enabled.
Bots can be used on any map on which the above steps have been performed without having to repeat them, except for entering the tf_bot_add <number>
command each time bots need to be added.
Auto-generated nav meshes work best on Control Points, King of the Hill, Payload, and Capture the Flag maps. On Mannpower maps, the bots will play as Capture the Flag, but be unable to use Grappling Hooks or intelligently use the Powerups they walk over.
Setting the value of the console command tf_bot_offense_must_push_tim
to 0
allows bots to fight each other in maps without objectives that they can recognize, unless the map doesn't have any respawn room entities.
Stock maps with no official bot support
· Hydro | · DeGroot Keep | · Hightower | · Frontier | · Pipeline | · Steel | · 2Fort | · 2Fort Invasion |
· Double Cross | · Landfall | · Sawmill (Capture the Flag) | · Well (Capture the Flag) | · 5Gorge | · Coldfront | · Fastlane | · Freight |
· Powerhouse | · Sinshine | · Well | · Yukon | · Egypt | · Gravel Pit | · Junction | · Mountain Lab |
· Snowplow | · SnowVille | · Snowfall | · Steel | · Standin | · Borneo | · Cactus Canyon | · Frontier |
· Hellstone | · Snowycoast | · Swiftwater | · Banana Bay | · Helltower | · Hightower | · Nightfall | · Pipeline |
· Badlands (Arena) | · Byre | · Granary (Arena) | · Lumberyard | · Nucleus (Arena) | · Offblast | · Ravine | · Sawmill |
· Watchtower | · Well (Arena) | · Harvest | · Harvest Event | · Highpass | · Maple Ridge Event | · Suijin | · Carnival of Carnage |
· Doomsday | · Cloak (Control Point) | · Bigrock | · Coal Town | · Decoy | · Ghost Town | · Mannhattan | · Mannworks |
· Rottenburg | · Asteroid | · Foundry (Capture the Flag) | · Gorge (Capture the Flag) | · Hellfire | · Brickyard | · District | · Timbertown |
· Pit of Death | · Watergate |
AI bot commands
To use AI bots on supported maps, the server administrator should type the following commands into the console (some may require sv_cheats to be set to 1):
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 random names from a default set.
|
tf_bot_difficulty
|
Defines the skill of bots joining the game.
|
tf_bot_fire_weapon_allowed
|
Determines whether bots should fire weapons. If disabled, bots can still use certain non-damaging weapons such as the Medi Gun. As one exception, though, Medic bots will still fire their Syringe Gun. Additionally, Demoman bots will still be able to detonate existing stickies, but will not place any more.
|
tf_bot_force_class
|
If set to a class name, all TFBots will respawn as that class.
|
tf_bot_force_jump
|
If enabled, forces bots to repeatedly jump over and over.
|
tf_bot_join_after_player
|
If nonzero, bots wait until a player joins before entering the game. This only applies to quota spawned bots.
|
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_kill
|
This command will kill one or all AI bots.
|
tf_bot_melee_only
|
Determines whether a bot should only use melee weapons or not.
|
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 TFBots in the game. Only has effect if tf_bot_quota_mode = "fill " or "match ".
|
tf_bot_quota_mode
|
Determines the type of quota.
|
tf_bot_taunt_victim_chance
|
Determines how often a Bot will taunt a human victim.
|
tf_bot_warp_team_to_me
|
Teleports your team's bots to your position. Requires sv_cheats 1 .
|
Current AI bot status
AI bots are fully released[citation needed]. Currently, all classes are working properly due to the Hatless Update, including the once-buggy Spy. AI bots only work properly for most official King of the Hill maps, some Payload maps, Attack/Defend maps Dustbowl and Gorge, Capture the Flag maps, and Mann Manor (on the latter two, bots can only be added by using the tf_bot_add command in the console). The use of AI bots on non-supported maps is possible by following certain steps; however, they will not emulate human players as well.
Bots will not work properly on any PLR map as they either can't jump over the railings on Hightower or get stuck in a random corner in spawn; and bots have a dance party on any other PLR map (this may change in the future).[citation needed]
AI bot behavior
- Bots currently only use the default loadout (although they can be given non-Stock weapons with a custom mod/plugin).
- Bots on Easy difficulty will rarely, if ever, use any weapon other than their primary weapon. Bots on higher difficulties will switch to and use their secondary weapon as soon as the ammunition of their primary weapon is spent, or to compensate for the distance of their target.
- Bots currently cannot execute special jumps (such as rocket jumps) or haul buildings.
- If a bot kills a player, they roll a chance to taunt immediately after, and if it succeeds, they will taunt even if they are under enemy fire. However, bots will not taunt if carrying the enemy intelligence. This behavior applies to Robots in Mann vs. Machine mode.
- Spy bots (and players) are properly ignored by other bots while disguised. However, upon 'touching' any enemy bot, sapping, shooting, or Cloaking, all other bots who see it happen will declare the bot/player a Spy and won't forget who they are until they change disguises while unseen or until the bot(s) who declared them a Spy dies or feigns death with the Dead Ringer.
- Pyro bots will use the compression blast against projectiles and opponents with unusual frequency if on difficulties other than Easy.
- Medic bots will usually heal all other classes before Snipers (and to a lesser extent Engineers) even if the "Medic!" voice command is used.
- Medic bots tend to favor Heavies, Soldiers, Demomen, and Pyros, if being played by a human. If no human player is one of these classes, they are not likely to be pocketed.
- A Medic bot with an ÜberCharge ready will immediately activate the charge if he gets hurt. This behavior is used by Über Medics in Mann vs. Machine mode.
- Bots do not attack during setup time unless they are attacked first (with the exception of Demoman bots planting stickybombs).
- Engineer bots do not upgrade (or even remove Sappers from) their Teleporters, and sometimes don't repair their Sentry Guns even when they're not under fire.
- Engineer bots will never repair or upgrade a friendly Engineer bot's building, unless that building is in the way of the Engineer's target.
- Bots, excluding Engineers, Snipers, and Spies, will stay in their spawn positions on setup when attacking in a Attack/Defend map or a Payload map.
- Spy bots, when spotted by another bot (possibly player), will not attempt to backstab and will instead switch to their Revolver and shoot while retreating.
- Demoman bots, once they know where a Sentry Gun is (after seeing, getting shot by, or dying to one), will be able to stand out of range of the sentry and perfectly aim and time their stickybomb charges to land precisely where the Sentry Gun is. Walls and ceilings may occasionally get in the way of the stickybombs' flight path, though.
- Sniper bots, upon scoping in and not finding a target, will use one of the "Negative" voice commands
- Friendly Medics will tend to heal a disguised Spy.
Bugs
- Bots may try to walk/shoot through unmovable objects such as walls.
- Whenever a player/bot cloaks/decloaks or disguises/undisguises, the bots will 'see' players who are behind them and turn around, even if out of the bot's field of view. Note that this isn't due to any sounds made by the player (footsteps, miscellaneous weapon noises, etc.).
- Though rarely, bots may stand inside one another during usage of an Engineer's Teleporter, and get stuck (can't move).
- When bots use voice commands (such as "Spy!" and "Move Up!"), text versions of the voice commands do not display.
- A Medic bot who is healing a player will not avoid enemy fire or collect health pickups, even if he is at critically low health.
- Bots are able to move while taunting, making the Holiday Punch ineffective.
- Recently attacked Medic bots will often fail to use their Syringe Gun to deal with enemies at non-melee range, instead switching to their Bonesaw, or even to their Medi Gun on extremely rare occasions.
- Medic bots will fail to lead their aim or to compensate for gravity while firing the Syringe Gun. This may be due to the Syringe Gun not being properly identified as a non-hitscan weapon in the bot AI code.
- Spy bots are able to see and follow cloaked Spies (AI or player) should one give himself away, regardless of difficulty level.
- Even if a Spy is disguised as a class of his team (player only, as bots will never do this), enemies will still point him out as a Spy should he bump into an enemy.
- Bots abide by Auto-balance rules. To be able to spawn bots on a specific team, you must set
mp_teams_unbalance_limit
to 0. - Engineer bots may ignore their buildings until they're destroyed.
- Heavy bots will sometimes try to fire their Minigun even when out of ammo. (Although it seems to occur abundantly when the bot difficulty is set below Advanced)
- Medic bots on the losing team will occasionally commit suicide during Humiliation when there are no enemies nearby. Players are unable to do the same, even using commands.
- Setting the loadout menu's preview to BLU will cause RED bots to appear BLU.
- Currently, bots do not work on the following types of game modes or maps, even with a generated navigation mesh. (Spies and Snipers may work, though.)
- Arena and Versus Saxton Hale Modes NOTE
- Payload Race NOTE
- Mann Vs. Machine NOTE
- Special Delivery
- Robot Destruction
- Cactus Canyon NOTE
- Mannpower NOTE
- PASS Time NOTE
- Player Destruction NOTE
- Snowycoast NOTE
- Snowplow NOTE
- Byre NOTE
- Nightfall and Pipeline NOTE
- Hassle Castle NOTE
- Bots that have their Melee weapons out will occasionally not switch to their other weapons, even if they pick up ammo.
- This can be fixed by either killing them or just randomly.
- After the Jungle Inferno Update, bots spawned with specific parameters (example:
tf_bot_add 5 pyro blue normal
) will die in their spawnrooms. This can be prevented with the command:tf_bot_reevaluate_class_in_spawnroom 0
, which requires settingsv_cheats
to 1.
AI bot names
The AI bots are programmed to have different names, with many of their names being references to Team Fortress 2, Valve's other works, and computer programming. Many of these names have been requested on the Steam forums.
Unused bot names
The following bot names were found in a leaked source code version of TF2, containing bot names that were never put into production for unknown reasons.
- John Spartan
- Leeloo Dallas Multipass
- Sho'nuff
- Bruce Leroy
- CAN YOUUUUUUUUU DIG IT?!?!?!?!
- Big Gulp, Huh?
- Stupid Hot Dog
- I'm your huckleberry
- The Crocketeer
AI bots names can also be customized by a player by typing in, for example, tf_bot_add heavyweapons blue "Blu Hoovy"; this example would put a BLU Heavy on the BLU team with the name "Blu Hoovy".
Puppet bots
Puppet bots have no AI code and cannot move or act on their own. These bots can be used like puppets though: players can manipulate them to follow the player's commands such as following the player around and firing their weapons. Puppet bots are mainly used for testing purposes and can also create stunning visuals if manipulated accordingly. To spawn puppet bots, sv_cheats
has to be set to 1.
Puppet bot commands
Not all of the following commands work; some working commands are also omitted.
These commands may or may not work for AI bots as well.
Note: entering the command without any values will display the command's current setting and a brief description.
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.
|
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_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 bots can be moved to certain areas and left 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 Stickybomb Launcher). If this is set to 1 then the bot will act as if it is holding down the fire button (useful for the Minigun).
|
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_jump
|
Force all bots to repeatedly jump.
|
bot_crouch
|
Force all bots to hold crouch.
|
bot_kick
|
Remove a bot by name, or an entire team, or all bots.
|
bot_kill
|
Kills a bot.
|
bot_mirror
|
Specified bots mirror the player's loadout (class, cosmetics, and weapons). There are a few bugs; for example, if a Demoman player has the Booties and any shield equipped, a mirrored bot will still use the Grenade Launcher and Stickybomb Launcher despite showing the Booties and shield on his model. After a mirrored bot dies, it will not retain the previous loadout, and bot_mirror must be used again.
|
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. It should be noted that bots will not mimic Medic calls, weapon switches, or taunts. Note this overrides
|
bot_mimic_inverse
|
Inverts the movement of the bots; moving left makes the bots move right, moving forwards makes the bots move backwards, etc. The direction which the bot is looking is not affected.
|
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
|
|
bot_refill
|
Refills all bots' ammo (including metal for Engineers) and health counts.
|
bot_saveme
|
This makes all the bots call for a Medic, equivalent to issuing bot_command <name> "voicemenu 0 0" to every bot.
|
bot_selectweaponslot
|
Forces a bot to switch to the specified weapon slot. To specify which bot switches weapons, use cc_bot_selectweapon instead.
|
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. It is worth noting that you can only use bot_whack to kill a teammate if mp_friendlyfire is set to 1, otherwise attempting to whack a teammate will not do anything.
|
cc_bot_selectweapon
|
Forces a bot to switch to the specified weapon slot.
|
bot_hurt
|
Hurt a bot by team, or all bots ("all").
|
Notes
- TFBots can also be controlled with
nb_
(e.g.nb_select
andnb_warp_selected_here
to teleport bots to a specific location).