Below is the (now altered in 2025) original document by Jowo. You can find this in your game folder.... Steam\SteamApps\common\Half-Life\dod\sturmbot\Sturmbot_commands.txt

However, in 2025 I have tested some of the older information and in those tests I found some new information so this isn't the "official" readme anymore.

 Article index.

Section  Description
 1  General Notes (Introduction)
 2  Commands used in the bot.cfg file 
 3  Example bot.cfg file for hard bots (6X6 competitive server)
 4  Example bot.cfg file for standard bots (what Sturmbot is shipped with)
 5  Others not normally in the bot.cfg file that you may use in a bind or the game console
 6  Fun Mode commands.
 7  Special mention "addbot" command (used to add bots manually and it is complex)
 8  Special mention "min_reaction" and "max_reaction" commands. (affects the skill of bots)
 9  The issue of the "addbot" value "skill" setting 1-8. Or is it 1-9 or 0-8 ?

General notes:

(This is in the file dod\sturmbot\Sturmbot_commands.txt)

Client console:
This is the in-game console.

To be able to use this you must have -console in your game path for a Dedicated server or use the "~" key to open the client console in a Listenserver (singleplayer).

Dedicated server only: If a sturmbot password has been set you will not be able to issue sturmbot commands via this console unless you give the password using the sturmbot_password command.
If entered successfully (or if no password is set), you can then issue sturmbot commands.

Server console:
This is the console of a dedicated dod server.
When issuing sturmbot commands via a server console the following format must be used:

sturmbot "command_name argument1 argument2...."

Dedicated server only: All sturmbot commands must be preceded with the word sturmbot and the actual command and its arguments must be inside quotation marks " "

bot.cfg:

This is a file located in your sturmbot directory for setting your sturmbot preferences and the section below are commands you can use in that file.


The format of the below commands basic information is like this...

Command name [options] Default = <value>

Notes are in yellow:

  • The commands in the section directly below you can use in a bot.cfg file.
  • The section ends in a example bot.cfg that is for "fast" bots and not like the default "bot.cfg" file that comes with Sturmbot.
  • After that, there are commands normally used in a key bind or a game console (client console).

 


Commands used in the bot.cfg file.


botchat [off/limited/full] Default is "1" (limited) (Full "2" is OK too, "0" is off)
--------------------------


Note 1: off "0": bots will not talk, limited "1": bots will talk a little or full "2": bots will talk to each other and humans a lot

Note 2: When Friendly Fire is on the bots will say sorry. If you kill them and say "sorry <botname>" they answer back "np..."

Note 3: When you use a bots name in chat they answer "Sorry i don't understand"

lester bot no understand lester bot sorry
"Sorry i don't understand"  "np..."

 

 



formsquad [on/off] Default is "1"  (Most prefer this to off "0")
------------------
Note: If set on, this will make the bots act in squads.

 



rank [on/off] Default is "1"
-------------
Note 1: If set on "1", bots will have a rank in their name (Pvt. Gen. etc), off "0" and they will just have plain names.

Note 2: The rank of a bot is also a skill level, see the "addbot" section for more detail.

 



addbot [team] [class] [skill] [name]

team: 1 = Allies, 2 = Axis

class: See the below tables for Normal and Para maps.

skill: 0-8  "0" low skill (Private Rank), 8 deadly (General Rank) Rank = skill level

Note 1: If arguments are not given (no number) a random setting will be used.

Note 2:  See the end of this section. The original documentation states this skill range is 1-8. That is wrong! It is "0-8" on further investigation.

name: [name of the bot]

Similarly to class or skill if a name is not given a random name from the allied_names and axis_names files will be used.

 

Class number tables

See this page/section for more information on Classes, the name and the weapons/loadout of the class.

Normal maps with Allies (US or British) Versus Axis:

 Class Number  Allies (US) Team "1" Axis (Ger) Team "2"  Allies (British maps only) Team "1"
 1  Rifleman (Garand)  Grenadier (K98)  Rifleman (Enfield)
 2  Staff Sergeant (M1 Carbine)  Stosstruppe (K43)  Sergeant Major (Sten)
 3  Master Sergeant (Tommygun)  Unteroffizier (MP40)  Marksman (Enfield Sniper)
 4  Sergeant (Greasegun)  Sturmtruppe (STG44)  Gunner (Bren)
 5  Sniper (Springfield)  Scharfschuetze (K98 Sniper)  Rocket Infantry (Piat) Not Working See Note
 6  Support Infantry (BAR)  MG34-Schütze (MG34)  - No entry
 7  Machine gunner (.30 CAL)  MG42-Schütze (MG42)  - No entry
 8  Rocket Infantry (Bazooka) Not working See Note  Rocket Infantry (Panzerschreck) Not Working See Note  - No entry

 

Note: The "Rocket Infantry" is not working in Sturmbot to select via "addbot" in the game console or "bot.cfg"

The issue may be that Jowo couldn't fix this before he unfortunately died in 2004.

Also, the "Rocket Infantry" class on the game engine side is also very broken. However I do have a fix where you can get bots to use Rockets, it's not perfect but for maps that have Rockets spawning on the ground the bots can select a rocket that way.

See this guide on fixing the Rocket class.

To make matters even harder, that fix will not work if the first map you start on is a map with rockets spawning on the ground, the fix for that is ... select another map, load, then disconnect and select the map again.

Class (para maps only):

  Class Number  Allies (US) Team "1" (white text indicates a model change)  Axis (Ger) Team "2" (white text indicates a model change)
 1  Rifleman (Garand)  Grenadier (K98)
 2  Staff Sergeant (M1 Carbine with a folding stock)  Stosstruppe (K43)
 3  Master Sergeant (Tommygun)  Unteroffizier (MP40)
 4  Sergeant (Greasegun)  Sturmtruppe (STG44)
 5  Sniper (Springfield)   Scharfschuetze (K98 Sniper)
 6  Support Infantry (BAR)  Fg-42-Zweibein (Fg42 with bifold)
 7  Machine gunner (.30 CAL)  Fg-42-Zielfernrohr (Fg42 Sniper)
 8  Rocket Infantry (Bazooka) Not working See Note  MG34-Schütze (MG34)
 9 - No Entry  MG42-Schütze (MG42)
 - No Number See note. - No Entry  Rocket Infantry (Panzerschreck) Not Working See Note

 

Note: The "Rocket Infantry" is not working in Sturmbot to select via "addbot" in the game console or "bot.cfg"

The issue may be that Jowo couldn't fix this before he unfortunately died in 2004.

Also, the "Rocket Infantry" class on the game engine side is also very broken. However I do have a fix where you can get bots to use Rockets, it's not perfect but for maps that have Rockets spawning on the ground the bots can select a rocket that way.

See this guide on fixing the Rocket class.

To make matters even harder, that fix will not work if the first map you start on is a map with rockets spawning on the ground, the fix for that is ... select another map, load, then disconnect and select the map again.

Note: If you try to select a non working Class number, you just get a random class selection. 

The issue of the "addbot" value "skill" setting 1-8. Or is it 1-9 or 0-8?

The official documentation on sturmbot commands states there are 1-8 in that range. That is wrong.

What testing reveled.

You see the skill is actually a rank. In Sturmbot there is a menu called via a command "addbotmenu", to get this you can make a bind in console... bind "END" addbotmenu

The menu starts off selecting a team, then a class, then the last one labeled "Select Skill". It has 9 options not 8 for Allies and Axis!

   
 Add Bot Menu - Allied "skill" is a rank  Add Bot Menu - Axis "skill" is a rank

So this is important if you are wanting the highest skill level, is it 8 or is it 9 ?

  • It depends, if you set "8" in the dod\bot.cfg ... you get all "General" rank/skill.
  • However if you select "9" in the Add Bot Menu... you get all "General" rank/skill.
  • Then if you select "9" in the bot.cfg... (for all bots) it will break the command and no bots spawn.

OK... so there is one "rank" missing in the bot.cfg method? It's the first one, it's "0" for a private, the lowest skill rank.

This issue is...The actual range is .... "0-8" not "1-8" as the documents say in Sturmbot readmes.

"0" = Private (lowest skill)

"1" = Corporal

"2" = Sergent

"3" = Second Lieutenant

"4" = First Lieutenant

"5" = Captain

"6" = Major

"7" = Colonel

"8" = General (highest skill)

"<blank>" = Random skill (rank) and you can set that skill level further in the command "random_skill" from 0-100 with "75" as the default.

 

I would say that the documentation possibly didn't keep up with the .dll changes Jowo was doing. There is a history in Sturmbot of that occurring.

Maybe the person who was documenting the Sturmbot files wasn't Jowo and something got lost in the translation.

It makes you wonder what else is wrong. Hence... investigate more and test.

 



throw_grenade [number] Default = 3000 - Preferred for modern PC's is 7000-8000
----------------------
Notes: This sets how often (out of 10000 times) the bot will throw a grenade

 


botteambalance [on/off] Default = "0" off  ("1" is better)

Notes: Change botteambalance to 1 if you want bots to switch teams to make them even.

 



min_bots [number] Default = "0"
-----------------
Notes: Sets the minimum number of bots in the game at once. Mostly you can set this at "0" for a listen server.

 



max_bots [number] Default = "20" (set to "0" as the default if adding bots manually)
-----------------
Notes: sets the maximum number of bots in the game at once.

This command can be set at what total player amounts you want on the server. Commonly "8" "12" "16" and even up to "31" noting that you need to leave at least one slot out of 32 or you can't join your self!

The result is sturmbot will randomly fill your server with classes, skill level and names automatically.

Warning: You should also note that bot amounts will stress some older PC's so server size is important, if you see performance dropping you may have to lower the total server size. "12" is a good amount for a day of defeat server in most maps.

Note: This maximum bot setting (even if on the default "20") can be further fine tuned on a listen server by the GUI options "New Game" and set the player size in the "Game" tab of the "Create Server" options panel.

Setting "0" and using the "addbots" command to manually add bots...

You can use "0" and then use the "addbot" command to apply bots.

That has the advantage of getting player numbers, class types, skill level and name exactly how you want them.

You can see that in the 6X6 bot.cfg example below this section.

 


random_skill [0-100] Default = "75"
--------------------
Notes: If set to a high level, random bots will be more likely to have a high skill level

 


botteambalance [on/off] Default = "0" - Uses "0" for off and "1" for on.
-----------------------
Notes: If turned on, this feature makes the bots switch teams as needed to keep equal numbers of players on each team


 

learn_priority [0-1000] Default = 990
-----------------------
Notes: If set to a high level, bots will place more priority on learning.

 


Reaction time (set of 2) min_reaction and max_reaction

 

Description: Reaction delay (loosely based in milliseconds) from 0.6 sec (60) to 1.2 sec (120). However, once you go really high "1000" it becomes around 5 seconds.

INsane's Notes: This is a range given the min and max is separated, and it's randomized meaning the bots will pick these settings in a random choice.

 

min_reaction [number] Default = 60 (0.6 sec)  The bots are quicker at "1" so consider a value of "1" to "60" as the range but if you get beat a lot, try up to "200". A value of "1000" may be as high as 5 seconds.

Notes: This sets the bots minimum reaction time in milliseconds (default is 60)


max_reaction [number] Default = 120  (1.2 sec)  The bots are quicker at "1" so consider a value of "1" to "110" as the range but if you get beat a lot, try up to "200"

Notes: This sets the bots maximum reaction time in milliseconds (default is 110 in older versions like Sturmbot 1.3 and looks like that changed to 120 in newer versions like 1.5 - 1.9)

 

Further information - these commands are more powerful than you think:

If testing these in the game console, after you set the two command values (correctly) you see this: "Randomizing bots reactions..." . If you don't see that when adjusting in console... you will see a "invalid value" message.

Test yourself, as I said it is loosely based in milliseconds.

So, you should test this as it could be too powerful, bots too quick if "1" and too slow if you use a big number like "1000".

  • I tried both Min/Max commands at "1000" and 5 bots ignored me for... about 5 seconds.
  • I tried both Min/Max commands at "10,000" and 2 bots ignored me for... about 130 seconds.
  • Note you cannot use "0" in both commands, if you do you set that in "bot.cfg" will see a default set at min_reaction 70 and max_reaction 120
  • "1" is the lowest setting for the min and max values. The highest value may be infinity.

These values like "60" in "min_reaction" are supposedly based on milliseconds and you can use a converter. e.g.: 60 millisecond = 0.06 seconds.

Whats a good reaction time in gaming? 

According to the "humanbenchmark.com" test the average is 273 milliseconds.

Now remember... less is faster/better in that test so if you are scoring 100-150 milliseconds you are a pro gamer, most are 200 - 270 average.

But that is reliant on a lot of things, your CPU, monitor, mouse quality and the coding of this very old game with also commands like "addbot" and "random_skill" settings are high.

For a pro player I doubt you could make Sturmbot fast enough to be a real challenge in most circumstances.

The exception would be a "peak" around a corner, a shot that missed then on the second "peak" the bot already has you "dialed in" and likely will beat you if the skill ( see "addbot" above) is set to "8".

Try it, you almost always lose on a second peak around a corner ...if the player is a bot.

 

The fastest settings.

So for a pro-player a setting of "1" in both may help challenge you more.

If you also read up on "addbot" and set the skill to "8" (note is the 3rd value... addbot [team] [class] [skill] )

Then make sure "random_skill" is set as "100" is the maximum.

For the rest of us, the default setting are OK even through they may seem to fast and made for a "pro-gamer" like I explained, there are a few other things that make the bots slower.

 


Example bot.cfg file for hard bots

OK..that section above is a lot of explaining, in the next two sections we can look at examples and how to use the commands above in the bot.cfg.

In the code block below you could copy the text, Open the text document (notepad is fine) in dod\sturmbot\bot.cfg delete whats in that file and paste that in.

But hold on a bit.... this is a "pro-dod-gamer" "bot.cfg" it will produce a set of 12 bots that are faster, smarter....

6X6 server, (12 players - Per side: 3 rifles 2 support and a sniper), good bot reaction and learning, good skills and the bots throwing a good level of grenades.

It's a example of whats possible, it may not suit you... unless you know how to change it !

Note that I have min_bots 0 and max_bots 0 in this example and that is different to the standard file?

Compare that to the standard bot.cfg in the next section, this edit below will cause a specific amount with a exact class and skill level as used in "addbot" and the two "reaction time" commands.

Editing the file

Please read the hints below if you have not edited this type of file before....

  • Note this is like other formats of .cfg (configuration) files. The program reads line by line an applies the command and it's value... line by line.
  • Note that the "#" hash symbol you see is a title and or a description, these lines are ignored by the sturmbot program.
  • Be neat, make sure the commands are done correctly.
  • You can check they are working by placing a command in the game console (without a value) and it will return what the current value of the command is.

 

Code:
# Sturmbot config file
# This file is executed before the game starts
# Reaction delay from 0.6 sec (60) to 1.1 sec (110) Min 60 Max 120
min_reaction 1 
max_reaction 1

# Ranks are turned on. (def 1)
rank 1

# If you want the random bots to have higher skills, put random_skill to 80 or 90, 
# if you think the bots are too hard put random_skill to 60 or lower
# The range is 0 - 100 (75 default)
random_skill 100

# How much the bots prioritize the learning... 
# Set learn_priority to a higher value if you want # the bots to prioritize the learning more. # The range is 0 - 1000 learn_priority 990 # Change botteambalance to 1 if you want bots to switch teams to make them even. botteambalance 1 # botchat [off 0/limited 1/full 2] Default is limited "1" (Full "2" is OK too) botchat 1 #formsquad [on "1"/off "0"] If set on "1", this will make the bots act in squads. formsquad 0 #Turn extra blood off, change to 1 or 3 (unrealistic) for more blood #If you only want to make the dead bodies stay longer (dod 1.1 or later)...
# ...use the command cl_corpsestay instead. bloodmode 0 #This sets how often (out of 10000 times) the bot will throw a grenade 3000 Default throw_grenade 8000 # Adjust the bot min and max. Leave on "0" for each if using "addbot" see below min_bots 0 max_bots 0 #addbot [team] [class] [skill] # [team] 1 = Allies, 2 = Axis # [class] See the manual for more on class numbers. # [skill] 0-8 (0 a low skill Private, 8 a General deadly) # The below will give a normal 6X6 match. # Per side: 3 rifles 2 support and a sniper # rifle X 2 addbot 1 1 8 addbot 2 1 8 addbot 1 1 8 addbot 2 1 8 # carbine k43 X 1 addbot 1 2 8 addbot 2 2 8 # sniper X 1 addbot 1 5 8 addbot 2 5 8 # support X 2 addbot 1 6 8 addbot 2 4 8 addbot 1 6 8 addbot 2 4 8

 


Example bot.cfg file for standard bots (what Sturmbot is shipped with)

How about a good default file? The game comes with that already, it's very basic and selects classes randomly.

It has the "feel" of a pub server and the only thing you may want to edit is the min_bots and max_bots that determine your server size for every map.

Edit this and use this as a base if you don't like the "hard" settings above.

In saying that, if this standard one is too hard, perhaps edit the one above once you understand the "addbot" and min_reaction and min_reaction commands.

For a quick edit on lowering skill and reaction time you could for this...

min_reaction 150

max_reaction 200

random_skill 50

That would give some slower bots and your game would be more laid back and enjoyable.

 

Code:
 
# Sturmbot config file
#This file is executed before the game starts
# Reaction delay from 0.6 sec to 1.1 sec
min_reaction 60
max_reaction 110

# Ranks are turned on.
rank 1

# If you want the random bots to have higher skills, put random_skill to 80 or 90, 
# if you think the bots are too hard put random_skill to 60 or lower
# The range is 0 - 100
random_skill 75

# How much the bots prioritize the learning... Set learn_priority to a higher value if you want
# the bots to prioritize the learning more. 
# The range is 0 - 1000
learn_priority 990

# Change botteambalance to 1 if you want bots to switch teams to make them even.
botteambalance 1

#Turn extra blood off, change to 1 or 3(unrealistic) for more blood
#If you only want to make the dead bodies stay longer (dod 1.1 or later) use the command cl_corpsestay instead.
bloodmode 0

# Adjust the bot min and max
min_bots 0
max_bots 20



 

 


Others not normally in the bot.cfg file that you may use in a bind or the game console.

In this section there are commands you would not use in the bot.cfg, they can be used in the game console.

I use nearly all of these in my custom "command menu" (dod\commandmenu.txt) along with similar commands in day of defeat.

 


observer [on/off] Default = off  Regard this as a "fun" mode if set to "on"
-----------------
Notes: This will make bots ignore all human players. (Handy for waypointers for testing purposes)


killall
-------
Notes: This will kill all bots prompting them to respawn. Please note this does not kick bots just kills them.
(not available via bot.cfg)

 


sturmbot_password [password]  Default is empty (none)
----------------------------
Notes: available through client console only. Not required if on a listen server by yourself obviously.


select_password [password]



bots
----
Notes: Produces a list of the bots in the game giving their bot number, team, class and name
(not available through bot.cfg use only in console)

 



monsterbot [botnumber]
----------------------
Notes: Gives the bot given in the argument an exceptional amount of health - turning them into a monsterbot.

e.g.: a Monsterbot will require around 3 shots to kill with a rifle if on full health + this setting.

 



fillserver [number] [team] [skill]
----------------------------------
Notes: This will add the number of bots given (arg 1) to your game with the specified team and skill.
If no arguments are given random bots will be added until server is full.
(not available through bot.cfg use only in console)

 



kickteam [team]
---------------
Notes: kicks all bots on team given
team: 1 = allies, 2 = axis

(not available through bot.cfg use only in console)



maxteamkills [number]
---------------------
Notes: This sets the number of times a player can teamkill before the bots will react.

 



botusemapmarkers [on/off]
-------------------------
Notes: If turned on, bots will place warning map markers

 



learn [reset/init/load/save]
----------------------------
Note: This shouldn't normally need touching but just in case...

  • reset and init will re-initiate the bots learning
  • load will load the latest learn files for current map
  • save will save the learn files for current map

(not available through bot.cfg)

 



help
----
Notes: prints a list of sturmbot commands
(available in client console only)

This is all you get in console, note it's buggy....

monsterbot [botnumber]
fillserver [number] [team] [skill]
kickteam [team]
maxteamkills [number]
min_bots [number]
max_bots [number]
learn [reset/init/load/save]
learn_priority
help
addbotmenu
sturmbotmenu
bloodmode [0-3]
maxbodies [0-64]
gunmode [on/off]  Note shows as a unknown command  in version 1.7-1.9
robotmode [on/off]
ghostmode [mode] [team]

 



addbotmenu
----------
Notes: displays the addbot menu

Caution: This can be buggy,e.g.:

  • only the first step of the menu may display if your server is already at the maximum bots. kick one o more bots to solve that.
  • The console may say "unknown command" but the menus will be there in game.

 



sturmbotmenu
------------
Notes: displays the sturmbot menu


In the original commands document this is said above the 4 commands below....

"The following four commands should really be left on default value unless you are a sturmbot expert"

 So I did some testing in 2025 on these 4 commands. The results were mixed and possibly this is another example of things changed in the coding but the documentation never kept up.

However, "cyclefreq" was the one exception, see that below. Safe to say you should leave all of these on the default settings as advised.

 

learnrate [number] Default is 1.0

Result of testing.

Leave this on the default value of "1.0".

 


dangerfactor [number] Default is 0.5

Testing of "dangerfactor"...

"0" - "1" . "0.9" - No difference noted bots as in if they hide, go prone, not take flags or give different warnings.

Result of testing.

Leave this on the default value of "0.5".


scorefactor [number] Default is 0.5

Testing of "scorefactor"...

"0" - "1" . "0.9" - No difference noted bots were still capping flags and things like braveness, aim and skill seemed unaffected.

It is a possible adjustment to the bots using the special pathways called "ways" that are a basic path between flags. The paths did vary between the values but I couldn't see much difference,

Result of testing.

Leave this on the default value of "0.5".


cyclefreq [number] Default = 0.05

Note 1: Adjustable CPU usage with "cyclefreq" (the bots will stand still if you put it too high).

Note 2: Added in Version 1.1: - Possible CPU issues use with caution. 

Testing of "cyclefreq" values...

"0.01" the bots move OK. CPU @ 8-10%

"0.09" the bots move OK. CPU @ 8-10%

Default - "0.05" the bots move OK. CPU @ 9 -12% (game starts up with very short peaks at 15-30%)

"0.1" the bots move OK but noted a small slow down. CPU @ 10-12%

"0.2" or above the bots are standing still. CPU @ 18-22%

Test Results.

Leave it at "0.05" (Default) is my advice and don't exceed "0.1", CPU's are much more powerful than 2004, but as testing showed a value of "0.2" and above the bots did stand still and CPU use did climb.

 

 


 

Sturmbot  'funmodes'.

These can sometimes be a little unstable.

Note: Use with caution as CPU use can be high and cause crashes.
e.g.: robotmode where bots explode with circuit boards.


bloodmode [0-3] Default = "0"  Regard this as a "fun" mode if set to "1-3"
---------------
Notes: 0 = regular dod, 1 = blood splashes, 2 = blood & bodies stay, 3 = bots blow up, gibbing everywhere


maxbodies [0-64] Default = "0"  Regard this as a "fun" mode if set to "1-64"
------------------
Notes: This sets the maximum number of sturmbot bodies that will be left lying on the map (with bloodmode 2) at any one time.
This can increase lag so use wisely.


robotmode [on/off] Default = "1" Regard this as a "fun" mode if set to "1"
------------------
Notes: Bots will explode into pieces of circuit-board when they die


ghostmode [mode] [team]
-----------------------
Notes: Makes bots fade in and out of visibility
mode 0 = off, 1 = slight translucency, 2 = more translucency, 3 = mostly invisible
team 1 = allies, 2 = axis (if no team argument given mode is applied to both teams)


botdontshoot [on/off] Default = "0" Regard this as a "fun" mode if set to "1"
---------------------
Notes: This will stop the bots attacking anything.


pistolonly [on/off] Default = "0"  Regard this as a "fun" mode if set to "1"
-------------------
Notes: This makes bots use only their pistols

 
grenadeonly [on/off] Default = "0"  Regard this as a "fun" mode if set to "1"
--------------------
Notes: This makes bots use only their grenades

 
knifeonly [on/off] Default = "0"  Regard this as a "fun" mode if set to "1"
------------------
Notes: This makes bots use only their knives

 
friendlyfiremode [on/off] Default = "0"  Regard this as a "fun" mode if set to "1"
-------------------------
Notes: This takes the bots out of teamplay mode, they will target any other player (human or bot) regardless of team.