GamingMay 13, 20263 min read

How to Set Up a Counter-Strike 2 (CS2) Server

Host your own CS2 server for scrims and community play. Install with SteamCMD, get a GSLT token, pick a game mode and open the ports.

NBy Nxeon

Running your own Counter-Strike 2 server gives you a private space for scrims, practice and community matches with the tickrate, maps and plugins you want. Here's how to stand one up on a Linux VPS.

What you'll need

  • A VPS with 2 GB RAM for a 10-player match; 4 GB with plugins and demos.
  • Low latency to your players โ€” for competitive play, ping is everything, so pick a location close to them.
  • A free Game Server Login Token (GSLT) from Steam.

Step 1: Get a GSLT

CS2 public servers require a token. Visit steamgameserveraccount.com while logged in, create a token for App ID 730, and save the string โ€” you'll need it at launch.

Step 2: Install SteamCMD

sudo add-apt-repository multiverse -y
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd screen -y

Step 3: Download CS2

sudo adduser --disabled-password cs2
sudo su - cs2
steamcmd +force_install_dir ./cs2-server +login anonymous +app_update 730 validate +quit

App ID 730 now serves the CS2 dedicated server. It's a large download.

Step 4: Launch the server

CS2's launcher lives a few folders deep. Start a competitive match on Dust II like this:

screen -S cs2
cd cs2-server/game/bin/linuxsteamrt64
./cs2 -dedicated -console -usercon \
  +game_type 0 +game_mode 1 \
  +mapgroup mg_active +map de_dust2 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN \
  +sv_password "" +hostname "My CS2 Server"

The game_type and game_mode pair sets the format โ€” 0 1 is competitive, 0 0 is casual, 1 2 is Deathmatch, and 0 2 is Wingman. Get this pair wrong and the server loads the wrong ruleset, so double-check it against the mode you want before players connect.

Step 5: Open the ports

CS2 uses UDP 27015 for the game and TCP 27015 for RCON:

sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp

Step 6: Connect

In CS2, open the console (enable it in settings) and type:

connect your-ip:27015

If you set an RCON password with +rcon_password, you can administer live with rcon commands.

Adding plugins with Metamod and CounterStrikeSharp

For custom game modes, retakes, surf or admin tools, install Metamod:Source and CounterStrikeSharp. These load into the server and open up a huge library of community plugins. Reinstall or update them after each CS2 patch, since Valve updates can temporarily break them.

Useful launch and server settings

A few convars make a practice or scrim server much nicer. Set them at launch or in a config file:

+sv_cheats 0
+mp_autoteambalance 1
+mp_maxrounds 24
+sv_hibernate_when_empty 0

Setting sv_hibernate_when_empty 0 keeps the server warm so players don't hit a stutter when the first person joins. For a dedicated practice server, a separate config with sv_cheats 1, sv_infinite_ammo and mp_warmup_end lets you throw grenades and rehearse executes.

Recording demos

CS2 servers can record match demos for review. Use tv_enable 1 to run GOTV, or trigger a demo with the record and stop console commands. Demos are invaluable for teams reviewing scrims โ€” store them off-server as part of your backups.

Why location beats everything

Counter-Strike is unforgiving about latency โ€” a 20 ms difference is felt in every peek and trade. Host the server as physically close to your players as you can. If your group is spread across Asia-Pacific, a Singapore location is often the best single compromise.

The quick path

Nxeon's NVMe VPS in Singapore gives you the low-latency location and fast storage CS2 demands, with full root to install Metamod and CounterStrikeSharp. A one-click deploy handles SteamCMD and the base launch config, so you can be running scrims the same day you sign up โ€” just drop in your GSLT and pick your maps.

#cs2#counter-strike#game-servers#tutorial

Deploy your first server in under a minute

No credit card required to get started. Spin up a VPS, break things, and only pay for what you keep running.