CS2

PlatformSupportNotes
Linux✅ NativeRecommended
Windows✅ Native
02

Minimum Requirements

ModeRAMDiskCPU
Casual/Deathmatch2 GB30 GB2 vCPU
Competitive4 GB30 GB2-4 vCPU
128-tick8 GB30 GB4 vCPU
03

1. Install dependencies

bash
sudo apt update
sudo dpkg --add-architecture i386
sudo apt install lib32gcc-s1 lib32stdc++6 steamcmd -y

# If steamcmd not in repository:
sudo add-apt-repository multiverse
sudo apt update && sudo apt install steamcmd -y
04

2. Create dedicated user

bash
sudo useradd -m -s /bin/bash steam
sudo su - steam
05

3. Download server with SteamCMD

bash
mkdir -p ~/cs2-server
steamcmd +force_install_dir ~/cs2-server \
         +login anonymous \
         +app_update 730 validate \
         +quit

The download is ~25 GB and may take time.

06

4. Startup script

bash
nano ~/cs2-server/start.sh
bash
#!/bin/bash
cd ~/cs2-server

./game/bin/linuxsteamrt64/cs2 \
  -dedicated \
  -usercon \
  +game_type 0 \
  +game_mode 0 \
  +map de_dust2 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN \
  +sv_lan 0 \
  -port 27015 \
  +maxplayers 10 \
  -tickrate 128
bash
chmod +x ~/cs2-server/start.sh
07

5. Obtain the GSLT (Game Server Login Token)

The GSLT token is required for public servers:

  • Go to steamcommunity.com/dev/managegameservers
  • App ID: 730 (CS2)
  • Create the token and paste it in +sv_setsteamaccount
08

6. Configuration (server.cfg)

bash
nano ~/cs2-server/game/csgo/cfg/server.cfg
hostname "My CS2 Server" sv_password "" // leave empty for public server sv_cheats 0 sv_lan 0 // RCON rcon_password "yourrconpassword" // Tick rate sv_mincmdrate 128 sv_maxcmdrate 128 sv_minupdaterate 128 sv_maxupdaterate 128 // Rate sv_maxrate 786432 sv_minrate 196608 // Deathmatch // mp_autoteambalance 1 // mp_limitteams 2 // Competitive // game_mode 1 // game_type 0
09

7. Open ports

bash
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27020/udp   # HLTV / SourceTV
10

8. Startup with tmux or systemd

bash
# With tmux
tmux new -s cs2
~/cs2-server/start.sh

# With systemd
sudo nano /etc/systemd/system/cs2.service
ini
[Unit]
Description=CS2 Dedicated Server
After=network.target

[Service]
User=steam
WorkingDirectory=/home/steam/cs2-server
ExecStart=/home/steam/cs2-server/start.sh
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target
bash
sudo systemctl enable cs2
sudo systemctl start cs2
11

9. CounterStrikeSharp Plugin (CSSharp)

For plugins and mods on CS2, use CounterStrikeSharp:

bash
# Download latest release
wget https://github.com/roflmuffin/CounterStrikeSharp/releases/latest/download/counterstrikesharp-with-runtime-linux-amd64.tar.gz
tar -xzf counterstrikesharp-with-runtime-linux-amd64.tar.gz -C ~/cs2-server/game/csgo/

Popular plugins: MatchZy (tournaments), SimpleAdmin, PugSetup.

12

10. Update the server

bash
# Update CS2 when Valve publishes an update
steamcmd +force_install_dir ~/cs2-server \
         +login anonymous \
         +app_update 730 validate \
         +quit

Automate with cron:

bash
# Update daily at 4:00 AM
0 4 * * * /usr/games/steamcmd +force_install_dir /home/steam/cs2-server +login anonymous +app_update 730 +quit
13

Tips & Tweaks

Tickrate Configuration

Set tickrate in startup script with -tickrate:

bash
# 64-tick (casual, lower bandwidth)
-tickrate 64

# 128-tick (competitive, recommended for skilled players)
-tickrate 128

# 256-tick (premium servers, high bandwidth and CPU)
-tickrate 256

Rate settings for server.cfg:

ini
sv_mincmdrate 128      # Minimum client command rate
sv_maxcmdrate 128      # Match tickrate
sv_minupdaterate 128   # Server update frequency
sv_maxupdaterate 128

# Bandwidth limits
sv_maxrate 786432      # ~750 Kb/s per player (128-tick)
sv_minrate 196608      # ~190 Kb/s minimum

Essential server.cfg Convars

ConvarPurposeTypical Value
sv_cheatsEnable cheat commands0 (public), 1 (testing)
sv_lanLAN mode (no Steam auth)0 (public)
sv_pureValidate client files1 (recommended)
sv_autoexecAuto-execute exec cfg1
sv_timeoutClient timeout (seconds)65
sv_prime_accounts_onlyPrime-only server0 or 1
bot_difficultyBot skill (0-3)1

RCON Console Commands

bash
# Connect with rcon-cli or web console
rcon_password "your_password"

Common commands:

CommandPurpose
statusPlayer list with IDs
mp_warmuptime 60Warmup duration (seconds)
mp_freezetime 15Freezetime (seconds)
mp_round_time 1.92Round duration (minutes)
mp_timelimit 45Match time limit
changelevel de_dust2Change map
kick #IDRemove player by ID
say <msg>Server message
csgo_import_player_nameForce player names

Map Voting and Rotation

Create mapcycle.txt:

bash
nano ~/cs2-server/game/csgo/mapcycle.txt
de_dust2 de_inferno de_mirage de_nuke de_vertigo de_ancient

Load in server.cfg:

ini
mapcyclefile mapcycle.txt

Server-Side Rates and Network Optimization

For competitive servers:

ini
# Strictly competitive
sv_maxrate 1000000        # No bandwidth cap
sv_minrate 1000000        # Force high rate
sv_mincmdrate 128
sv_maxcmdrate 128

# For public servers with mixed bandwidth
sv_maxrate 786432         # ~750 Kb/s
sv_minrate 196608

Monitoring Commands

bash
# Check server status
systemctl status cs2

# Real-time logs
journalctl -u cs2 -f --no-pager

# Monitor connections
ss -tulnp | grep 27015

# Check player count via RCON
rcon -p "password" status

Advanced Tuning

Stability flags:

ini
sv_maxrate 2000000
sv_minrate 64000
sv_cmdrate_unrestricted 1     # Allow unrestricted cmdrate
sv_deltaprint 150

Lag compensation:

ini
sv_clockcorrection_msecs 15
sv_max_usercmd_future_ticks 0

DeluxHost, opgericht in 2023, biedt hoogwaardige hostingoplossingen voor diverse digitale behoeften. Wij bieden gedeelde hosting, VPS en dedicated servers met geavanceerde beveiliging en wereldwijde datacenters.

© DeluxHost, Alle rechten voorbehouden. | BTW-nummer: IT17734661006
Alle systemen operationeel