CS 1.6 ยท Server setup

How to set up a CS 1.6 server from scratch

Full setup walkthrough for a Counter-Strike 1.6 server: deploy ReHLDS, configure server.cfg, install Metamod-R + AMX Mod X, set up admin flags, install plugins (Zombie Plague, JailBreak, Surf, CSDM), allow Steam + Non-Steam clients, and fix the common HLDS errors. Works on the classic 20-year-old Valve engine that still runs smoother than most modern shooters.

What you need first

Get these in order before deploying:

  • An active CS 1.6 plan on Fatality Servers. See our CS 1.6 hosting plans if you haven't signed up yet.
  • A Counter-Strike 1.6 copy for each player who wants to connect (Steam edition or a legal non-Steam client).
  • An SFTP client (FileZilla, WinSCP) โ€” CS 1.6 is the oldest game we host and most of the workflow is plain text file editing.
  • Patience with 20-year-old tooling โ€” logs use L DD/MM/YYYY format, some settings need exact case, and an extra semicolon in a .cfg will happily crash the server with no useful error.
๐Ÿ’ก

Sizing note: CS 1.6 is the lightest game on our platform by a wide margin. A 32-slot Zombie Plague server uses under 300 MB RAM and maybe 5% of a single Ryzen core. Our smallest CS 1.6 plan already oversizes for community-size servers โ€” you're paying for location and network quality, not raw compute.

HLDS vs ReHLDS โ€” pick one

There are two server binaries in the wild:

  • HLDS โ€” Valve's original binary. Last meaningful update around 2013. Works, but unpatched exploits, no modern features.
  • ReHLDS โ€” community-maintained reimplementation with active security patches, DDoS hardening, Linux 64-bit support, and compatibility with ReGameDLL_CS (which fixes dozens of gameplay bugs). What you should run.

Our 1-click template deploys ReHLDS + ReGameDLL_CS by default. The rest of this guide assumes that setup. If you specifically need plain HLDS for some legacy plugin, open a ticket.

Deploy the server (1-click)

Our CS 1.6 template pulls the latest ReHLDS + ReGameDLL_CS + default maps, writes a sensible server.cfg, and opens UDP port 27015 on your plan's IP.

  1. Pick the CS 1.6 template at checkout

    On the CS 1.6 hosting page, pick a plan sized for your slot count (16, 24, or 32 slots is the standard range). Pick the location closest to your playerbase โ€” CS 1.6 is insanely latency-sensitive for hitreg.

  2. Wait for the binaries to drop

    First install is fast โ€” ~150 MB total including the stock maps. ~60 seconds on most of our locations.

  3. Confirm the server is listening

    Console should show something like:

    Protocol version 48
    Exe version 1.1.2.7/Stdio (cstrike)
    Exe build: 14:39:28 Mar 25 2026 (9980)
    Server IP address YOUR-IP:27015
    Map: de_dust2
    Players: 0 / 32

    If you see Server IP address with your public IP and port 27015, you're live.

File layout & where things go

CS 1.6 is almost entirely file-based. The tree you'll be living in:

cstrike/
โ”œโ”€โ”€ server.cfg              โ€” main server config (loaded every map change)
โ”œโ”€โ”€ listip.cfg              โ€” IP bans
โ”œโ”€โ”€ banned.cfg              โ€” SteamID bans
โ”œโ”€โ”€ users.ini               โ€” (later) AMX Mod X admin list
โ”œโ”€โ”€ mapcycle.txt            โ€” ordered list of maps played in rotation
โ”œโ”€โ”€ motd.txt                โ€” "message of the day" shown on join
โ”œโ”€โ”€ maps/                   โ€” all .bsp map files
โ”œโ”€โ”€ models/                 โ€” player / weapon models
โ”œโ”€โ”€ sound/                  โ€” .wav sound effects
โ””โ”€โ”€ addons/                 โ€” (later) Metamod-R + AMX Mod X live here
    โ”œโ”€โ”€ metamod/
    โ”‚   โ””โ”€โ”€ plugins.ini     โ€” list of Metamod modules loaded
    โ””โ”€โ”€ amxmodx/
        โ”œโ”€โ”€ configs/
        โ”‚   โ”œโ”€โ”€ amxx.cfg    โ€” AMXX settings
        โ”‚   โ”œโ”€โ”€ users.ini   โ€” admins list
        โ”‚   โ””โ”€โ”€ maps.ini    โ€” (some plugins use this)
        โ””โ”€โ”€ plugins/        โ€” .amxx compiled plugins
โš ๏ธ

Everything lives under cstrike/. The game mode folder is called cstrike, not cs or cs16 โ€” it's a CS-specific folder inside the HLDS tree. If you upload a plugin to addons/amxmodx/plugins/ at the HLDS root instead of cstrike/addons/amxmodx/plugins/, nothing loads and you'll wonder why for an hour.

Core server.cfg settings

server.cfg runs every time the map changes. It's a flat list of cvar value lines. Open it in your SFTP client and set these:

// --- Server identity ---
hostname "My CS 1.6 Server [EU]"
sv_contact "[email protected]"
sv_region 3                    // 0=US-East, 1=US-West, 2=SA, 3=Europe, 4=Asia, 5=AU, 6=ME, 7=Africa

// --- Password / slot / core ---
sv_password ""                 // leave empty for public
rcon_password "change-me-to-something-very-strong"
maxplayers 32                  // match your plan
sv_lan 0

// --- Gameplay ---
mp_friendlyfire 1
mp_footsteps 1
mp_autoteambalance 1
mp_autokick 0
mp_flashlight 1
mp_tkpunish 0
mp_fraglimit 0
mp_maxrounds 30
mp_winlimit 0
mp_roundtime 2.0
mp_freezetime 3
mp_startmoney 800
mp_buytime 0.25
mp_c4timer 35
mp_limitteams 2
mp_hostagepenalty 0
mp_chattime 10

// --- Rates (tuned for 100 fps / modern connections) ---
sv_maxrate 25000
sv_minrate 5000
sv_maxupdaterate 100
sv_minupdaterate 20
sv_unlag 1
sv_maxunlag 0.5

// --- Logging ---
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
mp_logdetail 3
mp_logmessages 1

// --- Abuse protection ---
sv_rcon_banpenalty 30
sv_rcon_maxfailures 5
sv_rcon_minfailures 5
sv_rcon_minfailuretime 30
sv_timeout 60

// --- Master server (so the server shows up in the browser) ---
sv_lan 0
setmaster add hl1master.steampowered.com:27010
setmaster add hl2master.steampowered.com:27011

The values most people want to tweak:

  • hostname โ€” name in the server browser. 63 chars max.
  • rcon_password โ€” required for remote admin. Make it strong; CS 1.6 RCON is brute-forceable.
  • sv_region โ€” must match your physical location or Steam's browser will not list you correctly.
  • mp_startmoney โ€” 800 for standard, 16000 for "everyone loaded" pub servers.
  • mp_roundtime โ€” in minutes. Standard competitive is 1.75.
  • sv_maxupdaterate 100 โ€” lets clients run 100-tick. Set to 66 if you want to match classic LAN feel.
๐Ÿ’ก

Use // for comments. A single # or ; will be parsed as a command and silently fail. If a setting "isn't taking effect", the usual culprit is a stray comment character on the line above breaking the parser.

Install Metamod-R and AMX Mod X

Vanilla CS 1.6 is a naked server โ€” no admin commands, no anti-cheat, no plugins. You add that with two layers:

  • Metamod-R โ€” hooks the HLDS engine so other modules can inject code.
  • AMX Mod X (AMXX) โ€” the scripting layer that runs on top of Metamod. 95% of CS 1.6 plugins target AMXX.
  1. Download the latest builds

    • Metamod-R: github.com/theAsmodai/metamod-r โ€” grab metamod-r-<version>-<os>.zip matching your server OS (Linux by default on our infra).
    • AMX Mod X 1.10 (Counter-Strike package): amxmodx.org/downloads.php โ€” pick the "Base" download for your OS AND the "Counter-Strike" addon.
  2. Upload Metamod-R first

    Extract the ZIP locally, then upload addons/metamod/ into your server's cstrike/addons/ folder. Final path should be cstrike/addons/metamod/dlls/metamod_i386.so (Linux) or metamod.dll (Windows).

  3. Point HLDS at Metamod

    Edit cstrike/liblist.gam. Find the gamedll line and change it:

    // before:
    gamedll "dlls/cs.dll"
    gamedll_linux "dlls/cs.so"
    
    // after:
    gamedll "addons/metamod/dlls/metamod.dll"
    gamedll_linux "addons/metamod/dlls/metamod_i386.so"

    Save, restart the server. Console should now say Metamod v1.3.0.X Loaded.

  4. Upload AMX Mod X

    Extract the AMXX base + CS addon ZIPs locally. Both drop an addons/amxmodx/ folder โ€” upload to cstrike/addons/amxmodx/ (merge, don't overwrite).

  5. Register AMXX with Metamod

    Edit cstrike/addons/metamod/plugins.ini and add a line:

    linux addons/amxmodx/dlls/amxmodx_mm_i386.so
    win32 addons/amxmodx/dlls/amxmodx_mm.dll

    Restart the server. In-game, type amxx version in console โ€” you should see AMXX's version string. Done.

Adding admins (users.ini)

Edit cstrike/addons/amxmodx/configs/users.ini. Each admin gets one line:

; <name or SteamID>    <password>    <access flags>    <auth type>
"STEAM_0:1:12345678"    ""            "abcdefghijklmnopqrstu"    "ce"
"SomeNick"              "mypassword"  "bcdefijmnoq"              "a"
"192.168.1.100"         ""            "bcdefijmno"               "de"

The four columns, left to right:

  1. Identifier โ€” a SteamID (STEAM_0:X:XXXXXXX), nickname, or IP address.
  2. Password โ€” optional; used only with nickname/IP auth. Leave "" for SteamID auth.
  3. Access flags โ€” letters each grant a specific permission. The useful flag groups:
    • abcdefghijklmnopqrstu โ€” full owner (all flags)
    • bcdefijmnoq โ€” typical senior admin (kick, ban, map change, etc.)
    • bce โ€” slot reserve only (VIP)
  4. Auth type โ€” how AMXX checks who they are:
    • a โ€” match by nickname + password
    • c โ€” match by SteamID (most secure, use this where possible)
    • d โ€” match by IP
    • e โ€” don't require password (combine with c or d)

After editing, in-game type amx_reloadadmins (as console with RCON, or from an existing admin's chat). New admins are live immediately.

๐Ÿ’ก

Prefer "ce" SteamID auth. Nickname + password auth is how every leaked CS 1.6 admin list gets abused โ€” someone spoofs the nick, tries the leaked password, owns your server. A SteamID can't be spoofed on a Steam-only server. Non-Steam users can't be securely admin'd at all; keep them as regular players.

Installing plugins (ZP, JB, Surf, CSDM)

AMXX plugins are .amxx files compiled from .sma source. Our panel ships with several popular modes pre-packaged so you can enable them with a dropdown โ€” but knowing the manual install keeps you flexible.

General plugin install workflow

  1. Drop the .amxx into plugins/

    Path: cstrike/addons/amxmodx/plugins/yourplugin.amxx. If the plugin ships extra files (models, sounds, configs), drop those into their matching folders under cstrike/.

  2. Register it in plugins.ini

    Edit cstrike/addons/amxmodx/configs/plugins.ini and add a line with just the filename:

    yourplugin.amxx

    Order matters โ€” plugins load top-to-bottom. Dependencies must be listed before the plugin that depends on them.

  3. Restart the server

    AMXX doesn't hot-reload plugins cleanly. Full server restart for new plugins; amxx plugins in console to confirm the load status (running, not error or stopped).

Popular mods โ€” where to get them

  • Zombie Plague 4.3 / 6.2 / Advance โ€” the classic round-based zombie mod. Reference build at forums.alliedmods.net. Heavy โ€” needs extra models / sounds uploaded.
  • JailBreak (JB) โ€” prison RP mode. Usually shipped as a pack (plugin + maps + configs). Search AlliedModders for "JailBreak Mod".
  • Surf โ€” movement mod, Surf maps + a timer/rank plugin. Popular plugin: SurfTimer.
  • CSDM (Deathmatch) โ€” respawn-on-death mode: amxmodx.org/csdm. Ship with its own csdm.cfg.
  • Gungame โ€” level-up-through-weapons mode. Several forks; AlliedModders "Fun Stuff" section.
โš ๏ธ

Don't pile mods. Zombie Plague + JailBreak + Surf on the same server is a guaranteed mess โ€” they hook the same events and fight each other. One primary gamemode per server; secondary plugins (admin tools, sound pack, scoreboard) stack fine. If you want multiple modes, run multiple servers โ€” our panel lets you spawn siblings cheaply under one subscription.

Allowing Steam + Non-Steam clients

CS 1.6 has a large non-Steam population (regions where buying games on Steam isn't easy). ReHLDS can accept both, but the default config is Steam-only. To allow both:

Edit cstrike/addons/rehlds/rehlds.cfg (our template ships with it; create it if missing):

// Accept players without a valid Steam auth ticket
sv_cheats 0
sv_version 48/1.1.2.7/9980
// Reject obvious fakes but allow non-Steam clients
sv_filter_bannedip 1
sv_rehlds_client_rate_limit 2000

And in server.cfg:

sv_lan 0
sv_max_upload 2048
sv_max_upload_dir "1024"
โ„น๏ธ

Non-Steam SteamIDs aren't stable. Non-Steam clients report STEAM_ID_LAN or a variable/fake ID. If you admin by SteamID (flag c), non-Steam players can't be reliably admin'd. Use abcdefghijklmnopqrstu + a (nick+pass) only for trusted people, and keep the main roster on Steam auth.

Connect and test

  1. Launch CS 1.6 on your PC

    From the main menu, click Find Servers.

  2. Find it in the Internet tab

    Go to the Internet tab, filter by your server name or map. First-time master-list registration takes 2-5 minutes.

  3. Or use direct connect

    Bring down the console with the ~ (tilde) key and type:

    connect YOUR-SERVER-IP:27015
  4. Authenticate as admin in-game

    Press ~ in-game and run:

    rcon_password <your-rcon-password>
    rcon status                    // test it worked
    amx_kick "SomeNick" "reason"   // test AMXX admin

    If your admin line in users.ini uses SteamID auth, AMXX admin is automatic โ€” you don't need amx_login.

Common errors and fixes

"WON_GetTitle: failed"

Ancient HLDS error when the old WON master is queried. Ignore โ€” ReHLDS logs it on some boots but it doesn't affect anything.

Server doesn't show in the browser

  • Check sv_region matches your physical location (0-7, see the cvar list above)
  • Check sv_lan 0 is set โ€” sv_lan 1 hides the server from the Internet tab
  • Wait 5 minutes โ€” Steam's CS 1.6 master-list is slow to index new servers
  • Test direct-connect by IP first to rule out the server itself being down

"Your Server is out of date"

A protocol-48 client (modern CS 1.6) is trying to join a protocol-47 server. Update ReHLDS via our panel's Update button, or from SteamCMD:

steamcmd +force_install_dir ./cs16 +login anonymous +app_update 90 validate +quit

Metamod or AMXX won't load

  • Check liblist.gam โ€” the gamedll path must point at Metamod, not dlls/cs.so
  • Check the architecture matches โ€” Linux servers need the *_i386.so builds (32-bit), not 64-bit. ReHLDS is still 32-bit by default.
  • Check cstrike/addons/metamod/plugins.ini has AMXX listed
  • Check file permissions โ€” on Linux, .so files need execute (chmod 755)

Plugin loads but its commands don't work

  • Check amx_log.log under cstrike/addons/amxmodx/logs/ โ€” compile or runtime errors appear there
  • Check the plugin's .sma source for which AMXX modules it requires (usually listed near the top: #include <cstrike>, #include <fakemeta>). Each required module needs an entry in configs/modules.ini.
  • Plugin order issue โ€” put dependencies above dependents in plugins.ini

Lag / hitreg feels off

  • Confirm rates: sv_maxrate 25000, sv_maxupdaterate 100. Lower values cause the server to throttle clients.
  • Check fps_max on client side โ€” if players are running fps_max 60 in a 100-tick server, hitreg suffers. Standard client value is fps_max 101.
  • If on ReHLDS, confirm sys_ticrate 1000 in server.cfg โ€” ReHLDS runs a higher server tick than classic HLDS.

"bad challenge" / random kicks

Anti-cheat plugin (typically dProto, AAC, or VoxAAC) rejecting a client. Check:

  • The plugin's log (usually cstrike/addons/amxmodx/logs/aac.log) for the reason
  • Non-Steam clients sometimes trigger false positives โ€” whitelist their SteamID or relax the check

RCON stops responding / "Bad rcon_password"

  • You've hit sv_rcon_maxfailures โ€” wait sv_rcon_banpenalty minutes for the auto-unban
  • Password must not contain special shell characters if you're passing it through a wrapper script
  • If really stuck, reset from the panel's Console tab (which bypasses RCON)

World saves / backups

CS 1.6 is stateless โ€” there's no save to corrupt. What you DO want backed up:

  • cstrike/server.cfg + cstrike/mapcycle.txt + any custom .cfg
  • cstrike/addons/amxmodx/configs/users.ini (admin list) + plugins.ini
  • cstrike/banned.cfg + cstrike/listip.cfg
  • Your stats/rank database if you use one (CSStats, CS-Rank, etc.)

All managed CS 1.6 plans ship with daily auto-snapshots of the full cstrike/ tree + 30-day retention.


Stuck on something specific? Email support with your server IP, the last 100 lines of HLDS console, and the relevant config file โ€” we'll usually have an answer within the hour. For broader CS 1.6 questions, see the FAQ's Games section.