How to Play Against the Hardest Bots in CS2: Expert, Elite and Bot Difficulty
bot_difficulty values, all bot templates from the game files, Elite bot names, auto difficulty, uneven teams and a ready config for 5 vs 10 against Elite bots
If you want the hardest bots in Counter-Strike 2, bot_difficulty 3 is only part of it. It gives you Expert bots, but Expert is not the strongest bot template in the game. The real maximum is Elite bots, plus uneven teams, auto difficulty turned off and a bot config you run after the map loads.
Below I show how bot difficulty works in CS2, what the game files say about every template, why bot_add elite doesn't work, how to add Elite bots by name, and a config for a local game against many strong bots.
How Bot Difficulty Works in CS2
Bot difficulty decides how strong bots are in a local game: aim, reaction time, aggression and how they move. The base command is bot_difficulty, it sets the skill of bots that join the game.
But every bot in CS2 is built from a template in the game file botprofile.db, and each template belongs to one difficulty. So one bot_difficulty value covers several templates:
| bot_difficulty | Keyword | Templates in the game files | Named bots |
|---|---|---|---|
0 |
easy |
Easy | 38 |
1 |
normal |
Fair, Normal | 47 |
2 |
hard |
Tough, Hard, Very Hard | 40 |
3 |
expert |
Expert, Elite | 22 |
When you add a bot by difficulty, the game picks a bot from that group. bot_add hard can give you a Tough bot as well as a Very Hard one. With bot_add expert you get Expert bots like Commando or Ava. Elite bots are also marked as expert difficulty in the file, but the reliable way to get them is by name, for example bot_add muhlik.
That's why bot_difficulty 3 and bot_add expert are the top of the normal settings, but not the hardest bots CS2 can give you.
CS2 Bot Templates: Expert vs Elite and the Rest
These are the values of all eight skill templates straight from botprofile.db. Higher skill and aggression, lower reaction time and smaller aim focus values mean a stronger bot.
| Template | Difficulty | Skill | Aggression | Reaction time | Attack delay | Aim focus initial | Aim focus decay | Aim offset scale | Aim focus interval |
|---|---|---|---|---|---|---|---|---|---|
| Elite | EXPERT | 100 | 95 | 0.05 | 0 | 0.5 | 0.1 | 0.05 | 0.05 |
| Expert | EXPERT | 90 | 80 | 0.20 | 0 | 2 | 0.2 | 0.15 | 0.20 |
| Very Hard | HARD | 80 | 70 | 0.30 | 0 | 5 | 0.3 | 0.17 | 0.30 |
| Hard | HARD | 75 | 60 | 0.40 | 0 | 10 | 0.4 | 0.20 | 0.40 |
| Tough | HARD | 60 | 45 | 0.50 | 0.70 | 10 | 0.4 | 0.25 | 0.50 |
| Normal | NORMAL | 50 | 30 | 0.60 | 0.80 | 12 | 0.5 | 0.35 | 0.60 |
| Fair | NORMAL | 25 | 15 | 0.60 | 0.90 | 17 | 0.6 | 0.50 | 0.70 |
| Easy | EASY | 5 | 10 | 0.60 | 0.70 | 20 | 0.7 | 0.60 | 0.70 |
What the columns mean, from the comments in the file:
- Reaction time: seconds before the bot reacts to you. Elite needs 0.05 s, four times faster than Expert.
- Aim focus initial: how far from your center the first aim lands, in degrees. Elite starts at 0.5°, Expert at 2°.
- Aim focus decay: how fast that spread shrinks. 0.1 means it's down to 10% after one second.
- Aim offset scale: accuracy while tracking a moving target, 0 is perfect. Elite has 0.05.
- Aim focus interval: how often the aim is corrected, smaller means better tracking.
- Attack delay: extra pause before shooting. From Hard up it's 0.
So Elite bots react almost instantly, start aiming almost on your head and track you nearly perfectly. That's why they feel unfair, especially when they hear your steps and pre-fire through doors and common angles.
Elite Bot Names in CS2 and How to Add Them
bot_add elite doesn't work: the difficulty keywords are only easy, normal, hard and expert. To get an Elite bot, add it by name:
bot_add_t muhlik bot_add_ct rebel
There are 12 Elite and 10 Expert bots in the game files:
| Elite bot | Weapon template | Expert bot | Weapon template |
|---|---|---|---|
| Muhlik | Rifle | Ava | RifleT |
| Shamat | Spray | Syfers | Rifle |
| Crusher | Shotgun | Delrow | Punch |
| Osiris | Punch | Operator | Sniper |
| Rock | Power | Soldier | Shotgun |
| Shark | PunchT | McCoy | Rifle |
| Wolf | Rifle | Buckshot | Rifle |
| Gunner | RifleT | Rip | PunchT |
| Rebel | Sniper | Ricksaw | Rifle |
| Crew | Punch | Commando | none |
| Steel | RifleT | ||
| Stone | PunchT |
Bot Weapon Templates
The weapon template is the list of weapons a bot tries to buy first, in this order, when money and side allow it. It's a preference, not a lock.
| Template | Buy order |
|---|---|
| Rifle | m4a1, ak47, famas, galilar, mp7 |
| RifleT | ak47, m4a1, galilar, famas, mp7 |
| Punch / PunchT | aug, sg556, famas, galilar, mp7 |
| Sniper | awp, scar20, g3sg1, ssg08, famas, galilar, mp7 |
| Power | m249, xm1014, nova, famas, galilar, mp7 |
| Shotgun | xm1014, nova, famas, galilar, mp7 |
| Spray | p90, mp9, mac10, mp7 |
So Rebel will go for the AWP whenever he can, Muhlik and Wolf for rifles (M4 on CT, AK-47 on T), Osiris and Crew for the AUG or SG 553. If you want an enemy team full of snipers or rifles, pick the names by template.
One limit: you can't add two bots with the same name to one team. Two Muhliks on T won't work, but one Muhlik on each side is fine.
CS2 Bot Difficulty Commands
bot_add doesn't need sv_cheats. The game describes it as bot_add <t|ct> <type> <difficulty> <name>, so you can combine side, difficulty and name.
bot_add expert // Expert bot on any side bot_add_t expert // Expert bot on T bot_add_ct hard // Hard group bot on CT bot_add_t muhlik // Elite bot Muhlik on T bot_difficulty 3 // bots that join later will be Expert
bot_kick // remove all bots bot_kick t // remove T bots bot_kick easy // remove bots of that difficulty bot_kick muhlik // remove one bot by name
All bot commands with explanations are in my CS2 bots guide.
Turn Off Auto Bot Difficulty in CS2
By default CS2 adjusts bot difficulty every round based on contribution score. If you play well, bots get harder, if you play badly, they get easier. When you set up a hard game on purpose, that only gets in the way.
| Command | Default | Range | What it does |
|---|---|---|---|
sv_auto_adjust_bot_difficulty |
1 | 0 / 1 | Adjusts bot difficulty each round based on contribution score |
bot_autodifficulty_threshold_high |
5 | -20 to 20 | How far above the average human contribution score a bot must be to change its difficulty |
bot_autodifficulty_threshold_low |
-2 | -20 to 20 | How far below the average human contribution score a bot must be to change its difficulty |
With the defaults, a bot whose contribution score falls more than 2 points below the human average gets harder, and one that is more than 5 points above it gets easier. Widening the thresholds to -20 and 20 makes these changes rare. The cleanest way is to turn it off:
sv_auto_adjust_bot_difficulty 0
Then every bot keeps exactly the level you added it with.
Play 1 vs 5 or 5 vs 10 Against Bots
More enemies is the easiest way to make bots harder. First remove the team limits:
mp_autoteambalance 0 // the game doesn't move players between teams mp_limitteams 0 // no limit on team size difference
Then add bots to the enemy side. If you play CT, add T bots, if you play T, add CT bots:
bot_add_t expert bot_add_t expert bot_add_t muhlik
bot_add_ct expert bot_add_ct expert bot_add_ct muhlik
Watch the player limit: Competitive has 10 slots in total, so for 5 vs 10 start a Casual game. All details in how to disable auto balance and player limits, there's also a setup builder that writes the commands for you.
Elite Bot Config for CS2
This config makes a hard local game: team limits off, auto difficulty off, four Easy bots on your CT side and ten strong T bots: three Expert and seven Elite.
Run it only after the map has loaded.
// Server setup mp_buytime 60 // buy time at the start of the round mp_buy_anywhere 0 // buying only in the buy zone mp_freezetime 2 // short freeze time mp_friendlyfire 0 // no friendly fire mp_startmoney 800 // starting money mp_maxmoney 15000 // money limit mp_maxrounds 20 // rounds per match mp_roundtime_defuse 2.25 // round time on bomb maps mp_roundtime_hostage 2 // round time on hostage maps mp_autoteambalance 0 // no auto team balance mp_limitteams 0 // uneven teams allowed, like 5 vs 10 // Bot difficulty bot_difficulty 3 sv_auto_adjust_bot_difficulty 0 // Remove existing bots bot_kick // Your side: CT bot_add_ct easy bot_add_ct easy bot_add_ct easy bot_add_ct easy // Enemy side: T, Expert and Elite bot_add_t expert bot_add_t expert bot_add_t expert bot_add_t muhlik bot_add_t shark bot_add_t crusher bot_add_t wolf bot_add_t steel bot_add_t osiris bot_add_t gunner echo The T bots config has been loaded
For the T side make bot_ct.cfg with bot_add_t easy for your team and bot_add_ct for the enemies. Elite names work on both sides.
How to Use the Bot Config
- Save the file as
bot_t.cfg(andbot_ct.cfgif you want both). - Put it in
...\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\. -
Start CS2 and load a map:
Play
→
Offline With Bots
, or
game_type 0; game_mode 0; map de_dust2in the console for Casual with enough slots. - Join your side (
jointeam 3for CT,jointeam 2for T). - Run the config:
exec bot_torexec bot_ct.
Want to build your own? Use the CS2 Config Generator. More about configs: how to create, load and manage cfg files and where CS2 config files are stored.
Conclusion
bot_difficulty 3 is not the end of bot difficulty in CS2. The hardest local game is Elite bots added by name, auto difficulty off, team limits off and more enemies than you have teammates. Most players stop at bot_add expert, but Elite bots with a 0.05 second reaction time are a different level.
And yes, you'll probably still accuse them of cheating. Elite bots punish you through doors and walls the moment they hear your steps.
Hardest Bots in CS2 FAQ
What is the hardest bot difficulty in CS2?
The highest normal setting is Expert (bot_difficulty 3, bot_add expert). The strongest template is Elite, and you add those bots by name, for example bot_add muhlik.
Does bot_add elite work in CS2?
No. The difficulty keywords are only easy, normal, hard and expert. Use an Elite bot name instead.
What are the Elite bot names in CS2?
Muhlik, Shamat, Crusher, Osiris, Rock, Shark, Wolf, Gunner, Rebel, Crew, Steel and Stone.
How do I make bots harder in CS2?
Add Elite bots by name, turn off auto difficulty with sv_auto_adjust_bot_difficulty 0, remove team limits with mp_autoteambalance 0 and mp_limitteams 0, and add more bots to the enemy side.
Do I need sv_cheats for bot commands?
No. bot_add, bot_kick and bot_difficulty work without it. Only debug commands like bot_stop or bot_dont_shoot need cheats.
How do I remove bots in CS2?
bot_kick removes all bots. You can also kick by side, difficulty or name: bot_kick t, bot_kick expert, bot_kick muhlik.
Can I play 1 vs 5 or 5 vs 10 against bots?
Yes. mp_autoteambalance 0 and mp_limitteams 0, then add bots with bot_add_t or bot_add_ct. For more than 10 players use Casual.
When should I run the Elite bot config?
After the map has loaded. Load the map first, join your side, then run exec bot_t or exec bot_ct.


