No description
Find a file
Hoid 35a1944179 Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges
- Add ReadOrbSlicePercentage: thin vertical strip method for accurate fill reading
- Support HSV hue wrapping in colorInRange (for red hues crossing 360°)
- Health HSV: H 350-370 (wrapping), S 60+, V 20+ (calibrated from screenshot)
- Mana HSV: H 226-240, S 100+, V 20+ (calibrated from screenshot)
- Add health_slice/mana_slice regions (10px wide vertical strips through orb centers)
- Update health_globe/mana_globe to full botty-referenced regions
- Verified: health 96.3%, mana 100% on testdata/d2r_1080p.png (both at 100% fill)
2026-02-14 11:56:18 +00:00
cmd Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges 2026-02-14 11:56:18 +00:00
config Add modular capture backends, resolution profiles, Wayland support 2026-02-14 10:00:19 +00:00
pkg Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges 2026-02-14 11:56:18 +00:00
plugins/d2r Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges 2026-02-14 11:56:18 +00:00
testdata Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges 2026-02-14 11:56:18 +00:00
web/dev Fix dashboard + vision: region checkboxes, upload auto-switch, state detection, analyze endpoint 2026-02-14 11:27:46 +00:00
.gitignore Rewrite to Go: engine, plugin system, D2R plugin, API, loot filter 2026-02-14 09:43:39 +00:00
CLAUDE.md Add CLAUDE.md project context for Claude Code 2026-02-14 11:00:38 +00:00
debug Calibrate orb detection from botty reference: vertical slice method, correct HSV ranges 2026-02-14 11:56:18 +00:00
go.mod Rewrite to Go: engine, plugin system, D2R plugin, API, loot filter 2026-02-14 09:43:39 +00:00
README.md Add modular capture backends, resolution profiles, Wayland support 2026-02-14 10:00:19 +00:00

iso-bot — Isometric Game Bot Engine

A modular, high-performance bot framework for isometric games. Screen-reading only — no memory injection, no hooking, no client modification.

First game: Diablo II: Resurrected

Architecture

cmd/iso-bot/          Entry point (single binary)
pkg/
├── engine/
│   ├── capture/      Screen capture (window, VM, monitor)
│   ├── vision/       Template matching, color detection (GoCV)
│   ├── input/        Mouse (Bézier curves), keyboard, humanization
│   ├── state/        Game state machine with callbacks
│   ├── safety/       Session timing, breaks, pattern randomization
│   ├── navigation/   Pathfinding, click-to-move
│   └── loot/         Declarative rule-based loot filter engine
├── plugin/           Game plugin interface (implement to add a game)
├── api/              REST + WebSocket API for dashboard
└── auth/             License/account validation
plugins/
└── d2r/              Diablo II: Resurrected plugin
    ├── screens/      State detection (menu, in-game, inventory)
    ├── routines/     Farming routines (Mephisto, Pindle, Countess)
    ├── loot/         Default loot filter rules (YAML)
    └── templates/    UI template images
web/                  SolidJS dashboard (future)
config/               YAML configuration

Design Principles

  • Plugin-based: Engine is game-agnostic. All game logic in plugins implementing plugin.Plugin
  • Screen reading only: Captures screenshots, analyzes pixels/templates, sends inputs
  • Human-like: Bézier mouse movement, randomized delays, fatigue, scheduled breaks
  • VM-safe: Engine runs on host, captures VM window — game never sees the bot
  • Declarative loot: YAML rule engine for item filtering
  • API-first: REST + WebSocket for remote dashboard control

Adding a New Game

Implement these interfaces from pkg/plugin:

  • GameDetector — detect game state from screenshots
  • ScreenReader — extract items, enemies, text from screen
  • Routine — automated farming sequences
  • LootFilter — item pickup rules

Usage

# Build
go build -o iso-bot ./cmd/iso-bot

# Run
./iso-bot --game d2r --routine mephisto --api :8080

Tech Stack

Component Technology
Engine Go 1.23+
Vision GoCV (OpenCV bindings)
Screen capture Platform-native (Win32 / X11)
Input simulation Platform-native (SendInput / uinput)
API net/http + gorilla/websocket
Dashboard SolidJS + TypeScript (planned)
Config YAML
Loot filter Declarative YAML rules

License

Private — proprietary software.