Bots

From Team Fortress Wiki
< Bots
Revision as of 13:08, 6 June 2024 by Mediarch (talk | contribs) (Closing tags were missing)
Jump to: navigation, search


En Soldier bot i aktion på Dustbowl Trænings banen.
Denne side handler om computerstyrede spillere i spillet Team Fortress 2.
Menneskelige holdkammerater kan dømme dig, men vil disse sjæleløse automater? JA. De er ikke blinde. Men de ER stumme, så din inkompetence er en hemmelighed, de vil tage med sig i graven.
Soldier

En bot er en computerstyret spiller på en server. Der er to typer af bots i Team Fortress 2: AI-bots og Puppet-bots. AI-bots er kodet med sofistikeret kunstig intelligens designet til at efterligne spilleres handlinger i spillet og kan bruges uden at aktivere cheats. Puppet-bots har ingen AI-kodning, men er nyttige til test og træning. Puppet-bots kræver, at serveren har cheats aktiveret, hvilket også deaktiverer præstationer.

Almindelige AI bots

De standard AI-bots, eller TFBots, er designet til at efterligne menneskelige spillere og styres ikke direkte. Derudover vælges deres klasser tilfældigt. De bruger sofistikeret AI-kode baseret på PlayerBot og Infected AI, der findes i Left 4 Dead-serien.[1] AI-bots kræver ikke, at serveren har snydefunktioner aktiveret; derfor er præstationer aktiveret, når du spiller med dem. Der er dog én undtagelse; Bots ser ikke Dødhckamera når de bliver dræbt; derfor kan en spiller ikke opnå Dødkamera-relaterede præstationer. Derudover øger drab af en bot med et Sær våben ikke våbnets dræberegister, medmindre våbnet har Sær Del: Robotter Destrueret anvendt på det, i hvilket tilfælde drabet vil blive tilføjet til den Sære del og ikke hovedtælleren.

AI-bots kommer i fire færdighedsniveauer, der spænder fra nemt til ekspert. Sigsegv har samlet detaljeret forklaring på forskellene i færdighederne..

AI-bots kan til en vis grad styres indirekte:

  • Enhver venlig og fjendtlig bot, som spilleren fokuserer på med deres sigtekorn under opsætningstid vil håne.
  • En venlig Medic bot vil helbrede en spiller hvis de bruger "Medic!" stemmekommandoen.
  • Hvis en Medic bot helbreder og har ÜberLadning klar, vil brug af stemmekommandoerne "Go Go Go!" eller "Aktiver opladning!" få botten til straks at aktivere sin ÜberLadning.
  • En Medic-bot med en klar ÜberLadning vil straks aktivere opladningen, hvis han eller helingsmålet bliver betydeligt såret.
  • Bots vil forsøge at deltage i holdkammerater, der udfører en partner-hån (f.eks. Klør Fem!) eller et gruppehån (f.eks. Conga).


Stifinding

Baner med officiel bot-understøttelse

Bane Spiltilstand Filnavn
Altitude Angrib/forsvar cp_altitude
Dustbowl Angrib/forsvar cp_dustbowl
Gorge Angrib/forsvar cp_gorge
Gorge Event Angrib/forsvar cp_gorge_event
Mann Manor Angrib/forsvar cp_manor_event
Mercenary Park Angrib/forsvar cp_mercenarypark
Mossrock Angrib/forsvar cp_mossrock
Badlands Kontrolpunkt cp_badlands
Foundry Kontrolpunkt cp_foundry
Granary Kontrolpunkt cp_granary
Gullywash Kontrolpunkt cp_gullywash_final1
Metalworks Kontrolpunkt cp_metalworks
Process Kontrolpunkt cp_process_final
Snakewater Kontrolpunkt cp_snakewater_final1
Sunshine Kontrolpunkt cp_sunshine
Vanguard Kontrolpunkt cp_vanguard
Turbine Erobr flaget ctf_turbine
Badlands Konge af bakken koth_badlands
Brazil Konge af bakken koth_brazil
Eyeaduct Konge af bakken koth_viaduct_event
Ghost Fort Konge af bakken koth_lakeside_event
Kong King Konge af bakken koth_king
Lakeside Konge af bakken koth_lakeside_final
Laughter Konge af bakken koth_slaughter_event
Lazarus Konge af bakken koth_lazarus
Moldergrove Konge af bakken koth_undergrove_event
Moonshine Event Konge af bakken koth_moonshine_event
Nucleus Konge af bakken koth_nucleus
Probed Konge af bakken koth_probed
Sawmill Konge af bakken koth_sawmill
Slasher Konge af bakken koth_slasher
Viaduct Konge af bakken 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 Angrib/forsvar pl_embargo
Enclosure Payload pl_enclosure_final
Goldrush 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
Thundermountain 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.

Brug af bots på ikke understøttede baner

Se også: Navigation Meshes på Valve Developer Community
  1. Nav-mesh-redigering kræver aktiverede cheatfunktioner, så skriv "sv_cheats 1" i konsollen.
  2. Byg den indledende nav-mesh ved hjælp af kommandoen "nav_generate".
  3. Vent mens spillet genererer AI-stier, fremskridt overvåges i konsollen.
  4. Banen vil genindlæses.
  5. Tilpas eventuelt den genererede nav-mesh for at tilføje manglende data og fjerne fejlagtige data. Brug "nav_edit 1" for at gå ind i nav-mesh-redigeringsmodus.
  6. Genindlæs/genstart serveren (valgfrit, men hvis det ikke gøres, vil præstationer være deaktiveret).
  7. Åbn konsollen og skriv "tf_bot_add <number>" som ovenfor for at tilføje bots.

ADVARSEL: Spillet har en tendens til at gå ned, hvis du redigerer navigationsmeshen med aktiverede bots.

Bots kan bruges på ethvert kort, hvor ovenstående trin er blevet udført uden at skulle gentage dem, undtagen for at indtaste kommandoen "tf_bot_add <number>" hver gang, bots skal tilføjes.

Auto-genererede nav-meshes fungerer bedst på kontrolpunkt, kongen på bakken, last, Erobr Flaget. På Mannpower baner,vil bots spille som Erobr Flaget, men vil ikke kunne bruge Gribekroge eller intelligent bruge powerups, de går over. At sætte værdien af konsolkommandoen "tf_bot_offense_must_push_time" til 0 tillader bots at kæmpe mod hinanden på baner uden mål, som de kan genkende, medmindre banen ikke har nogen respawn-rum-entiteter.

Standard baner uden officiel bot understøttelse

 ·  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 kommandoer

For en mere omfattende liste over kommandoer, se Liste over TF2 konsolkommandoer og variabler på Valve Developer Community

For at bruge AI-bots på understøttede kort bør serveradministratoren skrive følgende kommandoer i konsollen (nogle kræver muligvis at sv_cheats skal være indstillet til 1):

Kommando Beskrivelse
tf_bot_add Denne kommando vil oprette en eller flere AI-bots af tilfældige klasser på tilfældige hold. De vil også blive tildelt tilfældige navne fra en standard sæt.
Syntax
tf_bot_add [<count>] [<class>] [<team>] [<difficulty>] [<name>] [noquota]
Parametre
<count>
Angiver antallet af bots, der skal oprettes. Hvis der udelades, oprettes én bot.
Forsøg på at oprette bots ud over maxplayers vil mislykkes med en fejlmeddelelse i konsollen.
Hvis mp_teams_unbalance_limit er for lavt, kan tilføjelse af flere bots til ét hold stadig resultere i automatisk balancering for at udligne holdnumrene.
<class>
classname af klassen kan være Demoman, Engineer, HeavyWeapons, Medic, Pyro, Scout, Soldier, Sniper, eller Spy
<team>
Angiver holdnavnet for at tildele botten, hvor hold kan være red eller blue.
<difficulty>
Indstiller sværhedsgraden for botten, hvor sværhed kan være let, normal, svær eller ekspert.
<name>
Indstiller navnet på den tilsluttede bot.
noquota
Hvis den præcise frase 'noquota' er til stede, udelukkes botten fra bot-kvoteadministrationsystemet. Se tf_bot_quota.
Eksempel
tf_bot_add 3 heavyweapons red easy vil tilføje tre Heavies til RED hold på let sværhedgrad.
tf_bot_difficulty Definerer færdighedsniveauet for bots, der deltager i spillet.
Syntax
tf_bot_difficulty <level>
Parametre
<level>
Indstiller sværhedsgraden for bots. Værdierne er: 0=let, 1=normal, 2=svær, 3=ekspert. Standard er "Normal" (1).
Eksempel
tf_bot_difficulty 2 vil indstille alle bots, der oprettes efter denne kommando, til "Svær" sværhedsniveau.
tf_bot_fire_weapon_allowed Bestemmer, om bots skal affyre våben. Hvis det er deaktiveret, kan bots stadig bruge visse ikke-skadende våben som f.eks. Medi-geværet. Som én undtagelse vil Medic bots stadig affyre deres Injektionssprøjtepistol. Derudover vil Demoman bots stadig være i stand til at detonere eksisterende klæbebomber, men vil ikke lægge flere.
Syntax
tf_bot_fire_weapon_allowed <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 1 (aktiveret).
Eksempel
tf_bot_fire_weapon_allowed 0 vil resultere i, at bots ikke bruger deres våben, med nogle få undtagelser.
tf_bot_force_class Hvis indstillet til et klassenavn, vil alle TFBots genopstå som den klasse.
Syntax
tf_bot_force_class <class>
Parametre
<class>
Klassens classname kan være Demoman, Engineer, Heavy, Medic, Pyro, Scout, Soldier, Sniper, eller Spy. Standard er "" (aka blank).
Eksempel
tf_bot_force_class medic vil få alle TFBots til at respawne som Medic.
tf_bot_force_jump Hvis aktiveret, tvinger det bots til at hoppe.
Syntax
tf_bot_force_jump <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 0 (deaktiveret).
Eksempel
tf_bot_force_jump 1 tvinger AI-bots til at hoppe gentagende gange.
tf_bot_join_after_player Hvis den ikke er nul, venter bots, indtil en spiller slutter sig til, før de går ind i spillet. Dette gælder kun for kvote-spawnede bots.
Syntax
tf_bot_join_after_player <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 1 (aktiveret).
Eksempel
tf_bot_join_after_player 0 vil få TFBots til at deltage i spillet, når de tilføjes, selv om der ikke er nogen spillere på holdet.
tf_bot_keep_class_after_death Hvis nul, vil bots altid respawne som en anden klasse.
Syntax
tf_bot_keep_class_after_death <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 0 (deaktiveret).
Eksempel
tf_bot_keep_class_after_death 1 Forhindrer TFbots i at ændre klasse.
tf_bot_kick

Denne kommando fjerner en eller alle AI bots.

Syntax
tf_bot_kick <name/all/team>
Parametre
<name/all/team>
Angiver navnet på den bot, der skal fjernes, det team, der skal fjernes, eller alle.
Eksempel
tf_bot_kick CEDA vil kicke TFBot med navnet "CEDA", hvis den findes. Ligesom tf_bot_kill, vil citationstegn være nødvendig for at kicke bots med navne der består af 2 eller flere ord, så som tf_bot_kick "Black Mesa" for at kicke TFBotten ved navn "Black Mesa".
tf_bot_kill

Denne kommando dræber en eller alle AI bots.

Syntax
tf_bot_kill <name/all/team>
Parametre
<name/all/team>
Angiver navnet på den bot, der skal dræbes, det hold, der skal dræbes, eller alle.
Eksempel
tf_bot_kill CEDA vil dræve TFbot med navnet "CEDA" hvis den findes. Citationstegn vil være nødvendige for at dræbe bots med navne der består af 2 eller flere ord, så som tf_bot_kill "Black Mesa" for at dræbe TFbotten ved navn "Black Mesa".
tf_bot_melee_only Bestemmer, om en bot kun skal bruge nærkampsvåben eller ej.
Syntax
tf_bot_melee_only <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 0 (deaktiveret).
Eksempel
tf_bot_melee_only 1 får bots til kun at bruge nærkampsvåben.
tf_bot_prefix_name_with_difficulty Hvis ikke nul, tilføjes bottens færdighedsniveau til bottens navn.
Syntax
tf_bot_prefix_name_with_difficulty <integer>
Parametre
<integer>
Enten 1 eller 0. Standard er 0 (deaktiveret).
Eksempel
tf_bot_prefix_name_with_difficulty 1 vil få tilføjede bots til at have navne som "Normal Aimbot" og "Expert Saxton Hale".
tf_bot_quota Bestemmer det samlede antal TFBots i spillet. Har kun effekt, hvis tf_bot_quota_mode = "fill" eller "match".
Syntax
tf_bot_quota <integer>
Parametre
<integer>
Heltal mellem 0 og hvor mange spillere, serveren kan rumme. Standard er 0.
Eksempel
tf_bot_quota 2, hvis tf_bot_quota_mode = match, vil tilføje to bots til serveren for hvert menneske.
tf_bot_quota_mode Bestemmer typen af kvote.
Syntax
tf_bot_quota_mode<normal/fill/match>
Parametre
normal/fill/match
Hvis 'normal', vil serveren aldrig tilføje/fjerne TFBots uden eksplicitte kommandoer, og bot_quota har ingen effekt.
Hvis 'fyld', vil serveren justere bots for at holde N spillere i spillet, hvor N er bot_quota.
Hvis 'match', vil serveren opretholde et 1:N-forhold mellem mennesker og bots, hvor N er bot_quota.
Eksempel
tf_bot_quota_mode fill vil altid holde (bot_quota - # af menneskelige spillere) bots i spillet.
tf_bot_taunt_victim_chance Bestemmer, hvor ofte en Bot vil håne et menneskeligt offer.
Syntax
tf_bot_taunt_victim_chance <integer>
Parametre
<integer>
Helt tal mellem 0 og 100. Standard er 20.
Eksempler
tf_bot_taunt_victim_chance 0 Vil bots aldrig håne efter et drab på en menneskelig spiller.
tf_bot_taunt_victim_chance 100 Vil Bots altid håne efter et drab på en menneskelig spiller.
tf_bot_warp_team_to_me Teleporterer dit holds bots til din position. Kræver sv_cheats 1.
Syntax
tf_bot_warp_team_to_me
Parametre
N/A

Aktuel AI-bot-status

AI-bots er officielt udgivet [Kilde mangler]. I øjeblikket fungerer alle klasser korrekt på grund af Den hatteløse opdatering, inklusive den engang så fejlbehæftede Spy. AI-bots fungerer kun korrekt på de fleste officielle Kongen af bakken baner, nogle Last baner, Angrib/Forsvar banerne Dustbowl og Gorge, Erobr Flaget baner og Mann Manor (på de to sidstnævnte kan bots kun tilføjes ved at bruge kommandoen tf_bot_add i konsollen). Det er muligt at bruge AI-bots på ikke-understøttede baner ved at følge visse trin, men de vil ikke emulere menneskelige spillere lige så godt.


Bots vil ikke fungere korrekt på nogen PLR baner map da de enten ikke kan hoppe over rækværket på Hightower eller sidder fast i et tilfældigt hjørne i spawn; og bots har en dansefest på ethvert andet PLR bane (dette kan ændre sig i fremtiden).[Kilde mangler]

AI bot adfærd

  • Bots bruger i øjeblikket kun standard udstyr (selvom de kan få ikke standard våben med et brugerdefineret mod/plugin).
  • Bots på nem sværhedsgraden vil sjældent, hvis nogensinde, bruge andre våben end deres primære våben. Bots på højere sværhedsgrader vil skifte til og bruge deres sekundære våben, så snart ammunitionen til deres primære våben er brugt, eller for at kompensere for afstanden til deres mål.
  • Bots kan i øjeblikket ikke udføre specielle hop (såsom rakethop) eller flytte bygninger.
  • Hvis en bot dræber en spiller, kaster de en chance for at håne umiddelbart efter, og hvis det lykkes, vil de håne, selv om de er under fjendtlig beskydning. Dog vil bots ikke håne, hvis de bærer fjendens efterretninger. Denne opførsel gælder for robotter i Mann vs. Machine tilstand.
  • Spy bots (og spillere) ignoreres korrekt af andre bots, mens de er forklædte. Men når man rører en fjendtlig bot, Sapper, skyder, eller bliver usynlig, vil alle andre bots, der ser det ske kalde botten/spilleren for Spy og vil ikke glemme, hvem de er, før de skifter forklædning, mens de er usete, eller indtil den eller de bots, der kaldte dem for Spy, dør eller lader som om, de er døde med Gengangeren.
  • Pyro bots vil bruge Lufttryk mod projektiler og fjender med usædvanlig hyppighed, hvis sværhedsgraden er sat på mere end easy.
  • Medic bots vil normalt heale alle andre klasser før Sniper (og i mindre grad Engineers), selv hvis stemmekommandoen "Medic!" bruges.
  • Medic bots har en tendens til at favorisere Heavies, Soldiers, Demomen og Pyros, hvis de spilles af et menneske. Hvis ingen menneskelig spiller er en af disse klasser, er det ikke sandsynligt, at de bliver taget.
  • En Medic-bot med en ÜberLadning klar vil straks aktivere ladningen, hvis han bliver såret. Über Medics i Mann vs. Machine tilstand.
  • Bots angriber ikke i opsætningstiden, medmindre de bliver angrebet først (med undtagelse af Demoman bots, der planter klæbebomber).
  • Engineer bots opgraderer ikke (eller fjerner ikke engang Sappere fra) deres Teleportere, og nogle gange reparerer de ikke deres Sentry Guns, selv når de ikke er under beskydning.
  • Engineer bots vil aldrig reparere eller opgradere en venligtsindet Engineer-bots bygning, medmindre denne bygning er i vejen for Engineerens mål.
  • Bots, undtagen Engineers, Snipers, og Spies, vil blive i deres spawn positioner, når de angriber på en Angrib/Forsvar bane eller en Payload bane.
  • Når Spy bots bliver set af en anden bot (evt. spiller), vil de ikke forsøge at backstabbe, men i stedet skifte til deres Revolver og skyde, mens de trækker sig tilbage.
  • Når Demoman bots ved hvor en Sentry er (som regel efter at være døde til en), kan de stå uden for Sentriens rækkevidde og sigte perfekt og time deres Klæbebomber-ladninger, så de lander præcis, hvor Sentrien er. Vægge og lofter kan dog af og til komme i vejen for Klæbebombers flyvebane.
  • Sniper bots, der har scopet ind og ikke har fundet et mål, vil bruge en af de "Negative" stemmekommandoer
  • Venlige Medics vil helbrede en forklædt Spy.

Fejl

  • Bots kan forsøge at gå/skyde gennem ubevægelige objekter såsom vægge.
  • Når en spiller/bot camouflerer/afcamouflerer eller forklæder/afslører sig, vil botterne 'se' spillere, der er bag dem, og vende sig om, selvom de er uden for bottens synsfelt. Bemærk, at dette ikke skyldes nogen lyde, der laves af spilleren (fodtrin, forskellige våbenlyde, osv.).
  • Selvom det er sjældent, kan bots stå inde i hinanden under brug af en Engineers teleporter og sidde fast (kan ikke bevæge sig).
  • Når bots bruger stemmekommandoer (såsom "Spy!" og "Ryk Frem!"), vises tekstversioner af stemmekommandoerne ikke.
  • EnMedic bot der helbreder en spiller vil ikke undgå fjendtlig ild eller samle helbredspakker op, selv hvis den er ved kritisk lavt helbred.
  • Bots kan bevæge sig mens de håner, dette gør Helligdagsslaget ineffektiv.
  • Nyligt angrebne Medic-bots vil ofte mislykkes i at bruge deres Injektionssprøjtepistol til at håndtere fjender uden for nærkampsrækkevidde, i stedet skifter de til Knoglesaven, sommetider enddag deres Medi-Gevær.
  • Medic-bots vil ikke være i stand til at føre deres sigte eller at kompensere for tyngdekraften under aftrykket af Injektionssprøjtepistol. Dette kan skyldes, at Injektionssprøjtepistol ikke er korrekt identificeret som et ikke-hitscan-våben i bot-AI-koden.
  • Spy bots er i stand til at se og følge skjulte Spies (AI eller spiller), hvis en afslører sig selv, uanset sværhedsniveauet.
  • Selv hvis en Spy er forklædt som en klasse fra sit hold (kun spiller, da bots aldrig vil gøre dette), vil fjender stadig afsløre ham som en Spy, hvis han støder ind i en fjende.
  • Botter overholder auto-balanceringsreglerne. For at kunne spawne botter på et bestemt hold, skal du indstille mp_teams_unbalance_limit til 0.
  • Engineer bots kan ignorere bygninger indtil de er ødelagte.
  • Heavy bots vil nogle gange affyre deres Rullekanon selvom den er løbet tør for ammunition. (Selvom det synes at forekomme oftere, når bot-sværhedsgraden er indstillet til under Avanceret)
  • Medic bots på det tabende hold vil lejlighedsvis begå selvmord under Ydmygelse når der ikke er nogle fjender i nærheden. Spillere kan ikke gøre det samme, selv ved hjælp af kommandoer.
  • Hvis man indstiller loadoutmenuens forhåndsvisning til BLU vil RED botter fremstå som BLU.
  • I øjeblikket fungerer botter ikke på følgende typer af spiltilstande eller baner, selv med en genereret navigationsmesh. (Spies og Snipers kan dog fungere.)
  • 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 setting sv_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.
Syntax
bot [<teamname/number>] [<classname>] [<name>] [<number>]
Parameters
<number>
Amount of bots to add.
<teamname/number>
Specifies the team name or number to assign the bot. Where name/number can be RED or 1, BLU or 0
<classname>
The classname of the class can be Demoman, Engineer, Heavy, Medic, Pyro, Scout, Soldier, Sniper, or Spy
<teleport>
Teleports the spawned bot to where your cursor is aiming.
<targetdummy>
Prevents the spawned bot from losing health.
<name>
name can be anything. If there is already someone with the same name, an incremental number (starting at 1) surrounded with parenthesis will be added to the beginning of the name. For example, joe, (1)joe, (2)joe, etc. If no name is given then the name will be "bot" followed by a number starting with 01; for example, the first bot will be Bot01, the next Bot02, and so on.
Example
bot -team red -class Engineer -name joe
bot_changeclass Force all bots to change to the specified class.
Syntax
bot_changeclass <name> <classname>
Parameters
<name>
Name of the target bot.
<classname>
The classname of the class the bot will switch to. Default is "" (aka blank).
Example
bot_changeclass bot01 Soldier
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.
Syntax
bot_command <name/all> <console command>
Parameters
<name/all>
Name or id of the bot to send the command to. Setting this to 'all' will send the command to all the bots.
<console command>
Can be any of the ones listed in console commands, as well as some of the cheats.
Example 1
bot_command bot01 "voicemenu 0 0"
Example 2
bot_command bot01 "taunt"
The slot commands (slot1, slot2, etc.) do not work with bot_command, however with bot_forcefireweapon, all bots in that class can be made to switch to a weapon and start firing, then made to stop. Only the entire group of bots in that class can be made to do so, however.
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.
Syntax
bot_dontmove <integer>
Parameters
<integer>
Bots will be allowed to move when set to 1. Default is 0 (disabled).
Example
bot_dontmove 1
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_mimic is active (set to 1).

Syntax
bot_forceattack <integer>
Parameters
<integer>
When set to 1, all bots fire their guns. Default is 0 (disabled).
Example
bot_forceattack 1
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.
Syntax
bot_forceattack2 <integer>
Parameters
<integer>
Bot will use its weapon's secondary_fire when set to 1, primary_fire when set to 0
Example
bot_forceattack2 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).
Syntax
bot_forceattack_down <0/1>
Parameters
<integer>
Either 1 or 0. Default is 0 (disabled).
Example
bot_forceattack_down 1
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)

Syntax
bot_forcefireweapon <weapon filename>
filename is usually tf_weapon_ <weapon name>.
Examples
bot_forcefireweapon tf_weapon_fists makes all Heavy bots switch to and repeatedly attack with their Fists, and all other bots stop attacking.
bot_forcefireweapon tf_weapon_shotgun_pyro makes all Pyro bots switch to and repeatedly fire their Shotguns, and all other bots stop attacking.
To make all bots stop attacking, simply specify a non-existent weapon filename. Anything without tf_weapon in it isn't a TF2 weapon, so the bots won't shoot it, for example bot_forcefireweapon ,,.
bot_jump Force all bots to repeatedly jump.
Syntax
bot_jump <integer>
Parameters
<integer>
All bots will repeatedly jump when set to 1. Default is 0 (disabled).
Example
bot_jump 1
bot_crouch Force all bots to hold crouch.
Syntax
bot_crouch <integer>
Parameters
<integer>
All bots will hold crouch when set to 1. Default is 0 (disabled).
Example
bot_crouch 1
bot_kick Remove a bot by name, or an entire team, or all bots.
Syntax
bot_kick <name/team>
Makes the specified bot commit suicide.
Example
bot_kick bot01 will kick the bot named "bot01" if it exists.
bot_kick red will kick all the bots on the red team.
bot_kick blue will kick all the bots on the blu team.
bot_kick all will kick all the bots in the server.
bot_kill Kills a bot.
Syntax
bot_kill <name>
Parameters
<name>
Makes the specified bot commit suicide.
Example
bot_kill bot01
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.
Syntax
bot_mirror <name>
Where name is the name of the bot to mirror.
Example
bot_mirror bot01
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_forceattack but does not override bot_dontmove.

Syntax
bot_mimic <integer>
Parameters
<integer>
Either 1 or 0. Default is 0 (disabled).
Example
bot_mimic 1
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.

Syntax
bot_mimic_inverse <integer>
Parameters
<integer>
Either 1 or 0. Default is 0 (disabled).
Example
bot_mimic_inverse 1
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.

Syntax
bot_mimic_yaw_offset <0-360>
Set the direction by specifying angle in degrees
Example
bot_mimic_yaw_offset 180
bot_randomnames
Syntax
bot_randomnames <0>
Parameters
<integer>
Either 1 or 0. Default is 0 (disabled).
Example
bot_randomnames 1
bot_refill Refills all bots' ammo (including metal for Engineers) and health counts.
Syntax
bot_refill
bot_saveme This makes all the bots call for a Medic, equivalent to issuing bot_command <name> "voicemenu 0 0" to every bot.
Syntax
bot_saveme <integer>
Parameters
<integer>
All the bots will call for a Medic when set to 1. Default is 0 (disabled).
bot_selectweaponslot Forces a bot to switch to the specified weapon slot. To specify which bot switches weapons, use cc_bot_selectweapon instead.
Syntax
bot_selectweaponslot <n>
Parameters
<n>
Set n to weapon slot that bots should switch to.
0 = primary; 1 = secondary; 2 = melee; 3 = special
Example
bot_selectweaponslot 2
bot_teleport Teleports a specified bot to a given coordinate.

Map coordinates of where you are standing can be found by typing Status in the console.

Syntax
bot_teleport <name> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
Where name is the name of the bot or id to teleport.
Parameters
<name>
Name of the bot to teleport.
<X> <Y> <Z>
Coordinates of the map the bot will be teleported to.
<Pitch> <Yaw> <Roll>
The direction the bot should face.
Example
bot_teleport bot01 -4815 1385 -447 0 0 0
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.
Syntax
bot_whack <name>
Parameters
<name>
Name of the bot to "whack".
Example
bot_whack bot01
cc_bot_selectweapon Forces a bot to switch to the specified weapon slot.
Syntax
cc_bot_selectweapon <name> <n>
Parameters
<n>
Set n to weapon slot that bots should switch to.
0 = primary; 1 = secondary; 2 = melee; 3 = special
<name>
Name of the bot that will switch weapon slot.
Example
cc_bot_selectweapon bot12 2
bot_hurt Hurt a bot by team, or all bots ("all").
Syntax
bot_hurt [<name>] [<team>] [<damage>]
Parameters
<name>
Name of the bot to hurt.
<team>
Specifies the team name of the bot to hurt. Can be RED, BLU or all.
<damage>
Specifies the amount of damage the bot will receive. If a negative number is set, it will heal (and overheal) the bot instead.
<burn>
Set the bot on fire. However, the bot will not receive any afterburn damage.
Example
bot_hurt -name joe -team red -damage 150

Notes

  • MvM Bots can also be controlled with nb_ (e.g. nb_select and nb_warp_selected_here to teleport bots to a specific location). This doesn't apply to TF Bots.

References