CS2 sv_pure and pure servers: the 1 and 2 modes, the whitelist file, the first-map CRC cost, and the kick behaviour
Posted: Sat Oct 24, 2026 11:58 am
Quick summary
sv_pure is the console variable that decides whether a CS2 server forces every client to use the same content it has. Valve documents four values for it, from -1 which disables both checks up to 2 which forces all game content to default. The guide covers what each value does, the whitelist file behind value 1, the attributes it accepts, the first-map CRC cost, and the two companion commands that control kicks and console tracing. The commands do not appear in the October 22 2026 build dump, so Valve's own page is the reference here.
What a pure server does
A pure server forces every client on it to use content that matches what the server has. Valve's page says this, together with sv_consistency, prevents cheating by modifying game content, such as increasing the size of models, increasing the volume of footsteps, or making wall materials transparent. The page is categorised under Source, Source 2, Dedicated Server and Tutorials.
The four values
sv_pure_kick_clients
By default the server kicks clients whose custom content differs from the server's. Setting sv_pure_kick_clients to 0 makes it print a warning instead of kicking. The server can still force a client onto game-provided content, and the page says it never kicks players who only modded default content such as custom skins or models.
sv_pure_trace
sv_pure_trace prints a message to the server console each time it tries to verify a CRC for a file. Total CS documents it as a 0/1 toggle with a default of 0. Turn it on when a player keeps failing the check and you want to see which file the server is reading, then turn it back off because it writes a line per file.
The whitelist file
The whitelist is pure_server_whitelist.txt. The page places it in the server's hl2 directory and says it is used by CS:GO and Source 2009 and earlier Source engine branches, while in Source MP and Source 2013 games the file moved to the game's cfg directory. It does not state a Source 2 location, so do not assume the hl2 path on a CS2 server.
Each line names a file or a group of files and the attributes for them. There are three ways to specify a file group:
Stacking and the first-map cost
Attributes apply in top-down order, so a broad line can be narrowed by a later one. The page's example forces all models to Steam and then makes an exception for a mod folder:
There is a cost to value 1. When the server loads its first map with sv_pure set to 1, it has to calculate file CRCs for every file marked allow_from_disk+check_crc, and if the whitelist has a broad line such as materials\... allow_from_disk+check_crc the server can pause for a long time while it works through the material files. The page's fix is sv_pure 2, which does not calculate CRCs at all.
The page also warns against mixing files and directories in one line. A whitelist entry such as materials\MyModDecals\*.* allow_from_disk+crc_check leads to an sv_pure error on Linux when that folder contains both files and subdirectories, and the fix is to put the files into subdirectories and check them separately.
Changing sv_pure while a client is connected
If sv_pure changes while a client is on a map, the client reloads whatever content it needs to obey the pure server's rules. The page says the client cost is negligible because only a few files get flushed. The page's note on autoexec.cfg is narrower than it looks: it says that setting sv_pure only in autoexec.cfg and not in server.cfg makes pure mode work on the first map at server start, so the timing of the write matters, not the file you picked.
Two sources disagree on the values
Valve's page gives sv_pure four values, from -1 to 2, and names 0 as the default. Total CS documents the command as a 0/1 toggle, gives no default on its sv_pure page, and has no entry for -1 or 2 at all. It does give sv_pure_kick_clients a default of 1 and sv_pure_trace a default of 0. Total CS describes sv_pure 0 as disabling the server/client file matching check, which matches Valve's intent, but its page cannot tell you what mode 2 does. Treat 1 as the value with a whitelist and 2 as the value without one, because that is the distinction Valve draws.
Where the commands do not appear
The October 22 2026 build dump from s2v.app (build 11162119) lists 4,337 convars and 1,246 commands, and sv_pure, sv_pure_kick_clients and sv_pure_trace do not appear in it. Valve's Pure Servers page and the Total CS command pages are the references for these three, and the dump can neither confirm nor contradict them.
FAQ
Does sv_pure kick players for a custom crosshair?
No. The page says the server never kicks players who only modded default content such as custom skins or models, and it can force the client onto game-provided content instead.
Which value should a competitive host use?
Valve's page points at 2, which forces all content to default and skips the whitelist file. It says most official Valve competitive servers use that setting.
Why does the server pause the first time a map loads?
sv_pure 1 calculates CRCs for the files marked allow_from_disk+check_crc on the first map load. A broad whitelist line makes that pause long.
Does sv_pure 2 skip the whitelist?
Yes. The page says the server does not even load pure_server_whitelist.txt in that mode.
Can I leave sv_pure_trace on permanently?
You can, but it prints a console line for every file CRC it verifies. Use it for one failing client and switch it back off.
Is an empty whitelist the same as turning pure mode off?
Yes, at value 1. The default attribute is allow_from_disk, so an empty whitelist file leaves every file unprotected.
Sources
Valve Developer Community, Pure Servers
Total CS, sv_pure command reference
Total CS, sv_pure_kick_clients command reference
Total CS, sv_pure_trace command reference
sv_pure is the console variable that decides whether a CS2 server forces every client to use the same content it has. Valve documents four values for it, from -1 which disables both checks up to 2 which forces all game content to default. The guide covers what each value does, the whitelist file behind value 1, the attributes it accepts, the first-map CRC cost, and the two companion commands that control kicks and console tracing. The commands do not appear in the October 22 2026 build dump, so Valve's own page is the reference here.
What a pure server does
A pure server forces every client on it to use content that matches what the server has. Valve's page says this, together with sv_consistency, prevents cheating by modifying game content, such as increasing the size of models, increasing the volume of footsteps, or making wall materials transparent. The page is categorised under Source, Source 2, Dedicated Server and Tutorials.
The four values
- sv_pure -1: both purity and consistency checks are disabled.
- sv_pure 0: the default. Valve describes this as equivalent to sv_consistency 1 from GoldSrc and the early Source branches.
- sv_pure 1: the list of enforced content comes from pure_server_whitelist.txt, which the server administrator edits.
- sv_pure 2: all game content is forced to default. Valve says this is identical to mode 1 with everything in the whitelist set to from_steam, and that most official Valve competitive servers use it.
sv_pure_kick_clients
By default the server kicks clients whose custom content differs from the server's. Setting sv_pure_kick_clients to 0 makes it print a warning instead of kicking. The server can still force a client onto game-provided content, and the page says it never kicks players who only modded default content such as custom skins or models.
sv_pure_trace
sv_pure_trace prints a message to the server console each time it tries to verify a CRC for a file. Total CS documents it as a 0/1 toggle with a default of 0. Turn it on when a player keeps failing the check and you want to see which file the server is reading, then turn it back off because it writes a line per file.
The whitelist file
The whitelist is pure_server_whitelist.txt. The page places it in the server's hl2 directory and says it is used by CS:GO and Source 2009 and earlier Source engine branches, while in Source MP and Source 2013 games the file moved to the game's cfg directory. It does not state a Source 2 location, so do not assume the hl2 path on a CS2 server.
Each line names a file or a group of files and the attributes for them. There are three ways to specify a file group:
- A single filename, such as materials\models\props\cs_assault\wirepipe.vtf.
- All files in a directory, with a trailing \*.*
- All files in a directory and its subdirectories, with a trailing \...
- from_steam: forces clients to load the files from the Steam cache even if they have custom content on disk. In Source MP games this is replaced by trusted_source.
- allow_from_disk: clients may load the files from disk and they do not have to match the server, so these files are unprotected. Replaced by any in Source MP games.
- allow_from_disk+check_crc: clients may load the files from disk, but their on-disk files must match the server's. In Source MP games this is replaced by VPK signing keys in trusted_keys.txt.
Stacking and the first-map cost
Attributes apply in top-down order, so a broad line can be narrowed by a later one. The page's example forces all models to Steam and then makes an exception for a mod folder:
Code: Select all
models\... from_steam
models\MyMod\... allow_from_disk+check_crcThe page also warns against mixing files and directories in one line. A whitelist entry such as materials\MyModDecals\*.* allow_from_disk+crc_check leads to an sv_pure error on Linux when that folder contains both files and subdirectories, and the fix is to put the files into subdirectories and check them separately.
Changing sv_pure while a client is connected
If sv_pure changes while a client is on a map, the client reloads whatever content it needs to obey the pure server's rules. The page says the client cost is negligible because only a few files get flushed. The page's note on autoexec.cfg is narrower than it looks: it says that setting sv_pure only in autoexec.cfg and not in server.cfg makes pure mode work on the first map at server start, so the timing of the write matters, not the file you picked.
Two sources disagree on the values
Valve's page gives sv_pure four values, from -1 to 2, and names 0 as the default. Total CS documents the command as a 0/1 toggle, gives no default on its sv_pure page, and has no entry for -1 or 2 at all. It does give sv_pure_kick_clients a default of 1 and sv_pure_trace a default of 0. Total CS describes sv_pure 0 as disabling the server/client file matching check, which matches Valve's intent, but its page cannot tell you what mode 2 does. Treat 1 as the value with a whitelist and 2 as the value without one, because that is the distinction Valve draws.
Where the commands do not appear
The October 22 2026 build dump from s2v.app (build 11162119) lists 4,337 convars and 1,246 commands, and sv_pure, sv_pure_kick_clients and sv_pure_trace do not appear in it. Valve's Pure Servers page and the Total CS command pages are the references for these three, and the dump can neither confirm nor contradict them.
FAQ
Does sv_pure kick players for a custom crosshair?
No. The page says the server never kicks players who only modded default content such as custom skins or models, and it can force the client onto game-provided content instead.
Which value should a competitive host use?
Valve's page points at 2, which forces all content to default and skips the whitelist file. It says most official Valve competitive servers use that setting.
Why does the server pause the first time a map loads?
sv_pure 1 calculates CRCs for the files marked allow_from_disk+check_crc on the first map load. A broad whitelist line makes that pause long.
Does sv_pure 2 skip the whitelist?
Yes. The page says the server does not even load pure_server_whitelist.txt in that mode.
Can I leave sv_pure_trace on permanently?
You can, but it prints a console line for every file CRC it verifies. Use it for one failing client and switch it back off.
Is an empty whitelist the same as turning pure mode off?
Yes, at value 1. The default attribute is allow_from_disk, so an empty whitelist file leaves every file unprotected.
Sources
Valve Developer Community, Pure Servers
Total CS, sv_pure command reference
Total CS, sv_pure_kick_clients command reference
Total CS, sv_pure_trace command reference