GuavaHost
Language & currency
Client AreaGame Panel Toggle navigation
Games All Games
Minecraft JavaMinecraft BedrockMinecraft GeyserRustRuneScape: DragonwildsPalworldValheimValheim + BepInExARK: Survival EvolvedARK: Survival AscendedProject ZomboidEnshroudedDon't Starve TogetherCounter-Strike 2TerrariatModLoaderHytaleMulti-Game ServerDiscord Bot Hosting
Navigation PricingReviewsHelp CenterSupport Company About UsFAQRefer to earnSLATerms of ServicePrivacy Policy
Language & currency
Client AreaGame Panel

Bots, warmup and round settings on a CS2 server

The cvars that control bots, warmup length and how a round plays out on a CS2 server, and which config file each one belongs in so the game mode does not overwrite your settings.

6 min read · Updated Oct 21, 2026 · By GuavaHost Team

Most of the frustration with these settings is not the values. It is that you set mp_roundtime in server.cfg, restart, and the server comes back on two minute rounds anyway. That happens because CS2 runs more than one config when a map loads, and the game mode files run last. Get the file right and everything below sticks first time.

Which file your setting belongs in

A cvar (console variable) is one setting with one value, like mp_freezetime 15. When a map starts, the server executes several config files in order, and the last one to set a cvar wins:

  1. game/csgo/cfg/server.cfg runs early. It is the right home for anything about the server itself: hostname, sv_password, rcon_password, sv_lan.
  2. The game mode config for whatever mode you are running, for example gamemode_competitive.cfg. This is Valve's file and it sets round time, freeze time, max rounds, money and the bot defaults. It is also replaced whenever the game updates, so editing it is wasted work.
  3. gamemode_competitive_server.cfg runs immediately after it. This file is yours. Anything you put here beats the mode defaults.

So the rule is simple: server identity goes in server.cfg, and anything about rounds, money, warmup or bots goes in the _server.cfg file for the mode you play. Swap competitive for the mode you actually run: gamemode_casual_server.cfg, gamemode_deathmatch_server.cfg, gamemode_wingman_server.cfg, gamemode_armsrace_server.cfg.

If you are not sure which mode you are on, check your game_type and game_mode pair, which our guide to editing server.cfg lists in full.

Creating the file

The Files tab has no new file button, so you make the file one of two ways. Either write it on your computer and upload it into game/csgo/cfg/ with Upload files, or click ••• on an existing .cfg in that folder, choose Make a copy, then Rename the copy to the name you want and replace its contents in the editor.

Take a snapshot on the Backups page before you start. Config work is easy to undo when you have one and tedious when you do not.

Bots

Bots are controlled almost entirely by two cvars working together:

bot_quota 10
bot_quota_mode fill

bot_quota is the number the server aims for, and bot_quota_mode decides what that number means:

  • fill keeps the server topped up to bot_quota total players, so bots leave as humans join. This is what you want on a mostly empty server.
  • match adds bot_quota bots for every human, which fills a server fast and is rarely what people expect.
  • normal just keeps that many bots regardless of who is connected.

The rest of the useful bot settings:

  • bot_difficulty 0 to 3, from easy to expert.
  • bot_chatter off silences their radio spam. radio and normal are the other values.
  • bot_join_after_player 0 lets bots fill the server before anyone connects, which is handy if you want the server to look alive in the browser.
  • bot_quota_mode fill plus bot_autodifficulty_threshold_low and _high lets the server nudge difficulty towards a player's performance.
  • bot_kick removes every bot right now, and bot_add_ct or bot_add_t adds one to a specific side.
  • bot_stop 1 freezes them in place, which is only for practice setups.

To turn bots off entirely, set bot_quota 0 in your _server.cfg file. Setting it only in server.cfg is the classic reason bots keep coming back.

Warmup

Warmup is the free-for-all period before the match proper. Three cvars cover it:

mp_do_warmup_period 1
mp_warmuptime 60
mp_warmup_pausetimer 0

mp_do_warmup_period 0 skips warmup altogether. mp_warmuptime is the length in seconds. mp_warmup_pausetimer 1 freezes the countdown so warmup runs until somebody ends it, which is what you want when you are waiting for ten people to turn up.

End warmup early from the Console tab, or from your in-game console if you have RCON set up, with:

mp_warmup_end

There is also mp_warmuptime_all_players_connected, a shorter countdown that kicks in once the server is full. Set it to something like 15 so a full lobby does not sit through the rest of a long warmup.

Round rules

These are the values people actually tweak:

Cvar What it does
mp_roundtime 1.92 Round length in minutes. 1.92 is the competitive standard, which is 115 seconds.
mp_roundtime_defuse 1.92 Round length on bomb maps specifically. Set it alongside the one above.
mp_roundtime_hostage 1.92 The same thing on hostage maps.
mp_freezetime 15 Buy time at the start of a round, before anyone can move.
mp_maxrounds 24 Rounds in a match. 24 is MR12, the current competitive format.
mp_halftime 1 Swap sides halfway through.
mp_match_can_clinch 1 End the match as soon as one team cannot be caught.
mp_overtime_enable 1 Play overtime instead of ending on a draw.
mp_overtime_maxrounds 6 Rounds per overtime half.
mp_round_restart_delay 7 How long the scoreboard sits there between rounds.
mp_timelimit 0 A map time limit in minutes. Leave it at 0 when you are using mp_maxrounds.

Round time is in minutes and takes decimals, which trips people up constantly. mp_roundtime 2 is a two minute round. mp_roundtime 1.92 is 115 seconds. Anything under 1 is a very short round, not an error.

A working example

A competitive server that fills with bots when it is quiet, in game/csgo/cfg/gamemode_competitive_server.cfg:

bot_quota 8
bot_quota_mode fill
bot_difficulty 2
bot_chatter radio
bot_join_after_player 0

mp_do_warmup_period 1
mp_warmuptime 90
mp_warmuptime_all_players_connected 15

mp_maxrounds 24
mp_halftime 1
mp_overtime_enable 1
mp_overtime_maxrounds 6
mp_roundtime 1.92
mp_roundtime_defuse 1.92
mp_freezetime 15
mp_round_restart_delay 7
mp_timelimit 0

Applying it

Round and bot cvars are read when a round or match restarts, not the moment you save. The cleanest way to apply them:

  1. Save the file.
  2. Press Restart at the top of the server page.
  3. Watch the Console as the map loads, then join and check the values are what you expect.

For a quick test without a restart, run exec gamemode_competitive_server then mp_restartgame 1 in the Console. That is enough for most settings, though a few only settle properly on a map change.

If a value still refuses to stick, something is setting it after you. Search your cfg folder for the cvar name, and check any plugin configs: a CounterStrikeSharp retake or practice plugin will happily rewrite round rules on purpose. Our guides to practice, retake and surf configs and installing plugins with Metamod and CounterStrikeSharp cover those setups, and if the server is running the settings you want but nobody can find it, start with why a CS2 server is missing from the community browser.

Common questions

Why do my round settings reset every map change?

Because the game mode config runs after server.cfg and sets its own round values. Move anything about rounds, money, warmup or bots into the matching game mode server override file, which executes last and wins.

How do I get bots to leave when real players join?

Set the bot quota mode to fill, with the quota set to the player count you want the server to sit at. In fill mode that number is a total across humans and bots, so each person who connects pushes a bot out.

What is the right round time for a competitive server?

A round time of 1.92 minutes, which is 115 seconds, on both the standard and the defuse value, with freeze time at 15 seconds and 24 max rounds. That matches the format official competitive matchmaking uses, so practice on your server carries over.

Can I skip warmup completely?

Yes. Turn the warmup period off in your mode's server override file and the match starts as soon as the map loads. If you want warmup for people arriving but not for a full lobby, leave it on and set a short countdown for when everybody is connected instead.

Still stuck? Jump into our Discord at discord.gg/GuavaHost and the team will help you out.

  • cs2
  • bots
  • warmup
  • rounds
  • configuration

Host a Counter-Strike 2 server From $2.99/mo, with instant setup and DDoS protection.

Still need help? Our team is online 24/7 to answer questions.

Contact support

Related guides

More from Counter-Strike 2.

  • Editing server.cfg: CS2 Server Settings Explained

    Your CS2 server reads its settings from a file called server.cfg, and learning a handful of key values there lets you set the server name, a password, the game mode, and the round rules exactly how you want them.

    2 min

  • Play Steam Workshop maps on your CS2 server

    Host any Workshop map or collection by its ID: run host_workshop_map in the Console, or add it to Custom Parameters so it loads on every start.

    5 min

  • How to Connect to Your CS2 Server

    Connecting to your Counter-Strike 2 server takes two things: your server's IP and port from the control panel, and the in-game developer console, where you type one connect command to join.

    2 min

  • Set up admins on a CS2 server

    How to give yourself and your staff admin powers on a CS2 server with CounterStrikeSharp, including the SteamID format the admin file needs, what the permission flags mean, and how to test a new admin without locking yourself out.

    6 min

  • What Is a GSLT and Why Your CS2 Server Needs One

    A Game Server Login Token (GSLT) is a free code from Steam that publicly identifies your CS2 server, and without one your server cannot appear in the community server browser or accept internet players.

    2 min