Counter-Strike: Global Offensive is a game in the Counter-Strike franchise. The dedicated server component can be run as a Windows Service using FireDaemon Pro, which allows you to have the dedicated server start automatically at boot prior to login, start multiple instances of the dedicated server and more. This HOWTO will show you how to set it up. You can also use FireDaemon Fusion to manage FireDaemon and other Windows services via a web browser.
Counter-Strike: Global Offensive Dedicated Server Setup
Counter-Strike: Global Offensive uses SteamCMD to update its files. It offers faster download speeds but also carries an annoying issue; you must use a Steam Account to update the server. The Steam account doesn't necessarily have to own the game so you don't have to use your Steam account. You should still make a new Steam account because when your server updates, you will be logged out of Steam. Additionally, having your username and password in plain text on your computer is a security risk.
First create a new Steam account here. Take note of the username and password you chose. If you plan on using an existing Steam account, skip to the next step.
Download SteamCMD from here. The download is small (< 2 MB).
Extract the SteamCMD files somewhere on your hard drive. For the purposes of this HOWTO, we will be using "C:\CSGO".
Go to the directory where you installed SteamCMD. Create a shortcut to "steamcmd.exe". Next edit the properties of the shortcut and in the target box, at the end of it (with a space before the following), put:
+login username password +force_install_dir C:\CSGO +app_update 740 validate
The target box should now look something like:
"C:\CSGO\steamcmd.exe" +login username password +force_install_dir C:\CSGO +app_update 740 validate
Now you can click the shortcut you created and let it run to download the Counter-Strike: Global Offensive server files. It might take a few hours to update everything. You should also run the shortcut every week or so to grab the latest server updates. Make sure to stop your server first.
CS:GO uses one configuration file to store its settings. You can find it in "csgo\cfg\server.cfg" in the directory where you installed the server. Go ahead and edit this file to your preferences.
Counter-Strike: Global Offensive Setup Under FireDaemon Pro
Download and install FireDaemon Pro into the directory of your choice, typically C:\Program Files\FireDaemon.
Next start the FireDaemon GUI from the desktop shortcut. Click on the "Create a new service definition" button in the toolbar (or type Ctrl+N) and enter the information into the fields as you see below. Adjust the paths to suit your installation. Note the required parameters.
Executable: The path to your srcds.exe file. For the purposes of this HOWTO, the path is C:\CSGO\srcds.exe.
Working Directory: The directory containing your srcds.exe file. For the purposes of this HOWTO, the path is C:\CSGO.
The most important field on the tab is the Parameters. The Parameters define the initial setup of your server.
Here’s the full parameter list you should have:
-console -game csgo -secure +game_type # +game_mode # +map de_dust2 +mapgroup <groupname> -maxplayers_override 32 -autoupdate -port 27015 +ip 126.96.36.199 +exec server.cfg
- "-console" enables text base server display. The server can only be automatically restarted in text based mode.
- "-game" loads the mod.
- "-secure" enables VAC (Valve Anti Cheat) protection of your server. You can remove this command if you do not want to use VAC.
- "+game_type" Changes the game type to Casual, Competitive, Arms Race (Gun Game) and Demolition (gungametrbomb). Replace # with a digit (see further below). This command should never be removed.
- "+game_mode" Sets the primary functions of your server (eg. time, rounds, friendly fire, etc.). Replace # with a digit (see further below). This command should never be removed.
- "+map" Sets the starting map to de_dust2 (replace de_dust2 with whatever map you want).
- "+mapgroup <groupname>" Sets the map group name. Group names differ based on which Game Mode and Game Type you choose. This command should never be removed.
- "-maxplayers_override 32" This controls the maximum of amount of players you want your server to run. You can only control the max players on server startup. You can either change max players from here or from gamemodes_server.txt but its easiest from here.
- "-autoupdate" Enables auto update of the server. Valve has not implemented this in Windows so you will have to manually update Counter-Strike: Global Offensive yourself. It’s here for the sake of legacy support if Valve ever decides to add it.
- "+log on" Displays the output of information on the screen. You can turn it off (+log off), but keeping it on makes it easier to debug any errors you might encounter.
- "-port 27015" This is the default server port for your server. You can change it to anywhere from 27015 to 27020. Changing it is generally used when you host multiple servers (as each server has to use its own port when using the same IP). This command should never be removed.
- "+ip" should be the IP of your computer (not 127.0.0.1, go here to get your IP). This command should never be removed.
- "+exec server.cfg" This simply executes your server.cfg file on server startup. If you run multiple servers from the same installation, you can specify other config files (e.g. server2.cfg)
Game Modes and Game Types
-console -game csgo -secure +game_type 0 +game_mode 0 +map de_dust2 +mapgroup mg_bomb -maxplayers_override 32 -autoupdate -port 27015 +ip 188.8.131.52 +exec server.cfg
-console -game csgo -secure +game_type 0 +game_mode 1 +map de_dust2 +mapgroup <groupname> -maxplayers_override 32 -autoupdate -port 27015 +ip 184.108.40.206 +exec server.cfg
Arms Race (GunGame):
-console -game csgo -secure +game_type 1 +game_mode 0 +map ar_shoots +mapgroup mg_armsrace -maxplayers_override 32 -autoupdate -port 27015 +ip 220.127.116.11 +exec server.cfg
-console -game csgo -secure +game_type 1 +game_mode 1 +map de_lake +mapgroup mg_demolition -maxplayers_override 32 -autoupdate -port 27015 +ip 18.104.22.168 +exec server.cfg
Now click on the Settings tab. If you DON'T want to see your dedicated server running, uncheck the Interact with Desktop check box & select "Hidden" from the "Show Window" dropdown. You can optionally run your server as the user you installed it as. In the Logon Account field type your username (e.g. Administrator) and then enter the user's password twice in the Password and Confirm fields. You can change the Process Priority to allocate more CPU time to the dedicated server or specify which CPU or core the dedicated server will run on (in the case of multi-processor, hyperthreaded or multi-core CPUs).
Now click on the Lifecycle tab. Uncheck Graceful Shutdown as Counter-Strike: Global Offensive doesn't respond to it.
Now click OK to finish setup and start your Counter-Strike: Global Offensive server!
Example Configuration File
Below is an example server.cfg file:
hostname "Counter-Strike: Global Offense" rcon_password "changeme" fps_max 600 sv_lan 0 sv_password "" // server cvars mp_friendlyfire 1 mp_footsteps 1 mp_autoteambalance 1 mp_autokick 0 mp_flashlight 1 mp_tkpunish 0 mp_forcecamera 0 sv_pausable 0 sv_cheats 0 sv_consistency 1 sv_maxspeed 320 mp_limitteams 0 mp_hostagepenalty 0 mp_allowspectators 0 mp_timelimit 60 mp_chattime 10 mp_falldamage 1 sv_gravity 800 // Bot Commands bot_difficulty 0 bot_defer_to_human 0 bot_join_after_player 1 bot_quota 0 bot_quota_mode normal bot_auto_vacate 1 bot_chatter off bot_allow_rogues 1 bot_allow_grenades 1 // round specific cvars mp_freezetime 6 mp_roundtime 5 mp_c4timer 45 mp_fraglimit 0 mp_maxrounds 0 mp_winlimit 0 mp_playerid 0 mp_spawnprotectiontime 5 // server logging log on sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0 sv_allowdownload 1 sv_allowupload 1 net_maxfilesize 64 pausable "0" // Voice Comm sv_voiceenable "1" sv_alltalk 0 sv_pure 0 tv_enable 0 sv_downloadurl "" sv_filetransfercompression 0 sm_reloadadmins // bandwidth rates/settings sv_minrate 0 sv_maxrate 0 sv_minupdaterate 0 sv_maxupdaterate 67 sv_mincmdrate 0 sv_maxcmdrate 67 sv_client_cmdrate_difference 1 sv_client_predict 1 sv_client_interpolate 1 sv_client_min_interp_ratio -1 sv_client_max_interp_ratio -1 sv_timeout 300 decalfrequency 60 log on sv_logbans 1 sv_rcon_banpenalty 60 sv_rcon_maxfailures 10 sv_rcon_minfailures 5 sv_rcon_minfailuretime 45 sv_visiblemaxplayers 32 // Exec Configs exec banned_user.cfg mapchangecfgfile server.cfg mapcyclefile mapcycle.txt motdfile motd.txt