Skip to content

codedpro/boot-breaker-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฅพ Boot Breaker Bot โ€” Auto-Player for Dota 2 "Boot Breaker" (Dark Carnival Minigame)

A free, open-source computer-vision bot that automatically plays the Dota 2 Boot Breaker mini-game (the Arkanoid / brick-breaker game in the Dark Carnival event). It watches your screen, tracks the flying boot, and steers the paddle for you โ€” clearing blocks and racking up points hands-free.

Download the latest release Platform: Windows Python 3.12 MIT License

Boot Breaker Bot playing the Dota 2 Dark Carnival minigame

๐Ÿ† Racks up 100,000+ points fully unattended โ€” plays level after level on its own.

Keywords: Dota 2 Boot Breaker bot ยท Dark Carnival minigame auto-player ยท Arkanoid / brick-breaker bot ยท Dota 2 event script ยท OpenCV screen-capture game bot ยท Python Windows game automation.

โญ If this bot earns you points, please star the repo โ€” it helps others find it!


โœจ Features

  • ๐ŸŽฏ Auto-catch โ€” predicts where the boot will land (including wall bounces) and slides the paddle under it.
  • ๐Ÿงฑ Block-aware aiming โ€” deflects the boot toward the side with the most blocks, so it keeps scoring instead of leveling out the top too early.
  • ๐Ÿš€ Auto-serve โ€” detects the between-level "LOCK CART POSITION" and "THROW BOOT" prompts and taps Space to launch the next boot, so it plays level after level unattended.
  • ๐Ÿ‘๏ธ Live preview โ€” an on-screen window shows exactly what the bot sees (boot, paddle, predicted landing).
  • โŒจ๏ธ Keyboard control โ€” drives the in-game paddle with A/D or the arrow keys (your choice).
  • ๐Ÿ”ง One-time calibration โ€” point at your play area once; settings are saved.
  • ๐Ÿ–ฑ๏ธ Global hotkeys โ€” start/stop with F8 at any time.

๐Ÿš€ Quick Start โ€” Two Easy Ways

๐ŸŸข Option 1 โ€” The easy way (no Python, no setup)

  1. โฌ‡๏ธ Download boot-breaker-bot.exe from the latest release.
  2. Double-click it. (Windows SmartScreen may warn about an unrecognized app โ€” click More info โ†’ Run anyway. The full source is right here in this repo, so you can see exactly what it does.)
  3. Follow the on-screen calibration steps (below), then press F8 in Dota to let it play.

๐Ÿ”ต Option 2 โ€” Run from source (auto-installs everything)

Don't have Python? No problem โ€” the launcher installs it for you.

  1. Click the green < > Code button above โ†’ Download ZIP, and unzip it anywhere.
  2. Double-click run.bat.
    • The first launch automatically installs Python (if missing) and all required packages into a local folder โ€” you don't need to install anything by hand.
  3. Follow the calibration steps, then press F8 in Dota.

๐Ÿ’ก Nothing is installed system-wide. Everything lives in a local .venv folder next to the bot. Delete the folder and it's gone.


๐ŸŽฎ Before You Start (Dota settings)

  1. Open the Dota 2 console and set: fps_max_ui 30 โ€” the boot's speed scales with your UI frame-rate, and 30 keeps it catchable.
  2. Run Dota in Borderless / Windowed-Fullscreen (not exclusive fullscreen), so the bot can capture the screen.
  3. Open the Boot Breaker mini-game so the play area is visible.

๐Ÿ› ๏ธ Calibration (one time, ~20 seconds)

Run calibrate.bat (or press F7 inside the bot). With Boot Breaker on screen:

Step Do this
1 Move your mouse to the top-left corner of the play area โ†’ press F1
2 Move to the bottom-right corner โ†’ press F2
3 Hover the middle of the paddle โ†’ press F3 (sets the paddle line and samples its colour)
4 Choose keys: F5 = A/D, F6 = arrow keys

Your settings are saved to config.json. To play, run run.bat, focus Dota, and press F8.

Preview markers: ๐ŸŸข green circle = boot ยท ๐Ÿ”บ yellow triangle = predicted landing ยท ๐ŸŸฃ magenta line = where the paddle is being steered ยท ๐Ÿ”ท cyan diamond = the paddle.


โŒจ๏ธ Hotkeys (work anywhere)

Key Action
F8 Toggle bot ON / OFF (starts OFF)
F10 Show / hide the preview window
F7 Re-run calibration
F9 / Esc Quit

โš™๏ธ Tuning (config.json)

Most people never touch these โ€” but if you want to fine-tune:

Field Meaning
control_mode "ad" or "arrows"
deadzone Stop moving when the paddle is within this many px of the target (raise if it jitters)
paddle_color / paddle_tol Paddle colour match; raise paddle_tol if the paddle isn't found
paddle_band Height of the strip searched for the paddle
diff_thresh / min_area / max_area Boot detection; tighten if it grabs a breaking block instead of the boot
aim_mode "blocks" (aim at densest side), "center", or "off" (pure catch)
aim_strength How far off-centre it hits the boot to steer it (px)
wall_inset ~half the boot width; improves bounce prediction
auto_serve true/false โ€” auto-tap Space on the between-level serve prompts
serve_interval Seconds between Space taps while a prompt is on screen
serve_confirm_seconds Prompt must stay on screen this long before serving (rejects transient splashes/score pop-ups)
serve_gate_seconds Require no descending boot for this long before serving (rejects triggers during active play)
serve_band_y0 / serve_band_y1 Vertical band (fraction of height) searched for the prompt text; nudge if your HUD sits differently
serve_white_thresh / serve_min_white_px / serve_min_components / serve_min_span_frac Prompt-text match sensitivity โ€” serve_min_components counts letter-sized white blobs (raise to reject pop-ups, lower if prompts are missed)

๐Ÿฉบ Troubleshooting

Problem Fix
Paddle doesn't move Dota must be focused and in Borderless; if one key type is ignored, switch control_mode (some builds only read A/D or arrows).
Paddle marker (cyan) is wrong Re-run calibration and press F3 on a clear part of the paddle, or raise paddle_tol.
Green circle tracks debris, not the boot Raise min_area, lower max_area, or raise diff_thresh.
It levels up too early Increase aim_strength, or set aim_mode to "blocks".
Boot is too fast Lower fps_max_ui in the Dota console.
Still stuck? Run diag.bat โ€” it saves diag_boot.png / diag_paddle.png you can inspect or share in an issue.

๐Ÿง  How It Works

The bot screen-captures the calibrated play area, finds the moving boot via frame-differencing plus a colour-gated tracker, and locates the paddle by its calibrated colour. It predicts where the boot will cross the paddle line (reflecting off the side walls) and holds Left/Right to slide the paddle there โ€” with optional block-aware aiming so it keeps breaking blocks instead of escaping out the top too early. Pure OpenCV + NumPy; no game memory reading, no injection โ€” it only looks at the screen and presses keys, exactly like a human.

Between levels it reads the on-screen "LOCK CART POSITION" / "THROW BOOT" prompts and taps Space to launch the next boot automatically:

Boot Breaker Bot auto-serving on the LOCK CART POSITION prompt


๐Ÿงฉ Requirements (source install)

Handled automatically by run.bat, but for reference: Windows, Python 3.12, and the packages in requirements.txt (numpy, opencv-python, mss, pywin32, keyboard).


โš ๏ธ Disclaimer

This is a hobby / educational computer-vision project for a single-player mini-game. Use it at your own risk and in accordance with the Dota 2 / Steam Terms of Service. The authors are not responsible for how you use it. Not affiliated with or endorsed by Valve.

๐Ÿ“„ License

Released under the MIT License. Contributions welcome โ€” open an issue or PR!

About

๐Ÿฅพ Auto-player bot for the Dota 2 Boot Breaker (Dark Carnival) minigame โ€” OpenCV computer-vision paddle control. Free, open-source, one-click for non-technical players.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors