Pre-fire or prediction? The line we draw
Pre-aiming common angles is a coached skill; prefiring only when someone is actually there is a wallhack tell. The difference is selectivity.
Watch a good player and you’ll see them shoot at a doorway before anyone appears. Watch a wallhacker and you’ll see the same thing. On one round they’re identical — which is exactly why prefire trips up bad reviewers. The line between them is real, but it only shows up across rounds.
Pre-aiming is a skill — the most-taught one
Crosshair placement means putting your crosshair where a head will appear before you see it. Coaches formulate it as "aim is 80% positioning, 20% reaction," and it’s drilled on prefire maps at every skill level. Prefiring Inferno banana, Mirage window, or Dust2 long doors is expected behavior, not a red flag — those angles are pre-aimed because that’s where enemies commonly are.
A legit player pre-aims the spot whether or not anyone’s there. That’s the tell that it’s a skill: it’s position-driven, and it repeats at the same map spots on empty rounds too.
The wallhack version is information-driven
Community demo-review consensus states it cleanly: prefire is suspicious when it’s selective — the player prefires a corner when an enemy is actually there and skips it when it’s empty. Add the other information-before-it-exists tells (crosshair tracking a hidden player through a wall or smoke, committing to a wallbang with no audio cue, never over-peeking a genuinely empty angle) and a picture forms.
Standard reviewer technique is to watch the raw first-person POV with X-ray on and ask a single question: does the crosshair trace enemies it cannot see? A skill traces the map. A cheat traces the enemy.
Suspect.gg looks at crosshair pre-aim error at first contact as one signal among several — across our pool the median first-contact error is about 6.8°, and the cleanest 10% sit under ~3.9°. A low number alone is a great player’s crosshair placement. It only becomes interesting when it’s paired with information the player shouldn’t have, over a sample — which is why it feeds a model, not a verdict.
