Anti-Ban Humanizer SDK
This page describes committed source behavior. Static tests cannot certify revision-sensitive RuneLite UI or in-game outcomes; those require a live client.
The humanizer SDK has two separate responsibilities:
HumanizerServiceschedules optional passive gestures for the plugin that owns it.- Packet Utils applies deterministic account and session modifiers to synthetic mouse paths.
There is no suite-wide gesture scheduler or cross-plugin arbitration facade. Auto Looter and Combat Awareness retain their local humanizer owners.
Plugin-owned gesture scheduling
HumanizerService.onTick(active, now, tickCount) advances a scheduler on the client thread.
The owning plugin passes active = true only during a safe passive or waiting state. A pending
gesture is completed before a new gesture is considered, so held input can be released on its
scheduled tick.
AntiBanProfile controls:
- whether the scheduler is enabled;
- its activity and intensity;
- minimum and maximum scheduling windows;
- the allowed
GestureKindvalues.
Current gesture categories are right-click item, camera nudge, tab glance, right-click actor,
and offscreen mouse rest. The concrete effects and cleanup remain the responsibility of the
owning plugin's HumanizerService.GestureExecutor.
Call reset() when the plugin stops or its runtime state becomes invalid. Do not enable
passive gestures during timing-sensitive combat, prayer, inventory, trade, or recovery states.
Account-derived mouse behavior
BehaviorProfile.forAccount(client.getAccountHash()) derives stable values for:
| Value | Range |
|---|---|
| Speed multiplier | 0.90-1.10 |
| Acceleration multiplier | 0.90-1.10 |
| Curvature multiplier | 0.85-1.15 |
| Jitter multiplier | 0.85-1.15 |
| Overshoot probability | 2-8% |
| Near-miss probability | 0.5-2% |
| Preferred camera mode | Arrow keys or middle-button drag |
| Camera frequency multiplier | 0.75-1.25 |
| Preferred glance tab | XP or Equipment |
| Micro-break frequency multiplier | 0.75-1.25 |
| Reaction-delay mean | 80-160 ms |
| Reaction-delay standard deviation | 15-45 ms |
| Fatigue rate | 0.85-1.15 |
Each value uses an independent salted derivation. The raw account hash and a profile file are not retained. Diagnostics expose only a short derived fingerprint. Invalid or unavailable account hashes use neutral values.
The Mouse humanization setting is enabled by default and is independent of Use synthetic mouse. It changes path planning only when a caller already selected synthetic mouse transport; it does not reroute packet actions or schedule ambient gestures.
Logged-in session fatigue
SessionFatigue counts wall-clock time while Packet Utils has a bound logged-in account. It
pauses on logout or shutdown, resets on account change, and reaches its bounded factor over a
six-hour session after applying the account's fatigue-rate multiplier.
Synthetic mouse planning uses the factor to reduce effective speed and increase jitter. Rapid paths retain their existing correction limits.
Manual diagnostics
Packet Utils' Mouse Behavior panel displays the complete account-derived profile and exposes seven manual checks:
- Arrow Camera presses the left camera key and releases it one to three game ticks later.
- Middle-Drag Camera presses the middle button, dispatches a short bounded drag, and releases it one to two game ticks later.
- XP Glance opens Skills briefly, then restores the preceding tab if the user has not changed tabs in the meantime.
- Equipment Glance applies the same guarded restore to Equipment.
- Predictive Hover moves toward a bounded point ahead of the current synthetic cursor without clicking.
- Mouse Nudge moves the synthetic cursor a short bounded distance without clicking.
- Offscreen Rest dispatches canvas exit movement without moving the operating-system pointer.
The manual actions fail closed while logged out, in headless mode, while the input lock is held, while another manual action is active, or while gameplay owns a synthetic path. Disable, logout, account change, and Packet Utils shutdown release held arrow or middle-button input, cancel a manual mouse path, and safely end a pending tab glance.
Derived mouse profiles
The recording, local storage, trajectory planner, fallback order, and AWT transport boundaries are documented in Synthetic Mouse.
Validation
Focused tests cover deterministic profile derivation, session accumulation, synthetic path ownership, local humanizer cleanup, all seven manual execution paths, and held-input cleanup.
Live client verification: pending