Skip to content

About

Zero-dependency Windows recoil compensation tool that auto-pulls the mouse down during sustained fire, using Python ctypes and the Win32 input API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecoilControl - Project Report

Project: Mouse Vertical Down Movement Controller Target Games: Recoil-based FPS titles (primarily PUBG PC) Platform: Windows Language: Python 3 (ctypes, Windows API only - no external dependencies)


1. Overview

RecoilControl is a lightweight Windows utility that automatically pulls the mouse downward while the left mouse button is held. In recoil-based shooters like PUBG PC, weapons kick upward when firing; this tool counteracts that climb, helping keep the crosshair on target during sustained fire.

2. How It Works

  • Uses GetAsyncKeyState (via ctypes / user32.dll) to detect global input - works even when the game window has focus.
  • Uses mouse_event(MOUSEEVENTF_MOVE) to inject relative mouse movement.
  • Main loop runs continuously:
    1. Checks hotkeys (pause / resume / calibrate / exit).
    2. If enabled and left click is held -> moves mouse down by MOVE_SPEED pixels.
    3. Sleeps MOVE_INTERVAL seconds between ticks.

Default behavior: 3 px per tick every ~9 ms, giving a smooth, constant downward pull.

3. Controls

Input Action
Hold LMB Mouse moves down (recoil pull)
5 or G Pause movement
1 or X Resume movement
] Calibrate speed / interval
DELETE Exit program

Pause/resume keys (5, G, 1) double as common PUBG weapon-slot / utility keys so the tool can be toggled naturally during gameplay.

4. Configuration

Setting Default Description
MOVE_SPEED 3 px Downward pixels per tick
MOVE_INTERVAL 0.009 s Delay between ticks (lower = faster)

Both can be changed live via the calibration mode (] key) or edited at the top of main.py.

5. Project Files

File Purpose
main.py Full application logic (~146 lines)
rc.bat One-click launcher (runs Python + main.py)

6. Strengths

  • Zero dependencies - pure standard library + WinAPI.
  • Global input detection works inside fullscreen games.
  • Live calibration without restarting.
  • Simple pause/resume suited to in-game key layouts.

7. Limitations & Notes

  • Windows-only (relies on user32.dll).
  • Fixed vertical-only compensation; no per-weapon profiles yet.
  • Calibration mode pauses gameplay (uses console input()).
  • rc.bat currently points to C:\Akila_Ya\AI Projects\RecoilControl but the project lives at C:\Akila_Ya\Projects\RecoilControl - path needs fixing.
  • Anti-cheat caution: injected mouse input may be flagged by some game anti-cheat systems; use responsibly and check each game's terms of service.

8. Possible Improvements

  1. Fix launcher path in rc.bat.
  2. Per-weapon recoil profiles with hotkey switching.
  3. Config file (JSON/INI) instead of hardcoded defaults.
  4. Adjustable horizontal drift compensation.
  5. Tray icon / overlay UI instead of console window.

Report generated: August 2026

About

Zero-dependency Windows recoil compensation tool that auto-pulls the mouse down during sustained fire, using Python ctypes and the Win32 input API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages