How to Make your own color aimbot with python and arduino?

 EASIEST way of coding color aimbot on python for games like halo, valorant, etc. (caution: Only for Educational purposes only)

There are too many hardware cheats where u can make your own too with the help of a user called Grandmaster55. He did show the easy way still looks hard if you’re new to coding.

What is Python?

Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built-in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python’s simple, easy-to-learn syntax emphasizes readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse. The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms and can be freely distributed.

What is Arduino ?

The Arduino Leonardo is a microcontroller board based on the ATmega32u4 (datasheet). It has 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with an AC-to-DC adapter or battery to get started.

What is Color Aimbot?

A color aimbot works only when you run the game in window mode. It uses GDI+ to capture the window rectangle, so it does not work on a fullscreen game. You might as well already know this. Another downside is that it uses many system resources.

Will it work in a laptop?

yes, it will work

color bot do exist still not able with this hardware but this video seller is paid version and doesn’t recommend buying

Things you need

  • Arduino Leonardo
  • USB host shield

First, you need an Arduino Leonardo with a USB host shield and you need to solder it like this

Then upload this code to your Arduino thanks @gr3gthepilot for sharing this code. I just added some serial reading things in it.

Code:

#include  
#include  
#include  
#include  
USB     Usb; 
USBHub     Hub(&Usb); 
 
byte bf[2];
 
#include  
 
HIDBoot    HidMouse(&Usb); 
 
String myString;  
int j = 0; 
int c = 0; 
int e = 0; 
int lmb = 0; 
int rmb = 0; 
int mmb = 0; 
int dx; 
int dy; 
int arr[2]; 
int arrv[8]; 
 
class MouseRptParser : public MouseReportParser 
 
{ 
 
  protected: 
 
    void OnMouseMove  (MOUSEINFO *mi); 
 
    void OnLeftButtonUp (MOUSEINFO *mi); 
 
    void OnLeftButtonDown (MOUSEINFO *mi); 
 
    void OnRightButtonUp  (MOUSEINFO *mi); 
 
    void OnRightButtonDown  (MOUSEINFO *mi); 
 
    void OnMiddleButtonUp (MOUSEINFO *mi); 
 
    void OnMiddleButtonDown (MOUSEINFO *mi); 
 
}; 
 
 
void MouseRptParser::OnMouseMove(MOUSEINFO *mi) 
 
{ 
 
  dx = mi->dX; 
 
  dy = mi->dY; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi) 
 
{ 
 
  lmb = 0; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnLeftButtonDown (MOUSEINFO *mi) 
 
{ 
 
  lmb = 1; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnRightButtonUp  (MOUSEINFO *mi) 
 
{ 
 
  rmb = 0; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnRightButtonDown  (MOUSEINFO *mi) 
 
{ 
 
  rmb = 1; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnMiddleButtonUp (MOUSEINFO *mi) 
 
{ 
 
  mmb = 0; 
 
}; 
 
  
 
  
 
void MouseRptParser::OnMiddleButtonDown (MOUSEINFO *mi) 
 
{ 
 
  mmb = 1; 
 
}; 
 
  
 
MouseRptParser  Prs; 
 
void setup() {
 
  delay(5000); 
  Mouse.begin(); 
  Serial.begin(115200); 
  Serial.setTimeout(1);
   
  Usb.Init(); 
  HidMouse.SetReportParser(0, &Prs); 
  } 
 
void loop() {
  dx = 0; 
 
  dy = 0; 
 
   
 
  j = 0; 
 
  c = 0; 
 
  e = 0; 
 
     
 
  Usb.Task(); 
 
  
 
  //Clicking 
 
  if (lmb == 0){ 
 
    Mouse.release(MOUSE_LEFT); 
 
    } 
 
     
 
  else if (lmb == 1){ 
 
    Mouse.press(MOUSE_LEFT); 
 
    } 
 
  
 
  if (rmb == 0){ 
 
    Mouse.release(MOUSE_RIGHT); 
 
    } 
 
     
 
  else if (rmb == 1){ 
 
    Mouse.press(MOUSE_RIGHT); 
 
    } 
 
  
 
  if (mmb == 0){ 
 
    Mouse.release(MOUSE_MIDDLE); 
 
    } 
 
     
 
  else if (mmb == 1){ 
 
    Mouse.press(MOUSE_MIDDLE); 
 
    } 
    if (Serial.available() > 0) {
    Serial.readBytes(bf, 2);
   
    Mouse.move(bf[0], bf[1], 0);
 
  }
   else { 
 
    Mouse.move(dx, dy); 
 
    } 
}

let’s go to the python part, including some libraries!

code:

import cv2
from mss import mss
import numpy as np
import win32con, win32api
import serial

Cv2 for image processing, mss for Screencapturing (it’s same as bitblt on c++) win32api for checking the status of keys and buttons, and serial for Arduino mouse movements.

start mss and set fov, you can take fov as an input like COM
This part is calculating middle of the screen and taking the FOV.

code:

fov = 75
sct = mss()
 
 
com = input("com..: ")
arduino = serial.Serial(com, 115200)
boyutlar = sct.monitors[1]
boyutlar['left'] = int((boyutlar['width'] / 2) - (fov / 2))
boyutlar['top'] = int((boyutlar['height'] / 2) - (fov / 2))
boyutlar['width'] = fov
boyutlar['height'] = fov
 
mid = fov/2

Now we need to find HSV colors of purple enemies.

lower = np.array([140,110,150])
upper = np.array([150,195,255])

Sens settings

code:

xspd = float(input("x speed...default 0.1 :"))
yspd = float(input("y speed...default 0.1 :"))

And now the main loop, This part is Aimkey, processing image, calculating center of the purple enemies

code:

while True:
    if win32api.GetAsyncKeyState(0x01) < 0: #AIM KEY
        
        img = np.array(sct.grab(boyutlar))
        hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, lower,upper)
        kernel = np.ones((3,3), np.uint8)
        dilated = cv2.dilate(mask,kernel,iterations= 5)
        thresh = cv2.threshold(dilated, 60, 255, cv2.THRESH_BINARY)[1]
        contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
        if len(contours) != 0:
            M = cv2.moments(thresh)
            cX = int(M["m10"] / M["m00"])
            cY = int(M["m01"] / M["m00"])
            x = -(mid - cX) if cX < mid else cX - mid
            y = -(mid - cY) if cY < mid else cY - mid
            
            x2 = x *xspd
            y2 = y *yspd
            mouse_move(x2,y2)

You can improve it. This is just a simple solution.

Example full code

code:

import cv2
from mss import mss
import numpy as np
import win32api
import serial
 
 
ortakare = int(input("fov...: "))
 
sct = mss()
 
 
com = input("com..: ")
arduino = serial.Serial(com, 115200)
 
boyutlar = sct.monitors[1]
boyutlar['left'] = int((boyutlar['width'] / 2) - (ortakare / 2))
boyutlar['top'] = int((boyutlar['height'] / 2) - (ortakare / 2))
boyutlar['width'] = ortakare
boyutlar['height'] = ortakare
mid = ortakare/2
 
 
# lower = np.array([140,110,150])
# upper = np.array([150,195,255])
 
 
lower = np.array([140,111,160])
upper = np.array([148,154,194])
 
xspd = float(input("x speed...default 0.1 :"))
yspd = float(input("y speed...default 0.1 :"))
print("Ready !")
 
def mousemove(x,y):
    if x < 0: 
        x = x+256 
    if y < 0:
        y = y+256 
 
    pax = [int(x),int(y)]
    arduino.write(pax)
 
 
while True:
    if win32api.GetAsyncKeyState(0x01) < 0:
        
        img = np.array(sct.grab(boyutlar))
        hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, lower,upper)
        kernel = np.ones((3,3), np.uint8)
        dilated = cv2.dilate(mask,kernel,iterations= 5)
        thresh = cv2.threshold(dilated, 60, 255, cv2.THRESH_BINARY)[1]
        contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
        if len(contours) != 0:
            M = cv2.moments(thresh)
            cX = int(M["m10"] / M["m00"])
            cY = int(M["m01"] / M["m00"])
            x = -(mid - cX) if cX < mid else cX - mid
            y = -(mid - cY) if cY < mid else cY - mid
            
            x2 = x *xspd
            y2 = y *yspd
            mousemove(x2,y2)

How to contact?

If you want to ask questions add him on discord Enter The Ninja#1088

His Message: I know it's a sh*t source please don't remind it to me or slap that on my face.

WARNING: IF Your ban using this we are not responsible

Leaking only for educational purposes! Making sure the Developers find out and ban these hardware!

  For the Latest gaming news and reviews, follow Spawnback on Twitter and Facebook, JOIN OUR TELEGRAM FOR GIVEAWAY AND LATEST NEWS 

Leave a Reply