Aimbot humanization
Make aim assistance look like a skilled human, not a math function locked to the skull.
Perceptual model
- Humans overshoot/correct; imperfect tracking on strafe
- Reaction delay 120–280ms typical; not constant
- Mouse has accel/raw input quirks; camera has sensitivity curves
- Target switches cost time; not instant snap
Control stack
- Target select: FOV cone, visibility/LOS, team/hp filters, priority scores
- Pathing: angle delta → easing curve (ease-in-out, crit-damped spring, Bezier)
- Noise: Ornstein–Uhlenbeck / band-limited noise on yaw/pitch
- Deadzone: don't micro-twitch on tiny errors
- Velocity match: track target velocity; lead for projectiles
- Breaks: occasional intentional miss / recapture
- Input device model: mouse counts vs controller stick acceleration
Parameters (tune per game)
- max FOV, max angular velocity, acceleration, smoothing window
- reaction delay distribution (log-normal)
- bone blend (head/chest) with context (range/weapon)
- hit-chance scheduler independent of raw lock
Anti-detection themes
- Avoid perfect bone lock every frame
- Avoid identical tick-aligned snaps
- Correlate with visible animation / ADS state
- Don't aim through freshly broken LOS without delay
Implementation sketch
each frame:
if !should_engage(): release_soft(); return
tgt = select_target()
err = angle_to(tgt.aim_point + lead)
err = apply_reaction_delay(err)
delta = clamp(smooth(err) + noise(), max_rate)
apply_mouse_or_view(delta)
Concrete parameterizations (shipped-tested shapes)
Reaction model
- Two-stage: detection (uniform 120-200ms) + motor onset (log-normal μ≈5.1 σ≈0.4, median
165ms). First engagement of a match slower (+15%); target-switch faster than fresh acquisition (60% of fresh reaction).
- Per-target memory: reacquisition of a recently-seen target uses 40-60% reaction — models expectation.
Smoothing curves ranked by realism
| Curve |
Trace look |
Use |
| Linear lerp (α·err) |
exponential decay, robotic |
never |
| Critically-damped spring |
fast middle, soft landing |
default |
| Cubic ease-in-out on err magnitude |
human-ish accel profile |
good |
| Bezier w/ random control pts |
best but needs per-target re-plan on movement bursts |
advanced |
- Feed-forward: add target angular velocity term so tracking lags behind strafes by a small constant (30-60ms virtual latency) instead of locking.
Noise that survives spectral analysis
- OU process:
dθ = -θ/τ dt + σ√dt·N(0,1) with τ≈80-120ms — band-limited, no white-spike signature. Tune σ per-axis (yaw 2-3× pitch: humans correct yaw harder).
- Micro-tremor: 8-12Hz small-amplitude (0.05-0.15°) additive sinusoid — matches physiological hand tremor bands.
- Correlate noise with error magnitude (bigger err → bigger overshoot variance); uncorrelated noise is itself a detector.
Overshoot/correction
- P(overshoot) ≈ 15-25% on fast flicks (>15°), near-zero on micro-corrections; overshoot magnitude 5-12% of flick angle, correction settle 1-2 counter-moves over 150-300ms.
- Miss scheduler: on low-visibility/high-motion shots, deliberately seed 3-8% miss offsets (first-bullet high on spray transfer is the human-tell you fake in reverse).
Detectors to stay under (what AC measures)
- Angular-velocity spectrogram: pure lock = single delta repeated; human = broad spectrum with 1/f falloff — OU noise provides this.
- Crosshair-bone coincidence rate: cap total time-on-bone < 65% even when perfect tracking possible; blend bone target (head/neck/chest per-shot sampling).
- Reaction-time floor: never fire < 120ms after LOS gain; jitter never < 40ms from same stimulus twice.
- Tick alignment: apply aim on render frames (not net ticks) with ±half-frame jitter — tick-aligned actions = bot signature.
Failsafe interlocks
- Disable on: death/spectate, scoreboard/chat/menu focus, loading screens (view matrix invalid), replay/editor capture active.
- Soft-release on target death: keep tracking velocity for 80-150ms then decay — instant release at exact death tick is a tell.
Pair with
aimbot-triggerbot, game-internals, game-hacking.
1---2name: aimbot-humanization3description: Humanize aim assistance: smoothing, aim curves, reaction delay, FOV/stickiness, target switch, noise, anti-pattern AC.4license: GPL-3.0-or-later5---67# Aimbot humanization89Make aim assistance look like a skilled human, not a math function locked to the skull.1011## Perceptual model12- Humans overshoot/correct; imperfect tracking on strafe13- Reaction delay 120–280ms typical; not constant14- Mouse has accel/raw input quirks; camera has sensitivity curves15- Target switches cost time; not instant snap1617## Control stack181. **Target select**: FOV cone, visibility/LOS, team/hp filters, priority scores192. **Pathing**: angle delta → easing curve (ease-in-out, crit-damped spring, Bezier)203. **Noise**: Ornstein–Uhlenbeck / band-limited noise on yaw/pitch214. **Deadzone**: don't micro-twitch on tiny errors225. **Velocity match**: track target velocity; lead for projectiles236. **Breaks**: occasional intentional miss / recapture247. **Input device model**: mouse counts vs controller stick acceleration2526## Parameters (tune per game)27- max FOV, max angular velocity, acceleration, smoothing window28- reaction delay distribution (log-normal)29- bone blend (head/chest) with context (range/weapon)30- hit-chance scheduler independent of raw lock3132## Anti-detection themes33- Avoid perfect bone lock every frame34- Avoid identical tick-aligned snaps35- Correlate with visible animation / ADS state36- Don't aim through freshly broken LOS without delay3738## Implementation sketch39```text40each frame:41 if !should_engage(): release_soft(); return42 tgt = select_target()43 err = angle_to(tgt.aim_point + lead)44 err = apply_reaction_delay(err)45 delta = clamp(smooth(err) + noise(), max_rate)46 apply_mouse_or_view(delta)47```4849## Concrete parameterizations (shipped-tested shapes)5051### Reaction model52- Two-stage: detection (uniform 120-200ms) + motor onset (log-normal μ≈5.1 σ≈0.4, median ~165ms). First engagement of a match slower (+15%); target-switch faster than fresh acquisition (~60% of fresh reaction).53- Per-target memory: reacquisition of a recently-seen target uses 40-60% reaction — models expectation.5455### Smoothing curves ranked by realism56| Curve | Trace look | Use |57|---|---|---|58| Linear lerp (α·err) | exponential decay, robotic | never |59| Critically-damped spring | fast middle, soft landing | default |60| Cubic ease-in-out on err magnitude | human-ish accel profile | good |61| Bezier w/ random control pts | best but needs per-target re-plan on movement bursts | advanced |62- Feed-forward: add target angular velocity term so tracking lags behind strafes by a small constant (30-60ms virtual latency) instead of locking.6364### Noise that survives spectral analysis65- OU process: `dθ = -θ/τ dt + σ√dt·N(0,1)` with τ≈80-120ms — band-limited, no white-spike signature. Tune σ per-axis (yaw 2-3× pitch: humans correct yaw harder).66- Micro-tremor: 8-12Hz small-amplitude (0.05-0.15°) additive sinusoid — matches physiological hand tremor bands.67- Correlate noise with error magnitude (bigger err → bigger overshoot variance); uncorrelated noise is itself a detector.6869### Overshoot/correction70- P(overshoot) ≈ 15-25% on fast flicks (>15°), near-zero on micro-corrections; overshoot magnitude 5-12% of flick angle, correction settle 1-2 counter-moves over 150-300ms.71- Miss scheduler: on low-visibility/high-motion shots, deliberately seed 3-8% miss offsets (first-bullet high on spray transfer is the human-tell you fake in reverse).7273### Detectors to stay under (what AC measures)74- Angular-velocity spectrogram: pure lock = single delta repeated; human = broad spectrum with 1/f falloff — OU noise provides this.75- Crosshair-bone coincidence rate: cap total time-on-bone < 65% even when perfect tracking possible; blend bone target (head/neck/chest per-shot sampling).76- Reaction-time floor: never fire < 120ms after LOS gain; jitter never < 40ms from same stimulus twice.77- Tick alignment: apply aim on render frames (not net ticks) with ±half-frame jitter — tick-aligned actions = bot signature.7879### Failsafe interlocks80- Disable on: death/spectate, scoreboard/chat/menu focus, loading screens (view matrix invalid), replay/editor capture active.81- Soft-release on target death: keep tracking velocity for 80-150ms then decay — instant release at exact death tick is a tell.8283## Pair with84`aimbot-triggerbot`, `game-internals`, `game-hacking`.