How to Make a Counter-Strike: Source Dedicated Server
November 9, 2026 · 7 min read
On this page
- Listen server or dedicated server?
- What you need
- Step 1: Install SteamCMD
- Step 2: Download the CS:S server files
- Step 3: Write server.cfg
- Set the map rotation
- Step 4: Start the server
- Step 5: Get a Game Server Login Token (GSLT)
- Step 6: Open the right ports
- Step 7: Add SourceMod and plugins (optional)
- Easier options
- Get players to find your server
- Frequently asked questions
- Is a Counter-Strike: Source dedicated server free?
- What is the app ID for the CS:S dedicated server?
- Why doesn't my CS:S server show up in the server list?
- What port does a CS:S server use?
- How many players can a CS:S server have?
- How do I update my CS:S server?
A Counter-Strike: Source dedicated server runs on its own, without the game client, so it stays online when you're not playing. The server software is free. You download it with Valve's SteamCMD tool using an anonymous login, so you don't need to own the game on the machine that hosts it. This guide covers Windows and Linux.
Last checked: November 9, 2026.
Listen server or dedicated server?
| Listen server | Dedicated server | |
|---|---|---|
| How you start it | Create Server in the game menu | Separate program (srcds) |
| Runs when you quit the game | No | Yes |
| Good for | Quick games with friends, bots, practice | Public or community servers |
| Shares your PC with the game | Yes | No, it can run on another machine |
If you just want a quick match with friends, use Create Server and forward UDP port 27015 on your router. For anything that should stay up, follow the steps below.
What you need
- A PC, VPS or rented machine running Windows or Linux. One popular hosting panel suggests at least 512 MB of RAM and about 3 GB of disk space for a basic server, with 1 GB of RAM and 6 GB of disk recommended.
- SteamCMD, Valve's command-line download tool.
- A Steam account to create a Game Server Login Token (GSLT). The download itself works anonymously.
- An open UDP port, 27015 by default.
Step 1: Install SteamCMD
On Linux, Valve provides SteamCMD at https://media.steampowered.com/client/steamcmd_linux.tar.gz. Make a folder, then download and unpack it:
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://media.steampowered.com/client/steamcmd_linux.tar.gz" | tar zxvf -
On 64-bit Debian or Ubuntu, SteamCMD also needs 32-bit libraries such as lib32gcc-s1. Create a separate user for the server rather than running it as root.
On Windows, download steamcmd.zip from Valve and unzip it to a folder such as C:\steamcmd.
Step 2: Download the CS:S server files
The Counter-Strike: Source dedicated server has the SteamCMD app ID 232330. That's different from the game's own app ID, which is 240. Run one command to download it:
Linux:
./steamcmd.sh +force_install_dir /home/css/server +login anonymous +app_update 232330 validate +quit
Windows:
steamcmd.exe +force_install_dir C:\cssserver +login anonymous +app_update 232330 validate +quit
Put the server in a different folder from SteamCMD itself. Run the same command again whenever Valve updates the game, such as the August 24 and September 16, 2026 updates, because an outdated server can stop players on the current version from joining.
Step 3: Write server.cfg
Your main settings file lives at cstrike/cfg/server.cfg inside the server folder. Create it if it doesn't exist. A simple starting point:
hostname "My CS:S Server"
rcon_password "use-a-long-random-password"
sv_password ""
sv_lan 0
mp_timelimit 30
mp_roundtime 3
mp_freezetime 6
mp_c4timer 45
mp_friendlyfire 0
mp_autoteambalance 1
mp_limitteams 2
sv_alltalk 0
Leave sv_password empty for a public server, or set one to keep it private. sv_lan 0 lets players outside your network join. For more settings, see our CS:S console commands guide.
Set the map rotation
The map list isn't created by default. In cstrike/cfg, copy or rename mapcycle_default.txt to mapcycle.txt, then list one map per line. Map files go in cstrike/maps.
Step 4: Start the server
Linux:
./srcds_run -game cstrike -console -port 27015 +map de_dust2 -maxplayers 24 +sv_setsteamaccount YOUR_TOKEN
Windows (make a shortcut or batch file in the server folder):
srcds.exe -console -game cstrike -port 27015 +map de_dust2 -maxplayers 24 +sv_setsteamaccount YOUR_TOKEN
What each part does:
| Option | Meaning |
|---|---|
-game cstrike |
Loads Counter-Strike: Source |
-console |
Runs the server in a text console |
-port 27015 |
The game port. 27015 is the default |
+map de_dust2 |
The first map |
-maxplayers 24 |
Player slots. CS:S servers support up to 64 |
+sv_setsteamaccount |
Your login token (see step 5) |
-strictportbind |
Optional. Stops the server instead of moving to another port if 27015 is taken |
To test it, open the game, enable the developer console and type connect followed by the server's IP and port, for example connect 192.168.1.20:27015.
Step 5: Get a Game Server Login Token (GSLT)
Without a GSLT, a CS:S server won't appear in the public Steam server list. To create one:
- Log in at Steam's game server account page.
- Enter 240 as the App ID. Use the game's ID here, not the server's 232330.
- Add a memo so you know which server it's for, then create the token.
- Put it in your start line as
+sv_setsteamaccount YOUR_TOKEN, or addsv_setsteamaccount YOUR_TOKENto your config.
Every server needs its own token. A token also keeps your server in players' favorites if you later move it to a new IP address or host.
Step 6: Open the right ports
| Purpose | Port | Protocol | Open to the internet? |
|---|---|---|---|
| Game and server queries | 27015 | UDP | Yes, always |
| RCON remote admin | 27015 | TCP | Only if you admin remotely, and limit it to trusted IPs |
| SourceTV | 27020 | UDP | Only if you run SourceTV |
| Client port | 27005 | UDP | No, it's outbound only |
On a home connection, forward UDP 27015 on your router to the server's local IP. On a VPS, allow it in the provider's firewall. Keep the public port the same as the server's port, because the server tells Steam which port to list.
Step 7: Add SourceMod and plugins (optional)
Most community servers run SourceMod, which needs Metamod:Source installed first. Both are free from AlliedModders.
- Extract Metamod:Source and then SourceMod into the
cstrikefolder, so you end up withcstrike/addons/metamodandcstrike/addons/sourcemod. - Restart the server fully.
- Type
meta listin the server console. SourceMod should be listed.sm versionshows its version. - Add yourself as an admin. In
addons/sourcemod/configs/admins_simple.ini, add a line with your Steam ID and thezflag, such as"STEAM_0:1:12345" "99:z". Runsm_reloadadmins, join the server and typesm_adminto open the admin menu. - Put plugin files (
.smx) inaddons/sourcemod/pluginsand restart, or runsm plugins refresh.
Popular plugins match the community game modes:
- Zombie:Reloaded for zombie servers
- SM_Hosties for jailbreak, with last request games
- bhoptimer for bunny hop and surf timers, records and replays
Valve updates can occasionally break SourceMod or plugins. The bhoptimer project, for example, notes an extra fix needed on Windows after the February 18, 2025 update. If plugins stop loading after a patch, check AlliedModders for newer builds.
Easier options
- LinuxGSM offers a
cssserverscript and a Docker image (ghcr.io/gameservermanagers/gameserver:css) that installs and updates the server for you. - Rented game servers handle SteamCMD, updates and SourceMod through a web panel, for a monthly fee.
Get players to find your server
Once it's running with a token, it shows up in the in-game browser. You can also add it to our CS:S server finder using the Add your server form at the bottom of the list. The finder checks it's a real Counter-Strike: Source server, then keeps its player count and map up to date.
Frequently asked questions
Is a Counter-Strike: Source dedicated server free?
Yes. The server software is free to download through SteamCMD with an anonymous login, and you don't need to own the game on the server machine. You only pay if you rent hardware or a hosted game server.
What is the app ID for the CS:S dedicated server?
The dedicated server's SteamCMD app ID is 232330. The game itself is app 240, which is the ID you enter when creating a Game Server Login Token.
Why doesn't my CS:S server show up in the server list?
The most common reason is a missing Game Server Login Token. Create one with App ID 240 and add +sv_setsteamaccount YOUR_TOKEN to your start line. Also check that UDP port 27015 is open and forwarded to the server.
What port does a CS:S server use?
The default game port is 27015 over UDP, which also answers server browser queries. RCON uses TCP on the same port, and SourceTV uses UDP 27020 if you enable it.
How many players can a CS:S server have?
Counter-Strike: Source servers support up to 64 players. Set the slot count with -maxplayers in your start line, and keep in mind that more players need more CPU and bandwidth.
How do I update my CS:S server?
Stop the server and run the same SteamCMD command you used to install it, with +app_update 232330 validate. Then start the server again. Do this after every Valve update so players on the current version can keep joining.