###### Console commands that allow you to control Marine Bot

In this document you'll find all valid console commands that allow you to get a full control over Marine Bot. First come the listen server commands. That means the commands that are available to you if you start Day of Defeat and click on 'Create a game' (a.k.a. LAN game). After that section is a list of valid commands for dedicated server (a.k.a. HLDS).

You can always use 'help' or '?' (without quotes) commands in console to access Marine Bot help system. Where you can find simplified version of this list. Console command help is available on listen server (Create a game) as well as dedicated server (HLDS).

###### Marine Bot Listen Server commands (keep the spaces, because they separate the arguments)

- recruit <team> <class> <skill> <name>Adds a bot to your game where all arguments are optional. A few examples follow.

- recruitAdds a bot with random team, class, name and default skill. The skill actually depends on randomskill variable (see below).
- recruit alliesAdds a bot to allied team with random class, name. The skill will be set to default.
- recruit 1Also adds a bot to allied team with random class, name. The skill will be set to default.
- recruit axis 3Adds a bot to axis team with class 3. The name will be random and the skill will be set to default.
- recruit 2 1 2Adds a bot to axis team with specified class and skill. Only the name will be randomly generated.
- recruit allies 1 2 JackAdds a bot to allied team with specified class, skill and name.
- recruit 0 0 0 FrankAdds a bot with random team, class. The skill will be set to default. And the name will be set to Frank.

- fillserver <number>Fills the server with the number of bots specified or up to the maximum. The argument is optional.

- fillserverFills the server with the randomly generated bots to the maximum amount of clients.
- fillserver 10Fills the server with 10 randomly generated bots.

- kickbot <argument>Kicks bot/bots depending on the argument.

- kickbotKicks a random bot.
- kickbot allKicks all bots.
- kickbot alliesKicks a random bot from allied team.
- kickbot axisKicks a random bot from axis team.
- kickbot "[MB]Alex Cage"Kicks bot named [MB]Alex Cage if there is one. The name must be in double quotes.
- kickbot AlexKicks first bot with Alex in name. The command is case sensitive.

- kick <name>Standard Half-Life command that kicks a player. The name must be in double quotes.

- kick "[MB]Alex Cage"Kicks player (in this case bot) named [MB]Alex Cage.

- killbot <argument>Kills bots depending on the argument.

- killbot allKills all bots currently in game.
- killbot alliesKills all allied team bots.
- killbot axisKills all axis team bots.
- killbot "[MB]Alex Cage"Kills bot named [MB]Alex Cage if there is one.
- killbot AlexKills first bot with Alex in name.

- balanceteams <argument>Checks the number of clients on both teams and balances the teams if they aren't.

- balanceteams offTemporarily (till next map change) turns team balancing off.
- balanceteams onTemporarily (till next map change) turns team balancing on.
- balanceteamsTemporarily (till next map change) toggles team balancing on/off.

- setbotskill <number 1-5>Sets bot skill level for all bots already in game. Lower numbers mean better skills.
- botskillupUpgrades bot skill level for all bots already in game (i.e. bots will be better).
- botskilldownDowngrades bot skill level for all bots already in game (i.e. bots will be worse).
- setaimskill <number 1-5>Sets aim skill level for all bots already in game. Lower numbers are better (i.e. bots are more accurate).
- botskillviewPrints botskill & aimskill for all bots.
- spawnskill <number 1-5>Sets default skill for joining bots. Also sets their aim skill. This has no effect on bots already in the game. Lower numbers mean better skills.
- randomskill <argument>Toggles between using bot skill level given through spawnskill variable and generating the skill level randomly for each added bot.

- randomskillToggles between both modes.
- randomskill onEvery added bot will get his skill level randomly generated.
- randomskill offEvery added bot will use value given through spawnskill variable as his skill level.
- randomskill currentReturns which mode is activated.

- reactiontime <argument>Sets bot reaction time on first contact with enemy. Valid value is from 0 to 50, where 1 will be converted to 0.1s and 50 to 5.0s. Lower numbers mean faster reactions.

- reactiontime 25Sets the reaction time to 2.5 seconds.
- reactiontime currentPrints current reaction time value.

- rangelimit <argument>Sets max distance of a enemy the bot can see and attack. Useful to limit bot long range sniping and force him to do more CQB fighting. Main purpose is to prevent bots snipe through skybox. Valid range value is from 500 to 7500.

- rangelimit 3000Limits the view distance to 3000 Half-Life units.
- rangelimit defaultReturns it back to default (i.e. 7500 units).
- rangelimit currentPrints current value.
- rangelimit helpPrints in game console help.

- directory <argument>Allows you to change waypoint directory to use other set of waypoints for current map. In such case this command must be followed by 'wpt load' command to actually load the other waypoints.

- directorySwitches between directories in cyclic order.
- directory defaultwptsWaypoints will be loaded from the defaultwpts directory. This is the default setting.
- directory customwptsWaypoints will be loaded from the customwpts directory.
- directory currentPrints which directory is currently in use.

- botdontspeak <argument>Sets whether the bots will/won't use Voice commands (ie. will speak or won't speak).

- botdontspeakBots will not use Voice commands (i.e. bots don't speak). Also serves as a toggle between speaking and silent modes.
- botdontspeak offBots will again use Voice commands normally (i.e. bots speak). This is the default setting.

- botdontchat <argument>Sets whether the bots will/won't use say & say_team messages (i.e. will chat or won't chat).

- botdontchatBots will not use say & say_team messages (i.e. bots don't chat). Also serves as a toggle between chatting and silent modes.
- botdontchat offBots will again use say & say_team messages normally (i.e. bots chat). This is the default setting.

- botdontchattobots <argument>Sets whether the bots will/won't use say & say_team messages directed to other bots (i.e. will chat to humans only or will chat to everyone including other bots).

- botdontchattobotsBots will not use say & say_team messages directed to other bots (i.e. bots will chat only to humans). Also serves as a toggle between chatting to humans only and chatting to everyone.
- botdontchattobots offBots will again use say & say_team messages normally (i.e. bots will chat to everyone including other bots). This is the default setting.

- meleeonly <argument>Sets whether the bots will switch to using only the knife or spade where all firearms and grenades will be unavailable to them or will be using all weapons normally.

- meleeonlyBots will switch to using only the knife/spade. Also serves as a toggle between using knife/spade only and using all weapons modes.
- meleeonly offBots will be using all weapons again. This is the default setting.

- marinebotmenuDisplays the Marine Bot HUD menu. There are also shortcuts into menu sections that are used quite often. These shortcuts can save you some time if you bind them to free keys.
- mbmenushortcutwptShortcut to waypoint menu.
- mbmenushortcutwpttags1Shortcut to waypoint tags menu page 1. Works for both adding as well as changing waypoint. Its function depends on whether you are close to any waypoint (can change its tags or delete it) or not (can add a new one).
- mbmenushortcutpathShortcut to path menu.
- mbmenushortcutpathtags1Shortcut to path tags menu page 1.
- versioninfoPrints Marine Bot version to the console. Also sends the same text to the top of your screen in a form of a HUD message.
- wpt authorShows waypoint signatures if they exist.
- getwptsystemPrints the waypoint system version the waypoint file was created in. Also prints the waypoint system version that is currently in use. Useful for checking whether the waypoints are still compatible with current MB or whether they are outdated.
- gettexturenamePrints the name of the texture in front of you (not further than 100 units away). Allows you to modify or create files for the Detailed textures feature.
- checkbots <argument>Prints basic info about bot behaviour to console.

- checkbotsPrints the info about the first bot added to the game if exist.
- checkbots allPrints the info about all bots currently present in the game.
- checkbots usedDoes exactly the same thing as argument all.
- checkbots <number 1-32>Prints the info about the bot matching the number. Where number usually means the order in which this bot joined the game.
- checkbots AlexPrints the info about the first bot with Alex in name.

- changestartpositions <argument>Allows you to switch between using alternative coordinates for the player start positions of either of the teams and the default positions that are defined in map file. It needs a map restart to take effect.

- changestartpositionsToggles between using alternative start positions and default start positions.
- changestartpositions onAlternative start positions defined in mapname_startpoints.cfg file inside mapcfgs will be used. This is the default setting.
- changestartpositions offDefault start positions stored in the map file will be used.
- changestartpositions currentReturns which mode is activated.

- changecaptureareas <argument>Allows you to switch between using the alternative data for the capture areas and the default values that are defined in map file. It needs a map restart to take effect.

- changecaptureareasToggles between using alternative data and default values for the capture areas.
- changecaptureareas onAlternative data for the capture areas defined in mapname_captureareas.cfg file inside mapcfgs will be used. This is the default setting.
- changecaptureareas offDefault values for the capture areas stored in the map file will be used.
- changecaptureareas currentReturns which mode is activated.

- generatecaptureareasfileActivates a mode where MB system will gather data about capture areas during a map load in order to create a new configuration file for that map inside mapcfgs. It automatically turns off once the file is created.
- fixparticlemanagercrash <argument>Allows you to activate the fix for a crash to desktop that happens on Linux game client as a result of a bug in HL engine where too many particles at one moment will crash the game.

- fixparticlemanagercrashToggles between having the patch for the crash of Linux game client due to a bug in HL engine activated and deactivated.
- fixparticlemanagercrash offDisables the patch for the crash of Linux game client due to a bug in HL engine. This is the default setting.

Next five commands are kind of cheat commands. They alter standard way how the things work. Useful especially for waypoint testing or any kind of tests.

- observer <argument>Ignore human players mode.

- observerBots will ignore you. Also serves as a toggle between modes.
- observer offBots will again target you. This is the default setting.

- mrfreeze <argument>A mode where the bots are frozen. So they won't move and shoot.

- mrfreezeBots will completely stop. Also serves as a toggle between modes.
- mrfreeze offBots will again move normally. This is the default setting.

- botdontshoot <argument>A mode where the bots won't shoot any firearm or use any other weapon in general, but they can still move and do the other actions.

- botdontshootBots will NOT shoot any firearm or use a knife or throw any grenade. Also serves as a toggle between modes.
- botdontshoot offBots will again use all weapons normally. This is the default setting.

- botdontshootfirearm <argument>A mode where the bots won't shoot any firearm, but they can still throw a grenade and use knife as well as move and do the other actions.

- botdontshootfirearmBots will NOT shoot any firearm, but they're still able to stab with knife or throw a grenade. Also serves as a toggle between modes.
- botdontshootfirearm offBots will again use all weapons normally. This is the default setting.

- botignoreall <argument>A mode where the bots ignore all enemies (including other bots).

- botignoreallBots will NOT target any enemy. Also serves as a toggle between modes.
- botignoreall offBots will again target enemies. This is the default setting.

- mbnoclip <argument>No clipping mode i.e. flying.

- mbnoclipYou will be able to fly through everything on the map. Also serves as a toggle between modes.
- mbnoclip offYou will move again normally. This is the default setting.

Note: No clipping mode is automatically turned off if you die.

###### Marine Bot on a Dedicated Server (HLDS)

Before we get to the commands here's a list and description of message types Marine Bot prints to the HLDS console. All messages are followed by additional text.

- MARINE_BOT CFG FILE INITIs printed when an MB CVAR (configuration variable) is read from a configuration file (usually "marine.cfg").
- MARINE_BOT CFG FILE ERRORIs printed when an MB CVAR (read from .cfg file) is invalid and MB instead takes the default value (hard coded). To solve this problem edit your .cfg file and correct the value. Also check to see if there is a .cfg file for the specific map loaded at the time and do the same.
- MARINE_BOTValidates console commands.
- MARINE_BOT ERRORIs printed when an invalid command/argument is entered. Or as a result of a problem during automated/cyclic processes (for example auto balance). MB will also print why this error occurred.
- MARINE_BOT INFOIs printed when some process is in progress. Or as a result of an automated/cyclic process.
- MARINE_BOT WARNINGWarns you about a nonfatal error. Usually something is missing.

Marine Bot is using special syntax for all Dedicated Server commands. There's a special keyword m_bot that must precede all commands on the list below. The syntax is m_bot <command> <list of arguments>. For example if you want to add one randomly generated bot then you must write m_bot addmarine into HLDS console. Or if you want to change minimum amount of bots on server you must write m_bot min_bots 10. Since Marine Bot 0.95b there's an option to omit underscore character in the keyword as well as in any command so mbot minbots 10 will work too. Make sure to use the spaces to separate the keyword, the command and the arguments. Next is a list of all dedicated server commands and their explanation.

- addmarineAdds bot with random team, class, name and default skill. The skill actually depends on random_skill variable (see below).
- addmarine1Adds bot to allied team with random class, name and default skill.
- addmarine2Adds bot to axis team with random class, name and default skill.
- addmarine <team> <class> <skill> <name>Adds a fully customized bot. A few examples follow.

- addmarine 1Adds a bot to allied team with random class and name. The skill will be set to default.
- addmarine 2 3Adds a bot to axis team with class 3. The name will be random and the skill will be set to default.
- addmarine allies 3Adds a bot to allied team with class 3. The name will be randomly generated and the skill will be set to default.
- addmarine axis 1 2Adds a bot to axis team with specified class and skill. Only the name will be randomly generated.
- addmarine 1 1 2 JackAdds a bot to allied team with specified class, skill and name.
- addmarine 0 0 0 FrankAdds a bot with random team and class. The skill will be set to default. And the name will be set to Frank.

Note: If you have specified max_bots then any addmarine command will temporarily (till next map change) override its value to allow more bots on the server. After the map change max_bots will again take control and keep only given number of bots on the server.

- min_bots <number 0-31>Specifies minimum of bots on server. Setting it to value 31 will disable this feature. Which means that bots will not be kicked no matter how many players join.
- max_bots <number 0-31>Specifies maximum of bots on server. Setting it to value 0 will disable the feature. Which means that no bots will automatically join to maintain desired amount of clients on the server.
- kick_bot <argument>Kicks bot/bots depending on the argument.

- kick_botKicks a random bot.
- kick_bot allKicks all bots.
- kick_bot alliesKicks a random bot from allied team.
- kick_bot axisKicks a random bot from axis team.
- kick_bot "[MB]Alex Cage"Kicks bot named [MB]Alex Cage if there is one. The name must be in double quotes.
- kick_bot AlexKicks first bot with Alex in name. The command is case sensitive.

- kill_bot <argument>Kills bots depending on the argument.

- kill_bot allKills all bots currently in game.
- kill_bot alliesKills all allied team bots.
- kill_bot axisKills all axis team bots.
- kill_bot "[MB]Alex Cage"Kills bot named [MB]Alex Cage if there is one.
- kill_bot AlexKills first bot with Alex in name.

- set_botskill <number 1-5>Sets bot skill level for all bots already in game. Lower numbers mean better skills.
- botskill_upUpgrades bot skill level for all bots already in game (i.e. bots will be better).
- botskill_downDowngrades bot skill level for all bots already in game (i.e. bots will be worse).
- set_aimskill <number 1-5>Sets aim skill level for all bots already in game. Lower numbers are better (i.e. bots are more accurate).
- spawn_skill <number 1-5>Sets default skill for joining bots. Also sets their aim skill. This has no effect on bots already in the game. Lower numbers mean better skills.
- random_skill <argument>Toggles between using bot skill level given through spawn_skill variable and generating the skill level randomly for each added bot.

- random_skillToggles between both modes.
- random_skill onEvery added bot will get his skill level randomly generated.
- random_skill offEvery added bot will use value given through spawn_skill variable as his skill level.
- random_skill currentReturns which mode is activated.

- reaction_time <argument>Sets bot reaction time on first contact with enemy. Valid value is from 0 to 50, where 1 will be converted to 0.1s and 50 to 5.0s. Lower numbers mean faster reactions.

- reaction_time 25Sets the reaction time to 2.5 seconds.
- reaction_time currentPrints current reaction time value.

- range_limit <argument>Sets max distance of a enemy the bot can see and attack. Useful to limit bot long range sniping and force him to do more CQB fighting. Main purpose is to prevent bots snipe through skybox. Valid range value is from 500 to 7500.

- range_limit 3000Limits the view distance to 3000 Half-Life units.
- range_limit defaultReturns it back to default (i.e. 7500 units).
- range_limit currentPrints current value.
- range_limit helpPrints in game console help.

- auto_balance <number>Sets time for automatic team balance checks. Valid value is from 30 to 3600. Where 30 means 30 seconds and 3600 is 1 hour. Setting it to 0 will disable automatic team balancing.
- balance_teamsRuns a one time balance team check (some bots will move to weaker team when teams are unbalanced).
- clientsPrints clients/bots count currently on server. Also prints how many bots are in each team.
- version_infoPrints MB version.
- directory <argument>Allows you to change waypoint directory to use other set of waypoints for current map.

- directorySwitches between directories in cyclic order.
- directory defaultwptsWaypoints will be loaded from the defaultwpts directory. This is the default setting.
- directory customwptsWaypoints will be loaded from the customwpts directory.
- directory currentPrints which directory is currently in use.

- load_unsupportedAllows you to convert and save older waypoint files. Useful if you notice that MB is doing automatic waypoint conversion on map load. Such process is temporar and the conversion is lost after next map change. Using this command will keep the conversion, because the old waypoint files are overwritten by the converted waypoint data.
- send_info <number>Sets time in seconds for HLDS console info message auto sending. Valid value is from 30 to 3600. When set to 0 there will be no info messages printed to HLDS console.
- send_presentation <number>Sets time in seconds for clients HUD message auto sending. Valid value is from 30 to 3600. When set to 0 there will be no HUD messages This server runs Marine Bot in version ...
- dont_speak <argument>Sets whether the bots will/won't use Voice commands (ie. will speak or won't speak).

- dont_speakBots will not use Voice commands (i.e. bots don't speak). Also serves as a toggle between speaking and silent modes.
- dont_speak offBots will again use Voice commands normally (i.e. bots speak). This is the default setting.

- dont_chat <argument>Sets whether the bots will/won't use say & say_team messages (i.e. will chat or won't chat).

- dont_chatBots will not use say & say_team messages (i.e. bots don't chat). Also serves as a toggle between chatting and silent modes.
- dont_chat offBots will again use say & say_team messages normally (i.e. bots chat). This is the default setting.

- bot_dontchat_tobots <argument>Sets whether the bots will/won't use say & say_team messages directed to other bots (i.e. will chat to humans only or will chat to everyone including other bots).

- bot_dontchat_tobotsBots will not use say & say_team messages directed to other bots (i.e. bots will chat only to humans). Also serves as a toggle between chatting to humans only and chatting to everyone.
- bot_dontchat_tobots offBots will again use say & say_team messages normally (i.e. bots will chat to everyone including other bots). This is the default setting.

- melee_only <argument>Sets whether the bots will switch to using only the knife or spade where all firearms and grenades will be unavailable to them or will be using all weapons normally.

- melee_onlyBots will switch to using only the knife/spade. Also serves as a toggle between using knife/spade only and using all weapons modes.
- melee_only offBots will be using all weapons again. This is the default setting.
- melee_only currentReturns which mode is activated.

- change_start_positions <argument>Allows you to switch between using alternative coordinates for the player start positions of either of the teams and the default positions that are defined in map file. It needs a map restart to take effect.

- change_start_positionsToggles between using alternative start positions and default start positions.
- change_start_positions onAlternative start positions defined in mapname_startpoints.cfg file inside mapcfgs will be used. This is the default setting.
- change_start_positions offDefault start positions stored in the map file will be used.
- change_start_positions currentReturns which mode is activated.

- change_capture_areas <argument>Allows you to switch between using the alternative data for the capture areas and the default values that are defined in map file. It needs a map restart to take effect.

- change_capture_areasToggles between using alternative data and default values for the capture areas.
- change_capture_areas onAlternative data for the capture areas defined in mapname_captureareas.cfg file inside mapcfgs will be used. This is the default setting.
- change_capture_areas offDefault values for the capture areas stored in the map file will be used.
- change_capture_areas currentReturns which mode is activated.

by Frank McNeil 2005-2025

end of file