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. 
 
 

