04.11.2019

This repo is pretty abandoned but script still working good, so you can modify it and use it. No further updates from me. Also you can make pull requests with your additional modifications, I check it from time to time and will merge any good modifications.

NoRecoil script

[UnKnoWnCheaTs]

Original UnKnoWnCheaTs forum thread is here

[STATUS]

Undetected so far...

[IMPORTANT NOTES]

[CONTENTS OF ARCHIVE]

requirements.txt - list of required python libs (use Python3 pls).
very_secret_script.py - main script
pattern_generator.py - script that helps you to get correct recoil configs
overlay_label.py - just a class to draw overlay label
image_search.py - just some funcs to work with images (detect current weapons)
keyboard_input.py - this one I downloaded from web (simple methods didn't work)
weapon_data/ - here you should store configs as GAMENAME.json files and images inside GAMENAME_img/ dir.

[INSTALLATION]

All you need for this script is Python3 with libs listed in requirements.txt.

[RUN SCRIPT]

To run this script you should use cmd command.
python ./very_secret_script.py CONFIG
Where CONFIG is the name of config (without .json) stored in weapon_data/ dir
As example for running NoRecoil script for Apex Legends use:
python ./very_secret_script.py apex

[KEYBINDINGS]

F4 - Trun on/off NoRecoil
F10 - Stop script
NUM_4 - Previous weapon
NUM_6 - Next weapon

For Apex Legends I gathered wapons images so my script will autodetect what weapon you're using ath the moment (only when NoRecoil is On). No need to manually switch it with NUM_4 and NUM_6.
It works ONLY in borderless 1920x1080.

[CONFIGS]

You can create your own configs for different games and my script should work well with them. Just use same format of .json file to store your config.
.json config formatting:

{
  "weapons": [
    {
      "name": "WeaponNameToDisplay",
      "rpm": 6000,
      "check_image": "weapon_image.png",
      "check_area": [0, 0, 1920, 1080],
      "pattern": [
        [0, 0],
        [0, -5]
      ]
    }
  ]
}

So it's basically a dictionary with a list of weapons under a key "weapons".
Each weapon in list should have keys:
"name" - string with weapon name.
"rpm" - RPM (rounds per minute) weapon stat. Can be googled or found on wiki of almost any game.
"check_image" - filename of image to check. File must be placed in "./weapon_data/CONFIG_img/" directory. Can be set to null if you have no images or just don't know/want to check. Then use manual weapon switching.
"check_area" - area on the screen where script should look for check_image. List of [x1, y1, x2, y2].
"pattern" - List with weapon recoil pattern. Each item in this list is [dx, dy]. It's differences in x and y from previous shot. Can be gathered with method described below.
NOTE: if you will use image_search for detecting current weapon try to use as small images as possible and as small areas as possible (like I do in Apex Legends config). Large images/areas may do weapon_detector run slowly.

[RECOIL PATTERN GENERATOR]

Also for easier config making I wrote a small script that will help you to gather recoil patterns. This script have some description in it but I will share my method of gathering recoil patterns.

[APEX LEGENDS CONFIG]

I wrote a sample config for Apex Legends.
It contains all weapons data and weapons images (for weapon autodetect). But I'm too lazy guy so I've filled recoil patterns only for light-ammo automatic weapons:
Alternator,
R-99,
R-301,
RE-45.
You can fill other weapons recoil_patterns by yourself using method I described above.
Also recoil_patterns I gathered may be a little bit not accurate (was too tired to snipe small pixels on my screen) so you can share your recoil_patterns with community in this thread.

[Meh?!]

I will be glad to hear any suggestions how I can improve this script!
Also you can try to build your configs for other games (or recoil_patterns for Apex Legends weapons) and share 'em in this thread or with pull requests.

Thanks for reading!