CS 1.6 Ban Systems Compared (AMXBans, Simple Bans, Built-in)

August 13, 2025 Daemon666 9 min read 15 vizualizări

\"Ban systems\" on CS 1.6 are really three layers that people conflate: the engine's own ban list, AMX Mod X's amx_ban built on top of it, and full MySQL ban managers like AMXBans. They store bans in different places, survive restarts differently, and scale very differently. Picking the wrong one for your setup means bans that vanish on restart or a database you did not need. Here is what each actually does.

1. Layer one: the engine ban list

The GoldSrc engine bans without any addon, using two commands and two files. SteamID bans go through banid, IP bans through addip:

banid 0 STEAM_0:1:12345 kick   // permanent SteamID ban, kick now
addip 0 203.0.113.44           // permanent IP ban (0 = permanent)
writeid                        // flush SteamID bans to banned.cfg
writeip                        // flush IP bans to listip.cfg

The critical gotcha: bans are held in memory until you writeid/writeip. If you banid someone and the server restarts before a write, the ban is gone. banned.cfg and listip.cfg are executed at startup to reload them, and sv_filterban 1 must be set for the filter to actually block. This layer has no reason, no duration tracking, no admin name — just IDs.

2. Layer two: AMX Mod X amx_ban

The AMX Mod X admin base (admin.amxx) wraps the engine ban in a usable command with a duration and a reason:

amx_ban <name|#userid> <minutes> [reason]   // 0 minutes = permanent
amx_banip <name|#userid> <minutes> [reason]
amx_addban <steamid> <minutes> [reason]     // ban an offline SteamID
amx_unban <steamid>

This is the right tool for the overwhelming majority of servers. It records who banned whom, for how long, and why; timed bans expire on their own; and it still calls the engine underneath so sv_filterban enforcement applies. Bans are stored in the AMXX bans file under addons/amxmodx/. It gives you an in-game amx_banmenu too — pair it with the CSB Admin Menu for a point-and-click workflow. What it does not do is share bans across multiple servers or give you a web page to manage them.

3. Layer three: AMXBans and MySQL managers

AMXBans is a plugin plus a MySQL database plus a web front-end. Every ban is a database row, so a ban on one server is instantly enforced on every server pointed at the same database, and you get a website where admins issue and lift bans, attach demos and screenshots, and players can appeal. This is what a network of servers wants. The cost is real: you run and secure a MySQL database (see backing it up), install and configure the web panel, and accept that a database outage affects banning. For a single server it is overkill; for five servers sharing an admin team it is the only sane option.

4. Side-by-side

FeatureEngine banidamx_banAMXBans (MySQL)
Storagebanned.cfg / listip.cfgAMXX bans fileMySQL database
Timed bansminutes field, manualyes, auto-expireyes, auto-expire
Reason / admin recordednoyesyes, plus demos/appeals
Shared across serversnonoyes
Web managementnonoyes
Setup effortnoneships with AMXXhigh (DB + panel)
Good forquick manual banone servera network

5. Which to run

  • One server, casualamx_ban. It is already installed, it does everything you need, and there is nothing extra to secure.
  • One server, but you want a ban history and menu — still amx_ban, plus the admin menu. Do not add a database for a single box.
  • Multiple servers, shared admins — AMXBans or an equivalent MySQL manager, so a ban is enforced everywhere and admins work from one panel.

Whichever you pick, verify sv_filterban 1 is set, because all three ultimately rely on the engine to refuse the connection.

Common errors

  • Bans disappear after a restart — you used raw banid without writeid, so the ban never hit banned.cfg. Use amx_ban, which persists for you, or remember to write.
  • Banned player still connectssv_filterban 0, or the player switched SteamID (common on non-Steam servers — ban the IP too, or use a validation setup like Reunion).
  • amx_ban says \"unknown command\"admin.amxx is not loaded, or your admin entry lacks the ban flag. Check plugins.ini and users.ini flags.
  • AMXBans web panel and in-game disagree — the plugin and the panel point at different databases or table prefixes. They must share one schema.
  • IP ban blocks innocent players — you IP-banned a shared/CGNAT address. Prefer SteamID bans on Steam servers; reserve IP bans for repeat evaders.

Verification

Ban a test account and prove the ban survives the round-trip. With amx_ban, ban yourself for one minute, confirm the kick, then check the ban is written:

amx_addban STEAM_0:1:99999 1 "test"
// then confirm the engine knows it
listid

listid should list the SteamID. Restart the server and run listid again — a persistent ban is still there. If it vanished, the write step failed and you have your answer.

Contribuitori: Daemon666 ✦
Distribuie: