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 |
![]() Showcase on Dust2 |
![]() Showcase on Vertigo |
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.
- 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
antiwallhackandmapspackages . - Extract the antiwallhack package to your server's
game/csgo/addonsdirectory. - Extract VIS maps to your server's
game/csgo/addons/antiwallhackdirectory. - Restart the server.
VisBaker is published separately at ZusDev/VisBaker. You do not need to download the AntiWallHack source project to build this tool.
game/csgo/cfg/AntiWallHack.cfg
The included config.jsonc contains:
// AntiWallHack configuration. Reload the plugin after editing.
Enabled 1 // Enable visibility filtering.
Debug 0 // Temporary startup/map diagnostic breadcrumbs.
SmokeOcclusion 1 // Enable smoke checks.
VisibleGraceTicks 20 // Visibility hold.
BoundsPadding 28 // Wall sample padding.
CornerPrediction 1 // Bounded, wall-clipped viewer input/velocity prediction.
CornerPredictionSeconds 0.2 // Viewer horizon, 0..0.2 seconds.
CornerMaxDistance 64 // Maximum viewer lead, 0..64 units.
| Setting | Value | What it does |
|---|---|---|
Enabled |
1 |
Turns visibility filtering on or off. |
SmokeOcclusion |
1 |
Smoke filtering. |
VisibleGraceTicks |
20 |
How long an enemy stays available after a clear check. |
BoundsPadding |
28 |
Helping reveal corner peeks earlier. Measured in game units. |
CornerPrediction |
1 |
Bounded, wall-clipped viewer input/velocity prediction. |
CornerPredictionSeconds |
0.2 |
Viewer horizon, 0..0.2 seconds. |
CornerMaxDistance |
64 |
Maximum viewer lead, 0..64 units. |
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 CornerPrediction 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.
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 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.






