Foxbot: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Undo revision 271123 by SirYodaJedi (talk) nah, that'd be ugly)
Tag: Undo
(removed apg clan links and mentions to the team.)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Underlinked|date=January 2024}}
{{ModStatus|status=released|engine=GoldSrc|download=https://github.com/APGRoboCop/foxbot}}
{{ModStatus|status=released|engine=GoldSrc|download=https://github.com/APGRoboCop/foxbot}}
{{wip}}
'''Foxbot''' is a server-side [[bot]] for {{tfc|4.1}}.
 
==Foxbot Behavior==


==Foxbot behavoir==
* Foxbot was devised by Tom 'RedFox' Simpson then it was taken over by Zybby until 2010. FoxBot can be downloaded from this link. FoxBot v0.800 ZIP
* Foxbot relies on a system of navigation controls, called waypoints, specific to each map. 523 waypoints, for nearly as many maps, come with the installation of FoxBot.
* Foxbot relies on a system of navigation controls, called waypoints, specific to each map. 523 waypoints, for nearly as many maps, come with the installation of FoxBot.
* Foxbot is still being updated (the last update was September 2021). FoxBot Github
* Foxbots have the following traits:
* Foxbots offer the following traits:
:*Variable Skill
* Variable Skill
:*Chat personalities available (aggressive, sarcastic, humorous, etc.)
* Chat personalities available (aggressive, sarcastic, humorous, etc.)
:*Attempt to report location of dropped flags
* Attempt to report the location of dropped flags
:*Bots will change classes if they are doing poorly against a particular threat
* Bots will change classes if they are doing poorly against a particular threat
:*If playing as {{tfwiki|Civilian_(Classic)|civilian}} class, will attempt to stay near allies
* If playing as civilian class, will attempt to stay near allies
 
==Foxbot Commands==
For Foxbot to work properly, a map with a proper waypoint must be used. Foxbot's installation provides waypoints for 527 maps, including all Team Fortress Classic standard maps and deathmatch maps from Half-life.
 
{| class="wikitable grid"
! class="header" | Command
! class="header" | Description
|-
|{{mono|<big>'''addbot'''</big>}}
|This command will create one bot.


Foxbot has been developed by:
;Syntax: <code>addbot [<''team''>] [<''class''>] [<''name''>] [<''skill''>]</code>
* Tom "RedFox" Simpson
* Jordan Aka FURY
* Jeremy Aka DrEvil
* Paul Aka GoaT_RopeR
* Grubber
* Yuraj
* Richard Aka Zybby


Special thanks to:
;Parameters:
* RoboCop
:<code><''team''></code>
* Koala
::Specifies the team to which the bot will be assigned.  If omitted, bot will be assigned a random team.
* Safety1st
:: ''team'' can be ''1'' = blue, ''2'' = red, ''3'' = yellow, or ''4'' = green.
* Arkshine
* Globoss
* pizzahut
* jeefo


==Foxbot commands==
:<code><''class''></code>
{{todo|Copy info from [https://web.archive.org/web/20220907074612/https://wiki.teamfortress.com/wiki/Bots_(Classic)#Foxbot the archived TF Wiki page]}}
::The ''classname'' of the class can be ''1'' = Scout, ''2'' = Sniper, ''3'' = Soldier, ''4'' = Demoman, ''5'' = Medic, ''6'' = HWGuy, ''7'' = Pyro, ''8'' = Spy, ''9'' = Engineer, or ''10'' = Random
::If a class is not specified, the bot will be able to change class whenever it wants to/needs to


{| class="wikitable"
:<code><''name''></code>
::Specifies the name to assign the bot.
 
:<code><''skill''></code>
::Sets the skill level for the bot.  Skill can be 1 being best to 5 being worst.
 
;Example: <code>botadd 1 3 TFC_bot 1</code> will spawn a Soldier named ''TFC_bot'' with a high skill level.
|-
|-
! Command !! Description
|{{mono|<big>'''botskill_upper'''</big>}}
|Sets the best possible skill level to be randomly assigned to bots that join the game automatically.
 
;Syntax: <code>botskill_upper <''level''></code>
 
;Parameters:
:<code><''level''></code>
::Ranges from 1 being best to 5 being worst. Default is 1 (highest).
 
;Example: <code>botskill_upper 2</code> will set all bots that join the game to no higher than a skill level of 2.
|-
|-
| Example || Example
|{{mono|<big>'''botskill_lower'''</big>}}
|Sets the worst possible skill level to be randomly assigned to bots that join the game automatically.
 
;Syntax: <code>botskill_lower <''level''></code>
 
;Parameters:
:<code><''level''></code>
::Ranges from 1 being best to 5 being worst. Default is 3 (medium).
 
;Example: <code>botskill_lower 4</code>  will set all bots that join the game to no lower than a skill level of 4.
|-
|-
| Example || Example
|{{mono|<big>'''bot_skill_1_aim'''</big>}}
|This command will affect the accuracy of all bots that have a skill of ''1'' (highest skill level) in the game or that join the game.
 
;Syntax: <code>bot_skill_1_aim <''level''></code>
 
;Parameters:
:<code><''level''></code>
:: The level can range from 0, bots of skill ''1'' will have the best accuracy possible, to 200, bots of skill ''1'' will have the worst accuracy possible. Default is 30.
 
;Example: <code>bot_skill_1_aim 10</code>  will set all bots with a skill level of 1 to have moderately accurate aiming.
|-
|-
| Example || Example
|{{mono|<big>'''bot_aim_per_skill'''</big>}}
|This command will affect the accuracy of all bots that have a skill between 2 and 5 in the game or that join the game. It sets the difference in inaccuracy between one bot skill level and the next.
 
;Syntax: <code>bot_aim_per_skill <''level''></code>
 
;Parameters:
:<code><''level''></code>
:: Ranges from 5 to 50. For example, if you set it to 20 and bots of skill level 1 have an inaccuracy of 30 then a bot of skill 2 will have an inaccuracy of 50, and a bot of skill level 3 will have an inaccuracy of 70. Default is 10.
 
;Example: <code>bot_aim_per_skill 20</code> will set the skill of bots of skill between ''2'' and ''5'' to be incrementally 20 higher than what skill level of bot_skill_1_aim is set at.
|-
|-
| Example || Example
|{{mono|<big>'''bot_chat'''</big>}}
|This command lets you influence how often the bots ''"trash talk"''.
 
;Syntax: <code>bot_chat <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0, meaning none at all, to 1000, being very frequently. Default is 100.
 
;Example: <code>bot_chat 950</code> will make all bots ''"trash talk"'' quite often.
|-
|-
| Example || Example
|{{mono|<big>'''min_bots'''</big>}}
|If nonzero, a minimum number of bots is maintained.
 
;Syntax: <code>min_bots <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 32. Sets the minimum number of bots on the server. -1 disables this command. Default is 12.
 
;Example: <code>min_bots 10</code> will ensure there are at least 10 bots on the server.
|-
|-
| Example || Example
|{{mono|<big>'''max_bots'''</big>}}
|If nonzero, a maximum number of bots is maintained.
 
;Syntax: <code>max_bots <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 32. Sets the maximum number of bots on the server. -1 disables this command.  Default is 20.
 
;Example: <code>max_bots 15</code> will ensure there are no more than 15 bots on the server.
|-
|-
| Example || Example
|{{mono|<big>'''bot_total_varies'''</big>}}
|Sets the number of bots on the server to fluctuate from min_bots to max_bots randomly. This simulates players on an Internet public server. If zero, command is disabled.
 
;Syntax: <code>bot_total_varies <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 3. The higher you set it the more often the numbers of bots playing will change. 0 disables this command. Default is 2.
 
;Example: <code>bot_total_varies 3</code> cause the number of bots to fluctuate between the min_bots and max_bots number somewhat frequently.
|-
|-
| Example || Example
|{{mono|<big>'''bot_team_balance'''</big>}}
|This command will allow bots to automatically switch when teams become uneven. If disabled, bots will attempt to decide for themselves if and when they balance the teams out.
 
;Syntax: <code>bot_team_balance <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 0 (disabled).
 
;Example: <code>bot_team_balance 1</code> allow bots to automatically switch teams if they become uneven.
|-
|-
| Example || Example
|{{mono|<big>'''bot_bot_balance'''</big>}}
|This command will attempt to maintain an even bot to human ratio between the teams. There may be bugs associated with this command. If disabled, bots will attempt to decide for themselves if and when they balance the teams out.
 
;Syntax: <code>bot_bot_balance <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 0 (disabled).
 
;Example: <code>bot_bot_balance 1</code> allow bots to automatically switch teams to maintain an even human to bot ratio.
|-
|-
| Example || Example
|{{mono|<big>'''pause'''</big>}}
|The delay in seconds before bots join a game.
 
;Syntax: <code>pause <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 100.  Default is 2.
 
;Example: <code>pause 25</code> will cause added bots after waiting 25 seconds.
|-
|-
| Example || Example
|{{mono|<big>'''bot_create_interval'''</big>}}
|Time(measured in seconds) between auto-creating one bot and the next. Note: On slower machines and/or old versions of TFC setting this to 1 or 2 might (or might not) cause your server to crash (caused by a Half-Life bug).Setting this to 3 will be safe if settings 1 or 2 cause any instability.
 
;Syntax: <code>bot_create_interval <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges between 1 and 8.  Default is 2.
 
;Example: <code>bot_create_interval 3</code> will force a 3 second wait between the creation of each bot.
|-
|-
| Example || Example
|{{mono|<big>'''bot_xmas'''</big>}}
|Determines whether the bots will celebrate Christmas/birthday mode.
 
;Syntax: <code>bot_xmas <''on/off''></code>
 
;Parameters:
:<code><''on/off''></code>
::Either on or off. Default is off.
 
;Example: <code>bot_xmas on</code> will allow bots to celebrate Christmas/birthday mode
|-
|-
| Example || Example
|{{mono|<big>'''bot_allow_moods'''</big>}}
|If enabled, any bots created will be given random personality traits and/or moods. If disabled, all the bots to have the same personality profile.
 
;Syntax: <code>bot_allow_moods <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 1 (enabled).
 
;Example: <code>bot_allow_moods 1</code> will allow bots to have random personality traits.
|-
|-
| Example || Example
|{{mono|<big>'''bot_allow_humor'''</big>}}
|If enabled, bots are allowed to go crazy occasionally and do daft stuff such as using melee weapons only, or go looking for walls to graffiti.
 
;Syntax: <code>bot_allow_humor <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 1 (enabled).
 
;Example: <code>bot_allow_humor 1</code> will allow bots to act randomly.
|-
|-
| Example || Example
|{{mono|<big>'''defensive_chatter'''</big>}}
|If enabled, bots will announce defense related messages.
 
;Syntax: <code>defensive_chatter <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 1 (enabled).
 
;Example: <code>defensive_chatter 1</code> will allow bots to utilize defensive related chatter.
|-
|-
| Example || Example
|{{mono|<big>'''offensive_chatter'''</big>}}
|If enabled, bots will announce offense related messages.
 
;Syntax: <code>offensive_chatter <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Either 1 or 0. Default is 1 (enabled).
 
;Example: <code>offensive_chatter 1</code> will allow bots to utilize offensive related chatter.
|-
|-
| Example || Example
|{{mono|<big>'''bot_can_use_teleporter'''</big>}}
|If enabled, bots will use Teleporters, if appropriate.
 
;Syntax: <code>bot_can_use_teleporter <''on/off''></code>
 
;Parameters:
:<code><''on/off''></code>
::Either on or off. Default is on.
 
;Example: <code>bot_can_use_teleporter on</code> will allow bots to use Teleporters.
|-
|-
| Example || Example
|{{mono|<big>'''bot_can_build_teleporter'''</big>}}
|If enabled, bots will attempt to build Teleporters, if appropriate.
 
;Syntax: <code>bot_can_build_teleporter <''on/off''></code>
 
;Parameters:
:<code><''on/off''></code>
::Either on or off. Default is on.
 
;Example: <code>bot_can_build_teleporter on</code> will allow bots to construct Teleporters.
|-
|-
| Example || Example
|{{mono|<big>'''bot_use_grenades'''</big>}}
|If enabled, bots use grenades at appropriate times.
 
;Syntax: <code>bot_use_grenades <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 2. Default is 2.
:::0 = No grenade usage at all.
:::1 = Concussion jumping is allowed.
:::2 = The bots can use all grenades freely.
 
;Example: <code>bot_use_grenades 1</code> will allow bots to use grenades only for concussion jumping.
|-
|-
| Example || Example
|{{mono|<big>'''botdontshoot'''</big>}}
|Sets whether or not the bots will shoot. When enabled, bots will run past each other without shooting.
 
;Syntax: <code>botdontshoot <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Any number is accepted. Default state is DISABLED.
:::0 = DISABLED ==> Bots shoot.
:::Any other integer = ENABLED ==> Bots don't shoot.
 
;Example: <code>botdontshoot 1</code> will force the bots not to shoot.
|-
|-
| Example || Example
|{{mono|<big>'''bot_info'''</big>}}
|Shows foxbot information: foxbot variables, foxbot info, & foxbot version.
 
;Syntax: <code>bot_info</code>
 
;Parameters:
:'''none'''
 
;Example: <code>bot_info</code> will display foxbot variables, foxbot info, and foxbot version.
|-
|-
| Example || Example
|{{mono|<big>'''botcam'''</big>}}
|The botcam allows you to see through the eyes of the bot showing what it sees and targets. It also reveals debug information about the bot.
 
;Syntax: <code>botcam <''botname''></code>
 
;Parameters:
:<code><''botname''></code>
::botname is the name of the bot you wish to see.
 
;Example: <code>botcam TFC_bot</code> will let you see what '''TFC_bot''' is looking at.
|-
|-
| Example || Example
|{{mono|<big>'''spectate_debug'''</big>}}
|This command only works on listen servers, and was created mainly for development use. When the (spectating) host player gets near to a bot some information will appear about the bot and the waypoints it is interested in.
 
;Syntax: <code>spectate_debug <''number''></code>
 
;Parameters:
:<code><''number''></code>
::Ranges from 0 to 3.
:::0 = off,
:::1 = show the bots job buffer(what it's thinking about),
:::2 = show any blacklisted jobs(any jobs it is temporarily ignoring),
:::3 = show some of the bots navigation info.
 
;Example: <code>spectate_debug 1</code> will show what waypoints the bot is thinking about.
|-
|-
| Example || Example
|{{mono|<big>'''kick'''</big>}}
|Kicks a bot.
 
;Syntax: <code>kick <''botname''></code>
 
;Parameters:
:<code><''botname''></code>
::botname is the name of the bot you wish to see.
 
;Example: <code>kick TFC_bot</code> will kick TFC_bot from the server.
|-
|-
| Example || Example
|{{mono|<big>'''kickall'''</big>}}
|-
|Kicks all bots.
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}


==Foxbot changelog==
;Syntax: <code>kickall</code>
{{todo|Collapse changelog, like original TF Wiki page}}
'''September-10-2021'''
* Added new waypoints:
    + axlfly
    + botspree
    + dustbowl_old
    + dustbowl2_v2
    + gen_complex
    + insideout
    + lbdustbowl
    + madcanyon
    + mulch_dm2b1
    + murderball1_3
    + osaka_l
    + osaka_r2
    + rats2v2
    + rock2_2way_r
    + rock2_open_r
    + sandbowl_r
    + turbine
    + warpath_r2
* Reinstated the 'foxbot_commander' feature
* Reduced fire delay for Sniper's Auto-Rifle
* Reduced further more redundant codes and added more C++14 support
* Reduced overflow issues and instability crashes
* Reduced Reachable Range to prevent waypoints creation from adding too many junctions
* Fixed Listenserver foxbot.cfg and other .cfg load failures
* Added some support for murderball, murderball1_3 and murderball-2002
* Fixed the unreachable waypoint in warpath as well as enhanced its other waypoints
* Reduced StartFrame stack by reducing some unwanted features and lines that exceed it
* Added more reaction time delay for bots to attack enemies as they were too quick to respond
* Improved dustbowl waypoint by removing rogue pathways in the Jump Point for Capture Point 1, 2 and 3
* bot_job_think.cpp adjusted for the Medic and Engineer bots to heal their team mates more often
* botdontmove, bot_chat, min_bots, max_bots, bot_bot_balance and bot_team_balance cvars should now operate properly


'''September-26-2020'''
;Parameters:
* Fixed high bots CPU usage and buffer overruns
:'''none'''
* Fixed load with non-metamod crashing the game
* Removed some more redundant codes
* Added some Clang compiler fixes and performance fixes
* Spies won't select enemy Scouts, Medics, HWs and Engineers disguises as their speeds and lame default weapons can easily blow their covers
* Repaired some rogue pathwaypoints for 2Fort, avanti, cz2, palermo, rock2, sandbowl_r2, shutdown2 and well
* Allowing bots to avoid firing lame weapons like nailguns, laser railguns and dart tranq guns too often
* Limited the bot frame rate movement to 60Hz
* Increased bot job priority for collecting ammo and healing teammates
* Added script for the bots to know how to disable flag room security
* Reduced bot job priority for solders to avoid rocket jumping too often
* Removed excess Conc/Rocket Jump waypoints in Dustbowl in awkward areas and due to the lack of conc nades
* Optimised 'foxbot_commander.txt' by removing excess 'strlen' loops


'''March-29-2020'''
;Example: <code>kickall</code> will kick all bots from the server.
* Further optimisation fixes
|}
* Linux build compiled with the newer GCC/G++ 8
* Replaced most of the C style casts with C++ casts
* Increased Engineer priority task to maintain Sentry Guns
* Increased Medic priority task to buff and heal team mates
* Increased collect ammo priority to allow both Engineers and Snipers for defensive tasks
* Reduced Sniper accuracy for each of the 5 bot skill settings
* Enhanced the Dustbowl waypoints even further to remove lame sentry deployment areas
* Altered the Dustbowl map config to allow Red Engineers to spawn first
* Corrected the hunted map config where Sniper assassins could not spawn
* Fixed deprecation warning for 'SpyDetect'
* Fixed some potential code issues


'''August-07-2018'''
== Changelog ==
* Removed unwanted tchar.h dependancies that are no longer required - Thanks to Globoss
{{main|Foxbot/changelog}}
* Linux build should now work for Assault and Capture Point maps due to syntax error fixed - Thanks to Globoss
* Fixed Write Strings and compile time for version.cpp that fails on GCC 6+
* Fixed extdll.h that appears to fail to compile on GCC 6+ for #ifndef min and max
* Added optimisation for faster float point for Win32 build
* Linux build optimised for floating-point arithmetic and tuned for newer arch
* bot_job_think.cpp should be fairly adjusted for the bots to choose their paths and tasks wisely
* h_export.cpp Linux 'h_Library' can now detect both old and new TFC server build (tfc.so or tfc_i386.so)
* Added teleport waypoints for baconbowl_r, chimkey_l and siege
* Added more map configs for rats maps, plus turkeyburgers2002, fishburgers and donutburgers to spawn 1 Sniper per 4 teams
* Enhanced the map configs for the Assault & Defend maps, rock2 and flagrun to spawn the recommended bot classes for each team
* Enhanced the hunted waypoints to prevent the Red team and the Hunted wondering back and forth in entrance tunnel
* Added some more defensive waypoints for avanti, casbah, flagrun, chimkey_l and warpath
* Added some important conc/rocket jump waypoints for the stock maps, palermo, ksour, cornfield, baconbowl_r and sandbowl_r2
* Reduced the risk of bots invading enemy spawns for the stock maps, chimkey_l, tf2fort and ksour
* Reduced excessive waypoint and pathwaypoint quantity for rats, rats2 and rats3, rats_cmd, palermo and baconbowl_r
* Removed non recommended waypoints for Dustbowl that includes sentry that are not suitable for defending CP3
* Fixed the waypoint problems for 55, openfire_lowgrens, xpress2k4, destroy_l, phantom, shutdown2, sandbowl_r2 and tf2fort
* Added new waypoints for bases2k3, momentum_l, mortality_l and hellion


'''December-23-2016'''
==External Links ==
* Renamed Win32 binary 'foxbot.dll' as 'foxbot_mm.dll'
*[https://github.com/APGRoboCop/foxbot FoxBot Github]
* Both builds recompiled and added some FPU compile flag support for SSE2
* Removed further HLDM and Op4 support
* Fixed the 'check if entity is a Dispenser' coding that was mistyped
* Enhanced the Dustbowl waypoints for preventing blue bots from going backwards
* Enhanced the shutdown2 waypoints for preventing bots from spawn camping
* Enhanced the cornfield waypoints for using detpack and more teleports
* Increased bot priority tasks for allowing Engineers to focus more on building
* Removed ammo waypoints located in Nade Bag locations to reduce bots taking grenades to allow humans to obtain them
* Added some important concjump points for certain stock maps plus for palermo, destroy_l and shutdown2
* Added important FoxBot Map and Class Restriction map configs for TFC for like Sniper only maps and hunted
* Added 'foxbot_mm_i686.so' Linux HLDSUpdatetool TFC compatible binary version for legacy support
* Added teleport waypoints for warpath, shutdown2, avanti, schtop, monkey_l, ksour and palermo
* New waypoints for 55, openfire_lowgrens, rats, rats2, rats3, xpress2k4, destroy_l, phantom, rats_cmd and tf2fort
* baconbowl_r, siege, high_flag, mortality_l, ss_nyx_ectfc, alchimy_l2, bases2k3 and hellion (coming soon!)


'''August-20-2016'''
[[Category:Bots]]
* Added 'bot_team_balance' external integer for bot.cpp
* Fixed the unwanted 'const' for the bot global variables that fail for Win32 build
* Drop the '_i386' suffix build name for Linux binary version
* Both builds compiled for SteamPipe using HLSDK v2.3p4 and Metamod v1.21-p37 source codes
* Fixed the 'snprint' script that was used for the older FoxBot cpp files
* Removed non-required entities for TFC that were used from the HPB Template
* Removed support for HLDM, CS, FLF and Op4 from HPB Template to focus support for TFC
* Fixed code typo error for 'bot_max_inaccuracy' in bot_combat.cpp
* Linux version optimised as i686 build and fixed Linux binary for TFC SteamPipe Servers
* Both builds optimised for SSE2 code generation
* Fixed '[META] WARNING: Plugin didn't set meta_result: foxbot.dll:engClientCommand() that appears to be fixed from the newer HLSDK and Metamod kits
* Added a config variable 'botdontmove' to spawn stationary bots for the purpose of minigolf maps

Latest revision as of 18:24, 19 January 2025

Underlinked - Logo.png
This article needs more Wikipedia icon links to other articles to help Wikipedia icon integrate it into the encyclopedia. Please help improve this article by adding links Wikipedia icon that are relevant to the context within the existing text.
January 2024

Icon-Released.png

This mod for GoldSrc has been released! Download it now.

Foxbot is a server-side bot for Team Fortress Classic Team Fortress Classic.

Foxbot Behavior

  • Foxbot relies on a system of navigation controls, called waypoints, specific to each map. 523 waypoints, for nearly as many maps, come with the installation of FoxBot.
  • Foxbots have the following traits:
  • Variable Skill
  • Chat personalities available (aggressive, sarcastic, humorous, etc.)
  • Attempt to report location of dropped flags
  • Bots will change classes if they are doing poorly against a particular threat
  • If playing as Tfwiki favicon.png civilian class, will attempt to stay near allies

Foxbot Commands

For Foxbot to work properly, a map with a proper waypoint must be used. Foxbot's installation provides waypoints for 527 maps, including all Team Fortress Classic standard maps and deathmatch maps from Half-life.

Command Description
addbot This command will create one bot.
Syntax
addbot [<team>] [<class>] [<name>] [<skill>]
Parameters
<team>
Specifies the team to which the bot will be assigned. If omitted, bot will be assigned a random team.
team can be 1 = blue, 2 = red, 3 = yellow, or 4 = green.
<class>
The classname of the class can be 1 = Scout, 2 = Sniper, 3 = Soldier, 4 = Demoman, 5 = Medic, 6 = HWGuy, 7 = Pyro, 8 = Spy, 9 = Engineer, or 10 = Random
If a class is not specified, the bot will be able to change class whenever it wants to/needs to
<name>
Specifies the name to assign the bot.
<skill>
Sets the skill level for the bot. Skill can be 1 being best to 5 being worst.
Example
botadd 1 3 TFC_bot 1 will spawn a Soldier named TFC_bot with a high skill level.
botskill_upper Sets the best possible skill level to be randomly assigned to bots that join the game automatically.
Syntax
botskill_upper <level>
Parameters
<level>
Ranges from 1 being best to 5 being worst. Default is 1 (highest).
Example
botskill_upper 2 will set all bots that join the game to no higher than a skill level of 2.
botskill_lower Sets the worst possible skill level to be randomly assigned to bots that join the game automatically.
Syntax
botskill_lower <level>
Parameters
<level>
Ranges from 1 being best to 5 being worst. Default is 3 (medium).
Example
botskill_lower 4 will set all bots that join the game to no lower than a skill level of 4.
bot_skill_1_aim This command will affect the accuracy of all bots that have a skill of 1 (highest skill level) in the game or that join the game.
Syntax
bot_skill_1_aim <level>
Parameters
<level>
The level can range from 0, bots of skill 1 will have the best accuracy possible, to 200, bots of skill 1 will have the worst accuracy possible. Default is 30.
Example
bot_skill_1_aim 10 will set all bots with a skill level of 1 to have moderately accurate aiming.
bot_aim_per_skill This command will affect the accuracy of all bots that have a skill between 2 and 5 in the game or that join the game. It sets the difference in inaccuracy between one bot skill level and the next.
Syntax
bot_aim_per_skill <level>
Parameters
<level>
Ranges from 5 to 50. For example, if you set it to 20 and bots of skill level 1 have an inaccuracy of 30 then a bot of skill 2 will have an inaccuracy of 50, and a bot of skill level 3 will have an inaccuracy of 70. Default is 10.
Example
bot_aim_per_skill 20 will set the skill of bots of skill between 2 and 5 to be incrementally 20 higher than what skill level of bot_skill_1_aim is set at.
bot_chat This command lets you influence how often the bots "trash talk".
Syntax
bot_chat <number>
Parameters
<number>
Ranges from 0, meaning none at all, to 1000, being very frequently. Default is 100.
Example
bot_chat 950 will make all bots "trash talk" quite often.
min_bots If nonzero, a minimum number of bots is maintained.
Syntax
min_bots <number>
Parameters
<number>
Ranges from 0 to 32. Sets the minimum number of bots on the server. -1 disables this command. Default is 12.
Example
min_bots 10 will ensure there are at least 10 bots on the server.
max_bots If nonzero, a maximum number of bots is maintained.
Syntax
max_bots <number>
Parameters
<number>
Ranges from 0 to 32. Sets the maximum number of bots on the server. -1 disables this command. Default is 20.
Example
max_bots 15 will ensure there are no more than 15 bots on the server.
bot_total_varies Sets the number of bots on the server to fluctuate from min_bots to max_bots randomly. This simulates players on an Internet public server. If zero, command is disabled.
Syntax
bot_total_varies <number>
Parameters
<number>
Ranges from 0 to 3. The higher you set it the more often the numbers of bots playing will change. 0 disables this command. Default is 2.
Example
bot_total_varies 3 cause the number of bots to fluctuate between the min_bots and max_bots number somewhat frequently.
bot_team_balance This command will allow bots to automatically switch when teams become uneven. If disabled, bots will attempt to decide for themselves if and when they balance the teams out.
Syntax
bot_team_balance <number>
Parameters
<number>
Either 1 or 0. Default is 0 (disabled).
Example
bot_team_balance 1 allow bots to automatically switch teams if they become uneven.
bot_bot_balance This command will attempt to maintain an even bot to human ratio between the teams. There may be bugs associated with this command. If disabled, bots will attempt to decide for themselves if and when they balance the teams out.
Syntax
bot_bot_balance <number>
Parameters
<number>
Either 1 or 0. Default is 0 (disabled).
Example
bot_bot_balance 1 allow bots to automatically switch teams to maintain an even human to bot ratio.
pause The delay in seconds before bots join a game.
Syntax
pause <number>
Parameters
<number>
Ranges from 0 to 100. Default is 2.
Example
pause 25 will cause added bots after waiting 25 seconds.
bot_create_interval Time(measured in seconds) between auto-creating one bot and the next. Note: On slower machines and/or old versions of TFC setting this to 1 or 2 might (or might not) cause your server to crash (caused by a Half-Life bug).Setting this to 3 will be safe if settings 1 or 2 cause any instability.
Syntax
bot_create_interval <number>
Parameters
<number>
Ranges between 1 and 8. Default is 2.
Example
bot_create_interval 3 will force a 3 second wait between the creation of each bot.
bot_xmas Determines whether the bots will celebrate Christmas/birthday mode.
Syntax
bot_xmas <on/off>
Parameters
<on/off>
Either on or off. Default is off.
Example
bot_xmas on will allow bots to celebrate Christmas/birthday mode
bot_allow_moods If enabled, any bots created will be given random personality traits and/or moods. If disabled, all the bots to have the same personality profile.
Syntax
bot_allow_moods <number>
Parameters
<number>
Either 1 or 0. Default is 1 (enabled).
Example
bot_allow_moods 1 will allow bots to have random personality traits.
bot_allow_humor If enabled, bots are allowed to go crazy occasionally and do daft stuff such as using melee weapons only, or go looking for walls to graffiti.
Syntax
bot_allow_humor <number>
Parameters
<number>
Either 1 or 0. Default is 1 (enabled).
Example
bot_allow_humor 1 will allow bots to act randomly.
defensive_chatter If enabled, bots will announce defense related messages.
Syntax
defensive_chatter <number>
Parameters
<number>
Either 1 or 0. Default is 1 (enabled).
Example
defensive_chatter 1 will allow bots to utilize defensive related chatter.
offensive_chatter If enabled, bots will announce offense related messages.
Syntax
offensive_chatter <number>
Parameters
<number>
Either 1 or 0. Default is 1 (enabled).
Example
offensive_chatter 1 will allow bots to utilize offensive related chatter.
bot_can_use_teleporter If enabled, bots will use Teleporters, if appropriate.
Syntax
bot_can_use_teleporter <on/off>
Parameters
<on/off>
Either on or off. Default is on.
Example
bot_can_use_teleporter on will allow bots to use Teleporters.
bot_can_build_teleporter If enabled, bots will attempt to build Teleporters, if appropriate.
Syntax
bot_can_build_teleporter <on/off>
Parameters
<on/off>
Either on or off. Default is on.
Example
bot_can_build_teleporter on will allow bots to construct Teleporters.
bot_use_grenades If enabled, bots use grenades at appropriate times.
Syntax
bot_use_grenades <number>
Parameters
<number>
Ranges from 0 to 2. Default is 2.
0 = No grenade usage at all.
1 = Concussion jumping is allowed.
2 = The bots can use all grenades freely.
Example
bot_use_grenades 1 will allow bots to use grenades only for concussion jumping.
botdontshoot Sets whether or not the bots will shoot. When enabled, bots will run past each other without shooting.
Syntax
botdontshoot <number>
Parameters
<number>
Any number is accepted. Default state is DISABLED.
0 = DISABLED ==> Bots shoot.
Any other integer = ENABLED ==> Bots don't shoot.
Example
botdontshoot 1 will force the bots not to shoot.
bot_info Shows foxbot information: foxbot variables, foxbot info, & foxbot version.
Syntax
bot_info
Parameters
none
Example
bot_info will display foxbot variables, foxbot info, and foxbot version.
botcam The botcam allows you to see through the eyes of the bot showing what it sees and targets. It also reveals debug information about the bot.
Syntax
botcam <botname>
Parameters
<botname>
botname is the name of the bot you wish to see.
Example
botcam TFC_bot will let you see what TFC_bot is looking at.
spectate_debug This command only works on listen servers, and was created mainly for development use. When the (spectating) host player gets near to a bot some information will appear about the bot and the waypoints it is interested in.
Syntax
spectate_debug <number>
Parameters
<number>
Ranges from 0 to 3.
0 = off,
1 = show the bots job buffer(what it's thinking about),
2 = show any blacklisted jobs(any jobs it is temporarily ignoring),
3 = show some of the bots navigation info.
Example
spectate_debug 1 will show what waypoints the bot is thinking about.
kick Kicks a bot.
Syntax
kick <botname>
Parameters
<botname>
botname is the name of the bot you wish to see.
Example
kick TFC_bot will kick TFC_bot from the server.
kickall Kicks all bots.
Syntax
kickall
Parameters
none
Example
kickall will kick all bots from the server.

Changelog

Main article:  Foxbot/changelog

External Links