Stop paying for macro apps that do one simple thing. StrafeHelper is a transparent, open-source utility for the movement community — free, auditable, and built to stay that way.
| Feature | Description |
|---|---|
| Lurch Strafing | Automates rapid A↔D cycling while airborne to exploit Apex's momentum system for tight directional strafes — the core of Lurch Tech movement. Delay and hold-duration configurable. |
| SnapTap / SOCD | Last-input-wins axis filtering — press both A+D and only the most-recent registers. |
| Turbo Loot | Auto-repeats a loot key at configurable speed while held. |
| Turbo Jump | Auto-repeats a jump key at configurable speed while held. |
| Superglide | One-press automation of the Jump → (1 frame) → Crouch sequence with sub-millisecond QPC timing. |
| Dual Input Backends | WH_KEYBOARD_LL hook (default) or Interception kernel driver, hot-switchable at runtime. |
| ImGui GUI | Tabbed interface: Config, State Monitor, Console. All binds rebindable in-app. |
A Superglide is an instant 1-frame acceleration out of a Mantle. It combines the speed of a Slide and a Jump simultaneously — because you leave the ground mid-mantle, you don't hit friction and keep all the velocity.
What the game requires:
- You must be sprinting into a mantle.
- In the last 0.15 seconds of the mantle animation, execute the input package:
- Jump (Space)
- Exactly 1 frame later → Crouch (Left Ctrl)
The mantle timing is the human element — StrafeHelper removes hardware timing variance from the input package entirely.
What StrafeHelper automates:
- Press your designated Superglide bind (suppressed — the game never sees it).
- StrafeHelper instantly injects:
- Jump (Space)
- Waits exactly 1 frame at your configured FPS using sub-millisecond QPC timing
- Crouch (Left Ctrl)
You still need to time the mantle window yourself — StrafeHelper guarantees the Jump→Crouch interval is pixel-perfect every time.
Timing precision:
Frame duration = freq / targetFPS in QPC ticks (no integer truncation). Hybrid wait: coarse Sleep(1) + QPC busy-spin for the final 0.5 ms. Achieves <10 µs accuracy at any frame rate.
Config options (in-app or config.cfg):
| Key | Default | Description |
|---|---|---|
enable_superglide |
false |
Master toggle |
superglide_bind |
192 (tilde ~) |
VK code of the trigger key |
target_fps |
60.0 |
Game frame rate — determines the 1-frame delay |
A 500 ms cooldown after each execution prevents accidental re-trigger from key-hold auto-repeat.
Both backends are selectable from the Config tab at runtime without restarting.
WH_KEYBOARD_LL low-level keyboard hook. No driver required.
| Driver required | ✗ |
| Physical key suppression | ✗ (passthrough only) |
Kernel-mode filter driver via Interception. Operates below the Windows input stack.
| Driver required | ✓ Interception driver |
| DLL required | ✓ interception.dll next to the exe |
| Physical key suppression | ✓ |
Setup: Install the driver, place interception.dll next to the exe, launch StrafeHelper. The Config tab shows a live status badge:
| Badge | Color | Meaning |
|---|---|---|
[ OK ] |
Green | Driver ready |
[ X ] |
Red | interception.dll not found |
[ ! ] |
Amber | DLL present, driver not running |
- Language: C++20 (MSVC v143)
- GUI: Dear ImGui · Win32 + DirectX 11 backend · Inter font
- Threading: One Win32 thread + auto-reset event per feature; atomic config shared across threads
- Timing:
QueryPerformanceFrequency/QueryPerformanceCounterfor frame-accurate sleep;timeBeginPeriod(1)for coarse sleep resolution - Injection:
SendInputwithKEYEVENTF_SCANCODE; synthetic events tagged withNEO_SYNTHETIC_INFORMATIONto avoid re-entrant processing
InputBackend (abstract)
├── KbdHookBackend — WH_KEYBOARD_LL hook thread → event queue → PollEvents
└── InterceptionBackend — Interception driver polling thread → event queue → PollEvents
Application
├── DispatchKeyEvent — routes Interception events to feature handlers
├── KeyboardProc — routes WinHook events to feature handlers
└── Feature threads (Win32 HANDLE + Event)
├── SpamLogic
├── TurboLogic (Loot + Jump)
└── SuperglideLogic
Gui::GuiManager — ImGui render loop (Config / Monitor / Console tabs)
Config namespace — atomic<T> vars + LoadConfig / SaveConfig (key=value file)
- Open Visual Studio 2022 (v143 toolset).
- Open
StrafeHelper.sln. - Set configuration to Release | x64.
- Build — output at
x64/Release/StrafeHelper.exe.
Or from PowerShell:
$msbuild = Get-ChildItem "C:\Program Files\Microsoft Visual Studio\*\Community\MSBuild" -Recurse -Filter "MSBuild.exe" | Select-Object -First 1 -ExpandProperty FullName
& $msbuild StrafeHelper.sln /p:Configuration=Release /p:Platform=x64 /mFor educational and personal use only. Respect the terms of service of the games you play. The author are not responsible for any consequences arising from use of this software.
MIT — see LICENSE.txt.


