What a CS2 server needs before you start
Disk is the surprise. A clean dedicated server install measured 69 GB on our hardware, and it grows with every Workshop map and GOTV demo you keep. Plan for 80 GB so an update has room to unpack.
Memory is the opposite. An idle server on de_dust2 with bots sat at roughly 720 MB. A 10 to 12 slot competitive or retake server with a normal plugin stack lands around 2 to 3 GB, so 4 GB is comfortable.
CPU is what decides how the server feels. CS2 leans on one core, so clock speed matters far more than core count.
- Disk: about 70 GB installed, 80 GB sensible
- RAM: 4 GB covers competitive, retakes and practice
- CPU: one fast core beats many slow ones
- Ports: 27015 for the game, 27020 if you use GOTV
Install the server files
The dedicated server is Steam app 730, downloaded anonymously through SteamCMD. On a panel such as Pterodactyl the install script does this for you and the first install is the long part, because it pulls the full 60 GB or more.
The server binary lives at game/bin/linuxsteamrt64/cs2. One thing worth knowing if you run it yourself on Linux: the game ships a library called libv8.so in that same folder, and the server will crash on start with an error about being unable to load the server module if that folder is not on the library search path. Setting LD_LIBRARY_PATH to include game/bin/linuxsteamrt64 before launching fixes it.
Create a Steam game server login token
Without a valid login token, usually called a GSLT, the server starts but never logs in to Steam. The console says it could not establish a connection to Steam servers, and players cannot find or join it over the internet.
Create the token on Steam's game server account management page, using app ID 730. The Steam account you use must not be limited, must have a phone number attached, and must own the game. Put the token in the launch options with +sv_setsteamaccount, or in the matching field in your panel.
When it works, the console reports a successful connection to Steam servers, a Steam identity for the server, and that VAC secure mode is activated. Use one token per server, and keep it private.
Launch options and game modes
The launch line sets the port, the slot count, the starting map and the mode. Slots are set with -maxplayers, so a 16 or 18 slot server is a number you choose, not a plan you buy.
The mode is two values, game_type and game_mode. Change them and the map, restart, and the same server is a different kind of server. That is how one box can be a competitive server on match night and a casual or practice server the rest of the week.
- Competitive: game_type 0, game_mode 1
- Casual: game_type 0, game_mode 0
- Wingman: game_type 0, game_mode 2
- Deathmatch: game_type 1, game_mode 2
Add Metamod:Source and CounterStrikeSharp
Plugins on CS2 are a two layer stack. Metamod:Source is the loader. CounterStrikeSharp sits on top of it and is where most current CS2 plugins live, including match, retake, practice and rank plugins.
Install Metamod:Source into game/csgo/addons, then add its line to game/csgo/gameinfo.gi so the game loads it, placed above the existing Game csgo line. Install CounterStrikeSharp into the same addons folder, choosing the build that includes the .NET runtime unless you manage that yourself. Restart and type meta list in the console to confirm both loaded.
SourceMod plugins from CS:GO do not run on CS2. They were written for the older engine and need a rewrite, so look for a CounterStrikeSharp version of anything you relied on.
Keep it working after Valve updates
This is the step that catches most server owners. A CS2 update can overwrite gameinfo.gi, which removes the Metamod line. The server starts normally and every plugin is silently gone.
Keep a copy of your edited gameinfo.gi, and after each update check that the Metamod line is still there. Updates can also change the game's internal signatures, so CounterStrikeSharp sometimes needs its own update before plugins load again. If your panel has an auto update toggle, turning it off on a team server lets you patch on your own schedule instead of discovering it at match time.
Workshop maps and GOTV
Workshop maps load by ID. Use host_workshop_map with the map's ID to start on one, or host_workshop_collection to make a whole collection available. The server needs its Steam login working for this, which is one more reason to sort out the token first.
GOTV runs on its own port, 27020 by default. If your host gives each server a single port, ask for a second one before you rely on demos or spectators.