Counter-Strike is at its best when every shot, clutch, and win is earned.
CS2AC helps community servers keep it that way.
Catch the cheat. Starve the wallhack.
CS2AC catches cheating behavior. CS2FOW stops hidden enemies from being sent to the cheater in the first place.
Aimbot. The player's aim moves sharply onto an enemy before a damaging shot. CS2AC checks whether this pattern occurs across separate shots.
Aimlock. The player's aim closely follows a moving enemy for an extended period. CS2AC measures how closely the aim follows the target over time, including when the target is behind a wall.
Silentaim. A damaging bullet lands away from the direction shown by the player's aim. CS2AC compares the aim at the moment of the shot with the bullet impact and resulting damage.
Inhuman Accuracy. The player maintains an unusually high hit rate across a longer series of aimed shots. CS2AC tracks those shots and how many of them cause damage.
Irregular Behavior. The player repeatedly lands difficult shots while airborne or without using a sniper scope. CS2AC counts both successful and missed attempts over time.
Autostrafe. The player repeatedly gains or preserves speed through highly consistent movement while airborne. CS2AC compares the player's movement, speed, and timing across each jump.
Bhop. The player repeatedly jumps again as soon as they touch the ground. CS2AC measures the time between landing and the next jump across consecutive hops.
Hyperscroll. The player sends unusually rapid bursts of jump inputs while landing. CS2AC checks those inputs together with the timing of the resulting jumps.
Nulls. The player switches between opposite movement directions with highly consistent timing while airborne. CS2AC compares the movement keys with the direction changes sent by the player.
Antiaim. The player's view spins, jitters, returns after an attack, or reaches angles outside normal play. CS2AC checks the view angles and their order across consecutive commands.
DLL Injection. The player's game subscribes to a group of events associated with injected client code. CS2AC checks those event subscriptions after the player joins and again while they remain connected.
Desubticking. The player's movement inputs repeatedly arrive without their normal timing between ticks. CS2AC checks the timing attached to each movement change.
Doubletap. The same weapon fires twice before its normal delay has passed. CS2AC compares the weapon and server tick of each consecutive shot.
Invalid CVar. The player's game reports a protected or monitored setting outside its accepted value. CS2AC requests these settings from the client and checks each reply.
Invalid Input. The player's button state does not match the recorded order of button presses and releases. CS2AC compares both parts of the command sent by the client.
Namechanger. The player changes their visible name repeatedly within a short period. CS2AC counts name changes for each connected player.
Subtick Spam. The player repeatedly sends many movement or aim changes at the same point within a tick. CS2AC checks how often these same-time input bursts occur.
When CS2AC acts, it can do all of this at once:
- Announce the detection in public chat.
- Hold a clear center-screen alert for five seconds.
- Write the evidence and punishment result to the server console.
- Run your configured ban or kick command.
- Send a detailed Discord webhook report.
[CS2AC] detected AIMBOT on Player and punished.
Whitelisting does not silence CS2AC. The detection still appears in chat, on screen, in the console, and in Discord; only the punishment command is skipped.
You need a Windows x64 or Linux x64 CS2 dedicated server running Metamod:Source 2.x.
- Open this repository's Releases tab and choose the matching Windows or Linux package.
- Extract it into the CS2 server root without rearranging anything. The package begins with the
gamefolder. - Edit
game/csgo/cfg/cs2ac.cfg. - Start the server.
- Run
meta list, thencs2ac_status.
That is it. Players install nothing.
The default punishment commands are made for CS2-SimpleAdmin. Using another admin plugin? Replace the two commands in cs2ac.cfg with commands that plugin understands.
The included cs2ac.cfg explains every option in plain language.
| Setting | Default | What it does |
|---|---|---|
cs2ac_enabled |
1 |
Master switch for CS2AC. |
cs2ac_whitelist |
empty | SteamID64s that may be detected but must never be punished. |
cs2ac_*_enabled |
1 |
Enable or disable one detection module. |
cs2ac_chat_announcements |
1 |
Show detections in public chat. |
cs2ac_center_announcements |
1 |
Show the five-second center alert. |
cs2ac_punishment_command |
css_addban ... |
Command used for permanent bans. |
cs2ac_kick_command |
css_kick ... |
Command used for kick-only detections. |
cs2ac_webhook_url |
empty | Discord webhook that receives detection reports. |
cs2ac_webhook_role_id |
empty | Discord role to mention on a report. |
cs2ac_webhook_server_address |
automatic | Server address shown in Discord. |
cs2ac_allow_sv_cheats_testing |
0 |
Allow local detector testing with sv_cheats 1. Never enable this on a public server. |
Punishment commands support {steamid64}, {userid}, and {detection}:
cs2ac_punishment_command "css_addban {steamid64} 0 CS2AC: {detection}"
cs2ac_kick_command "css_kick #{userid} CS2AC: {detection}"Whitelist one account or a comma-separated list:
cs2ac_whitelist "76561198000000001,76561198000000002"- Create a webhook in the Discord channel that should receive detections.
- Put its URL in
cs2ac_webhook_url. - Run
cs2ac_reload. - Run
cs2ac_webhook_test.
Keep the webhook URL private. CS2AC never prints it back to the console.
Server commands
| Command | What it does |
|---|---|
cs2ac_status |
Show whether CS2AC and its main features are working. |
cs2ac_help |
List the available CS2AC commands. |
cs2ac_reload |
Reload cs2ac.cfg. |
cs2ac_check_config |
Find mistakes in the current configuration. |
cs2ac_test_announcement |
Preview the chat and center-screen alert without detecting anyone. |
cs2ac_webhook_test |
Send a test detection report to Discord. |
Do players install anything?
Nope. CS2AC lives entirely on the dedicated server, so players just connect and play as usual.
Does it work in Premier or Valve matchmaking?
No. CS2AC is made for community and dedicated servers you control. It cannot be added to Premier or Valve matchmaking.
Can it catch every cheat?
No. No anti-cheat catches everything. CS2AC can only judge the behavior that reaches the server; it does not read a player's files, memory, or desktop.
Despite the name, DLL Injection does not scan anyone's PC. It only checks suspicious game-event subscriptions that the client shares with the server.
Which detections ban and which only kick?
By default, Desubticking, Nulls, and Subtick Spam only kick. Every other detection uses the permanent-ban command.
Want different punishments? Change or empty either command. The detection announcements will keep working.
What happens to whitelisted players?
They can still trigger a detection, and everyone can still see it, but CS2AC stops before sending any punishment command.
Does it support FFA?
Yes. When mp_teammates_are_enemies is enabled, CS2AC treats other players as enemies just like the game does.
Does CS2AC advertise itself?
Yes, but it does not spam. Every six completed rounds, CS2AC shows this message once in chat and at the center of the screen:
[CS2AC] This server is protected by karola3vax's anti-cheat.
This small project credit is built in and cannot be turned off.
CS2AC catches cheating behavior. CS2FOW stops your server from sending live enemy positions through solid walls and smoke.
They solve different problems, run entirely on the server, and can protect the same CS2 community server together.
Clone the pinned submodules:
git clone --recursive https://github.com/karola3vax/CS2AC.git
cd CS2ACWindows needs Python 3.8 or newer and Visual Studio 2022 with the C++ workload:
./build-windows.ps1Linux needs Python 3.8 or newer and Docker:
./build-linux.shBoth scripts make a directly installable package under the build folder's package/game directory. Linux builds inside the pinned Steam Runtime 3 SDK image.
Run CS2AC on a real server. Test it. Break it. Send useful reports.
If it earns a place on your server, star the repository and share your clips. That is how an open-source anti-cheat gets harder to bypass.
CS2AC is free and open-source software licensed under the GNU Affero General Public License v3.0. Dependencies keep their own licenses; see Third-party notices.










