This project is a real-time object detection bot for Brawl Stars, powered by Ultralytics YOLOv8.
It detects UI elements such as when a gadget is charged and automatically simulates a tap using ADB on your Android device.
- Mirrors your game screen using
scrcpy - Captures the screen using
mssin real-time - Runs YOLOv8 on each frame to detect objects like:
gadget_chargedgadget_not_charged
- Sends tap commands using pure Python ADB integration when actions are triggered
project/
├── gadget.py # Tap coordinates for gadgets
├── test.py # Main detector and action loop
├── best.pt # Trained YOLOv8 model
├── data.yaml # Dataset configuration file
├── dataset/
│ ├── train/
│ │ ├── images/
│ │ └── labels/
│ └── val/
│ ├── images/
│ └── labels/
Use a tool like makesense.ai or CVAT to annotate screenshots from Brawl Stars.
You must export using:
✅ YOLO with Images
Structure:
dataset/
├── train/
│ ├── images/
│ └── labels/
├── val/
│ ├── images/
│ └── labels/
data.yaml
train: dataset/train/images
val: dataset/val/images
nc: 2
names: ['gadget_charged', 'gadget_not_charged']yolo detect train data=data.yaml model=yolov8n.pt epochs=30 imgsz=640 device=0The project didn’t progress as planned because the manual labeling process was too slow and time-consuming. While the tools worked correctly (like makesense.ai), the effort required to label enough examples for training made it difficult to build a large, high-quality dataset.
Why It Failed:
- Labeling each image manually became tedious and repetitive
- Not enough labeled data to train a reliable YOLOv8 model
- Dataset remained too small for good detection performance
Even after organizing the dataset and setting up training, the combination of:
- Manual labeling overhead
- Limited compute power (GTX 1650 GPU)
- Small dataset
...led to slow progress. This blocked testing and real-time integration into the bot.
Possible solutions:
- Use Google Colab for training
- Use fewer epochs or a smaller model (
yolov8n) - Collaborate to speed up labeling
- Add detection for enemies, power cubes, and supers
- Implement smarter action logic (e.g., auto-aim)
- Use segmentation or tracking models for more precise control
- Ultralytics YOLOv8
scrcpyfor screen mirroringmssfor screen capture- ADB for Android input simulation
- Chatgpt for making this :)