Skip to content

Humanoid Behavior

When a bot interacts with a website, it often moves the mouse in perfectly straight lines, clicks at exact center positions, and types at inhuman speeds. Anti-bot systems detect these patterns instantly. RTILA X’s Humanoid Behavior system solves this by simulating the natural imperfections of human interaction — curved mouse movements, variable typing speeds, slight positional randomness, and natural pauses.

When enabled, every click, fill, hover, and scroll in your automation is processed through the humanoid system before being sent to the browser. The result is interaction patterns that are virtually indistinguishable from a real person using the page.

The humanoid system affects every interaction command in your automation. Here’s exactly what changes when humanoid behavior is active:

Interaction Without Humanoid With Humanoid
Mouse Movement Straight line from current position to target Curved Bezier path with natural acceleration and deceleration
Clicks Instant click at exact element center Mouse travels to element with slight positional randomness, pauses briefly, then clicks
Typing (fill) Text appears instantly in the field Mouse moves to field, clicks to focus, then types character by character with random delays
Typing (type) Characters appear at fixed intervals Characters appear with randomized delays between each keystroke
Check/Uncheck Instant toggle Mouse moves to checkbox, pauses, then clicks
Select Option Instant selection Mouse moves to dropdown, clicks to open, selects option with natural timing
Hover Mouse jumps directly to element Mouse travels along a curved path to the element with natural speed
Focus Element receives focus instantly Mouse moves to element, then focus is applied
Scroll to View Element scrolls into view instantly Element scrolls into view, then mouse position is adjusted naturally
Press Key Key press happens instantly Mouse moves to element (if applicable), then key is pressed with natural timing

The sensitivity level controls how much randomization and delay is applied to each interaction. Higher sensitivity means more human-like behavior but slower execution.

Level Sensitivity Factor Description Best For
Low 0.5x Minimal randomization. Faster execution but slightly more detectable. Low-risk websites with basic bot detection
Medium (Default) 1.0x Balanced randomization. Good protection without excessive slowdown. Most websites. Good default for general use.
High 1.5x Maximum randomization. Slowest but most human-like. Heavily protected sites with advanced bot detection

The sensitivity factor multiplies the following:

  • Mouse curve variance — How much the Bezier curve deviates from a straight line
  • Positional randomness — How far from the element center the click lands
  • Movement micro-variance — Small random offsets added to each step of mouse movement
  • Delay ranges — How long pauses are between actions
Website Protection Level Recommended Sensitivity Example Sites
No bot protection Low Internal tools, simple blogs
Basic protection (Cloudflare free tier) Medium Most e-commerce sites, news sites
Advanced protection (Cloudflare Pro, DataDome, PerimeterX) High Major retailers, social media, banking sites
Unknown / First time testing Medium Start here and adjust based on results

Tip: If your automation is getting blocked, increase sensitivity. If your automation is too slow, decrease sensitivity. Medium is the right balance for most use cases.

RTILA X uses cubic Bezier curves to generate mouse movement paths. This is the same mathematical technique used in professional animation software to create smooth, natural motion.

When the humanoid system needs to move the mouse from point A to point B, it:

  1. Calculates the distance between the current mouse position and the target element.

  2. Generates two random control points that define the curve’s shape. These control points are offset from the straight-line path by a random amount, scaled by the sensitivity factor.

  3. Divides the curve into steps based on the distance. Longer distances get more steps for smoother movement.

  4. Applies easing using a quadratic ease-in-out function. The mouse starts slowly, accelerates in the middle, and decelerates as it approaches the target — just like a human hand.

  5. Adds micro-variance to each step. Small random offsets (±2 pixels, scaled by sensitivity) are added to simulate the natural tremor of a human hand.

  6. Moves the mouse step by step with small delays between each step.

Without Humanoid (straight line):
Start ●━━━━━━━━━━━━━━━━━━● End
With Humanoid (Bezier curve):
Start ●
╲
╲
╲
╲
╲
╲
● End
With micro-variance:
Start ●
╲·
·╲·
·╲
╲·
·╲
·╲
● End

The humanoid system adds natural timing to mouse movements:

Phase Duration Description
Pre-movement pause 100–500ms Brief pause before starting movement (simulates human reaction time)
Movement Variable Depends on distance. Longer distances take proportionally longer
Step delays 5–15ms per step Small delays between each movement step
Post-movement pause 100–500ms Brief pause after reaching target before clicking

When humanoid behavior is enabled, the click command works like this:

  1. The element is scrolled into view if needed.
  2. The element’s bounding box is calculated.
  3. A target position is calculated near the element’s center with slight randomization (up to ±25% of width/height).
  4. The mouse moves from its current position to the target along a Bezier curve.
  5. A random pre-click delay is applied (100–500ms).
  6. The click is performed.
  7. A random post-click delay is applied (100–500ms).

When humanoid behavior is enabled, the fill command works like this:

  1. The element is scrolled into view if needed.
  2. The element’s position is calculated.
  3. The mouse moves to the element along a Bezier curve.
  4. A random pre-click delay is applied.
  5. The element is clicked to focus it.
  6. If clear_before_fill is enabled, the existing text is selected and deleted.
  7. Each character is typed one at a time with random delays between keystrokes.
  8. A random post-typing delay is applied.

The delay between each keystroke is randomized based on the sensitivity level:

Sensitivity Delay Range Result
Low 25–75ms per character Fast typing, ~13–40 characters per second
Medium 50–150ms per character Natural typing, ~7–20 characters per second
High 75–225ms per character Slow, deliberate typing, ~4–13 characters per second

When humanoid behavior is enabled, the check and uncheck commands work like this:

  1. The element is scrolled into view if needed.
  2. The mouse moves to the checkbox/radio button along a Bezier curve.
  3. A random pre-click delay is applied.
  4. The click is performed.
  5. A random post-click delay is applied.

When humanoid behavior is enabled, the select_option command works like this:

  1. The element is scrolled into view if needed.
  2. The mouse moves to the dropdown along a Bezier curve.
  3. A random pre-click delay is applied.
  4. The dropdown is clicked to open it.
  5. A brief pause simulates reading the options.
  6. The specified option is selected.
  7. A random post-selection delay is applied.

When humanoid behavior is enabled, the hover command works like this:

  1. The element is scrolled into view if needed.
  2. The element’s position is calculated with slight randomization.
  3. The mouse moves from its current position to the target along a Bezier curve.
  4. A random post-hover delay is applied (simulating reading time).

When humanoid behavior is enabled, the press command works like this:

  1. If a selector is provided, the element is scrolled into view.
  2. The mouse moves to the element (if applicable) along a Bezier curve.
  3. A random pre-press delay is applied.
  4. The key is pressed.
  5. A random post-press delay is applied.

Humanoid behavior can be configured in two places:

Global defaults apply to all projects that don’t have a specific Browser Profile assigned.

  1. Click your profile name in the bottom-left sidebar.
  2. Click Preferences.
  3. Go to the Stealth & Proxies tab.
  4. Find the Human-like Interaction section.
Setting Description Default
Enable Human-like Simulation Master toggle for all humanoid behavior On
Sensitivity Randomization level: Low, Medium, or High Medium

If a project has a Browser Profile assigned, the profile’s humanoid settings override the global defaults.

  1. Go to Browser Profiles in the sidebar.
  2. Create or edit a profile.
  3. Find the Human-like Interaction section.
Setting Description Default
Enable Human-like Simulation Master toggle for this profile On
Sensitivity Randomization level for this profile Medium

When both global defaults and a Browser Profile have humanoid settings, the priority is:

  1. Browser Profile settings (if assigned to the project) — highest priority
  2. Global defaults (Preferences) — used when no profile is assigned

Humanoid behavior is enabled by default because it provides the most significant anti-detection benefit with zero configuration required. However, you may want to disable it in specific situations:

Situation Recommendation
Testing/debugging your automation Temporarily disable for faster execution
Very simple automation with no bot protection Can disable for speed
Automation is too slow Try lowering sensitivity instead of disabling
Website is blocking you Keep enabled. Try increasing sensitivity instead
Production scraping Keep enabled. Always.

Warning: Disabling humanoid behavior significantly increases the chance of your automation being detected. Only disable it for testing purposes.

Humanoid Behavior and Other Stealth Features

Section titled “Humanoid Behavior and Other Stealth Features”

Humanoid behavior works together with other stealth features for maximum protection:

Feature What It Protects Against Works With Humanoid?
Proxies IP-based blocking and rate limiting ✅ Yes
CAPTCHA Solving CAPTCHA challenges ✅ Yes
Fingerprint Alignment Timezone/locale mismatch detection ✅ Yes
Resource Blocking Detection via loaded resources ✅ Yes
Browser Profiles Browser fingerprinting ✅ Yes

Tip: For maximum stealth, enable all stealth features together. Humanoid behavior handles interaction patterns, proxies handle IP detection, CAPTCHA solving handles challenges, and fingerprint alignment handles geographic consistency.

Humanoid behavior adds time to each interaction. Here’s the approximate overhead:

Interaction Without Humanoid With Humanoid (Medium) Overhead
Click ~100ms ~800–1,500ms +700–1,400ms
Fill (10 chars) ~200ms ~1,500–3,000ms +1,300–2,800ms
Hover ~50ms ~600–1,200ms +550–1,150ms
Select Option ~150ms ~1,000–2,000ms +850–1,850ms

Tip: If your automation is too slow, try lowering the sensitivity to Low instead of disabling humanoid entirely. You get most of the protection benefit with much less overhead.

Problem Solution
Clicks are landing on the wrong element The element may be too small. Try using a more specific selector or increasing the element’s clickable area.
Typing is too slow Lower the sensitivity to Low.
Mouse movement looks unnatural Increase the sensitivity to High for more natural curves.
Automation is getting blocked despite humanoid Enable other stealth features (proxies, CAPTCHA solving, fingerprint alignment).
Clicks are not registering The element may not be fully loaded. Add a wait_for_state command before the click.
Dropdown selection fails The dropdown may use a custom UI. Try using click commands instead of select_option.
Tip Description
Keep humanoid enabled by default It provides the best protection-to-performance ratio
Start with Medium sensitivity It works for most websites without adjustment
Increase sensitivity for protected sites If you’re getting blocked, try High sensitivity
Lower sensitivity for speed If speed matters more than stealth, use Low
Combine with other stealth features Humanoid alone isn’t enough for heavily protected sites
Don’t disable for production Only disable for testing and debugging
Add waits between actions Even with humanoid, adding wait commands between actions helps
Test on the target site Different sites have different detection thresholds
Monitor execution logs Check for any interaction failures in the logs
Use Browser Profiles for per-project settings Different sites may need different sensitivity levels