BOT CONTROL

bot_add
bot_add_t
bot_add_ct

Causes a bot to be added to the game. "bot_add" will add a bot to the team specified by the "bot_join_team" cvar. "bot_add_t" and "bot_add_ct" forces the bot onto the respective teams.

bot_kill <name, "all">
This command takes either the name of a bot, or the keyword "all" - causing all bots in the game to be killed.

bot_kick <name, "all">
This command takes either the name of a bot, or the keyword "all" - causing all bots in the game to be kicked.

bot_knives_only
bot_pistols_only
bot_snipers_only
bot_all_weapons

These commands are shortcuts that set the bot_allow_* cvars accordingly.


BOT CONTROL
bot_difficulty [0-3]
This cvar determines the difficulty of all newly created bots (existing bots will retain the difficulty setting they were created with). Zero = easy, 1 = normal, 2 = hard, 3 = expert. Difficulty values higher than 3 are reset to 3.

bot_quota <minimum number of bots>
Setting this cvar to a nonzero value will cause the given number of bots to be maintained in the game. If a bot is kicked, a new bot will be added to maintain the quota. To disable the quota, set it to zero.

bot_prefix <string>
The given <string> will be prefixed to all subsequently added bot names. This is useful for "clan-tagging" bots.

bot_join_team [ct, t, any]
Determines which team the bots will join.

bot_join_after_player [0,1]
If nonzero, the bots will wait to join the game until at least one human player has joined.

bot_allow_pistols
bot_allow_shotguns
bot_allow_sub_machine_guns
bot_allow_rifles
bot_allow_machine_guns
bot_allow_grenades
bot_allow_snipers
bot_allow_shield
All of the "bot_allow" cvars can be either 0 or 1. If zero, the bots will not buy or use the given category of weapon.

bot_allow_rogues [0,1]
If nonzero, allows bots to occasionally "go rogue". Rogue bots just "run and gun", and will respond to all radio commands with "Negative".



NAVIGATION MESH EDITING
Each of the following bot_nav_ commands operate on the navigation mesh, allowing hand-tuning of the automatically learned data. It is recommended that these commands be bound to keys for ease of use while editing.
CAUTION: There is no "undo" operation. Save your navigation mesh often.

bot_nav_mark
Marks the currently selected nav area for later operations.

bot_nav_delete
Deletes the currently selected nav area.

bot_nav_split
Splits the currently selected nav area into two new nav areas, along the white split line.

bot_nav_merge
Merges the currently selected nav area and a previously marked nav area into a new, single nav area. The merge will only occur if the two areas are the same size along the merge line.

bot_nav_connect
Creates a ONE WAY link from the currently marked area to the currently selected area, telling the bots they can walk FROM the marked area TO the selected area. For most areas, you will want to connect the areas in both directions. However, for some "jump down" areas, the bots can move one way, but cannot get back the other.

bot_nav_disconnect
Disconnects ALL connections from the currently marked area to the currently selected area.

bot_nav_begin_area
bot_nav_end_area
These two commands allow the creation of new nav areas. "bot_nav_begin_area" marks one corner of the area. "bot_nav_end_area" marks the opposite corner of the area and creates it. To cancel the operation, issue a "bot_nav_begin_area" command again.

bot_nav_splice
Creates a new nav area between the currently marked area and the currently selected area, and bidirectionally connects the new area. This command is especially useful for creating sloped nav areas.

bot_nav_crouch
Flags the currently selected area as "crouch", requiring bots to crouch (duck) to move through it.

bot_nav_jump
Flags the currently selected area as "jump". This is a hint to the bots that they should jump to traverse this area.

NAVIGATION MESH PROCESSING
bot_nav_analyze
Analyze the navigation mesh to determine Approach Points and Encounter Spots. This may take several minutes based on the size and complexity of the map.
NOTE: This command requires one bot to be in the game. The recommended procedure is to save the mesh, add a bot, and quickly enter bot_analyze.

bot_nav_save
Saves the current navigation mesh to disk. The navigation mesh ("nav" file) is automatically named to correspond to the current map file. For instance, if the map is de_dust.bsp, the nav file will be de_dust.nav.

bot_nav_load
Clears the current navigation mesh, and loads it from disk.


NAV MESH EDITING
bot_nav_edit [0,1]
Setting this cvar to 1 allows hand-tuning of the bot's navigation mesh. Once edit mode has been activated, the bot_nav_* commands can be used.

bot_nav_zdraw <height value>
This value determines how high above the ground to draw the "nav mesh" when in nav edit mode. If the terrain is very irregular or highly sloped, it can be useful to increase this value to 10 or 15. The default value is 4.

bot_quicksave [0,1]
If nonzero, the analysis phase of map learning will be skipped. This is useful when iteratively hand-tuning nav files. Note that withough this analysis, the bots will not look around the world properly.


DEBUGGING
bot_walk [0,1]
Force all bots to walk (disallow running).

bot_stop [0,1]
If nonzero, all bots will stop moving and responding.

bot_show_nav [0,1]
If nonzero, the nav mesh near each bot is drawn.

bot_show_danger [0,1]
If nonzero, the "danger" in each nav area is draw as a vertical line. Blue lines represent danger for CTs, and red lines are danger for Ts.

bot_traceview <value>
Used for internal debugging of bot navigation.

bot_debug <value>
Used for internal debugging of bot behavior.


MISC
bot_about
Displays the bot version number, and information about the bot's author.

bot_goto_mark
Causes one bot in the map to move to the center of the currently marked area. This is useful for testing the walkability of specific portions of the navigation mesh.


