Skip to main content

Using bots

ReGameDLL_CS includes the zBot code used by Counter-Strike: Condition Zero. Dedicated servers must enable it explicitly, and CS 1.6 servers also need the separate bot profiles and resources.

Old command-line option

Do not use the old -bots HLDS command-line option. It was removed upstream in favor of the bot_enable CVar.

Enable bots on CS 1.6​

  1. Install a current ReGameDLL_CS release.
  2. Download the official bot_profiles.zip.
  3. Extract the archive into the server root so its cstrike files merge into <server>/cstrike.
  4. Create or edit <server>/cstrike/game_init.cfg and set:
bot_enable "1"
  1. Fully restart the server.

The regular regamedll-bin-*.zip release does not include the CS 1.6 bot profile archive, so installing only the GameDLL is not enough.

Enable bots on Condition Zero​

Condition Zero already supplies the normal zBot profiles and resources. On a dedicated server, edit <server>/czero/game_init.cfg and set:

bot_enable "1"

Then fully restart the server. Listen servers enable zBot regardless of this CVar.

Add and remove bots​

Run these commands in the server console or through RCON:

CommandResult
bot_addAdds a random bot, using bot_join_team as the team preference.
bot_add <profile>Adds the named profile from BotProfile.db.
bot_add_t [profile]Adds a random or named Terrorist bot.
bot_add_ct [profile]Adds a random or named Counter-Terrorist bot.
bot_kill or bot_kill allKills all living bots without removing them.
bot_kill <name>Kills one bot. Quote names that contain spaces.
bot_kick or bot_kick allRemoves all bots and resets the quota so they are not immediately re-added.
bot_kick <name>Removes one bot and reduces the quota.
bot_aboutPrints information about the bot implementation.

Manually adding a bot increases bot_quota; manually kicking one reduces it.

Configure bot count​

bot_quota_mode controls how bot_quota is interpreted.

Keep exactly six bots​

bot_quota_mode "normal"
bot_quota "6"
bot_join_after_player "0"

Keep ten total active players​

In fill mode, humans plus bots are kept near the quota:

bot_quota_mode "fill"
bot_quota "10"

Keep two bots per human​

In match mode, the quota is a human-to-bot ratio:

bot_quota_mode "match"
bot_quota "2"

Useful quota settings:

CVarValuesMeaning
bot_join_after_player0, 1, 20: bots may join an empty server. 1: wait for a human on T/CT. 2: wait for any connected human, including spectators.
bot_join_delaysecondsDelays bot joining after a map change.
bot_auto_vacate0 or 1When enabled, keeps a free slot available for a human player.
bot_join_teamany, T, CTPreferred team for automatically added bots.

Difficulty, chatter, and objectives​

bot_difficulty "2"
bot_chatter "minimal"
bot_defer_to_human "0"
  • bot_difficulty: 0 easy, 1 normal, 2 hard, 3 expert.
  • bot_chatter: commonly off, radio, minimal, or normal.
  • bot_defer_to_human 0: bots may perform scenario objectives.
  • bot_deathmatch 1: bots use deathmatch behavior and do not perform the normal scenario.
  • bot_freeze 1: prevents bots from moving, which is useful for testing.

Weapon presets are also available:

bot_knives_only
bot_pistols_only
bot_snipers_only
bot_all_weapons

Bots need a navigation file at <mod>/maps/<map>.nav. If a custom map does not provide one, run:

bot_nav_analyze

Navigation analysis can take time and writes a new .nav file. Current ReGameDLL_CS builds reload the generated navigation data after analysis without requiring a separate map restart.

Back up hand-edited .nav files before re-running analysis. The additional bot_nav_* commands are advanced editing tools and should be used on a test server.

Example bot configuration​

After enabling bots in game_init.cfg, place everyday bot behavior in game.cfg or a separate file executed by your server configuration:

bot_quota_mode "fill"
bot_quota "12"
bot_join_after_player "2"
bot_join_delay "5"
bot_auto_vacate "1"
bot_difficulty "2"
bot_chatter "minimal"
bot_defer_to_human "0"

See Troubleshooting if the bot_* commands are unknown or bots do not join.