False bans are bugs, not bad luck
An anti-cheat that bans one innocent player loses more trust than it gains by catching ten cheaters. How we hunt down false positives, and why "raise the threshold" is almost never the fix.
An anti-cheat that bans one innocent player loses more trust than it gains by catching ten cheaters. How we hunt down false positives, and why "raise the threshold" is almost never the fix.
Every anti-cheat team eventually gets the same message: "I didn't cheat, I was just playing." Sometimes it is a cheater trying their luck. Sometimes it is true. The second case is the one that matters, because a single wrong ban does damage that ten correct ones cannot undo: the player leaves, their friends hear about it, and your staff start doubting every detection that follows.
We treat a confirmed false ban the same way we treat a crash: as a bug with a root cause that has to be found and removed.
The tempting fix for a false positive is to make the rule stricter: allow a bit more speed, a few more shots per second, a slightly longer distance. It makes the report go away. It also makes the detection blind to every cheater who stays just under the new limit, and the next legitimate edge case (a faster car, a modded weapon, a laggy player) will cross it again anyway.
A threshold only works if the signal behind it is sound. If the signal itself can be produced by normal play, no number is safe.
When a ban report comes in, we start from the evidence, not the rule:
Some signals are strong enough to act on alone: an injected executor's fingerprint, a resource that does not exist on your server sending events. Others are only suspicious, and should add to a case for a human to review rather than ban by themselves. Splitting detections into "proof" and "suspicion" is the single change that removed most false bans for the servers we work with.
A detection should be able to explain itself. If you cannot say in one sentence why this could only happen with a cheat, it should not ban on its own.
Catching cheaters is the job. Not banning the people who were just playing is what makes the job worth anything.