A public CS 1.6 server lives or dies on feel. Too strict and it plays like a scrim nobody asked for; too loose and it is a team-killing free-for-all. The sweet spot is a config that keeps rounds moving, gives players enough money to have fun, and quietly stops the behaviors that drive people away. This is a complete, commented starting point you can paste and tune.
1. The philosophy
Every value below leans toward pace and forgiveness over realism: shorter freezetime, a touch more starting money, generous but not silly buy time, and team-balance plus grief punishment turned on so one bad actor cannot wreck a round. It is not a competitive ruleset — for that you would tighten timing and disable the conveniences. This is tuned for a busy public box where players come and go.
2. Identity and networking
// --- identity --- hostname "My CS 1.6 Server | Fun Public" sv_contact "[email protected]" rcon_password "USE-A-LONG-RANDOM-STRING" sv_password "" // public // --- visibility / net --- sv_lan 0 // MUST be 0 to show in the master list sv_region 255 // 255 = world; set your real region sv_maxrate 25000 sv_minrate 15000 sv_maxupdaterate 101 sv_minupdaterate 30 sv_timeout 60
sv_lan 0 and a long rcon_password are the two non-negotiables; the rest of the server-level cvars are explained in the essential server cvars list.
3. Round timing and economy
// --- timing (minutes unless noted) --- mp_freezetime 3 // seconds; short so nobody waits mp_roundtime 3 mp_buytime 0.5 // 30 seconds mp_c4timer 35 mp_timelimit 30 // map ends every 30 min, drives the vote // --- economy --- mp_startmoney 800 mp_maxrounds 0 mp_winlimit 0
Remember mp_buytime and mp_roundtime are in minutes while mp_freezetime and mp_c4timer are in seconds — mixing them up is the classic mistake covered in the mp_ cvars reference. A 30-minute mp_timelimit is what feeds the end-of-map vote; set it before you configure MapChooser.
4. Fair play and anti-grief
// --- teams / fairness --- mp_friendlyfire 0 // off for casual public; 1 needs tkpunish mp_tkpunish 1 mp_autoteambalance 1 mp_limitteams 1 // block stacking beyond 1-player difference mp_hostagepenalty 5 // kick after 5 hostage kills mp_forcechasecam 0 mp_fadetoblack 0 // 0 keeps freecam for dead players
Friendly fire off is the friendliest default for a mixed-skill public; if you turn it on for realism, keep mp_tkpunish 1 so team-killers pay for it. mp_limitteams 1 and mp_autoteambalance 1 together stop the five-friends-stack-CT problem that empties a server.
5. Downloads, logging and spam control
// --- downloads --- sv_allowdownload 1 sv_allowupload 1 sv_downloadurl "http://dl.example.com/cs" // see FastDL guide // --- logging --- log on mp_logmessages 1 mp_logdetail 3 // --- spam / griefing --- decalfrequency 30 // seconds between sprays sv_cheats 0 pausable 0
FastDL keeps map changes fast — wire it up with the FastDL setup guide. Logging on from day one is what lets you answer "who did that?" later; see parsing server logs.
6. Load your admin and map settings last
// at the end of server.cfg exec mapcycle-note.cfg // optional reminders / comments // AMXX executes amxx.cfg on its own, after this file
Gameplay cvars belong here in server.cfg; AMXX-specific settings belong in amxx.cfg, which runs later and will override duplicates. Keep admin power tight per the admin-abuse guide, and add a chat-based adverts plugin for rules reminders rather than a noisy HUD.
Troubleshooting
- Server invisible online —
sv_lan 1. The single most common cause; it must be 0. - Rounds feel sluggish — freezetime or roundtime too high, or you set
mp_roundtimethinking it was seconds. It is minutes. - Team stacking —
mp_autoteambalanceormp_limitteamsoff. Turn both on. - Team-kill grief — friendly fire on without
mp_tkpunish 1, or off but players griefing another way. Adjust to taste. - A value keeps reverting —
amxx.cfg, a per-map config, or ReGameDLL'sgame.cfgre-sets it after server.cfg. Trace the order.
Verification
Change the map to reload the config, then read back the values that most affect feel:
sv_lan mp_freezetime mp_buytime mp_friendlyfire
Confirm each echoes what you set, then play a round or two — a stopwatch on freezetime and buy time settles any doubt about the minutes-versus-seconds cvars. Once it feels right, layer voting with MapChooser and lock down admin access before you invite the public in.









