A wallhack is a program which makes the walls of a map appear transparent. This allows the player to see his enemy anywhere in the map. Obviously this destroys all gameplay and fair play within a game.
This is where AGuard's wallhack block comes in!
AGuard wallhack blocker tackles this problem at source by stopping the data which details the enemy’s position being sent to a player if there is a wall between the player and his enemy. Because of this method, and the fact that no data is actually sent, there is no possible way ANY wallhack can be used effectively on a AGuard Block_Wallhack enabled server.
Now there has often been some confusion about the wallhack blocker because of the way it works. It doesn't stop the walls becoming transparent. It doesn't stop the player seeing his own team mates (configurable). It doesn't stop a wallhack working on a player while he is spectating. It does, however, stop all alive players seeing all alive enemies and stop soundhacks which take datafrom the sound a player makes.
So why don't we stop all players from seeing any player if there’s a wall between them, regardless of whether it’s team mates or if they are spectating? The simple answer here is resources.
The wallhack blocker takes up a lot of processing power. It's without doubt the most CPU intensive feature of AGuard. To reduce the overheads it requires we only apply the wallhack blocker exactly where it’s needed and that’s between a player and his enemy. The server has to take into account all the players’ positional data and enable the wallhack blocker on a player every time a wall comes between him and his enemy. It also has to disable the blocker just before the player comes around a corner. That requires quite a lot of processing, hence the fact that wallhack blocker works only on alive players.
You'll notice I said the block is disabled just before the player reaches a corner. This is done in this way because if we disabled the wallhack blocker at the exact moment the player came around the corner and either the player or server lagged, the player would appear to just popup out of nowhere as if he was teleported there. The downside to this is that wallhackers can see players who are very close to the corner of a wall. But this isn't a huge downside as it only gives them a spilt second notice of a player, as opposed to knowing their exact position the whole time.
Wallhack blocker may uses a lot of CPU power, but it also reduces overall server ping (because of the dropped player packets).
Either through the use of scripting or prediction, aimbots help the player aim at enemies by moving the player's view to anticipate an enemy's position. They are usually programmed to aim specifically for the head. Instead of detecting aimbots (which is really very hard, especially when it's server-sided) we decided to make sure that this 'feature' cant work as it's supposed to on the client by changing packets sent about the player's position and statistics.
The Rapid/Burst detection monitors the speeds at which a player fires his gun and detects the use of anything which allows a player to fire faster than should be possible. This detection is great for detecting multihacks, rapidfire scripts, burstfire scripts and also mousewheel triggers.
The player with spinhack appears to spin rapidly in all directions when moving, reducing the player's overall hit area and confusing the enemy. This detection monitors for those, also known as, spinbots. It has also the ability to ignore the arrow turns to reduce the false positives.
Cheating-Death (C-D) was an anti-cheat system which included both a server and client. In it's last alive days, the so-called CD hacks appeared, emulating cheating-death client and letting the user use cheats. The CD hacks are one of the most common cheats today. While all of the methods and plugins nowadays detect CD hacks by alias scanning or cvar quering the 'cd_version' variable, AGuard detects it via emulating a Cheating-Death server on the HLDS. This produces 100% CD hack detection rate without false positives !
All of the client settings are stored into cvars (client-side). There are cvars that can give the user abilities, normally it's not mean to have. Thats why we introduce the cvar enforcement - enforces clients cvars with a value, that cant be changed!
WalkGuard basically prevents various kind of map exploiting. AGuard ships with pre-defined zone files containing data of known exploit locations in a number of default maps. Custom zones can be added as well using the advanced in-game zone editor. This way skywalking can be prevented, and the "jump-through-ceiling" bug detected. If a player tries to enter a SkyWalk zone, he will be pushed back. If he tries to use the "jump-through-ceiling" bug, he will be punished according to the server configuration.
Zone mode explanation:
There are 4 types of zone definitions available:
None - zone will do nothing, and will turn invisible when the WG menu is closed
Block - zone will block players from moving through it
Jump-through-ceiling - zone that punishes players using the "Jump-Through-Ceiling" bug against it.
Kill - zone will kill players when they enter in it
Notes about WalkGuard:
Boxes (the zones) cannot be rotated.
Even though you can edit the zones live in-game, we recommend creating a test server for the purpose, as the gameplay will continue even in the zone edit mode.
You can place zones inside small ceilings to detect the "jump-through-ceiling" bug.
Zones can be displayed in-game, but the HL engine limits the number of beams (which the zones are displayed with) in one view, so too many zones in one area might cause the last-added to turn "invisible".
When defining Jump-through-ceiling zone the map must be restarted in order the zone to take effect.
Dont forget to save the created zones, otherwise they will be erased on map change/restart!
All players joining a AGuard protected server can be checked for previous cheating offenses against our global banlist. All of the cheaters detected in a server, using AGuard, are logged in our database and are added to our global banlist. All of the bans are checked before add by our moderation team!
Once MetaMod is installed you can then install AGuard.
To install AGuard you need to unpack the release into your addons folder (cstrike/addons/), the correct path for AGuard should be: cstrike/addons/AGuard/ After you have unpacked the files in the correct place, you then need to edit the metamod/plugin.ini file.If you do not already have a plugins.ini file in the cstrike/addons/metamod/ directory, you need to create one yourself.
In linux, simply type
In Windows, go Start -> Run... Then type in the text box
In the notepad window that comes up, click the File menu and choose Save As... Navigate to the cstrike\addons\metamod\ folder, and in the File Name text box type: "plugins.ini"
WITH the quotation marks. This will save the file as plugins.ini and not plugins.ini.txt
Edit the file plugins.ini (mod/addons/metamod/) by using a text editor (e.g. 'ee' or 'vi')
Add this line BEFORE any existing plug-ins:
Save and exit the text editor.
Edit the file plugins.ini in (mod\addons\metamod) by using a text editor (e.g. notepad)
Add this line BEFORE any existing plug-ins:
Save and exit the text editor.
Remember: AGuard MUST BE the first loaded plugin in METAMOD to work properly!
AGuard DOES NOT support third-party HLDS builds ! Only official Valve builds are supported for now (downloaded via HLDSUpdateTool or SteamCMD) !
Manipulating maxplayers count above 32 can lead to stability issues and server crashes !
After installing AGuard you then need to have a look at the config files and set them up the way you want. If you have never used AGuard before then we recommend you leave the settings alone for a few days and use the default settings. Then once you have a better idea on how things work you can go over the AGuard config files and make any changes you need.
Try to read over ALL config files, most have comments describing what they do and how they need setting.
If you want to use the global banlisting module you will need to have a license file placed in the AGuard root directory (cstrike/addons/AGuard). You can get a license from our online license form. The license is FREE, just needs a registration of the server !
Since version 1.0b7 AGuard support custom 'addons' directory in case its not located inside [hlds/mod/addons]. If you want to use a custom directory - edit aguard-dir.cfg file with the new "addons" directory (without the slash at the end) and place it in [hlds/mod]
Example aguard-dir.cfg (ex: in case your AGuard is located in "/var/home/addons/AGuard")
You may probably see in AGuard configuration file that the Updater needs an AMXX plugin (in order to know which player to inform about a newly released version) as well as the "Ignore_Admins" setting switched on (in order to add the AMXX admins to the exclusion list). To install AGuard AMXX plugin simply copy the file 'aguard-plugin.amxx' from AGuard installation directory to 'amxmodx/plugins' and add the following line in your AMXX 'plugins.ini' file
To check if the plugin is running type 'amxx plugins' in your server console and you have to see an output like this:
[ 7] AGuard plugin 1.1 Nikolay Milkov aguard-plugin.amxx running
Critical error: 0x00000001 Aimbot blocking module failed to find/hook the needed functions Consequences: Block aimbot module will automatically turn itself off Cause: Either other module is hooking this function already or you use unsupported engine version Resolve: Update to one of the supported HLDS versions and/or remove other modules/third party plugins that may hook this function as well
Critical error: 0x00000002 Rapidfire checking module failed to initialize player hooks Consequences: Rapidfire checking module will not work as expected Cause: You are using an unsupported engine version Resolve: Update to one of the supported HLDS versions
Critical error: 0x00000003 Spam detection module failed to initialize RegEx Consequences: Chat and nick spam detection will not work Cause: The cause of the error will be written in the brackets Resolve: --
Critical error: 0x00000004 AGuard failed to initialize player hooks for its core functionality Consequences: AGuard will fail to continue working or can even crash Cause: You are using an unsupported engine version Resolve: Update to one of the supported HLDS versions
Critical error: 0x00000005 ESP blocker failed to create hooks needed for its functionality Consequences: ESP (Soundhack) blocker will automatically turn itself off Cause: Other module/third party plugin is already hooking one of the needed functions or you use unsupported engine version Resolve: Update to one of the supported HLDS versions and/or remove other modules/third party plugins that may hook this function as well.
Critical error: 0x00000006 Client-side file checker failed to find/hook the needed functions Consequences: Client-side file checker will automatically turn itself off Cause: #1, #3 - other module/third party plugin is already hooking one of the needed functions or you use unsupported engine version #2 - same as #1/#3 or caused due to incompatibility with AMXX 1.8.3 versions and above (also trying to hook SV_DropClient()) Resolve: Update to one of the supported HLDS versions and/or remove other modules/third party plugins that may hook this function as well. If the second parameter is "#2" check and set AGuard as first plugin in metamod's "plugins.ini" configuration file
Critical error: 0x00000007 Aimbot checker failed to initialize its timer functionality Consequences: Aimbot checking module will automatically turn itself off Cause: Insufficient OS virtual memory available Resolve: Try restarting OS
Critical error: 0x00000008 AGuard failed to initialize winsock environment (only applied to WINDOWS servers) Consequences: Global banlisting and update modules will not work Cause: Unknown (this error is OS related) Resolve: --
Critical error: 0x00000009 AGuard core failed to initialize its timer functionality Consequences: AGuard startup will halt Cause: Insufficient OS virtual memory available Resolve: Try restarting OS
Critical error: 0x0000000A Global banlisting module failed to update cache file Consequences: Global banlisting will be turned off Cause: Mostly the problem is caused by our banlist servers Resolve: Contact our staff
OT - for the wallhack blocker core mogel - for the walkguard core ideas DarkSnow - for some of the flashbug zone coordinates ZeaL - for the XClient UA - for the HLGuard, walkguard menu idea, jump-through-ceiling bug spots Alliedmods - for various bugs and questions asked in their forums ivchonka - for initial detection testing RauliTop - for Spanish translation addons_zz - for Brazilian Portuguese translation Usman Ghazanfar (VampireD/UTAKER) - for active testing (on Windows platform) and feedback Syturio - for Brazilian Portuguese translation corrections, active feedback and bug reporting, AGuard logo tranceaddicted - for block wallhack module debug testing tompietje - for Dutch translation m.avramov14 - for Deutsch translation Kibillcat - for discovering the 'ArmorType' crash, active testing (on UNIX platform) and active crash debug testing Hollow - active 'ArmorType' crash debug testing and feedback $n1p3r - for private cheats source codes norbee.16 - for discovering Podbots crash, client files checking algorithm fault and hungarian translation iNdio - for Romanian and Italian translations SkazzY - for Serbian translation InzGIBA - for Russian translation kadetos - for Russian translation xedga - for discovering check files bug and walk jump sound bug darkness - for Polish translation