How to Change Bot Difficulty in Counter-Strike 2
Bots in CS2 are useful for warming up, practicing aim, or learning maps — but only if they behave the way you need them to. That’s where bot difficulty comes in. Whether you want slow-moving targets or bots that’ll actually put up a fight, CS2 gives you full control — if you know how to use the console.
What Is Bot Difficulty in CS2?
Bot difficulty determines how skilled and aggressive bots are:
- How fast they react
- How accurately they shoot
- Strategically they behave (e.g. flanking, using grenades)
By default, bots may use auto-adjusting difficulty, changing based on your performance. But you can set it manually for a consistent experience.
Bot Difficulty Levels
CS2 allows 4 preset difficulty levels when adding bots:
0 – easy – Barely shoot back, slow
1 – normal – Basic aim, minimal tactics
2 – hard – Decent aim, reacts faster
3 – expert – Fast reaction, better aim
How to Set Bot Difficulty (Properly!)
First, open the developer console (~). Enable it in Settings → Game if it’s not active.
Kick any existing bots:
bot_kick
Then set the difficulty:
bot_difficulty 3 or 0, 1, 2
Optionally, you can try fractional values:
custom_bot_difficulty 1.5 or 2.5 or else
But here’s the problem…
Even though bot_difficulty and custom_bot_difficulty exist, they often don’t apply when adding bots using bot_add, bot_add_t, or bot_add_ct. These commands will add bots using default difficulty templates, usually around easy or normal — regardless of the value you’ve set.
To guarantee that bots have the difficulty you want, always use:
bot_add_ct easy
bot_add_t normal
bot_add expert
That way, you’re directly telling the game to spawn bots of the right preset.
Bot Templates Explained
When you add a bot using a difficulty keyword like expert, it doesn’t spawn the same kind of bot every time. Each difficulty level — easy, normal, hard, expert — has two unique templates tied to it. These control the bot’s behavior behind the scenes.
For example, the expert difficulty pulls from:
Template Expert
Template Elite
And they’re different!
Template Name
Expert
Elite
Skill
90
100
Aggression
80
95
Reaction Time (sec)
0.20
0.05
This is just a small sample. In reality, each bot has up to 20+ internal attributes — things like preferred weapons, accuracy style, strafing behavior, aiming logic, etc.
Also, every bot name (e.g. Muhlik, Ava, Dragomir) is linked to a specific template. If you want total control, you can even spawn bots by name:
bot_add muhlik or bot_add_t muhlik or bot_add_ct muhlik.
Bot Muhlik always uses the Elite and Rifle templates — he’ll aim fast and always go for a rifle when possible. This is much more reliable than hoping the right template spawns randomly.
For a full list of bot names and templates, check the detailed guide here: Bots in Counter-Strike 2
Turn Off Auto-Difficulty
By default, CS2 may tweak bot skill based on how you’re doing.
bot_autodifficulty_threshold_high – If your score difference (vs. bots) gets higher than this, bots get harder.
bot_autodifficulty_threshold_low – If your score drops below this threshold, bots get easier.
To stop that and lock in your chosen level, set:
bot_autodifficulty_threshold_high 999
bot_autodifficulty_threshold_low -999
This effectively disables the auto-difficulty adjustments and keeps bots at the level you set.
Turn Off Auto-Balance
In order to increase the difficulty, I recommend disabling the player limit and player balance in the team. This way you can set the number of bots in teams. For example, play one against ten.
mp_autoteambalance 0
mp_limitteams 0
Config for Training with Bots
The CS2 configuration folder contains the default settings for each game mode. For example, when you launch a local game with bots on Casual, CS2 automatically loads gamemode_casual.cfg, which includes predefined server settings. While you can edit this file, it’s highly recommended to leave it untouched and use your own custom config instead.
Unfortunately, you can’t pre-spawn bots with the correct difficulty or team setup just by editing gamemode_casual.cfg. That’s why the best approach is to create your own .cfg file, place it in the CS2 cfg folder, and load it manually at the start of the match using the console:
exec mycustomconfig
You should run this config during the first round to override default bot behavior.
Example of a 5 by 10 config if you are playing as CT:
sv_cheats 1
mp_buytime 45
mp_buy_anywhere 0
mp_freezetime 3
mp_friendlyfire 0
mp_maxmoney 15000
mp_maxrounds 15
mp_roundtime 2
mp_roundtime_hostage 2
mp_roundtime_defuse 2.25
mp_autoteambalance 0
mp_limitteams 0
bot_autodifficulty_threshold_low -999
bot_autodifficulty_threshold_high 999
bot_difficulty 3
// Kick exist bots
bot_kick
// Add CT
bot_add_ct easy
bot_add_ct easy
bot_add_ct easy
bot_add_ct easy
// Add TR
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
bot_add_t expert
// The message to console
echo Config TR Bots has been loaded
Detailed articles about config files in CS2 can be found here: Optimizing COUNTER-STRIKE 2 Player Configuration Files and Optimizing COUNTER-STRIKE 2 Server Configuration files.
Conclusion
Changing bot difficulty in CS2 is more than just flipping a switch. To get the results you want — whether it’s easier aim training or sweat-dripping 1v10 clutches — you need to understand how the system works:
- Use bot_add expert and avoid relying on bot_difficulty
- Know that each difficulty uses multiple templates, chosen at random
- Disable auto-difficulty to keep bots consistent
- Use named bots or custom configs for full control
The console might seem intimidating at first, but once you set things up properly, you’ll have a training ground that’s tailored exactly to your skill level and goals.
Good luck and happy fragging!