EXE_UNPURECLIENTDETECTED
Unpure client detected. Invalid .PK3 files referenced
Cause
With sv_pure 1 the server audits the checksums of the paks each client has loaded and
drops any client whose set does not match.
Legitimate reasons: the player has a custom pak the server does not have, or a modified stock pak, or a stale download from another server.
But on Call of Duty 1 patch 1.1 there is an engine bug that makes this fire against
innocent clients. The 1.1 client never resets its pure checksum state at connect — only
on a full filesystem shutdown. So a 1.1 client that has ever loaded a mod pak from any
server carries that state into every subsequent connection and is dropped by every
sv_pure 1 server it joins.
Patch 1.5 resets the state at connect and is unaffected.
This is the actual reason roughly 99% of surviving 1.1 servers run sv_pure 0.
Fix, server side
On Call of Duty 1 patch 1.1, set sv_pure 0. There is no configuration that makes
sv_pure 1 workable there.
set sv_pure 0
On other versions, set sv_pure 0 whenever you load a mod pak unless you have tested the
checksum path with real clients. sv_pure is a checksum audit, not a content filter — it
does not reliably prevent a client from loading its own paks, so the security value you are
buying with the support burden is smaller than it looks.
Fix, client side
If a specific server needs sv_pure 1, the player must remove custom paks from the
gamedir:
CoD1: <install>/main/*.pk3 — keep only pak0..pakb and localized_english_pak*
CoD2: <install>/main/*.iwd — keep only iw_00..iw_15 and localized_*
Move anything else out, including paks auto-downloaded from other servers.
