Better Readme (#8)

* Squashed commit of the following:

commit 10957c41487023dc0b996a100b9ca11024ac7ea6
Merge: 3e54f7b edce98a
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Thu Apr 14 16:45:07 2022 -0400

    Merge pull request #7 from wrp5031/feature/wade

    Faster analysis and softening of the aiming jitters

commit edce98a36982f83461c4569f4033401ea9a2c546
Merge: 05c9b17 3e54f7b
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Thu Apr 14 16:44:21 2022 -0400

    Merge branch 'main' into feature/wade

commit 05c9b17ca50cbd1bdfe5a8d5a283d1b2c32ae4d3
Author: wade <wpines@clarityinnovates.com>
Date:   Thu Apr 14 16:39:26 2022 -0400

    Screen capture area is based around the center of the screen. Added headshot mode. If multiple people, there is logic to take the person that had a coordinate closest to the last recorded coordinate.

commit 3e54f7ba975b4691fed2f9f61b163fed0f7d54df
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Sun Apr 10 00:02:39 2022 -0400

    Create requirements.txt

commit f1fa560e56ac6ed92e645b0b4c78dac08861459f
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Sat Apr 2 19:54:37 2022 -0400

    Changed readme title

commit a84ac9a238d47518bb45d64e27354f3fe65073ec
Author: TazMatic <31835653+TazMatic@users.noreply.github.com>
Date:   Thu Mar 31 16:52:02 2022 -0400

    Fix win32api and yaml package names

commit 8e32d8bd309c9e6de926213499d766bdf3d10fc8
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Tue Mar 15 16:54:36 2022 -0400

    Update about pressing Q

commit 3dc6835a9b33d7d27e9878b72550416b86fa2406
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Tue Mar 15 16:48:20 2022 -0400

    Update Readme

commit ae24cc3f496e2a9c2810f2876c262c3bef46df09
Merge: 21d431d 42954e0
Author: Elijah Harmon <elijahharmon@gmail.com>
Date:   Tue Mar 15 16:42:44 2022 -0400

    Merge pull request #3 from RootKit-Org/dev

    Now using YOLO

* Added live view images at top of readme

* Added a variable for easy shifting of AA when in games like fortnite

* CPS printing is now toggleable

* Made quit key easy to adjust

* Added verbage for configuring settings

* Updated the TOC

* Removed some extra spaces
This commit is contained in:
Elijah Harmon 2022-04-16 15:26:17 -04:00 committed by GitHub
parent 10957c4148
commit 9787b43034
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 84 additions and 14 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
test*
*.onnx
*.pt
*.torchscript

View File

@ -1,6 +1,31 @@
[![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com) [![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
# Ultimate Aimbot # AI Aimbot
**Adhere to our GNU licence or else we WILL come after you legally.**<br />
<p float="left">
<img src="imgs/halo.PNG" width="200" />
<img src="imgs/valorant.PNG" width="200" />
<img src="imgs/csgo.PNG" width="200" />
</p>
## Table of Contents
- [Intro](#intro)
- [Configurable Settings](#configurable-settings)
- [Current Stats](#current-stats)
- [REQUIREMENTS](#requirements)
- [Pre-setup](#pre-setup)
- [Run](#run)
- [Community Based](#community-based)
## Intro
AI Aimbot works in any game with humanoid characters and utilizes YOLOv5. (Mouse movements don't work in Valorant currently) It is currently 100% undetectable to anti-cheat systems due to it being visual-only in nature. You could be found cheating if you are manually reported by another player and your game is reviewed manually due to the botty looking aimming of an Aimbot.
This is meant for educational purposed and to expose how poorly prepared game developers are with these new waves on AI based cheats. Please share with this with your friendly neighborhood game dev so they can start patching.
Code is all in 1 file for easy of viewing and learning from.
***Use at your own risk. If you get banned get rekted idiot***
**Adhere to our GNU licence, come on we are a nonprofit.**<br />
- free to use, sell, profit from, litterally anything you want to do with it - free to use, sell, profit from, litterally anything you want to do with it
- **credit MUST be given to RootKit for the underlying base code** - **credit MUST be given to RootKit for the underlying base code**
@ -9,6 +34,32 @@ Watch the shorts video! - https://youtu.be/EEgspHlU_H0
Join teh Discord - https://discord.gg/rootkit Join teh Discord - https://discord.gg/rootkit
## Configurable Settings
*Default settings are good for most use cases. Read comments in code for more details.<br>
**CAPS_LOCK is the default for toggling on and off the autoaim functionality**
`videoGameWindowTitle` - (CHANGES PER GAME) Window title of the game you want to play. Does not need to be the complete window title.
`aaRightShift` - May need to be changed in 3rd person games like Fortnite and New World. Typically `100` or `150` will be sufficient.
`aaQuitKey` - Default is `q`, this may need to be changed to another key depending on the game.
`headshot_mode` - Make `False` if you want to aim more toward center mass.
`cpsDisplay` - Make `False` if you don't want the CPS to be displayed in the terminal.
`visuals` - Make `True` if you want to see what the AI sees. Can help with debugging issues.
`aaMovementAmp` - Default should be fine for 99% of use cases. Lower the value, the more smooth the autoaim will be. Recommended range is `0.5` - `2`.
`confidence` - Default should be kept unless you know what you are doing.
`screenShotHeight` - Default should be kept unless you know what you are doing.
`screenShotWidth` - Default should be kept unless you know what you are doing.
`aaDetectionBox` - Default should be kept unless you know what you are doing.
## Current Stats ## Current Stats
This bot's speed is VERY dependent on your hardware. We will update the model it uses for detection later with a faster one. This bot's speed is VERY dependent on your hardware. We will update the model it uses for detection later with a faster one.
@ -17,7 +68,7 @@ Bot was tested on a:
- 64 GB DDR4 - 64 GB DDR4
- Nvidia RTX 2080 - Nvidia RTX 2080
We got anywhere from 15-35 corrections per second. All games were ran at 1280x720 or close to it when testing. We got anywhere from 20-45 corrections per second. All games were ran at 1920x1080 or close to it when testing.
ANYTHING dealing with Machine Learning can be funky with your computer. So if you keep getting CUDA errors, you may want to restart your PC in order to make sure everything resets properly. ANYTHING dealing with Machine Learning can be funky with your computer. So if you keep getting CUDA errors, you may want to restart your PC in order to make sure everything resets properly.
@ -34,7 +85,8 @@ ANYTHING dealing with Machine Learning can be funky with your computer. So if yo
4. To install `PyTorch` go to this website, https://pytorch.org/get-started/locally/, and Select the stable build, your OS, Pip, Python and CUDA 11.3. Then select the text that is generated and run that command. 4. To install `PyTorch` go to this website, https://pytorch.org/get-started/locally/, and Select the stable build, your OS, Pip, Python and CUDA 11.3. Then select the text that is generated and run that command.
6. Copy and past the command below into your terminal. This will install the Open Source packages needed to run the program. 5. Copy and past the command below into your terminal. This will install the Open Source packages needed to run the program. You will need to `cd` into the downloaded directory first. Follow step 2 in the Run section below if you need help.
``` ```
pip install -r requirements.txt pip install -r requirements.txt
``` ```
@ -50,7 +102,11 @@ If you have python and the packages you are good to go. Load up any game on your
4. Press the enter key 4. Press the enter key
5. Type `python main.py`, press enter and that is it! 5. Type `python main.py`, press enter.
6. Use CAPS_LOCK to toggle on and off the autoaim functionality. **It is off by defualt**
7. Pressing `q` at anytime will completely quit the program
## Community Based ## Community Based
We are a community based nonprofit. We are always open to pull requests on any of our repos. You will always be given credit for all of you work. Depending on what you contribute, we will give you any revenue earned on your contributions 💰💰💰! We are a community based nonprofit. We are always open to pull requests on any of our repos. You will always be given credit for all of you work. Depending on what you contribute, we will give you any revenue earned on your contributions 💰💰💰!

BIN
imgs/csgo.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

BIN
imgs/halo.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 KiB

BIN
imgs/valorant.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

28
main.py
View File

@ -1,12 +1,9 @@
from unittest import result from unittest import result
import torch import torch
import pyautogui import pyautogui
import gc import gc
import numpy as np import numpy as np
import os, json, cv2, random import cv2
from PIL import Image
import time import time
import mss import mss
import win32api, win32con import win32api, win32con
@ -22,14 +19,25 @@ def main():
# How big the Autoaim box should be around the center of the screen # How big the Autoaim box should be around the center of the screen
aaDetectionBox = 320 aaDetectionBox = 320
# Autoaim speed # For use in games that are 3rd person and character model interferes with the autoaim
# EXAMPLE: Fortnite and New World
aaRightShift = 0
# Autoaim mouse movement amplifier
aaMovementAmp = 1.1 aaMovementAmp = 1.1
# Person Class Confidence # Person Class Confidence
confidence = 0.5 confidence = 0.5
# What key to press to quit and shutdown the autoaim
aaQuitKey = "Q"
# If you want to main slightly upwards towards the head
headshot_mode = True headshot_mode = True
# Displays the Corrections per second in the terminal
cpsDisplay = True
# Set to True if you want to get the visuals # Set to True if you want to get the visuals
visuals = False visuals = False
@ -47,7 +55,7 @@ def main():
# Setting up the screen shots # Setting up the screen shots
sctArea = {"mon": 1, "top": videoGameWindow.top + (videoGameWindow.height - screenShotHeight) // 2, sctArea = {"mon": 1, "top": videoGameWindow.top + (videoGameWindow.height - screenShotHeight) // 2,
"left": ((videoGameWindow.left + videoGameWindow.right) // 2) - (screenShotWidth // 2), "left": aaRightShift + ((videoGameWindow.left + videoGameWindow.right) // 2) - (screenShotWidth // 2),
"width": screenShotWidth, "width": screenShotWidth,
"height": screenShotHeight} "height": screenShotHeight}
@ -75,7 +83,8 @@ def main():
# Main loop Quit if Q is pressed # Main loop Quit if Q is pressed
last_mid_coord = None last_mid_coord = None
aimbot=False aimbot=False
while win32api.GetAsyncKeyState(ord('Q')) == 0:
while win32api.GetAsyncKeyState(ord(aaQuitKey)) == 0:
# Getting screenshop, making into np.array and dropping alpha dimention. # Getting screenshop, making into np.array and dropping alpha dimention.
npImg = np.delete(np.array(sct.grab(sctArea)), 3, axis=2) npImg = np.delete(np.array(sct.grab(sctArea)), 3, axis=2)
@ -105,7 +114,7 @@ def main():
targets.sort_values(by="dist", ascending=False) targets.sort_values(by="dist", ascending=False)
# Take the first person that shows up in the dataframe (Recall that we sort based on Euclidean distance) # Take the first person that shows up in the dataframe (Recall that we sort based on Euclidean distance)
xMid = round((targets.iloc[0].xmax + targets.iloc[0].xmin) / 2) xMid = round((targets.iloc[0].xmax + targets.iloc[0].xmin) / 2) + aaRightShift
yMid = round((targets.iloc[0].ymax + targets.iloc[0].ymin) / 2) yMid = round((targets.iloc[0].ymax + targets.iloc[0].ymin) / 2)
box_height = targets.iloc[0].ymax - targets.iloc[0].ymin box_height = targets.iloc[0].ymax - targets.iloc[0].ymin
@ -145,7 +154,8 @@ def main():
# Forced garbage cleanup every second # Forced garbage cleanup every second
count += 1 count += 1
if (time.time() - sTime) > 1: if (time.time() - sTime) > 1:
print(count) if cpsDisplay:
print("CPS: {}".format(count))
count = 0 count = 0
sTime = time.time() sTime = time.time()