Skip to content

CS2 Bot Commands: Add, Kick and Remove Bots for Good

How to remove bots in CS2 so they stay gone, plus bot_add, bot_kick, bot_quota modes, difficulty, weapon limits and cheat-only bot commands.

Updated September 28, 2026
Counter-Strike 2

The CS2 bot commands most people are looking for are the ones that remove bots, and the commands that remove bots are also the ones people get wrong. Run bot_kick on its own and the bots tend to come back, at the latest on the next map, because a separate setting, bot_quota, tells the server how many bots it should keep, and the game mode's config sets it again every map. This guide covers adding, kicking and removing bots for good, then the quota modes, the difficulty and weapon controls, and the cheat-only commands for freezing or placing bots.

Every command here was checked against the current CS2 build (1.41.8.5, 25 September 2026). All of them run from the server console: the Console tab in your GSK panel, or your game console with an rcon prefix. None of the add, kick or quota commands need sv_cheats.

How to Remove All Bots in CS2

Run these two lines in the Console tab, in this order:

bot_quota 0
bot_kick

bot_quota 0 tells the server to stop keeping bots, and bot_kick removes the ones already there. Setting the quota first means nothing is left to top the bots back up.

The quota comes back when the map changes, because the gamemode config runs again. Your server starts in whatever mode the Gamemode and Gametype variables in the Startup tab select, and each of Valve's gamemode configs sets its own bot quota:

Mode (panel values) Valve config bot_quota bot_quota_mode bot_difficulty
Competitive (game_mode 1, game_type 0, the egg default) gamemode_competitive.cfg 1 competitive 2
Casual (0, 0) gamemode_casual.cfg 10 fill 1
Deathmatch (2, 1) gamemode_deathmatch.cfg 10 fill_with_minimum 2

So a casual server fills up to ten players with bots every map. To keep a server bot-free, put the two lines in a small config such as game/csgo/cfg/nobots.cfg and run exec nobots after a map change. If you use a match plugin, put bot_quota 0 in its config instead. MatchZy's practice config, for example, already sets bot_quota 0.

Adding Bots

Command What it does
bot_add Add one bot to whichever team needs it
bot_add_t / bot_add_ct Add one bot to a specific side
bot_add <t|ct> <type> <difficulty> <name> Full syntax. Every argument is optional
bot_difficulty <0-3> Skill of bots that join after you set it: 0 easy, 1 normal, 2 hard, 3 expert

Set the difficulty first, then add:

bot_difficulty 3
bot_add_ct
bot_add_ct
bot_add_t

bot_difficulty doesn't change bots that are already in the game. To change them, kick them and add them again.

Bots also take player slots. The Max Players value in your Startup tab caps humans and bots together. With bot_auto_vacate on (its default), a bot leaves when a human needs its slot.

Kicking Specific Bots

bot_kick takes the same filters as bot_add:

Command Removes
bot_kick or bot_kick all Every bot
bot_kick t / bot_kick ct Every bot on one side
bot_kick <name> One bot by name, as shown in status

Check the quota first, as in the section above. If bot_quota is still above what you want, the quota system can add bots back.

Bot Quota Modes

bot_quota is a target, and bot_quota_mode sets how the server counts toward it:

bot_quota_mode Behaviour
normal Keeps bot_quota bots in the game regardless of humans
fill Keeps the total number of players at bot_quota. Each human who joins pushes a bot out
match Keeps a 1:N ratio of humans to bots, where N is bot_quota

Valve's own configs also use competitive and fill_with_minimum, which the convar's built-in help does not describe.

For a community casual server, fill is usually what you want. For example, bot_quota 10 with bot_quota_mode fill keeps a 5v5 going, and the bots drop out as people join. Two more convars affect when bots appear:

Convar Default Effect
bot_join_after_player true Bots wait until a human joins. An empty server stays empty, then bots appear the moment you connect
bot_join_team any T or CT puts every bot on one side
mp_humanteam any T or CT locks humans to one side. Combine it with bot_join_team for humans-versus-bots
bot_auto_vacate true Bots leave to make room for humans

Weapons, Difficulty and Behaviour (No Cheats)

Command / convar Effect
bot_knives_only Bots use knives only
bot_pistols_only Pistols only
bot_snipers_only Sniper rifles only
bot_all_weapons Remove the restriction again
bot_allow_rifles, bot_allow_snipers, bot_allow_pistols, bot_allow_shotguns, bot_allow_sub_machine_guns, bot_allow_machine_guns, bot_allow_grenades Fine-grained weapon allow-list, all true by default
bot_chatter off Silence radio chatter. Other values are radio, minimal and normal
bot_walk 1 Bots walk only, never run
bot_prefix "<text>" Text put before every bot's name
bot_eco_limit <n> Bots won't buy when their money is below this (default 2000)
sv_auto_adjust_bot_difficulty On by default: "Adjust the difficulty of bots each round based on contribution score." Turn it off (0) if you want a fixed bot_difficulty

Cheat-Only Bot Commands

These need sv_cheats 1 on the server. They are useful for practice and aim training, but they turn cheats on for everyone connected.

Command Effect
bot_stop <1|all|t|ct|not_bomber> Stop bots in place. bot_stop 0 releases them
bot_freeze 1 Freeze bots where they stand
bot_dont_shoot 1 Bots never fire
bot_zombie 1 Bots stay idle and never attack
bot_ignore_players 1 Bots can't see human players
bot_crouch 1 Bots stay crouched
bot_mimic <player index> Bots copy that player's inputs
bot_kill Kill bots but leave them in the game. Takes the same filters as bot_kick
bot_place Place a bot where "the local player" is aiming

bot_place is written for a local game, where the person at the console is also a player. On a dedicated server the Console tab has no player behind it, so use the MatchZy practice commands .bot and .crouchbot to place bots where you stand.

Bots on Workshop Maps

Bots need a navigation mesh to move. Official maps ship with one. The retail CS2 server has no nav_generate command (CS:GO had one), so the server can't build a mesh itself. The mesh has to come with the map. If bots on a Workshop map stand still at spawn, the author probably published it without one, and nothing on the server side can fix that.

FAQ

What is the command to remove bots in CS2?

bot_quota 0 followed by bot_kick. After a map change the game mode's config sets the quota again, so run both again, or keep them in a config you exec.

How do I kick bots from one team only?

bot_kick t or bot_kick ct. To stop them rejoining that team, set bot_join_team to the other side, or lower bot_quota.

How do I make bots harder?

bot_difficulty 3, then kick and re-add the bots, because difficulty applies only to bots that join afterwards. Turn off sv_auto_adjust_bot_difficulty if you want the difficulty to stay where you set it.

Why do bots appear only when I join?

bot_join_after_player is on by default, so the server waits for a human before adding bots. Set it to 0 to have them spawn on an empty server.

Do bot commands need sv_cheats?

Adding, kicking, the quota, difficulty and weapon restrictions don't. Freezing, stopping, killing, placing and mimicking do.


Made with 💜 by GameServerKings

Need a Counter-Strike 2 server?

Deploy an instantly-provisioned Counter-Strike 2 server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $11.50 /month