CS 1.6 Server Setup Checklist: From Empty VPS to Public Server

November 5, 2025 Daemon666 8 min read 21 visualizações

This is the order, not a tutorial for each step — each phase links to its full guide. Follow it top to bottom on a fresh VPS and you will not paint yourself into a corner, which is what happens when people install AMXX before Metamod or open the firewall before setting an RCON password. Treat every checkbox as "done and verified" before moving on.

1. Prepare the OS

  • A 64-bit Debian or Ubuntu VPS is fine — HLDS is 32-bit, so you must add multiarch and the i386 runtime. This is the number-one "won't start" cause.
  • Create an unprivileged steam user. Never run the server as root.
sudo dpkg --add-architecture i386 && sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 libc6:i386
sudo adduser --disabled-password --gecos "" steam

Full detail: the SteamCMD install guide.

2. Install the base server (App 90)

  • Install SteamCMD, login anonymous, app_update 90 validate — twice, the first pass often skips cstrike/.
  • Get it from SteamCMD only, never a "ready pack" — see safe downloads.
  • Verify: liblist.gam, hlds_run and hlds_linux all exist, and the server boots to a map.

3. Replace the engine and game logic

  • ReHLDS over stock HLDS — verify with rehlds_version.
  • ReGameDLL_CS over cs.so — verify with regamedll_version, and copy delta.lst or you will crash on connect.

4. Metamod and AMX Mod X

  • Metamod-r — pointed at from liblist.gam; verify with meta list.
  • AMX Mod X 1.9 — listed in Metamod's plugins.ini; verify with amxx version.
  • Load the modules you need (cstrike, fun, etc.) and confirm with amxx modules.

Order is load-bearing: engine → game DLL → Metamod → AMXX → ReAPI. Installing out of order is how you get bad load.

5. Admins and core plugins

6. Non-Steam support (if you want it)

  • On ReHLDS, install Reunion and set a SteamIdHashSalt of at least 16 characters, or it refuses to load.
  • Decide your policy — Steam-only, non-Steam-only, or both — it affects how admins are identified.

7. Configure and secure

  • Write server.cfg: hostname, rates, mp_* gameplay, and a long rcon_password.
  • sv_lan 0 — mandatory to appear in the master list.
  • Harden RCON: sv_rcon_maxfailures, sv_rcon_minfailures, sv_filterban 1.
hostname "My CS 1.6 Server"
sv_lan 0
rcon_password "a-long-random-string"
sv_maxrate 25000
sv_minrate 15000
sv_rcon_maxfailures 5

8. Firewall and go-live

  • Open UDP 27015 (game) and TCP 27015 (RCON).
  • Put the server under systemd so it survives a reboot.
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp

Pre-launch verification

Run this list in the server console before you advertise the IP. Every one must pass:

rehlds_version        // prints a version
regamedll_version     // prints a version
meta list             // every plugin RUN
amxx plugins          // every plugin running
status                // correct map, slots, public IP

Then, from a second machine, connect YOUR_IP:27015 and play a full round including a map change — the map change is where a bad delta.lst or a missing asset shows up. Confirm the server appears in the internet list (needs sv_lan 0 and a reachable UDP port); if it does not, that is a master-list problem, not a config one. When all of that holds, the server is genuinely public-ready.

Why the order is not negotiable

The temptation is to skip ahead — install AMXX before Metamod, open the firewall before setting a password, add plugins before the engine is stable. Each shortcut has a specific cost. AMXX before Metamod cannot load, because Metamod is what loads it. ReAPI before ReGameDLL fails, because ReAPI hooks functions that only exist in ReGameDLL. A public port before an RCON password is a window in which anyone scanning the internet list can try to seize your console. The dependency chain — engine, then game DLL, then loader, then AMXX, then anything that hooks the game — is the same chain that determines what crashes when something is wrong, which is why every troubleshooting guide asks "did you install in order" first.

Post-launch, keep it running

Launching is not the end. Three things separate a server that survives its first week from one that does not. Put it under a process supervisor (systemd) so a crash restarts it and a reboot brings it back — hlds_run restarts the inner binary but not the whole service. Keep the Valve .bak files you made when swapping the engine and game DLL; they are your only fast rollback. And watch the logs for the first few days:

tail -f /home/steam/hlds/cstrike/addons/amxmodx/logs/*.log
tail -f /home/steam/hlds/debug.log

A repeating warning on every map change is a real problem that has not crashed you yet — a stale delta.lst, a plugin erroring quietly, a missing asset. Fix those while the server is small, because they get exponentially harder to diagnose once there are thirty players and a full plugin set to bisect. A server that boots clean, cycles its whole mapcycle with players on it, and logs nothing repeating is one you can safely walk away from.

Colaboradores: Daemon666 ✦
Compartilhar: