Commit Graph
150 Commits
Author SHA1 Message Date
alex c9ffcf1e4f Add Discord status updates every N runs with config option 2026-05-25 14:30:33 +02:00
alex 40d46bb592 Add simple pick_gold config toggle for ground gold 2026-05-25 14:22:35 +02:00
alex c5519ff290 Add config toggle to pick and sell rares for gold 2026-05-25 14:18:57 +02:00
alex dd45386579 Improve config docs and harden discord+difficulty parsing 2026-05-25 14:10:54 +02:00
alexandClaude Sonnet 4.6 d3dbf2bf9c fix: disable auto-login by default, require explicit auto_login=1
Auto-launch of D2R and bnet credential injection are now gated behind
an explicit `auto_login=0` flag in params.ini. Setting it to 1 restores
the previous behaviour. Credentials stored in bnet_name/bnet_pass are
never appended to launch options while auto_login=0.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-24 17:45:23 +02:00
alexandClaude Sonnet 4.6 887a97c93b feat: add F6 hotkey to select boss/farm runs at runtime
Adds a tkinter run-selector window accessible from the botty console via
the new select_runs_key hotkey (default F6). Users can check/uncheck any
of the 11 supported boss/farm runs; the selection updates Config in-memory
and takes effect on the next game without restarting botty.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-24 17:42:10 +02:00
alex 776a09da5d feat: auto-login + OCR character selection
- Added bnet_name, bnet_pass, char_name to [general] config
- Config._build_launch_options() appends -bnetname/-bnetpass when set
- character_select.py: OCR fallback when template matching fails
2026-05-20 09:16:48 +02:00
alex b3052e50b4 feat: auto-login + OCR character selection
- Added bnet_name, bnet_pass, char_name config options
- Launch options auto-append -bnetname/-bnetpass when credentials set
- character_select.py: OCR fallback when template matching fails
- Scans character list row-by-row, matches by name, clicks and scrolls
2026-05-20 08:55:04 +02:00
alex 5ea1c17902 fix: target false positives, pickit timing, hardcore death loop
- target_detect: add aspect ratio filtering to reject health bars and immune text
- pickit: add 0.2-0.3s wait after pickup before moving on (fix #939)
- game_controller: detect hardcore mode and stop instead of infinite death loop
- config: add 'hardcore' flag (default 0)

Closes #959, #939, #942
2026-05-19 16:49:24 +02:00
alex 0af8a54116 feat: auto-detect D2R key bindings from .key/.keyo file
- Read character .key file from Saved Games / D2R install dir / APPDATA
- Auto-fill empty hotkeys in [char] section (inventory, belt, potions, etc.)
- Match skill slots to configured skills for validation
- Normalize key variants (left alt ~ alt, left shift ~ shift)
- params.ini values always take priority over detected bindings
- Warn on genuine mismatches between config and .key file
2026-05-19 16:46:24 +02:00
Alex 23e7e54f8d fix: resolve default.bnip merge conflicts from aeon0; fix raw string in config.py 2026-05-17 20:31:38 +02:00
Alex f484a9bef1 feat(stealth): add anti-detection layer with wait jitter, click variance, AFK breaks, and route skip 2026-05-17 13:26:26 +02:00
Randi b03b2fd226 Refined cta and buffing so chars now use cast_buffs routine which doesn't need the cta_available logic. This routine also allows the casting delay to be kept separate from cta as the casting_delay is passed in. Failed buffs will now cause bot to exit game. 2026-03-16 20:42:15 -04:00
Randi b7c83e6208 Added preliminary warlock characters for bot. 2026-02-15 20:49:12 -05:00
Randi 8df42bbcb1 Added attack frames into config.py 2024-06-24 22:04:58 -04:00
Randi 8be1223e32 Added javazon 2024-06-18 00:25:16 -04:00
Randi 70659b7544 Added new blizzorb sorc that specializes in comboing blizzard with frozen orb. 2024-06-11 19:32:56 -04:00
mgleed 980a8f5036 get rid of redundant id_items param 2022-06-24 20:28:41 -04:00
Gleed cb1f443d23 Fix tests failing on d2r_path validation 2022-06-17 16:31:10 -04:00
Gleed 0acd6d8cc9 Enhancement: Ensure d2r_path exists before starting Botty 2022-06-17 15:51:33 -04:00
Gleed 8bc909eb72 Bugfix: Fix launch options (#891)
* init

* fix launch_options
2022-06-17 15:36:51 -04:00
Gleed 487d113432 init (#877) 2022-06-16 13:29:10 -04:00
Gleed 5127417bd3 Major feature: NTIP pickit syntax integration, OCR pickit, OCR item property filtering (#724)
By @Riddle1001 @Ezro @mgleed @D2RLegit Sosa
2022-06-16 09:46:14 -04:00
mgleed 7426e79504 Params config readme cleanup (#870)
* Bump version to v0.7.4

* init

* fix missing |'s

* Update README.md
2022-06-14 17:01:50 -04:00
mgleed 0fcddd2aed Enhancement: Reposition teleport and rename tp to town_portal in params 2022-06-13 13:46:19 -04:00
mgleed 237dfd6f34 Bugfix: hammerdin config inheritance 2022-06-12 22:38:58 -04:00
jobithuandmgleed 70debc2b0d Major feature: FOHdin, Chaos Sanctuary (#765)
* Setting Up FOHdin for CS

* replaced hammers with FOH, but not targeted yet

* finish merging

* demo

* implemented all runs. avoid nihlatak.

* replaced FOH with Hammer for Nihl

* using hammers for dia now

* reverted dia hammers to FOH, so pure FOH runs CS

* added non mob-detection attacks to trav

* some tweaks

* tweaked hammer pindle for tele amu

* improved pindle for walker FOHdin

* Pindle, Eld, Shenk, CS tweaked. Trav needs work.

* fix NoneType error if nodes aren't found

* consolidate trav code

* small adjustment

* increase attack duration in loop condition rather than attack sequence

* pindle optimizations

* optimizations of pindle, eld, shenk

* more optimizations, trav still kinda ghetto

* update target detect to include closer targets

* implement concentration with holy bolt

* nihlathak and summoner

* revised CS trash atk pattern

* tweaked sealbosses!

* CS ready for pressure tests

* implement in-chaos pickit, match/case logic over if/elif, consolidate more functions, move some to i_char.py, patch health_manager.py to prevent it from closing inventory, update inspect_items() to allow items to be dropped and not kept to be sold

* revert change

* reserve hammerdin changes for a separate PR

* get rid of extra attack sequence

* disable target/attack logs for merge

* code cleanup

Co-authored-by: mgleed <[email protected]>
2022-06-12 15:44:54 -04:00
roozhouandmgleed b457877623 Bugfix: Select online tab before creating game when d2r switch to offline tab automatically (#834)
* BugFix: Select online tab when server disconnected

Issue #789

* Simplify online/offline tab selection logic

* more robust recovery, reusable restart_or_exit() fn in main, move attempts logic, remove param, etc.

Co-authored-by: mgleed <[email protected]>
2022-06-07 22:12:53 -04:00
badbrad2889andmgleed 129c00ac44 Feature: Support transmute of all gem quality (chipped, etc.) (#736)
* Added the ability to transmute all gem types and select in params.ini

* Added the assets

* Updated STD to standard for transmute and updated ini for list style

* Changed the assets to standard

* changed list in INI to run only flawless by default

* Optimized the transmute: will only need to go through search once

* update tab selection

* Update params.ini

Co-authored-by: mgleed <[email protected]>
2022-06-06 23:27:13 -04:00
RiddleandRiddle f94bd16b2b Enhancement: Catch missing config params (#835)
Co-authored-by: Riddle <[email protected]>
2022-06-06 20:57:29 -04:00
Legitandmgleed ac3e79401b Enhancement: Make Nopickup command optional (#819)
* Making Nopickup command optional

* Update bot.py

* Update config.py

* set default on, rework logic

Co-authored-by: mgleed <[email protected]>
2022-06-06 13:39:31 -04:00
egut125 63b761b5dc Feature: Separate generic and loot discord message webhooks (#729)
* New param custom_loot_message_hook

* Loot web hook fixes
2022-05-14 05:50:56 -04:00
jobithuandmgleed 648d42ed84 Feature: Mob Detection for Chaos Sanctuary Hammerdin (#598)
* added mob detection to CS to speed up runs

* refactoring - redemption does not work

* remove unused filterimage param for template_finder.search_and_wait

* get rid of selfs, add live view within mob_detection.py

* mobcheck(self) -> mobcheck()

* cleanup, img as an arg to mobcheck

* prefix functions for encapsulation, cleanup redundant code

* simplify further

* trim

* simplify live-viewer, move

* corrected liveviewer -- opencv hue ranges to 180 not to 255

* rename funcs

* consolidate live-view into target_detect.py

* silly ide

* fix nonetype error

fox nonetype error - but no mobs are detected anymore :(

* script runs, but fails to deteect mobs

* add pytest for target detection, fix target sorting

* revert info_ss

* running now! added "mercwait" to debug runtime

* added testing back to pather.py

* update pytest, discrete blue/green filtering, cleanup code

* fix NoneType, add negative test

* consolidate tests

* fix oopsie

* add config param

* fix config param

* fixed atk sequences & logging spam

ready to merge after my final 2 tests

* undo bad import

Co-authored-by: mgleed <[email protected]>
2022-05-12 07:03:29 -04:00
egut125andmgleed 328ff67a4b Feature: Hydra Sorc (#730)
* New Hydra Build

Only runs pindle shenk eld so far

* Adjust hydra sorc to use any alt skill on right click

* Lowered spray

* Update config/params.ini

Co-authored-by: mgleed <[email protected]>
2022-05-11 04:18:51 -04:00
drallcom3 bbc183e82e Enhancement: Make log chicken an option (#743)
* Make log chicken an option

It can produce a lot of spam for low level bots.

* Game stats fix

Chicken wasn't counted in the report anymore.

* Bugfix
2022-05-09 05:11:35 -04:00
slapchop58 0e15b7ccdb Feature: Bone necro (#727)
* Added bone necro char

* Added damage_scaling option

* adjusted some targeting

* Removed colored logging statements, documented damaage_scaling option, and moved its usage to the base class i_char
2022-05-09 04:24:08 -04:00
aeon0andmgleed 9bc085af3a feat/restricted-mouse-clicks (#709)
* feat/restricted-mouse-clicks

* fix typos, use GoldBtnInventory ScreenObject, use personal.specific_inventory_roi()

* make smaller gold button, trim ROI, and use grayscale to search

* remove unused roi

* fix circular import by reverting to Config inventory area and adding open_inventory_area variable, adjust code throughout

* simplify

* revert to template finding due to circular import with ui_manager

* grayscale template match

Co-authored-by: mgleed <[email protected]>
2022-04-18 17:00:18 +02:00
aeon0 16bf599d88 feat/run-qol (#707) 2022-04-17 12:40:53 +02:00
Legit 4b5b8385f8 Refactor: Condensed discord message will be the only option (#687)
* Condsensed discord message will be the only option

Condensed message will be default. removed the option from params.

* Update game_stats.py

* Update discord_embeds.py

* Update bot.py

* Update shenk_eld.py

* Update config.py

* removed a line

removed e.set_thumbnail(url=f"{self._psnURL}36L4a4994.png")

* Update README.md
2022-04-03 20:16:27 -04:00
mgleed 09a33ccf3d Feature/enhancement: Support for D2R launch options and cosmetic mods (#677)
Breaking change to param: `d2r_path`
2022-04-02 21:27:03 -04:00
mgleed e354ed8074 Bugfix: custom config parsing (#668) 2022-03-28 18:01:12 -04:00
egut125andmgleed c4a5c6fe34 Feature: Runtime breaks (#665)
* New params for runtime and break time

* New params to manage session length and break time

* Starting message

* Message adjustments

* use _default_iff in config

Co-authored-by: mgleed <[email protected]>
2022-03-28 17:55:15 -04:00
4007087ceb Enhancement: variables can be initialized/used in config files
* Added a way to add config variables to ini files.

* Added examples

* Added examples

Co-authored-by: Your Name <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-03-28 09:17:09 -04:00
Legit 782001d338 Feature: Poison necro config (#597)
* Poison necro config

* Update bot.py

* added "walk"

to move summons after teleporting.

* Add files via upload

* Update params.ini

* Update params.ini

* Update poison_necro.py

* Update poison_necro.py
2022-03-23 14:28:07 -04:00
Aimware0 927ade6108 Bugfix: added error handling for custom.ini when missing section header (#647) 2022-03-18 17:02:12 -04:00
mgleedandVladimir Makaev d9b9d66e3b Feature: Use OCR for gold pickit (#643)
* init

* consolidate

* Update src/config.py

Co-authored-by: Vladimir Makaev <[email protected]>

Co-authored-by: Vladimir Makaev <[email protected]>
2022-03-17 21:31:48 -04:00
mgleed 9707fc4563 Enhancement: Cleanup botty startup. Add version to debug log. 2022-03-09 13:30:06 -05:00
mgleed f51de30fbd Major feature: Town routine overhaul, id tome, scrolls/keys, simplify gambling (#588)
* init, wip

* migration from original ocr complete, now troubleshooting phase

* first

* starts now

* catching more

* pause here, fix keep_item for ItemText class

* getting close

* adjust consumable quantity to refill per Legit

* fix import, refactor tp scroll tracking

* fixed property checking

* merge master, fix discord embed

* move tp charge setter

* properly track id scrolls after use

* fix accidental stashing

* fix sell_junk and chest_label bugs

* working on drognan instead of lysander

* a2 pathing, drognan support

* fix town-start to wp pathing, change key counting

* better drognan pathing

* comment out pather stuff

* restore old asset

* proper tp tracking

* revert key pickup to decrease need by 1

* fixing gambling, WIP

* working on gambling

* add comments to transfer_items

* add comments to transfer_items

* gambling semi-working, not stashing right

* simplify gambling process

* incorporate OCR gold reading to gamble, WIP

* gambling is painful

* simplified gambling - ~done

* finally finished gambling!

* fix diablo inventory check

* do not fail purchasing routine if item template is not seen

* fix condition

* deprioritize keys, scrolls during pickit; stop clicking Misc tab at repair

* cleanup

* init

* add support for grayscale + color_filtered

* cleanup logic

* only generate grayscale templates if use_grayscale=True

* simplify template_gray logic

* fix false detection of out of gold

* gambling with OCR was too buggy--replace with max gamble item count

* cleanup
2022-03-05 17:47:50 -05:00
Vladimir Makaev 37d41ed008 Enhancement/bugfix: Add override_capabilities param to workaround problems with autodetection (#600) 2022-02-27 16:39:08 -05:00
mgleed c8eb88f672 Feature: OCR for item drops and item description boxes (#570)
* initial

* bugfixes. now stable & testing

* narrow ROI to search for 'CLICK TO' tooltip
2022-02-21 19:54:29 -05:00