A fully external 2-computer colorbot for Valorant, using NDI to transfer video frames between computers and a MAKCU device to spoof mouse movement and clicks. Because the frames are only ever analysed on the second computer, it can be very difficult for anticheats to detect. (I used this script for multiple months on my main account and have not received a ban)
Test.2.-.Trim.mp4
- Triggerbot: Shoots when the crosshair is over an enemy
- Aimbot: Moves the mouse to the enemy's head
- Humanised Aim: Adds randomness to the mouse movement to make it look more human
- Menu UI: CustomTkinter UI for easy configuration on the second PC
- NDI Source Finder: Automatically finds NDI sources
- MAKCU Support: Supports Makcu device for emulating mouse movement and clicks
- Main Computer: Capable of running both Valorant and OBS simultaneously.
- Second Computer: Any python-capable device able to run the script. (e.g. Raspberry Pi, Laptop, Second PC)
- MAKCU Device: Required for emulating mouse movement and clicks. You can also use other mouse input devices but no support is provided.
- Ethernet Connection: A wired Ethernet connection between the main PC and the second PC for low latency, Wifi is not recommended.
On your main (gaming) computer:
- OBS-NDI Plugin: Install the OBS-NDI plugin for OBS on your main computer.
On your secondary computer:
-
Install Python:
- Python 3.10 or higher from python.org
-
Install NDI SDK & Python-NDI:
- NDI SDK version for your specific operating system.
- The Python-NDI library.
-
Clone the repository:
git clone https://github.com/Violevo/2PC-Valorant-Colorbot cd 2PC-Valorant-Colorbot -
Set up a Virtual Environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Script:
python main.py
The program works as follows:
-
OBS Captures the Valorant Game Window:
- OBS is captures the Valorant.exe window as a video stream
-
The Video Stream Is Sent Over Your Local Network Using OBS-NDI:
- OBS streams the captured video to a second computer via the OBS-NDI plugin.
-
The Second Computer Receives This Video Stream Using Python-NDI:
- Python-NDI receives the video stream and processes it.
-
The Program Generates a Similarity Map:
- The program compares the pixels of each frame against a colour range of enemy outlines to create a similarity map. In short, this is an image of where the enemy's are in game.
-
Triggerbot:
- If the crosshair has pixels from the similarity map both above and below it (+/- a few horizontal pixels), indicating it's over a player, the program triggers a click function to shoot.
-
Aimbot Functionality:
-
For the aimbot, the topmost pixel in the similarity map is subtracted from the crosshair’s position to create a vector (in pixels) pointing to the player’s head.
-
The amount the mouse should move for each pixel is calculated from the following formula:
$$ 1.07437623 \times \text{Sensitivity}^{-0.9936827126} $$
-
-
Triggerbot / Aimbot Data Is Transmitted Over USB:
-
The processed data (mouse movement and triggerbot signal) is sent over USB to a Makcu Device.
-
The Makcu Device decodes the data and combines it with legitimate mouse movement data from the mouses sensor to create a spoofed mouse movement signal.
-
The spoofed mouse movement signal is then sent to the main computer.
-
The project is structured as follows:
├── main.py # Entry point (root)
├── config.json # Configuration settings
├── icon.ico # UI Icon
├── requirements.txt # Python dependencies
└── src/
├── main.py # Main execution logic
├── core/
│ └── colorbot.py # Detection & processing
├── drivers/
│ ├── mouse.py # Pico/Makcu driver
│ └── screen.py # NDI capture driver
├── ui/
│ └── app.py # CustomTkinter UI
└── utils/
└── config_manager.py
Contributions are always welcome. If you'd like to contribute to this project, please fork the repository, create a feature branch, and submit a pull request. Here is a list of additional features that could be implemented:
- Redevelop in C++ for improved performance
- Add humanised aim (Bezier curves) + Smoothing + Randomness
- Extend feature list (Recoil, Instalock, etc)
A list of recources that helped me develop this project
This project is licensed under the GNU GPLv3 License - see the LICENSE file for more details.
I am not responsible for any bans you may receive from using this project. Please use it at your own risk.

