Settings and commands
  • Settings in podbot.cfg file

    pb_minbotskill (value) - Sets the minimum Skill if Bots are created without specifying the Skill. Correct values are 1-100. Default is 95.

    pb_maxbotskill (value) - Sets the maximum Skill if Bots are created without specifying the Skill. Must be bigger than minbotskill (or at least equal) of course ! Correct values are minbotskill-100. Default is 100.

    pb_minbots (value) - configure the minimum number of bots that will run on the server. Default is 0.

    pb_maxbots (value) - configure the maximum number:
    a) of bots + humans (if pb_bot_quota_match is 0)
    b) of bots (if pb_bot_quota_match is grater than 0)
    that will be possible to run on the server (so it doesn't mean it will automatically add any bot to the server). Default is 16.

    If You don't specify pb_minbots/pb_maxbots (You will comment them out in Your podbot.cfg) then the function auto/add kick bot (described a bit below) will not work (if pb_maxbots is not assigned in podbot.cfg, then the default is 0 for it). If You specify them - then they will support a minimum and maximum number of bots running on the server. Bots can be added to the server (by pb add, pb fillserver commands or by pb_bot_quota_match function) until the total number of bots and humans (pb_bot_quota_match = 0) or bots (pb_bot_quota_match > 0) reaches the pb_maxbots value. If pb_bot_quota_match = 0 - each time a new player joins the server, a bot will be kicked from the server unless there are only pb_minbots number of bots currently on the server; after a player disconnects from the server, bot will be automatically added back to the server until the total number of players (bots + humans) reaches pb_maxbots again. You should make pb_maxbots be AT LEAST one less than the mp_maxplayers value (otherwise no one will be able to join your server). Some more explanation to this function You can find here. That function auto add/kick doesn't work in the case if pb_bot_quota_match is defined as grater than 0 (in that case number of bots follows the number of humans multiplied by pb_bot_quota_match (of course in the range between pb_minbots/pb_maxbots). More info read below.

    pb_bot_quota_match (value) - configure the number of bots that will match humans on the server (number_of_bots = number_of_humans * pb_bot_quota_match). In this case number of bots will be limited by pb_minbots and pb_maxbots settings. For that function pb_maxbots keeps the max limit of bots on the server (not max number of bots + humans like it's for auto add/kick bot function - when pb_bot_quota_match is 0). The work of the function matching humans is stopped by usage some of these functions - pb fillserver or pb removebots. In both cases pb_bot_quota_match will be set to 0. If pb_bot_quota_match is grater than 0, You cannot use commands pb add and pb remove (because of the reason the amount of bots must match humans...). Default is 0 (bots don't match humans).

    pb_bot_join_team (string) - forces joining the bots to specified team (T or CT) to overwrite the setting of the command pb add or pb fillserver. Useful if You want to keep always bots in one team against humans in the other. Possible value of argument - "T", "CT", ANY". Default is "ANY" (bots aren't forced to join any specific team.

    pb_skin (value) - forces the bots to use the specified skin and to overwrite the skin setting of the command pb add or pb fillserver. Useful if You want to have always bots in one team with the same skin. Argument values: 1,2,3,4 - they are forced skins, 0,5 - default - no forcing

    pb_ffa (1|0) - swiches to on the Free For All mode (bots will kill also their teamnates). Default is 0 (off)

    pb_chat (1|0) - Turns on/off Botchatting. Bots chat if they killed someone, if the Bomb was planted or if they are dead and bored. Default is on (1).

    NOTE:

    botchat.txt file must be in addons/podbot directory even if Botchat is turned off !

    pb_radio (1|0) - Turns on/off radio usage. It affects also bots reaction to the radio command the human-players may issue. Default is on (1).

    pb_latencybot [0|1|2] - Switches to on/off (1/0) showing on the scoreboard the string "BOT" as a ping or shows a fluctuating fake ping (from the range 30-50) for bots (2). 0 and 1 are valid only for the bots they are already created - it doesn't affect those in-game ones. Default is 2.

    pb_jasonmode (1|0) - Turns on/off Jason Mode ! Meaning Bots don't buy weapons and only use the knife for combat ! Greets to Auxois ! Use this for much fun with e.a. cs_estate or cs_office . Default is off (0).

    pb_wptfolder (folder) - Sets the default Folder for loading/saving Waypoint Files. This folder HAS to be inside the POD-Bot Directory ! Don't put it into quotation marks and don't use spaces or a trailing backslash ! Default folder - wptdefault

    pb_detailnames (0|1|2|3) - Turns on/off the Skilldisplay behind names and the personality ( [POD], [P*D], [P0D] ) before the name. 0 - no skill sufix and no personality prefix displayed; 1 - the skill as sufix and the personality prefix added to the bot's name; 2 - only the personality prefix is added to the name; 3 - only the skill sufix is added to the new created bot. Default is prefix and sufix diplayed near the name of the bot added (1).

    pb_numfollowuser (number) - Sets the maximum number of Bots in the team to follow the same user (when Radio Command "Follow Me" is used). Default is 3.

    pb_maxweaponpickup (number) - Sets the maximum number of weapons Bots are allowed to pickup during a round. If You don't want to limit bots with pickuping weapons (for example while playing CSDM or fy_ maps) You can use "-1" value. Default is 10.

    pb_shootthruwalls (1|0) - This cvar specifies if Bots are allowed to shoot through Walls if they saw an enemy or if they heard someone on the other Side of a Wall. Default is on (1).

    pb_usespeech (1|0) - Turns on/off usage of HL Engine Speech Synthesis at the game start. Default is on (1).

    pb_spray (1|0) - Set this to off to disallow Bot Logo Spraying. Default is on (1).

    pb_mapstartbotdelay (value) - Delay (in seconds) of bots joining after new map start to prevent kick some human-players at map change. Default is 5.

    pb_firsthumanrestart (1|0) - Turns on/off the function - when the first human joins the server and there are some bots already playing there - the round is restarted. Default is (0).

    pb_maxcamptime (value) - It says how many maximum seconds the bot may stay camping in one place before going somewhere else. Default is 30 (s)

    pb_autokill (1|0) - Turns on/off auto killing bots if all human players are dead already. Default is off (0).

    pb_autokilldelay (value) - Delay (in seconds) autokilling bots if autokill is enabled. Default is 45.


    NOTE:
    These 3 settings below seriously affects the Bots Perception.
    They specify the rate (in seconds) of updating some of the Bot Checks like: some sound, some possibility of pickup any item or usage grenade by bots. If you've got a slow computer you could try changing these to higher values to get some performance back.If you've got a fast computer you might try lowering them to get better even better playing results.
    pb_timer_sound (value) - Default is 1.0 (in seconds).
    pb_timer_pickup (value) - Default is 0.3 (in seconds).
    pb_timer_grenade (value) - Default is 0.5 (in seconds).

    pb_welcomemsgs (1|0) - Lets You to enable/disable some welcome messages, if You would like for example the people don't know there are some bots on the server. Default is on (1).

    pb_dangerfactor (value) - The setting here specifies the danger factor with which the bots will weighten any waypoint where they have been killed in the past, in order to avoid it later. The higher the value, the more the bot will care about these waypoints and pick other routes instead. Progression is logarithmic. Warning: higher values requires more CPU. Default is 2000.


    pb add [skill [personality [team [model [name]]]]]

    This command adds a Bot with parameters - skill You can write from 1 to 100; if You will write 101 it will mean random skill from pb_minbotskili to pb_maxbotskill specified above.
    Personality - 1 to 3 or 5 and these value mean:

    • 1 - Normal [POD]
    • 2 - Aggresive [P*D]
    • 3 - Defensive [P0D]
    • 5 - Random personality from these 3 above

    Team 1 is for Terrorists, 2 for Counter Terrorists and 5 to use auto-assign. This setting might be overwritten by forcing bots to join always one team if pb_bot_join_team is equal to "T" or "CT".
    Model (class) is 1-4 or 5 (5 means random from 1 to 4).
    Name is of course the name for this Bot.
    Every command needs to be precedented by "pb" prefix (without quotes).
    If You want to use space in the name of Your bot, You have to use quotes (for example: pb add 100 2 1 4 "James Bond").
    You may not specify some argument without these before (for example - You may not specify bot's name without its skill nor personality nor team nor model - like this:
    pb add Roger
    That abobe is an invalid call of the function adding bot and then some bot with all random parameters (including also the name) will be added to the game.
    You don't need of course specify all parameters - but if You need to specify some of them exactly - all other You have to specify as random. In our example to add some bot with the name Roger You have to write the line:

    pb add 101 5 5 5 Roger

    and this call of add function is correctly.
    If You want to add some bot to the game with skill 100 to T team, the line should be like this:
    pb add 100 5 1
    In this case the parameters AFTER the latest one You need to specify - aren't important (You don't need write anything more). The model will be selected automatically and the name will be choosen from botnames.txt file.

    Some other examples:

    pb add -->skill gets random based on mix\max, all else random
    pb add 50 -->skill is 50 all else random
    pb add 100 1 2 1 "Mr Kabby" -->all have been set

    NOTE:

    You can use this command only if pb_bot_quota_match is 0.

    pb fillserver [skill [personality [team [model]]]]

    Meaning of the parameters is like for add command. This command lets You fill the server by bots until reaching by podbots + human_players(or other bots):
    a) the pb_maxbots value if it is specified (different than 0)
    b) mp_maxplayers if pb_maxbots is not specified (or is equal to 0)

    If You want to fill Your server by bots with random skill (between pb_minbotskill and pb_maxbotskill), but as "aggresssive" (and You don't care about their models or team), write this line:
    pb fillserver 101 2
    If You want for example fill the server by bots with skill 100, random personality , random team and random model - write this line:
    pb fillserver 100
    If You wish to fill the server by bots, but all bots to one team only - then write this:
    a) example for T team and skill 90, all else random:
    pb fillserver 90 5 1
    b) example for CT team and skill and personalities randomly, model 3:
    pb fillserver 101 5 2 3
    The rules are the same for parameters like for add command (except 'name' parameter - for fillserver this parameter doesn't exist).

    NOTE:

    If You want to fill the server by bots to only one team, don't forget set-up game variables mp_autoteambalance and mp_limitteams to 0.
    If You are using pb fillserver command, it changes pb_bot_quota_match to 0 (if it was something else there).

    VERY IMPORTANT

    Since version 3 of podbot the access to podbotmenu is available also on a dedicated server!!!


    pb_passwordkey (string) - passwordkey - needs set as setinfo on the client's PC to get the access to the main podbot menu. Default is "_pbadminpw"


    pb_password (string) - sets the password to let admin control bots on the server throw podbotmenu.
    To get the access to podbotmenu You need to write in Your podbot.cfg (on the server) the line like this:
    pb_password "your_password"
    and also write in autoexec.cfg the setinfo line (at Your client PC in cstrike/czero directory) as:
    setinfo "_pbadminpw" "your_password"
    That setinfo line above can be also typed from the client's console during the game.
    In the above example You may need to write Your-own passwordkey instead default _pbadminpw - if You changed the default setting for it as pb_passwordkey.
    The string was called above as "your_password" it's just Your password You need to write in these both places - in podbot.cfg (near pb_password) on the server and in autoexec.cfg (as setinfo line) on the client's PC.


    pb_aim_type (value) - sets the aim type of bots. Available aim type:
    1 = inhuman turns
    2 = constant angle velocity
    3 = botaim1
    4 = botaim2
    Default is 4 (Pierre-Marie Baty's botaim2 enabled).

  • Podbot control console commands

    You can change all parameters described above from console - if You wish to do this.

    Except these commands described above there are also some other available commands You can write in console.

    pb menu - this command brings up for You the menu to control bots. You can bind it (like it's done in default podbot.cfg file existing in package for podbot V3).
    bind "=" "pb menu"

    pb help - this command lists all available bot's console commands. If You type pb help it will show more precisly help for each command separately, i.e:
    pb help add - it will show all the info about pb add command.

    pb killbots - this command kill all pod bots in the game. Useful for testing if bots got stuck somewhere becasue of bad waypointing and You want simply finish the round.

    pb remove (#bot_id | bot_name) - this command lets You kick the selected bot from the game. bot_id parameter is this what You can see when You type "status" in the console (the same like for standard kick command). bot_name - it's second method to specify which bot has to be kicked out (it's like kick by the name).


    NOTE:

    If Your bot has a space in its name (for example - James Bond) You need to use quotes to successfully usage of the remove command. Example:
    pb remove "[P*D]James Bond (100)"
    Look at this example with attention - if detailnames is on - You have to write also this personality prefix and skill sufix - all must be in quotes - because all of this it's the bot's name in this example.
    You can use this command only if pb_bot_quota_match is 0.

    pb removebots - this command kicks bots from Your server until reaching pb_minbots. If pb_minbots is 0 then all bots will be kicked out by this command.


    NOTE:

    If You are using pb removebots command, it changes pb_bot_quota_match to 0 (if it was something else there).

    pb weaponmode (value) - correct value are 1 to 7. This command lets You select the weapon will be used by bots only (they will not buy another type). 1 - Knife only (JasonMode!)
    2 - Pistols
    3 - Shotguns
    4 - Machine Guns
    5 - Rifles
    6 - Sniper Weapons
    7 - All Weapons (Standard)


    pb_version - (yes, with undescore line) this command returns the version number (as a string) of the POD's build

  • Botaim2 console/config settings

    pb_aim_spring_stiffness_x (value) - VERTICAL (up/down) spring stiffness of the aiming system. This value affects the quickness of the crosshair movement, as well as the frequency of the resulting oscillations.(default: 13.0)

    pb_aim_spring_stiffness_y (value) - HORIZONTAL (left/right) spring stiffness of the aiming system. This value affects the quickness of the crosshair movement, as well as the frequency of the resulting oscillations. (default: 13.0)

    pb_aim_damper_coefficient_x (value) - VERTICAL (up/down) damping coefficient of the aiming system. This value also affects the quickness of the crosshair movement, and the amplitude of the resulting oscillations.(default: 0.22)

    pb_aim_damper_coefficient_y (value) - HORIZONTAL (left/right) damping coefficient of the aiming system. This value also affects the quickness of the crosshair movement, and the amplitude of the resulting oscillations.(default: 0.22)

    pb_aim_deviation_y (value) - VERTICAL (up/down) error margin of the aiming system. This value affects how far (in game length units) the bot will allow its crosshair to derivate from the ideal direction when not targeting any player in particular. (default: 2.0)

    pb_aim_deviation_y (value) - HORIZONTAL (left/right) error margin of the aiming system. This value affects how far (in game length units) the bot will allow its crosshair to derivate from the ideal direction when not targeting any player in particular. (default: 1.0)

    pb_aim_influence_x_on_y (value) - Perpendicular influence of the vertical axis on a HORIZONTAL movement. This value affects how much (in fraction of 1) the bot will be disturbed when moving its crosshair on an axis by the inherent movement on the other axis. (default: 0.25)

    pb_aim_influence_y_on_x (value) - Perpendicular influence of the horizontal axis on a VERTICAL movement. This value affects how much (in fraction of 1) the bot will be disturbed when moving its crosshair on an axis by the inherent movement on the other axis. (default: 0.17)

    pb_aim_offset_delay (value) - Maximal value in seconds after which the aiming system will re-evaluate its ideal direction. This affects how often a bot will attempt to correct an imprecise crosshair placement by moving the crosshair inside the error margin bounds defined by the botaim_deviation CVARs. (default: 1.2)

    pb_aim_notarget_slowdown_ratio (value) - Fraction of the full speed the aiming system will adopt as speed when aiming at nothing in particular. This affects how slow the bot will move its crosshair when targeting nobody, relatively to its full speed capacity. (default: 0.5)

    pb_aim_target_anticipation_ratio (value) - Fraction of the estimated target's velocity the aiming system will rely on when aiming at a moving target. This affects how well the bot will be able to track moving targets on the fly, and whether it will have a tendancy to aim ahead of it or behind it. (default: 2.2)

  • Weapon/equipment restrictions settings Note:

    This feature has been requested long time ago at BU forum by the people using AMX/AMXX/ClanMod weapon restriction. The people got frustrated when admin restricted for the players for example awp usgae, but bots still could buy it. Since version V3 it's possible to follow weapon/equipment restrictions done by those fun mods. There is a need to rewrite a bit restmenu.sma in AMX/AMXX to get cvar/cvars interface - to follow it in some another sma plugin to give the correct info to podbot mm binary. There is also a possibility to control manually weapons availability/restriction. The interface lets You use 2 strings bitwise as "00100..." - 0 means the weapon is available, 1 means the weapon is restricted. There are 2 cvars (as strings) defined for restrictions in podbot mm:


    pb_restrweapons (default "00000000000000000000000000")
    and
    pb_restrequipammo (default "000000000")
    The most left bit is numbered as 0, the next one is 1 etc.

    The meaning of bits of pb_restrweapons cvar:
    Pistols restriction
    0 - KNIFE
    1 - USP
    2 - GLOCK18
    3 - DEAGLE
    4 - P228
    5 - ELITE
    6 - FIVESEVEN
    Shotgun restrictions
    7 - M3
    8 - XM1014
    SMG restrictions
    9 - MP5NAVY
    10 - TMP
    11 - P90
    12 - MAC10
    13 - UMP45
    Rifles restrictions
    14 - AK47
    15 - SG552
    16 - M4A1
    17 - GALIL
    18 - FAMAS
    19 - AUG
    20 - SCOUT
    21 - AWP
    22 - G3SG1
    23 - SG550
    Machine Gun restriction
    24 - M249
    Shield restriction
    25 - SHIELD

    Exmple restrictions for shield, awp and XM1014:
    pb_restrweapons "00000000100000000000010001"

    The meaning of bits of pb_restrequipammo cvar:
    0 - vest
    1 - vest and helmet
    2 - flashbang
    3 - he grenade
    4 - smoke grenade
    5 - defuser
    6 - night vision googles
    7 - primary ammo
    8 - secondary ammo

    Exmple restrictions for flashbang, primary and secondary ammo:
    pb_restrequipammo "001000011"
  • Waypoint console commands Note:

    These commands below are valid only on listenserver.


    pb wp teleport (value) - Teleports You to the waypoint number You write here as a value.

    pb wp teleport camp - As above, but instead value You write "camp" - it teleports You to the next waypoint number with the camp flag. It's usefull to fix old pwf files with different format for camp waypoints.

    pb wp teleport use - As above, but instead value You write "use" - it teleports You to the next waypoint number with the USE_BUTTON flag. It's usefull to fix old pwf files with sometimes useless USE_BUTTON flag, which may cause some strange bots behavior - they may need to "use" something which is unaccessible, but they will fail.

    pb wp teleport goal - As above, but instead value You write "goal" - it teleports You to the next waypoint number with the goal flag. It's usefull to find all goal waypoints placed on the map.

    pb wp stats - Shows the number of different waypoints You did already set.

  • Auxiliary console commands

    pb debuggoal (value) - this command forces bots to go to the waypoint number specified here as a goal (target). Default is -1 (-1 means no extra goal waypoint specified and bots aren't forced to go to any waypoint). More info You can find in Waypointing section of this doc.

    pb experience save - Saves the experience and the visibility tables to the files (*.pxp and *.pvi) - if needed to do it manually.

    pb experience show - Shows the data stored in the pxp file.

    pb experience test_a_T index1 index2 byPathType - shows the path the Terrorist bot would like to choose from WP index1 to WP index2 according to kind of algorithm :
    byPathType = 0 - the shortest way according to distances between waypoints (used by aggressive bots), byPathType = 1 - the shortest way according to distances between waypoints and to the collected experience (damages collected - used by normal bots), byPathType = 2 - the shortest way according to collected experience (no matter what is the distance between waypoints, but the safest way - used by the most scaried bots).

    pb experience test_a_CT index1 index2 byPathType - shows the path the Counter-Terrorist bot would like to choose from WP index1 to WP index2 according to the byPathType parameter explained above.

    pb experience test_a_CTH index1 index2 byPathType - shows the path the Counter-Terrorist bot (with following him a hostage/hostages) would like to choose from WP index1 to WP index2 according to the byPathType parameter explained above.