Valve Anti-Cheat: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (clean up, replaced: {{goldsrc → {{gldsrc (2))
m (this may or may not be correct anymore but according to https://help.steampowered.com/en/faqs/view/647C-5CC1-7EA9-3C29#eligible CS:GO is not included in the list of banned games.)
Line 24: Line 24:
*{{tf2|4}}
*{{tf2|4}}
**If you receive a VAC ban in Team Fortress 2, Counter-Strike: Source, Half-Life 2: Deathmatch, or all Source games, all your items will be removed from your Team Fortress 2 inventory. Steam Support is unable to restore these items. Additionally, you will no longer have access to the TF2 Store or receive item drops.
**If you receive a VAC ban in Team Fortress 2, Counter-Strike: Source, Half-Life 2: Deathmatch, or all Source games, all your items will be removed from your Team Fortress 2 inventory. Steam Support is unable to restore these items. Additionally, you will no longer have access to the TF2 Store or receive item drops.
{{Note|If the player is VAC banned in one of these Source games, they will get banned in all of them.}}
{{Note|If the player is VAC banned in one of these Source games, they will get banned in all of them besides {{Csgo|4}}.}}


=== {{source2|name}} ===
=== {{source2|name}} ===

Revision as of 14:26, 8 January 2024

English (en)Español (es)Tiếng Việt (vi)中文 (zh)Translate (Translate)

VAC Valve Anti-Cheat, more commonly known by its acronym VAC, is a proprietary anti-cheat system developed by Valve for use in GoldSrc, Source and Source 2 multiplayer games, as well as many other third-party multiplayer games on various other engines (such as the original COD: Modern Warfare 2 from 2009).

Valve Anti-Cheat is a shared element of the Source engine; thus, it is supported by any Source-based multiplayer game. Not all Source games use VAC however; for example, Apex Legends Apex Legends uses Easy Anti-Cheat (EAC).

Todo: VAC errors, such as File:Vac blocked.png

List of Games uses VAC

There are currently over 100 games used VAC, according to Steam Store when search for games with VAC. However some of the list may be incorrect, such as singleplayer games being included on the list.

GoldSrc

Note.pngNote:If the player is VAC banned in one of these GoldSrc games, they will get banned in all of them.

Source

Note.pngNote:If the player is VAC banned in one of these Source games, they will get banned in all of them besides Counter-Strike: Global Offensive Counter-Strike: Global Offensive.

Source 2

  • Counter-Strike 2 Counter-Strike 2
    • If you receive a VAC ban (for any game) you will no longer have access to the CS:GO and CS2 Store, receive CS:GO and CS2 item drops, or be able to trade CS:GO and CS2 items.
  • Dota 2 Dota 2
Note.pngNote:If the player is VAC banned in one of these Source 2 games, they will get banned in all of them.

Other engines

  • All Call of Duty games from 2009 to 2017
  • See more at Steam Store

Heuristics

When a player is connected to a VAC-secured server (denoted by a security badge and the letter V in the server browser), the VAC system checks if any foreign processes are hooked into the player's local game binaries. If the VAC check finds a positive ID for any possible cheating tool, the offending player's Steam account is then permanently banned from all VAC-secured servers after a variable amount of time. If the player was falsely banned for using software that are not a cheating tool (such as Recording software, overlays, drivers, etc...), or by launching the game with updated game DLLs files which was mistakenly marked as cheating tools/DLL injectors, the player may get unbanned by Valve.

One example of false positive VAC ban, in this case with COD: Modern Warfare 2, due to DLL files being updated by Steam after it's was loaded by the game, over 12,000 players was banned. These bans have been revoked and those who got affected by the ban have been gifted Left 4 Dead 2 Left 4 Dead 2 for free by Valve, plus one to send as a gift to friends. Another one, recently, affects most AMD Radeon 7000 series graphics card users with "Anti-Lag/+" feature enabled, which results in false VAC ban in Counter-Strike 2 and other games such as Apex Legends, which uses EAC. This issue was partially resolved with the updated AMD driver, which temporarily disabled the "Anti-Lag+" feature, and both developers of the affected games above has reversed all bans related to the Anti-Lag+.

Message displayed to a VAC-banned client. Screenshot from Team Fortress 2 Team Fortress 2.

Valve Anti-Cheat will not detect content hacks such as invisible wall textures or bright-colored player models. Server admins that wish to block such activity will need to run a pure server.

Using VAC

For server admins that wish to use VAC, you should run your server with the -secure command line parameter. If you are using the Steam srcds frontend, make sure that the Secure (Valve Anti-Cheat) option is checked.

Code Injection

As a developer there are situations in which you may legitimately wish to inject code into the application process of a game that uses VAC and/or Trusted Mode. In this case you need to ensure that your code injection only takes place when and if the game client application is operated in the appropriate mode in order to avoid the user receiving a ban. Check with the game’s documentation to find out what, if any, settings have to be applied.

Code Injection in CS:GO & CS2

If the code you wish to inject is Authenticode signed, the CS:GO and CS2 game client has to be run in “Allow Third Party Software” mode; for any other code the CS:GO and CS2 game client has to be run in “Insecure” mode.

Game ban vs. VAC ban

Sometimes, a player may only get banned from a single game instead of all VAC games. This is because they recieved a game ban, which is not the same as a VAC ban. Game bans are usually initiated by a game developer or moderator and will only restrict features of one specific game (e.g. Overwatch in CS:GO and/or CS2 gave out game bans and not VAC bans). VAC bans can only be given by VAC or Valve employees. [confirm]