How to Setup a Dedicated Server on Counter-Strike: Global Offensive

Setup Dedicated Server

Being an admin on a server can be pretty cool, but owning the server outright is even better. Whether it’s a server you pay for, or just something you setup on a home
computer, owning a server allows you to have complete control of the content, map rotation, and player base. This article will detail the different steps and requirements for installing and setting up your very own server for Counter-Strike: Global Offensive on Windows.

  1. The first step before running a Counter-Strike: Global Offensive server is to download the Steam Console Client (or SteamCMD) from Valve. This is a command-line
    version of the Steam client. Its primary use is to install and update various dedicated servers.

  2. After downloading SteamCMD, extract it to a folder on your hard drive of your choice (such as C:\CS-GO\SteamCMD)
  3. Inside this folder (C:\CS-GO), create another folder called “CSGO_SERVER”
  4. Create a text file and name it “csgo_ds.txt” and open it with your favorite text editor or
    notepad. Copy and paste the following into that text file (change “steamusername” and “steampassword” to your Steam username and password

login steamusername steampassword
force_install_dir “C:\CS-GO\CSGO_SERVER”
app_update 740 validate
exit

  1. Create a shortcut and add a Target to the shortcut. This will make it easier to update your server when Valve updates CS:GO:

C:\CS-GO\SteamCMD\steamcmd.exe +runscript csgo_ds.txt

create shortcut

  1. Double click on the new shortcut you just made. If this is your first time running it, close to 6 GB will be downloaded into the folder (make sure you have the appropriate hard drive space!). Also, during this time, you cannot log into your Steam account (it’s being used to download all the necessary files).

CMD Window

  1. Once the download is finally completed, the command prompt will subsequently close. Now we’re ready to configure our new server. Your directory should look like
    the one below:

windows explorer

  1. Go to the directory “C:\CS-GO\CSGO_SERVER\csgo\cfg” and create a new file. Name it
    autexec.cfg. Open it with your favorite text editor and put this line in the file:

Logon

  1. Create a file in the same directory (“C:\CS-GO\CSGO_SERVER\csgo\cfg”). Name it server.cfg. This will be where all the important server configurations are made.
    Below is an example of some of the commands you can paste into this text file:

hostname “-{DK}- BLUE DEDICATED SERVER”
rcon_password “put your password here”
//sv_password “” //Only set this if you intend to have a private server!
mp_join_grace_time “15” //The amount of time players can join teams after a round has started
mp_match_end_restart “0” // Defines whether a map should be restarted after a game has ended
sv_cheats “0” //This should always be set, so you know it’s not on
sv_lan “0” //This should always be set, so you know it’s not on
//**The bot commands below are mostly default with the exception of
bot_join_after_player “0”
//**The following commands manage kicks and bans
writeid
writeip
exec banned_user.cfg
exec banned_ip.cfg
//Others
sv_pure “1”
sv_allowupload “1”
sv_allowdownload “1”
sv_hibernate_when_empty “0”
sv_forcepreload “1”
sv_tags “Your,Tags,Here”

  1. Again, in the same directory (“C:\CS-GO\CSGO_SERVER\csgo\cfg”), create a file called
    gamemode_competitive_server.cfg and open it with a text editor. This file will be for adding our cvars and gamemode options. Below is an example:

bot_quota_mode fill //or try normal
bot_quota 6
bot_defer_to_human_items 1
bot_defer_to_human_goals 1
bot_difficulty 3
bot_chatter off
bot_autodifficulty_threshold_low -2.0 // Value between -20.0 and 20.0 (Amount below avg human contribution score, below which a bot should raise its difficulty)
bot_autodifficulty_threshold_high 0.0 // Value between -20.0 and 20.0 (Amount above avg human contribution score, above which a bot should lower its difficulty)mp_friendlyfire 1
mp_autoteambalance 1
mp_do_warmup_period 1
mp_afterroundmoney 0
mp_playercashawards 1
mp_teamcashawards 1
mp_maxrounds 20
mp_halftime 1
mp_timelimit 30
mp_roundtime 2
mp_freezetime 10
mp_buytime 45
mp_forcecamera 1 // Set to 1 for team only spectating.
mp_defuser_allocation 0
mp_death_drop_gun 1 // 0=none, 1=best, 2=current or best
mp_death_drop_grenade 2 // 0=none, 1=best, 2=current or best
mp_death_drop_defuser 1
mp_molotovusedelay 0
mp_force_pick_time 15
mp_match_can_clinch 1 // 0=No mercy rule, 1=team can clinch match win early if they win > 1/2 total rounds
mp_startmoney 800
mp_maxmoney 20000sv_full_alltalk 1
sv_alltalk 1
sv_deadtalk 1
sv_allow_votes 1 // Voting allowed in this mode
sv_arms_race_vote_to_restart_disallowed_after 0
sv_ignoregrenaderadio 0spec_freeze_time 5.0
spec_freeze_panel_extended_time 0ff_damage_reduction_grenade 0.85
ff_damage_reduction_bullets 0.33
ff_damage_reduction_other 0.4
ff_damage_reduction_grenade_self 1// cash award convars
cash_team_terrorist_win_bomb 3500
cash_team_elimination_hostage_map 3000
cash_team_elimination_bomb_map 3250
cash_team_win_by_time_running_out 3250
cash_team_win_by_defusing_bomb 3500
cash_team_win_by_hostage_rescue 3500
cash_team_loser_bonus 1400
cash_team_loser_bonus_consecutive_rounds 500
cash_team_rescued_hostage 750
cash_team_hostage_alive 150
cash_team_planted_bomb_but_defused 800
cash_team_hostage_interaction 150
cash_player_killed_teammate -3300
cash_player_killed_enemy_default 300
cash_player_killed_enemy_factor 1
cash_player_bomb_planted 300
cash_player_bomb_defused 300
cash_player_rescued_hostage 1000
cash_player_interact_with_hostage 150
cash_player_damage_hostage -30
cash_player_killed_hostage -1000// gungame tr defaults (not used in this mode)
mp_ggtr_bomb_respawn_delay 0
mp_ggtr_bomb_detonation_bonus 1
mp_ggtr_bomb_defuse_bonus 1
mp_ggtr_bomb_pts_for_upgrade 2
mp_ggtr_bomb_pts_for_he 3
mp_ggtr_bomb_pts_for_flash 4
mp_ggtr_halftime_delay 0.0
mp_ggtr_end_round_kill_bonus 1
mp_ggtr_last_weapon_kill_ends_half 0// gungame progressive defaults (not used in this mode)
mp_gungameimmunitytime 4
mp_ggprogressive_round_restart_delay 15mp_weapons_allow_zeus 0
mp_solid_teammates 1
mp_free_armor 0
spec_show_xray 1

  1. Go back one directory (“C:\CS-GO\CSGO_SERVER\csgo”). You will see a file called
    “gamemodes_server.txt.example”, rename it to “gamemodes_server.txt”. This will help set the map rotation and some other server configurations. Below is an example:

// To use this file, rename it to GameModes_Server.txt
//
// Values here override the default gamemodes.txt
“GameModes_Server.txt”
{
“gameTypes”
{
“classic”
{
“gameModes”
{
“competitive”
{
“maxplayers” “14” // Note that maxplayers doesn’t go in the convar block.
// Another way to set maxplayers is to add -maxplayers_override XX to the cmd line
“exec”
{
“exec” “my_server_override_competitive.cfg”
}
“mapgroupsMP” // List of mapgroups valid for this game mode ( competitive )
{
“mg_bomb” “”
}
}
“casual”
{
“maxplayers” “14”
“exec”
{
“exec” “my_server_override_casual.cfg”
}
“mapgroupsMP” // List of mapgroups valid for this game mode ( casual )
{
“mg_bomb” “”
}
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
// Map groups
//
// To use a mapgroup, it needs to be defined in a keyvalues
// block such as the example below, as well as listed in the
// ‘mapgroupsMP’ block within the game mode that will run it,
// such as the example above.
//
// Then launch the server with ‘+mapgroup MAPGROUPNAME’
//
// Example:
//
// srcds -game csgo +game_mode 1 +mapgroup mg_bomb_se +map de_nuke_se
//
//
// Check the developer wiki for updated community info
// https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers
/////////////////////////////////////////////////////////////////////////////////////////////
“mapgroups”
{
“mg_bomb” // mapgroup definition
{
“name” “mg_bomb”
“maps”
{
“de_dust” “”
“de_dust2” “”
“cs_italy” “”
“de_aztec” “”
“cs_office” “”
“de_lake” “”
}
}
}
}

  1. Now we’re ready to start the server! We’re going to create a simple .bat file to start our
    server every time. Go to “C:\CS-GO” directory and create a file, name it “StartServer.bat”. Open the file with a text editor and put in the following commands:

start /abovenormal srcds -game csgo -console -usercon +net_public_adr 24.151.126.251 -port 27015
+game_type 0 +game_mode 1 +mapgroup mg_bomb +map de_dust -tickrate 128 –autoupdate

  1. That’s essentially it! Click on this .bat file to start your server up. You can also create a
    shortcut of this .bat file and place it on your desktop for convenience of use.

start .bat file