Merge pull request #1 from RootKit-Org/dev

v1
This commit is contained in:
Elijah Harmon 2022-02-26 11:16:57 -05:00 committed by GitHub
commit 9091217972
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 363 additions and 188 deletions

73
README.md Normal file
View File

@ -0,0 +1,73 @@
[![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
# Ultimate Aimbot
**Adhere to our GNU licence or else we WILL come after you legally.**<br />
- 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**
Watch the tutorial video! - Coming Soon<br />
Watch the shorts video! - https://youtu.be/EEgspHlU_H0
Join teh Discord - https://discord.gg/rootkit
## V2 - Coming soon
We have already finished the V2 bot BUT will be releasing it on the 6th. Patreons subs will get it right now (https://www.patreon.com/rootkit)!
V2 bot runs about 5-8x faster. Additionally V2 will now need detectron so it will run on more computers.
## 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.
Bot was tested on a:
- AMD Ryzen 7 2700
- 64 GB DDR4
- Nvidia RTX 2080
We got anywhere from 5-15 corrections per second which is pretty slow. All games were ran at 1280x720 or close to it.
The main slow down is the model's prediction speed averaging anywhere from .09-.29s.
The second biggest slow down is the garbage collection. It runs only once per second and takes about .05 seconds to run in generation 0.
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.
### REQUIREMENTS
- Nvidia RTX 2080/3070 or higher
- Nvidia CUDA Toolkit 11.3 (https://developer.nvidia.com/cuda-11.3.0-download-archive)
### Pre-setup
1. Unzip the file and place the folder somewhere easy to access
2. Make sure you have a pet Python (aka install python) - https://www.python.org/
3. (Windows Users) Open up either `PowerShell` or `Command Prompt`. This can be done by pressing the Windows Key and searching for one of those applications.
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.
5. To install `detectron2` go to this website, https://detectron2.readthedocs.io/en/latest/tutorials/install.html and follow the instructions. **They don't officially support Windows but it will work on Windows**. You will either need to install it on the WSL or you will need the underlying compiler.
6. Copy and past the commands below into your terminal. This will install the Open Source packages needed to run the program.
```
pip install PyAutoGUI
pip install PyDirectInput
pip install Pillow
pip install opencv-python
pip install mss
pip install numpy
```
### Run
If you have python and the packages you are good to go. Load up any game on your MAIN monitor and load into a game.
1. (Windows Users) Open up either `PowerShell` or `Command Prompt`. This can be done by pressing the Windows Key and searching for one of those applications.
2. Type `cd ` (make sure you add the space after the cd or else I will call you a monkey)
3. Drag and drop the folder that has the bot code onto the terminal
4. Press the enter key
5. Type `python main.py`, press enter and that is it!
## 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 always looking for new Volunteers to join our Champions!
If you have any ideas for videos or programs, let us know!**

102
main.py Normal file
View File

@ -0,0 +1,102 @@
import pyautogui
import gc
import pydirectinput
import numpy as np
import os, json, cv2, random
from PIL import Image
import time
import mss
from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog
def main():
# Window title to go after and the height of the screenshots
videoGameWindowTitle = "Counter-Strike"
videoGameWindowTitle = "Valorant"
screenShotHeight = 250
# How big the Autoaim box should be around the center of the screen
aaDetectionBox = 300
# Autoaim speed
aaMovementAmp = 2
# 0 will point center mass, 40 will point around the head in CSGO
aaAimExtraVertical = 40
# Loading up the object detection model
cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 # set threshold for this model
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml")
predictor = DefaultPredictor(cfg)
# Selecting the correct game window
videoGameWindows = pyautogui.getWindowsWithTitle(videoGameWindowTitle)
videoGameWindow = videoGameWindows[0]
# Select that Window
videoGameWindow.activate()
# Setting up the screen shots
sctArea = {"mon": 1, "top": videoGameWindow.top + round((videoGameWindow.height - screenShotHeight) / 2), "left": videoGameWindow.left, "width": videoGameWindow.width, "height": screenShotHeight}
sct = mss.mss()
# Calculating the center Autoaim box
cWidth = sctArea["width"] / 2
cHeight = sctArea["height"] / 2
# Used for forcing garbage collection
count = 0
sTime = time.time()
# Main loop
while True:
# Getting screenshop, making into np.array and dropping alpha dimention.
npImg = np.delete(np.array(sct.grab(sctArea)), 3, axis=2)
# Detecting all the objects
predictions = predictor(npImg)
# Removing anything that isn't a human and getting the center of those object boxes
predCenters = predictions['instances'][predictions['instances'].pred_classes== 0].pred_boxes.get_centers()
# Returns an array of trues/falses depending if it is in the center Autoaim box or not
cResults = ((predCenters[::,0] > cWidth - aaDetectionBox) & (predCenters[::,0] < cWidth + aaDetectionBox)) & \
((predCenters[::,1] > cHeight - aaDetectionBox) & (predCenters[::,1] < cHeight + aaDetectionBox))
# Moves variable from the GPU to CPU
predCenters = predCenters.to("cpu")
# Removes all predictions that aren't closest to the center
targets = np.array(predCenters[cResults])
# If there are targets in the center box
if len(targets) > 0:
# Get the first target
mouseMove = targets[0] - [cWidth, cHeight + aaAimExtraVertical]
# Move the mouse
pydirectinput.move(round(mouseMove[0] * aaMovementAmp), round(mouseMove[1] * aaMovementAmp), relative=True)
# Forced garbage cleanup every second
count += 1
if (time.time() - sTime) > 1:
count = 0
sTime = time.time()
gc.collect(generation=0)
#! Uncomment to see visually what the Aimbot sees
# v = Visualizer(npImg[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
# out = v.draw_instance_predictions(predictions["instances"].to("cpu"))
# cv2.imshow('sample image',out.get_image()[:, :, ::-1])
# if (cv2.waitKey(1) & 0xFF) == ord('q'):
# exit()
if __name__ == "__main__":
main()