Counter-Strike 2 - Dedicated Servers

From Valve Developer Community
Jump to navigation Jump to search
English (en)Deutsch (de)Türkçe (tr)中文 (zh)Translate (Translate)
Broom icon.png
This article or section needs to be updated to include current information regarding the subject.
Remember to check for any notes left by the tagger at this article's talk page.

Warning: Display title "Counter-Strike 2 - Dedicated Servers" overrides earlier display title "Dedicated Servers".

Counter-Strike 2 - Event Header


This page outlines how to setup and run an Counter-Strike 2 Counter-Strike 2 Dedicated Server.

Recommended system requirements

Stub

This article or section is a stub. You can help by expanding it.

Linux:

  • Minimum RAM: 2GB
  • Storage: 33GB
  • Requires Glibc 2.31
  • CPU: minim x86-64-v2 (with popcnt)
Note.pngNote:The Glibc requirement means a minimum of Ubuntu 20.04, Debian 11, or Enterprise Linux 9 is required.

Download the CS2 Dedicated server

Note.pngNote:The CS2 dedicated server and game client have been merged together (appid 730). Previously the CSGO client (appid 730) and dedicated server (appid 740) were separate.
Icon-Important.pngImportant:The total size of Counter-Strike 2 download is approximately 33GB

This describes the process of installing/updating the CS2 dedicated server. These steps are required every time the game is updated. To automate this process for future updates, see SteamCMD#Automating SteamCMD.

1. Download and install SteamCMD.

2. Start SteamCMD. At the Steam> prompt, set your CS2 Dedicated Server install directory.

Icon-Bug.pngBug:On some Linux distributions the path cannot contain any capital letters  [todo tested in?]

Examples:

  • Windows:
force_install_dir c:\cs2-ds\
force_install_dir .\cs2-ds\
  • Linux:
force_install_dir /full/path/to/cs2-ds/

3. Login into Steam You need to login into Steam anonymously, or using your account.

Examples:

login anonymous

4. Install or Update CS2. If this is your first time installing or if you are trying to verify the integrity of the server files:

app_update 730 validate

If this is simply an update to an existing CS2 dedicated server:

app_update 730

4. Once finished, type quit at the Steam> prompt to properly log off of the Steam servers.

Registering Game Server Login Token

Confirm:The server auto generates the GSLT on startup, stores it locally, and renews when able to.

No. GSLT must be created just like with CSGO. Seem to be able to use the same one from CSGO. I was unsure how to add/use it properly. Using +sv_setsteamaccount <TOKEN> on command line. With CSGO you set this in autoexec.cfg

No Steam account token was specified. Logging into anonymous game server account. Connections will be restricted to LAN only. To create a game server account go to http://steamcommunity.com/dev/managegameservers

[Todo]

Starting the Server

Note.pngNote:For information about ports to be forwarded see the general SRCDS page.
Note.pngNote:Default gamemode when starting the server is competitive. See #Game_Modes_&_Types for all game modes
Note.pngNote:You need to add the parameter -dedicated for it to launch the dedicated server, else it launches the game.
Note.pngNote:Steam needs to be installed on the system in order to launch the dedicated server.

Windows Windows

Head to the folder where you downloaded the application and open a terminal there.

Head to the executable for the server that is stored in 🖿game/bin/win64/cs2.exe - But don't click on it as it will just launch the game.

In the terminal run the following command to start the server:

.\cs2.exe -dedicated +map de_dust2

Linux Linux

Head to the folder where you downloaded the application.

Head to the executeable that is stored in 🖿game/bin/linuxsteamrt64/cs2

Run the following command to start the server:

./cs2 -dedicated +map de_dust2

Command-Line Parameters

Stub

This article or section is a stub. You can help by expanding it.

A list of useful command-line parameters related to Counter-Strike 2 dedicated servers. Command-line parameters are additional arguments specified before the program starts and can be set by appending them after the ./cs2/.\cs2.exe executable file.

Parameter Example Description
-dedicated n/a Allows Counter-Strike 2 to launch as a dedicated server.
-ip -ip 1.2.3.4 Allows the server IP to be set. Useful if a CS2 server needs to be bound to a specific IP address.
-insecure n/a Allows VAC to be disabled.
-maxplayers -maxplayers 64 Set the number of slots for the game server.
-port -port 27015 Set the game server game/query port.

Console Variables (cvars)

Stub

This article or section is a stub. You can help by expanding it.

A list of useful cvars related to Counter-Strike 2 dedicated servers.

cvars can be loaded from a config file, by including them with command-line parameters using + e.g +map de_dust2 or from the console.

Console Variable (cvar) Example Description
hostname hostname "My CS2 Server" Hostname for server.
map map de_dust2 map <mapname> :Load a new map.
game_alias game_alias deathmatch Set the configuration of game type and mode based on game alias like 'deathmatch'.
sv_lan sv_lan 0 Server is a lan server ( no heartbeat, no authentication, no non-class C addresses ).
sv_logfile sv_logfile 1 Log server information in the log file.

Game Modes & Types

Broom icon.png
This article or section needs to be updated to include current information regarding the subject.
Remember to check for any notes left by the tagger at this article's talk page.
Note.pngNote:These are console commands for the working gamemodes, simple change map after applying the values for best result
Note.pngNote:More in-depth view is in the works with all game modes.
Competitive:
game_alias competitive <- sets both game mode and game type commands
game_mode 1
game_type 0

Wingman
game_alias wingman <- sets both game mode and game type commands
game_mode 2
game_type 0

Casual
game_alias casual <- sets both game mode and game type commands
game_mode 0
game_type 0

Deathmatch
game_alias deathmatch <- sets both game mode and game type commands
game_mode 2
game_type 1

Custom
game_alias custom <- sets both game mode and game type commands
game_mode 0
game_type 3

Tools and Helpers

Docker

If your server is running Docker, you can simply use:

docker run -d --name=cs2 -p 27015:27015 -p 27020:27020 joedwards32/cs2

The container will automatically update the game on startup, so if there is a game update just restart the container.

The config is located within the container here: 🖿/home/steam/cs2-dedicated/cs2/cfg

You can find the associated Docker Hub page

CS2 Multiserver

A launch and update script for Linux and WSL to run multiple game servers on one machine. It was originally made to run CS:GO LAN tournaments as painlessly and efficiently as possible.

It includes:

  • Guided setup and game update (cs2-server setup, cs2-server update)
  • Game files are shared between instances, saving disk space and bandwidth
  • Additional control upon launch via environment variables (MAP="de_inferno" cs2-server @lan01 start)
  • Console access and support for logfiles

More Info and Download: CS2 Multiserver on GitHub. Testing, feedback and contributions are welcome!

Advanced Configuration

[Todo]

Troubleshooting

Linux Linux

Failed to load module '/home/your_user/.steam/sdk64/steamclient.so'

This is a common issue with a fairly easy fix.

The reason for this error is that SteamCMD doesnt place the file in the folder it should, as the games typically look for it there. So what you need to do is the following. And you might even have to create the ~/.steam/sdk64 directories.

Create a symlink (shortcut) to the file like this:

ln -s /home/your_user/PATHTOYOUR/steamcmd/linux64/steamclient.so /home/your_user/.steam/sdk64/

Replace your_user with the username you are using.

Note.pngNote:If you are using multiple steam instances make sure the accounts that run them have also done the steps for above.

Windows Windows

Failed to initialize Steamworks SDK for gameserver. Failed to load module 'C:\Program Files (x86)\Steam\steamclient64.dll'

In order to lauch the current version steam has to be installed.

Note.pngNote:The terminal closes right after getting this error which makes it hard to identify.