RadarHost

Hosting guide

Set up a Counter-Strike 2 dedicated server

Getting a Counter-Strike 2 server to run is one command away with SteamCMD. Getting it to load the mode you want and stay joinable takes a bit more: the right launch flags, a login token, the right ports open, and a server.cfg that says what you actually mean. This walks through all of it using Valve's own documentation.

Updated 7 September 2026

Install SteamCMD and pull down the server

The Counter-Strike 2 dedicated server and the game client are the same download today. Valve's dedicated server page notes the two were merged under one app ID: "the CS2 dedicated server and game client have been merged together (appid 730)", where the older Counter-Strike: Global Offensive build kept the client on 730 and shipped its dedicated server separately as app 740.

Once SteamCMD is installed, Valve's install steps for CS2 are: set an install directory, log in, then pull the app.

force_install_dir /home/you/cs2-ds/
login anonymous
app_update 730 validate
quit

force_install_dir has to be set before you log in, and it needs to be an absolute path rather than ./cs2-ds/. SteamCMD's own documentation warns that running it "from your path env or installed it as a package" — the case for apt install steamcmd on Ubuntu, Debian, and Arch — with a relative path "will return an error if you try to use . as a directory." On Windows the same install directory looks like c:\cs2-ds\. Use validate on the first install to check every file matches Steam's copy; a routine update just needs app_update 730 on its own. One documented catch on Linux: some distributions reject an install path with any capital letters in it, so keep the folder name lowercase.

Get a login token before you go public

A Counter-Strike 2 server will not accept outside connections until it has a Game Server Login Token, generated on your own Steam account and applied on the launch line with +sv_setsteamaccount. The full walkthrough, including the ban conditions and the "one token, one running server" rule, is in our Steam game server login token guide rather than repeated here.

The launch line

Two things Valve's page is explicit about: the server needs the -dedicated flag or it launches the ordinary game client instead, and the machine running it needs Steam itself installed, since the dedicated server relies on the Steamworks SDK to start.

On Windows, run the executable from a terminal in the folder that holds game/bin/win64/cs2.exe:

.\cs2.exe -dedicated +map de_dust2

On Linux, Valve's instructions say to run the cs2.sh launcher in the game folder rather than the binary directly, since the script "may need to do some important setup":

./cs2.sh -dedicated +map de_dust2

Two errors show up often enough here to name up front. On Linux, a missing symlink produces Failed to load module '/home/your_user/.steam/sdk64/steamclient.so'; Valve's fix is a symlink to the file SteamCMD actually installed, adjusted for your own username and SteamCMD path: ln -s /home/your_user/PATHTOYOUR/steamcmd/linux64/steamclient.so /home/your_user/.steam/sdk64/. On Windows, a missing Steam install produces Failed to initialize Steamworks SDK for gameserver. Failed to load module 'C:\Program Files (x86)\Steam\steamclient64.dll' — Valve notes "the terminal closes right after getting this error which makes it hard to identify," so if the window closes before you can read it, install Steam on the machine before trying again.

Add the token and any other flags to the same line. Valve's own worked example is:

.\cs2.exe -dedicated +sv_setsteamaccount AD2FA80401F0A64821F91AA62671EF65 +map de_dust2

Other documented command-line flags: -ip <address> binds the server to one IP, -maxplayers <n> sets the slot count, -insecure turns off VAC, and -port <n> sets what Valve's table calls "the game server game/query port" — the default is 27015.

Game modes and maps

Valve's page notes the server starts in competitive by default if you don't say otherwise. Mode and map type are both set through one cvar, game_alias, which the wiki documents as setting "both game mode and game type commands" together:

Modegame_aliasgame_modegame_type
Competitivecompetitive10
Wingmanwingman20
Casualcasual00
Deathmatchdeathmatch21
Customcustom03

Set the alias, then change map for it to take effect, either from the console or as a launch flag: +map de_dust2 loads a new map on start, and the map cvar (map de_dust2) does the same once the server is already running.

Ports the server needs open

Valve's CS2 page points to the general Source Dedicated Server documentation for ports, which lists 27015 as the one that actually matters for players: "27015 TCP/UDP (game transmission, pings and RCON) — Can be changed using -port on startup." That single port carries the game traffic, server list pings, and RCON together, and it moves with whatever value you pass to -port. The same page lists three narrower ports too: 27020 UDP for SourceTV transmission (changed with +tv_port), 27005 UDP as the client port (changed with -clientport), and 26900 UDP as the outbound Steam port (changed with -sport).

server.cfg basics

The config folder is at game/csgo/cfg inside the install directory — CS2 kept the csgo folder name from Counter-Strike: Global Offensive rather than moving to a folder named cs2. The joedwards32/CS2 Docker image, a community-built container the CS2 wiki links to (not a Valve build), documents the exact path in its README: default configurations for each game mode are stored in /home/steam/cs2-dedicated/game/csgo/cfg/. Create server.cfg in that folder — it's the file the server reads at startup. Cvars documented for it on the CS2 dedicated server page include:

CvarExampleDescription
hostnamehostname "My CS2 Server"Hostname for server.
sv_lansv_lan 0Whether the server is LAN-only, with no heartbeat or authentication.
sv_logfilesv_logfile 1Log server information in the log file.
mapmap de_dust2Load a new map.
game_aliasgame_alias deathmatchSet game type and mode from an alias.

Put the settings you always want at startup in server.cfg rather than typing them on the launch line every time, and keep sv_lan 0 set unless you specifically want the server unreachable outside your own network. Per-mode defaults live in separate files too — the joedwards32 README documents gamemode_competitive.cfg and notes it can be overridden by adding settings to gamemode_competitive_server.cfg, so a game_alias you set in server.cfg can still be overridden by a mode-specific file if one exists.

Updating after a Counter-Strike 2 update

Valve is direct about this: installing and updating the CS2 dedicated server use the same steps, and they are "required every time the game is updated." In practice that means running SteamCMD again with the same install directory:

force_install_dir /home/you/cs2-ds/
login anonymous
app_update 730
quit

Drop validate for a routine update — SteamCMD's own documentation says to use it "only on initial installation and if there are server issues," because it overwrites any file that differs from Steam's default, including files you may have customized. Restart the server after the update finishes and watch the console for errors before opening it back up.

If it starts but nobody can join

A server that starts cleanly and still shows nobody joining is usually one specific thing, not general trouble: a missing or reused login token, a mismatched -port value between the launch line and what you forwarded, or a browser filter hiding it. Our guide to a server not showing in the list walks through isolating which of those it is, including the exact Steam error text a duplicated token produces.

Where RadarHost fits

RadarHost rents game servers hosted in Beauharnois, Quebec, Canada, priced in Canadian dollars, with no setup fee and cancel any time. Sixteen games are listed in Standard, Premium and Diamond plans — Minecraft (Paper, Forge or Vanilla), Rust, ARK: Survival Evolved, Garry's Mod, Terraria, Valheim, Palworld, Enshrouded, Satisfactory, Factorio, Project Zomboid, 7 Days to Die, DayZ, Conan Exiles, Arma 3 and SCUM. Counter-Strike 2 and every other title are request-only and are never priced in advance. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Our Counter-Strike 2 availability page and the plans section have the current details.

Common questions

Which Steam app ID does the CS2 dedicated server use?

730, the same as the game client. Valve's documentation notes the CS2 client and dedicated server were merged under one app ID, where the older CS:GO build kept the client on 730 and shipped its dedicated server separately as app 740.

Do I need a login token before other players can join?

Yes. Valve requires a Game Server Login Token before a Counter-Strike 2 server accepts outside connections. See our Steam game server login token guide for the creation steps and the mistakes that break it.

What flag makes cs2.exe run as a server instead of the game?

-dedicated. Without it, the executable launches the ordinary Counter-Strike 2 client. The machine also needs Steam itself installed, since the dedicated server relies on the Steamworks SDK to start.

What game mode does a new CS2 server start in?

Competitive, unless you set otherwise. Valve's server documentation gives a game_alias value for each mode, which sets game_mode and game_type together: competitive, wingman, casual, deathmatch, and custom.

Which ports does a CS2 dedicated server need forwarded?

27015, both TCP and UDP by default, carrying game traffic, server list pings, and RCON together. It moves with whatever value you pass to -port on the launch line.

Should I run app_update with validate every time I update?

No. SteamCMD's own documentation recommends validate only for the initial install or when server files may be corrupted, because it overwrites any file that differs from Steam's default, including ones you customized. A routine update is app_update 730 on its own.

Sources

What happens after you order. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Prices are in Canadian dollars, there is no setup fee, and you can cancel any time.

Compare all worlds

Questions this guide did not answer go to the ticket desk. No payment starts from that link.