It does not detect cheats, issue bans or replace a complete anti-cheat system.
This AC feature is taken from CS2 AntiCheat Defense
![]() Showcase on Mirage |
![]() Showcase on Dust2 |
AntiWallHack aims to reduce the enemy information available to wallhacks. When an enemy is completely hidden behind solid cover, the plugin can stop sending that enemy and their equipment to a player's game client. Once a visibility check finds a clear path, normal transmission is allowed again.
Note
Teammates, dead or spectator viewers, warmup, freeze time and ended rounds are not filtered. Bots can be enemy targets, but the plugin does not filter what bot viewers receive. Enemies outside the selected nearest group are left untouched.
- Checks solid cover using the game's line-tracing API.
- Anticipates movement to help reduce sudden appearances around corners.
- Keeps recently visible enemies available briefly to reduce flickering.
For each player, the plugin selects the nearest enemies, up to the configured count. It then follows this process:
- Nearby enemies stay available. Enemies within
AlwaysVisibleDistancebypass wall checks. - Check for a clear path. Rays run from the viewer's eyes to several points around each selected enemy.
- Check ahead when moving. Additional rays use estimated future positions based on current movement speed and direction.
- Keep visible enemies available. One clear or uncertain result is enough to allow normal transmission.
- Hide fully blocked enemies. If every tested path is blocked and the grace period has expired, the plugin withholds that enemy and their collected equipment from that viewer.
- Get the packaged .
- Extract to your server's
game/csgo/addonsdirectory. - Restart the server.
game/csgo/cfg/AntiWallHack.cfg
The included config.jsonc contains:
// AntiWallHack configuration.
Enabled 1 // Enable visibility filtering.
SmokeOcclusion 1 // Enable smoke checks.
NearestEnemies 5 // Number of enemies checked.
VisibleGraceTicks 20 // Visibility grace period.
BoundsPadding 48 // Extra bounds padding.
PredictionSeconds 0.2 // Movement prediction.
AlwaysVisibleDistance 160 // Reveal nearby enemies.
| Setting | Value | What it does |
|---|---|---|
Enabled |
1 |
Turns visibility filtering on or off. |
SmokeOcclusion |
1 |
Smoke filtering. |
NearestEnemies |
5 |
Number of nearest enemies checked for each viewer. |
VisibleGraceTicks |
20 |
How long an enemy stays available after a clear check. |
BoundsPadding |
48 |
Helping reveal corner peeks earlier. Measured in game units. |
PredictionSeconds |
0.2 |
How far ahead to estimate moving players' positions. 0.2 means 200 ms. |
AlwaysVisibleDistance |
120 |
Nearby enemies within this radius bypass wall checks, including through walls. Measured in game units. |
SetDontTransmitToZero |
1 |
Automatically requests the optional transmission compatibility setting when the server exposes it. |
python -m pip install git+https://github.com/alliedmodders/ambuild
python native/setup.py
mkdir native\obj
cd native\obj
python ../configure.py --sdks=cs2 --targets=x86_64 --enable-optimize --mms_path=../deps/metamod-source --hl2sdk-root=../deps --hl2sdk-manifests=../deps/metamod-source/hl2sdk-manifests
ambuild
Larger BoundsPadding and PredictionSeconds values can make enemies available earlier. A longer VisibleGraceTicks period delays hiding them again. These settings trade stricter hiding for smoother appearances and prediction is an estimate not a guarantee.
Increasing AlwaysVisibleDistance also reveals nearby enemies earlier, but allows them through walls within that radius.
Ray tracing is the main workload. Open paths can finish after one ray; fully blocked enemies can need all 12 sample rays, plus another 12 for predicted positions when players move.
The plugin reuses visibility decisions within the same tick. If the shared trace budget runs out, it leaves affected enemies available instead of hiding them without a completed check. A smaller budget can reduce trace work but also reduce filtering coverage.
No. It limits transmission of selected hidden enemies and their equipment. It does not filter sound, radar messages or all other information a cheat might use.
Yes. Smoke is part of the plugin's visibility checks.
Enemies inside AlwaysVisibleDistance bypass ray checks. Other reasons include the grace period, an exhausted trace budget, or the enemy being outside the nearest group selected for checking.


