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.
What Gets Simulated
Section titled “What Gets Simulated”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 |
Sensitivity Levels
Section titled “Sensitivity Levels”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 |
What Sensitivity Affects
Section titled “What Sensitivity Affects”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
Choosing the Right Sensitivity
Section titled “Choosing the Right Sensitivity”| 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.
How Mouse Movements Work
Section titled “How Mouse Movements Work”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.
The Bezier Curve Process
Section titled “The Bezier Curve Process”When the humanoid system needs to move the mouse from point A to point B, it:
-
Calculates the distance between the current mouse position and the target element.
-
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.
-
Divides the curve into steps based on the distance. Longer distances get more steps for smoother movement.
-
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.
-
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.
-
Moves the mouse step by step with small delays between each step.
Visual Representation
Section titled “Visual Representation”Without Humanoid (straight line): Start ●━━━━━━━━━━━━━━━━━━● End
With Humanoid (Bezier curve): Start ● ╲ ╲ ╲ ╲ ╲ ╲ ● End
With micro-variance: Start ● ╲· ·╲· ·╲ ╲· ·╲ ·╲ ● EndMovement Timing
Section titled “Movement Timing”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 |
How Each Interaction Works
Section titled “How Each Interaction Works”When humanoid behavior is enabled, the click command works like this:
- The element is scrolled into view if needed.
- The element’s bounding box is calculated.
- A target position is calculated near the element’s center with slight randomization (up to ±25% of width/height).
- The mouse moves from its current position to the target along a Bezier curve.
- A random pre-click delay is applied (100–500ms).
- The click is performed.
- A random post-click delay is applied (100–500ms).
Fill (Typing into Input Fields)
Section titled “Fill (Typing into Input Fields)”When humanoid behavior is enabled, the fill command works like this:
- The element is scrolled into view if needed.
- The element’s position is calculated.
- The mouse moves to the element along a Bezier curve.
- A random pre-click delay is applied.
- The element is clicked to focus it.
- If
clear_before_fillis enabled, the existing text is selected and deleted. - Each character is typed one at a time with random delays between keystrokes.
- A random post-typing delay is applied.
Character Typing Delays
Section titled “Character Typing Delays”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 |
Check/Uncheck
Section titled “Check/Uncheck”When humanoid behavior is enabled, the check and uncheck commands work like this:
- The element is scrolled into view if needed.
- The mouse moves to the checkbox/radio button along a Bezier curve.
- A random pre-click delay is applied.
- The click is performed.
- A random post-click delay is applied.
Select Option (Dropdown)
Section titled “Select Option (Dropdown)”When humanoid behavior is enabled, the select_option command works like this:
- The element is scrolled into view if needed.
- The mouse moves to the dropdown along a Bezier curve.
- A random pre-click delay is applied.
- The dropdown is clicked to open it.
- A brief pause simulates reading the options.
- The specified option is selected.
- A random post-selection delay is applied.
When humanoid behavior is enabled, the hover command works like this:
- The element is scrolled into view if needed.
- The element’s position is calculated with slight randomization.
- The mouse moves from its current position to the target along a Bezier curve.
- A random post-hover delay is applied (simulating reading time).
Press Key
Section titled “Press Key”When humanoid behavior is enabled, the press command works like this:
- If a selector is provided, the element is scrolled into view.
- The mouse moves to the element (if applicable) along a Bezier curve.
- A random pre-press delay is applied.
- The key is pressed.
- A random post-press delay is applied.
Configuration Locations
Section titled “Configuration Locations”Humanoid behavior can be configured in two places:
Global Defaults (Preferences)
Section titled “Global Defaults (Preferences)”Global defaults apply to all projects that don’t have a specific Browser Profile assigned.
- Click your profile name in the bottom-left sidebar.
- Click Preferences.
- Go to the Stealth & Proxies tab.
- 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 |
Browser Profile (Per-Project Override)
Section titled “Browser Profile (Per-Project Override)”If a project has a Browser Profile assigned, the profile’s humanoid settings override the global defaults.
- Go to Browser Profiles in the sidebar.
- Create or edit a profile.
- 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 |
Priority Order
Section titled “Priority Order”When both global defaults and a Browser Profile have humanoid settings, the priority is:
- Browser Profile settings (if assigned to the project) — highest priority
- Global defaults (Preferences) — used when no profile is assigned
Disabling Humanoid Behavior
Section titled “Disabling Humanoid Behavior”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.
Performance Impact
Section titled “Performance Impact”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.
Troubleshooting
Section titled “Troubleshooting”| 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. |
Tips and Best Practices
Section titled “Tips and Best Practices”| 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 |