- Restore FIRST-RUN.md onboarding guide - Pin environment.yml to requirements.txt (was loose 24 packages) - Remove debug screenshots from git (debug_*.png -> .gitignore) - Remove .hermes/ dev plans from git (already in .gitignore) - Archive botty_next/ test harness to alexpolo1/my-botty-tools - Archive docs/legacy-go/ to alexpolo1/my-botty-tools - Move 14 dev tools from repo root to tools/ directory - Extend .gitignore to prevent dev artifacts re-entering root - Promote stable branch with all bug fixes from main - Bump version 0.8.4 -> 0.9.1
171 lines
5.3 KiB
Markdown
171 lines
5.3 KiB
Markdown
# Botty First Run Guide
|
|
|
|
After running `install.bat` and seeing "Installation complete!", follow these steps.
|
|
|
|
---
|
|
|
|
## Step 1 — Create your character profile
|
|
|
|
Botty uses **profiles** to store your character setup. Each profile is a single file in `config/profiles/`.
|
|
|
|
### Find your character type
|
|
|
|
Open `config/params.ini` in Notepad, scroll to `[char]`, find `type=`:
|
|
|
|
| If you play... | Set `type=` to |
|
|
|---|---|
|
|
| Hammerdin Paladin | `hammerdin` |
|
|
| FoH Paladin | `fohdin` |
|
|
| Blizzard Sorceress | `sorceress` |
|
|
| Bone Necromancer | `necro` |
|
|
| Traps Assassin | `trapsin` |
|
|
| Amazon | `amazon` |
|
|
| Barbarian | `barbarian` |
|
|
| Warlock Druid | `warlock` |
|
|
|
|
### Set your keybinds
|
|
|
|
In `config/params.ini`, scroll to `[char]` and match these to your D2R key bindings:
|
|
|
|
```ini
|
|
[char]
|
|
type=hammerdin ; your build (see table above)
|
|
tp_key=b ; Teleport key
|
|
stand_still=capslock ; Hold to stand still (capslock is common)
|
|
show_belt=k ; Open belt
|
|
weapon_switch=w ; Swap weapons (for CTA builds)
|
|
force_move=e ; Force movement through mobs
|
|
```
|
|
|
|
**Important:** `stand_still` cannot be `shift` (conflicts with merc healing). `capslock` is the recommended default.
|
|
|
|
### Pick your runs
|
|
|
|
Scroll to `[routes]` in `config/params.ini`:
|
|
|
|
```ini
|
|
[routes]
|
|
; Enable the runs you want (1 = on, 0 = off)
|
|
run_pindle=1 ; Act 5 Nihlathak temple red portal boss
|
|
run_countess=0 ; Act 1 Forgotten Tower
|
|
run_andariel=0 ; Act 1 Catacombs
|
|
run_arcane=0 ; Act 2 Arcane Sanctuary / Summoner (teleport recommended)
|
|
run_trav=0 ; Act 3 Travincal council
|
|
run_mephisto=0 ; Act 3 Durance of Hate
|
|
run_diablo=0 ; Act 4 Chaos Sanctuary (teleport recommended)
|
|
run_vizier=0 ; Act 4 Chaos, Vizier only (faster than full Diablo)
|
|
run_nihlathak=0 ; Act 5 Halls of Vaught (teleport recommended)
|
|
run_eldritch=0 ; Act 5 Frigid Highlands, Eldritch only
|
|
run_eldritch_shenk=0 ; Act 5 Eldritch then Shenk in the same game
|
|
|
|
; Execution order (only includes enabled runs)
|
|
order=run_pindle
|
|
```
|
|
|
|
> There is no `run_shenk` option — Shenk is Act 5 and is farmed via
|
|
> `run_eldritch_shenk`. The commented route list at the top of the `[routes]`
|
|
> section in `params.ini` is always the authoritative set of names.
|
|
|
|
Common combinations:
|
|
- **Pindle only:** `run_pindle=1`, `order=run_pindle`
|
|
- **Pindle + Arcane:** `run_pindle=1`, `run_arcane=1`, `order=run_pindle, run_arcane`
|
|
- **Full farm:** Enable all you want, set `order=` to your preferred sequence
|
|
|
|
### Set difficulty
|
|
|
|
In `[general]`:
|
|
|
|
```ini
|
|
difficulty=hell ; normal, nightmare, or hell
|
|
```
|
|
|
|
Start with `nightmare` if you're testing. Use `hell` for serious farming.
|
|
|
|
---
|
|
|
|
## Step 2 — Save as a profile (optional but recommended)
|
|
|
|
Profiles survive git pulls. To save your setup:
|
|
|
|
1. Create a folder: `config/profiles/mychar/`
|
|
2. Create `config/profiles/mychar/profile.ini` with:
|
|
|
|
```ini
|
|
[general]
|
|
name=mychar
|
|
difficulty=hell
|
|
|
|
[char]
|
|
type=hammerdin
|
|
tp_key=b
|
|
stand_still=capslock
|
|
show_belt=k
|
|
weapon_switch=w
|
|
force_move=e
|
|
|
|
[routes]
|
|
run_pindle=1
|
|
order=run_pindle
|
|
```
|
|
|
|
3. Select it. The profile is chosen by `config/active_profile.txt`, **not** by
|
|
`name=` in `params.ini` (that field is only a display/label value). Either:
|
|
- start the bot and press **`end`** to cycle to your profile, or
|
|
- put the profile folder name on the first line of `config/active_profile.txt`
|
|
|
|
At startup the bot logs which one it loaded:
|
|
`Profile active: mychar (config\profiles\mychar\profile.ini)`
|
|
|
|
---
|
|
|
|
## Step 3 — Launch
|
|
|
|
1. **Start D2R** — set to 1280x720 windowed mode
|
|
2. **Log in** and select your character
|
|
3. **Double-click `run_botty.bat`**
|
|
4. The bot shows a hotkey menu — press **`f11`** to start or pause it. Press **`f12`** to stop.
|
|
|
|
> The hotkey menu printed at startup is always the source of truth — it reflects
|
|
> your actual `config/params.ini` keys. Do **not** press `insert`: that is
|
|
> `restore_settings_from_backup_key`, which overwrites your current D2R settings
|
|
> with a previously saved backup.
|
|
|
|
---
|
|
|
|
## Step 4 — Optional: Discord notifications
|
|
|
|
To get bot status in Discord:
|
|
|
|
1. Create a Discord webhook: Server Settings → Integrations → Webhooks → New Webhook → Copy Webhook URL
|
|
2. In `config/params.ini`, under `[general]`:
|
|
|
|
```ini
|
|
custom_message_hook=https://discord.com/api/webhooks/YOUR/WEBHOOK_URL
|
|
discord_log_chicken=1
|
|
discord_log_errors=1
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
**"Could not find botty conda environment"** — Run `install.bat` first.
|
|
|
|
**"D2R is not running"** — Launch D2R before running `run_botty.bat`, or set `auto_login=1` in params.ini with your Battle.net credentials.
|
|
|
|
**Bot can't see templates / everything fails** — Make sure D2R is 1280x720 windowed, not fullscreen or borderless.
|
|
|
|
**OCR not working** — `install.bat` sets up OCR automatically. Check the install output for "tesserocr: OK" or "pytesseract: OK". At least one must work.
|
|
|
|
**Check logs:** Open `log/log.txt` in Notepad for detailed output.
|
|
|
|
---
|
|
|
|
## Quick reference: what to edit
|
|
|
|
| File | What to change |
|
|
|---|---|
|
|
| `config/params.ini` | `type=`, keybinds, `difficulty=`, routes, Discord webhook |
|
|
| `config/profiles/*/profile.ini` | Per-character overrides (optional) |
|
|
| `config/game.ini` | **Don't edit** — templates and UI coordinates |
|
|
| `config/shop.ini` | **Don't edit** — vendor buy/sell lists | |