Important
Updating from 2.0.0, 2.0.1, or 2.0.2? Click "Check for Updates" manually. Those versions do not look for new releases on their own — a feature from the 1.x series that was accidentally lost in the v2 rewrite and is restored in 2.1.0. Open the app, go to the Dashboard, and press Check for Updates to receive 2.1.0; from then on, the app checks automatically again. This notice will also be published on the website after its upcoming rehaul.
AI-powered overlay for Dota 2's Ability Draft mode. Scans the draft board using machine learning, identifies all abilities in the pool, and displays real-time synergy recommendations directly on your game screen.
- One-click ability scanning -- machine learning identifies all 48 abilities in the draft pool from a single screenshot
- Real-time overlay -- recommendations appear directly on top of the Dota 2 game screen
- Synergy detection -- highlights overpowered (OP) ability combinations and trap combinations to avoid
- Triplet analysis -- suggests the best third ability to complete known strong pairs
- Top-tier picks -- up to 10 ranked recommendations, prioritizing synergies with your already-picked abilities
- Rescan -- update recommendations after abilities are drafted
- Click-through transparency -- overlay sits on top of the game without blocking gameplay
- My Spot / My Model -- select your hero position and model for personalized recommendations
- Ability tooltips -- hover any ability for detailed stats, synergies, and win rates
- Hero model tooltips -- hover hero models for hero-specific ability synergies
- OP & Trap panels -- scrollable lists of the best and worst ability combinations in the current pool
- Windrun.io integration -- one-click data scraping from the premier Ability Draft statistics site
- 524-class ML model -- MobileNetV2 INT8 quantized, with optional DirectML GPU acceleration
- Automatic resolution detection -- works out of the box for 28 common resolutions, with mathematical auto-scaling for others
- Calibration wizard -- 4-anchor calibration for non-standard resolution setups
- Dark mode -- follows your system theme, or set manually to light/dark
- English & Russian -- full interface localization
- Auto-updater -- in-app notifications when a new version is available
- Database backups -- automatic backups on startup, manual backup/restore from Settings
- Windowed mode -- automatic game window tracking for non-fullscreen setups
- Download the latest installer from Releases
- Run the installer -- choose your install directory
- Launch Dota 2 Ability Draft Plus from the Start Menu or Desktop shortcut
git clone https://github.com/Tiarin-Hino/ability-draft-plus.git
cd ability-draft-plus
npm install
npm run dev- Launch the application
- Go to the Data page in the sidebar
- Click Update Windrun Data to fetch the latest ability and hero statistics from Windrun.io
- Wait for all three phases to complete (abilities, synergy pairs, triplets)
- Click Activate Overlay on the Dashboard before starting the game or after starting it but before queueing
- The overlay will appear on top of your game
- Queue for an Ability Draft match in Dota 2
- When the draft screen appears and is fully loaded, press Ctrl+Shift+S (or click Initial Scan on the overlay control panel, top-right corner)
- Review the highlighted abilities in the pool:
- Green shimmer -- general top-tier picks (highest combined winrate + pick priority score)
- Blue/teal shimmer -- synergy suggestions (abilities that pair well with your already-picked abilities, shown after selecting My Spot)
- Gold shimmer -- top-tier hero model (on the hero model slots)
- Solid teal border -- your own picked abilities (after selecting My Spot)
- Solid green border -- your selected hero model (after selecting My Model)
- Hover abilities for detailed tooltips with synergy information
- Use the OP Combos and Trap Combos panels for combination analysis
- After abilities are drafted, press Ctrl+Shift+R (or click Rescan) to update recommendations
- Click Close to dismiss the overlay, or Reset to clear the scan while keeping the overlay open
| Shortcut | Action |
|---|---|
Ctrl+Shift+S |
Initial scan (skips the confirmation dialog) |
Ctrl+Shift+R |
Rescan selected abilities |
Hotkeys are active only while the overlay is open.
- Click My Spot on a hero position to tell the app at which position you're playing -- this personalizes recommendations to show synergies with your already-picked abilities
- Click My Model on a hero model to indicate which hero model is yours
The app automatically detects your game resolution and selects the correct coordinate layout. Pre-mapped coordinates are included for 28 common resolutions (1920x1080, 2560x1440, 3840x2160, ultrawide, and more). For resolutions without a preset, the app mathematically scales coordinates from the nearest base resolution for your aspect ratio family. No manual setup is needed in the vast majority of cases.
| Layer | Technology |
|---|---|
| Framework | Electron 40 |
| Frontend | React 19 + shadcn/ui + Tailwind CSS v4 |
| State | Zustand + @zubridge/electron |
| Build | electron-vite |
| Database | Drizzle ORM + sql.js (WASM) |
| ML | ONNX Runtime + DirectML (INT8 quantized MobileNetV2) |
| Testing | Vitest (381 tests) + Playwright |
| Logging | electron-log v5 |
| i18n | i18next + react-i18next |
- Node.js 20+
- npm 10+
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build all targets (main, preload, renderer) |
npm run build:dist |
Build and package as Windows installer |
npm start |
Run the built application |
npm test |
Run all unit/integration tests |
npm run test:e2e |
Run Playwright E2E tests |
npm run typecheck |
TypeScript type checking |
npm run lint |
ESLint linting |
npm run format |
Prettier formatting |
src/
core/ Pure TypeScript domain logic (zero Electron imports)
database/ Drizzle ORM schema and repositories
domain/ Business logic (scoring, synergies, scan processing)
ml/ ONNX Runtime classifier and image preprocessing
resolution/ Coordinate mapping and mathematical scaling
scraper/ Windrun.io API client and data transformer
main/ Electron main process
ipc/ IPC handler registration
services/ Window management, ML, screenshots, scraping, etc.
store/ Zustand app store + draft store
workers/ ML worker thread
preload/ Context-isolated preload scripts
renderer/
control-panel/ Main application window (React SPA)
overlay/ Game overlay window (transparent, click-through)
stream/ Streamer view board (served over local HTTP for OBS)
shared/ Types and constants shared between processes
See docs/ARCHITECTURE.md for detailed technical documentation and docs/STREAMER_VIEW.md for the OBS/streaming setup guide.
Tiarin Hino