No description
Find a file
2026-02-14 12:01:38 +00:00
cmd Fix orb coordinates from pixel-level analysis: health center x=400, mana center x=1550 2026-02-14 12:01:38 +00:00
config Add modular capture backends, resolution profiles, Wayland support 2026-02-14 10:00:19 +00:00
pkg Fix orb coordinates from pixel-level analysis: health center x=400, mana center x=1550 2026-02-14 12:01:38 +00:00
plugins/d2r Fix orb coordinates from pixel-level analysis: health center x=400, mana center x=1550 2026-02-14 12:01:38 +00:00
testdata Fix orb coordinates from pixel-level analysis: health center x=400, mana center x=1550 2026-02-14 12:01:38 +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 Fix orb coordinates from pixel-level analysis: health center x=400, mana center x=1550 2026-02-14 12:01:38 +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.