How to run Counter-Strike: Global Offensive (CS:GO) as a Windows Service with FireDaemon Pro.


Counter-Strike: Global Offensive (CS:GO) is a multiplayer first-person shooter video game


The CS:GO dedicated server component can be run as a Windows service using FireDaemon Pro. This allows you to start and run the dedicated game server automatically when Windows boots and before login. FireDaemon Pro also allows you to start multiple instances of the game server, monitoring them and automatically restarting those instances in the event they crash. FireDaemon Fusion can also be used to manage your CS:GO service, plus other Windows services via your web browser.


Counter-Strike: Global Offensive Run as Windows Service

Counter-Strike: Global Offensive Configuration Steps

Please follow the steps below to set up CS:GO dedicated server as a Windows service with FireDaemon Pro.


Step 1: Download and Install SteamCMD for Windows

SteamCMD is a command-line version of the Steam Client. Its primary use is to install and update various dedicated servers available on Steam using a command-line interface.


  1. Create a folder on your system, for example, C:\SteamCMD
  2. Download SteamCMD to this folder. A single ZIP file steamcmd.zip is downloaded.
  3. Extract the contents of the ZIP file into the folder. A single program file, steamcmd.exe, is extracted.
  4. Double-click steamcmd.exe. This will download SteamCMD and corresponding support files into the C:\SteamCMD folder.


Step 2: Download and Install FireDaemon Pro

  1. Download FireDaemon Pro installer
  2. Double-click installer and follow the installation wizard to complete the installation.
  3. For more information about installing FireDaemon, see the FireDaemon Pro Users Guide.

GET 50% GAMING DISCOUNT

Step 3: Download and Install the CS:GO Dedicated Game Server

Choose a new folder in which to install the CS:GO game server. For easy management, we recommend creating a folder inside the C:\SteamCMD folder, for example, C:\SteamCMD\csgo.


  1. Open an elevated Command Prompt (i.e. with Administrator privilege).
  2. Enter the following commands at the Command Prompt:

    C:
    cd \SteamCMD
    steamcmd +login anonymous +force_install_dir .\csgo\ +app_update 740 validate +quit

    The CS:GO dedicated game server will then be downloaded and installed from Steam. The CS:GO dedicated game server is approximately 25GB in size so the download can take quite some time.

  3. Check the output messages for the successful installation of the software per the screenshot below:


SteamCMD successful game download


CS:GO depends on a single file for configuration. The file is csgo\cfg\server.cfg. Edit this file to suit your preferences.


Step 4: Set Up CS:GO as a FireDaemon Pro Service

Double click the FireDaemon Pro icon on your desktop, then click on the New (i.e. +) button in the toolbar (or type Ctrl + N) to create a new service. Enter values in the fields in the Program tab as follows (adjust these settings to suit your particular system and preferences):

  • Short Name: The service name in short form, e.g. csgo
  • Display Name: The full name of the service, e.g. Counter Strike: Global Offensive
  • Startup Type: The mode in which the service should be started, e.g. Manual or Automatic (Delayed Start).
  • Program: The full pathname to the game server program file, e.g. C:\SteamCMD\csgo\srcds.exe
  • Working Directory: The working directory for the game server, e.g. C:\SteamCMD\csgo
  • Parameters: The parametersthat the game server uses to run - note that you must change these settings to suit your setup (i.e. all command-line arguments enclosed in <angle brackets>), e.g.
    -console -game csgo -secure +game_type <#> +game_mode <#> +map <mapname> +mapgroup <groupname> -autoupdate +exec server.cfg -port 27015 

Parameters descriptions are as follows:

  • -console enables text-based 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. This parameter is optional.
  • +game_type <#> changes the game type to Casual, Competitive, Arms Race and Demolition etc.. Replace <#> with a digit (see Game Modes and Game Types below). This parameter should never be removed.
  • +game_mode <#> sets the primary functions of your server (eg. time, rounds, friendly fire, etc.). Replace <#> with a digit (see Game Modes and Game Types below). This parameter should never be removed.
  • +map <mapname> sets the name of the starting map, for example, de_dust2 (change this as required).
  • +mapgroup <groupname> sets the map group name. Group names differ based on which Game Mode and Game Type is chosen. This command should never be removed.
  • -autoupdate enables automatic updates of the server.
  • -port 27015 This is the default network port for the game server. Valid values are from 27015 to 27020. A non-default port number is generally used if a server is hosting multiple game instances. This parameter should never be removed.
  • +exec server.cfg This simply executes the server.cfg file upon server startup. If multiple server instances are run from the same installation, other config files can be specified (e.g. server2.cfg).

Your FireDaemon Pro service configuration should look similar to the screenshot below:

FireDaemon Pro CS:GO Dedicated Server Service Program Tab

Game Modes and Game Types

CS:GO game type and game mode values can be found here. Below you will find some specific game type examples / combinations:


Casual:

+game_type 0 +game_mode 0 +map de_dust2 +mapgroup mg_bomb

Competitive / Scrimmage:

+game_type 0 +game_mode 1 +map de_dust2 +mapgroup mg_competitive

Arms Race:

+game_type 1 +game_mode 0 +map ar_shoots +mapgroup mg_armsrace

Demolition:

+game_type 1 +game_mode 1 +map de_lake +mapgroup mg_demolition

Next, click on the FireDaemon Pro Settings tab:


FireDaemon Pro CS:GO service settings


Enter appropriate values in the fields on the Settings tab as follows:

  • (Optional) Interact with Desktop: If this setting is enabled (default), the game server's output messages can be seen in the console window on Windows Session 0. In order to switch to Session 0, it may be necessary to install FireDaemon Zero and ZeroInput. Alternatively, this setting may be disabled, in which case the game server's messages will be hidden.
  • (Optional) Priority: To allocate more CPU time to the game server, select a higher scheduling priority in this field.
  • (Optional) CPU Bindings: To run the game server on a specific CPU, specify the appropriate CPU in this field.


Lastly, click the Save and Close (ie. the tick) button on the toolbar. If the service's Startup Type is set to Automatic or Automatic (Delayed-Start), it will start immediately.


Step 5: Verify that CS:GO is Running Correctly

The CS:GO game server's status can easily be checked on the main FireDaemon Pro Services List - look for a Running Status value and a numeric Process ID (PID) value.


FireDaemon Pro Services list


If the service's Interact with Desktop setting is enabled, the game status can also be verified by switching to Windows Session 0 to view the game's messages.


CS:GO dedicated server messages window


Step 6: Check that CS:GO is Listening on the Correct Network Ports

  1. Firstly, find the Process ID (PID) of the CS:GO service from the FireDaemon Services List (see example above).

  2. Open a command prompt window with Administrator privileges and run the following command:
netstat -anob | find "<PID>"

where <PID> is the Process ID found in the FireDaemon Pro Services List PID column. This command lists the ports on which the game server is listening - in this example, ports 27005, 27015, 27020 and 56542 are active. Your system's firewall and/or router must be configured to forward traffic to these ports. You should see output similar to the screenshot below:


CS:GO Dedicated Server netstat ports example