Foxbot

Foxbot is a server-side bot for .
==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 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
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	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.
 	Kicks all bots.
;Syntax: kickall
;Parameters:
:none
;Example: kickall will kick all bots from the server.
== Changelog ==
==External Links ==
*FoxBot Github
Category:Bots