Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
556 commits
Select commit Hold shift + click to select a range
2223bbe
Fix character settings tempalate (#478)
artosimonyan Sep 13, 2024
febedb0
rename pkg name
hectorgimenez Sep 14, 2024
a0cbeaf
fixed wrong display life %
hectorgimenez Sep 14, 2024
7639257
force routines to shutdown when one of them fails (for example during…
hectorgimenez Sep 14, 2024
a23ef19
make pather a little bit more reliable?
hectorgimenez Sep 14, 2024
15fe4f3
reduce the soft blocker surrounding non-walkable areas
hectorgimenez Sep 14, 2024
cddf688
Character Profile Naming refactor (#479)
artosimonyan Sep 14, 2024
b287a12
Fix panic on empty run list (#480)
artosimonyan Sep 14, 2024
fac3ccf
fixed wrong path distance calculation
hectorgimenez Sep 14, 2024
7f813e8
add small delay after moving to allow character to end walking/load t…
hectorgimenez Sep 14, 2024
db3fe66
Fix ShouldStashIt (#481)
artosimonyan Sep 14, 2024
5d09849
upgrade CI to use Go 1.23
hectorgimenez Sep 15, 2024
bc4e7fe
few pather optimizations
hectorgimenez Sep 15, 2024
67665ff
astar optimization
hectorgimenez Sep 15, 2024
650c098
more pathing optimizations
hectorgimenez Sep 16, 2024
56ddf93
Attach to existing process (#482)
artosimonyan Sep 16, 2024
0e80579
Scheduler Implementation (#483)
artosimonyan Sep 17, 2024
30d0613
Fix panic on initial schedule config (#484)
artosimonyan Sep 17, 2024
f7a61d5
fix bug causing baal skipped when it was selected the kill option
hectorgimenez Sep 17, 2024
5888339
use basic distance to optimize traverse room order for now, suboptimal
hectorgimenez Sep 17, 2024
abd696b
Exclude map data from json (#485)
artosimonyan Sep 17, 2024
abb6cbd
Feed the Mosiac script some steroids (#486)
artosimonyan Sep 17, 2024
70dfe30
Consume misplaced belt potions (#487)
artosimonyan Sep 17, 2024
6facbbd
fix some runs
hectorgimenez Sep 18, 2024
7601c6f
disable pathing direction change cost addition
hectorgimenez Sep 18, 2024
f64034d
add the check to return town
hectorgimenez Sep 19, 2024
1932ead
implement stupid unstuck
hectorgimenez Sep 19, 2024
9279b01
Display recipes in grid (#488)
artosimonyan Sep 19, 2024
1027e16
improve run list (#489)
artosimonyan Sep 19, 2024
98398e6
Change Game Window Title (#490)
artosimonyan Sep 20, 2024
a57925b
Prevent Assassin from buying keys (#491)
artosimonyan Sep 21, 2024
2b4803b
Prevent repair attempts for ethereal or indestructible items (#492)
artosimonyan Sep 21, 2024
6ce8340
Add Telestomp (#493)
artosimonyan Sep 23, 2024
bcd223f
Check required key binds (#494)
artosimonyan Sep 23, 2024
a827a27
Refresh game data before keybind check (#495)
artosimonyan Sep 23, 2024
186ca75
Corrupted tremors strike Koolo
hectorgimenez Sep 23, 2024
9dd0d18
pause loop during loading screen
hectorgimenez Sep 24, 2024
77476d0
prevent injecting stuff when bot is paused (should fix the pause beha…
hectorgimenez Sep 24, 2024
0c04816
add legacy graphics check
hectorgimenez Sep 24, 2024
2c0c706
Fixed diablo run (#496)
TDLofCC Sep 25, 2024
f2cb5f7
Add Stash actions (#499)
artosimonyan Sep 28, 2024
237b538
use a fake mod to store custom game settings, this will allow bot/use…
hectorgimenez Sep 29, 2024
9381a21
Update gambling.go (#501)
elb91 Oct 1, 2024
71b7f96
calculate inventory matrix to check for free space before picking up …
hectorgimenez Oct 2, 2024
65918f0
Berserk_barb arrives to v2 (travincal barb for now) (#506)
elb91 Oct 3, 2024
1929999
check if character is moving before finishing MoveTo step, use WaitFo…
hectorgimenez Oct 3, 2024
b8ccfc5
Fetch map data concurrently
hectorgimenez Oct 4, 2024
d1786c6
add delay after opening chests, this will allow the animation to fini…
hectorgimenez Oct 4, 2024
e446b80
high priority loop is super fast (less than 1ms), we can execute it m…
hectorgimenez Oct 4, 2024
083afca
bugfixing on item pickup and overall interaction improvements
hectorgimenez Oct 4, 2024
79f20d4
Swap Items before Hork ( Barbarian) (#507)
elb91 Oct 5, 2024
f5d88a0
wrap the error, so we can detect it later
hectorgimenez Oct 5, 2024
af0e461
fix movement distance detection and cow level stashing trash
hectorgimenez Oct 7, 2024
97d3457
calculate LoS during attack action
hectorgimenez Oct 11, 2024
1ff7ade
Area Correction, Character specific responsible UI ++
elb91 Oct 8, 2024
4c0ba39
Area Correction, Character specific responsible UI ++
elb91 Oct 8, 2024
b2881dc
Update pit.go
elb91 Oct 9, 2024
6fbffba
fixed chicken.
elb91 Oct 9, 2024
4840627
chick fix part 2
elb91 Oct 9, 2024
f90dd26
fix chicken p3
elb91 Oct 9, 2024
cfe69bb
Revert "fix chicken p3"
elb91 Oct 9, 2024
27d7b38
Revert "chick fix part 2"
elb91 Oct 9, 2024
a3b38e9
Revert "fixed chicken."
elb91 Oct 9, 2024
e0e600a
fixed barb now chickening when attacking.
elb91 Oct 9, 2024
454a0fc
put back some comments that got ereased with time.
elb91 Oct 9, 2024
9dd9f18
AreaCorrection Extended, Foh reworked and other characters too
elb91 Oct 12, 2024
1f552cd
Improved Nova Sorceress . Configurable option for static with valida…
elb91 Oct 13, 2024
3a2c50b
some comments again.
elb91 Oct 13, 2024
1ebeebe
Update character_settings.js
elb91 Oct 13, 2024
3857b64
Update character_settings.js
elb91 Oct 13, 2024
5188fb8
Update character_settings.js
elb91 Oct 13, 2024
2f69679
Skip ItemPickup while fighting Bosses, resume after its dead
elb91 Oct 13, 2024
cbaf5b9
fix nova chicken. missing PauseIfNotPriority
elb91 Oct 13, 2024
e4ae2db
improved Foh performances on light imunes after being convicted
elb91 Oct 13, 2024
5b9ae2b
fixed a bug with itempickup, improved nova
elb91 Oct 13, 2024
61c7ff5
more fixes
elb91 Oct 13, 2024
2e69f9d
Update bot.go
elb91 Oct 13, 2024
3d31f50
more fixes for idle
elb91 Oct 13, 2024
21b1a5c
statistics showing but not working well.
elb91 Oct 14, 2024
afe66a4
Update single_supervisor.go
elb91 Oct 14, 2024
df36d2f
Revert "Update single_supervisor.go"
elb91 Oct 14, 2024
b18b43e
Revert "statistics showing but not working well."
elb91 Oct 14, 2024
d455226
Revert "more fixes for idle"
elb91 Oct 14, 2024
f658319
Update cows.go
elb91 Oct 14, 2024
2e49c56
stats partially back in.
elb91 Oct 14, 2024
f7458ec
now we get stats but only for last run on the list.
elb91 Oct 14, 2024
6326008
removed check for berserk barb in bot.go as its done somewhere else now
elb91 Oct 14, 2024
92c8518
a
elb91 Oct 14, 2024
23dc345
b
elb91 Oct 14, 2024
ab82733
run statistics are officially back in.
elb91 Oct 14, 2024
0fcdbec
fixed pause/resume button
elb91 Oct 14, 2024
babf283
Fixed path cant be calculated in tristam/cow.
elb91 Oct 16, 2024
da15f2c
Update item_pickup.go
elb91 Oct 16, 2024
2470b1c
post-reviews
elb91 Oct 16, 2024
2b1ecb2
reverted original nova logic but kept new boss logic.
elb91 Oct 16, 2024
81f8a5b
Update nova_sorceress.go
elb91 Oct 16, 2024
730db71
simplified area correction
elb91 Oct 16, 2024
3d78a2f
fixed entrance update
elb91 Oct 16, 2024
16abee7
should be ok
elb91 Oct 16, 2024
290b07d
additions to elb changes
hectorgimenez Oct 16, 2024
5b4aaca
fix idle on itempickup, safety check for cube
elb91 Oct 16, 2024
e19ed7a
some comments, forgot Skip picking up gold if we can not carry more
elb91 Oct 16, 2024
9d2f82c
force buff trav for barb
elb91 Oct 16, 2024
1eaca6b
Clear monster around portal returntown
elb91 Oct 16, 2024
4ca9097
Chaos skip monster out of grid and stormcasters if set to
elb91 Oct 17, 2024
cb1c4e0
Area Correction & Berserk improvements (#514)
hectorgimenez Oct 17, 2024
5f4579a
Fix ItemPickup, Prevent StandStill to be forever active
elb91 Oct 17, 2024
9e5d2bb
Update item_pickup.go
elb91 Oct 17, 2024
40931c9
Diablo Run is ready, Reset monster filter when picking up items(range 3)
elb91 Oct 18, 2024
7cb031a
fix when switching zone
hectorgimenez Oct 18, 2024
bc9ce68
Diablo Run is ready, Reset monster filter when picking up items(range 3)
elb91 Oct 18, 2024
21d5415
update diablo.go
elb91 Oct 18, 2024
0af2a85
Chicken fix , anti-idle mechanism during run ( outside town)
elb91 Oct 18, 2024
19e0286
fix when switching zone (#518)
hectorgimenez Oct 20, 2024
b88e685
Diablo run improved + option to keep distance fro seal bosses,
elb91 Oct 20, 2024
8baa35a
Merge branch 'hectorgimenez:refactor_actions' into refactor_actions
elb91 Oct 20, 2024
ab553da
Merge remote-tracking branch 'origin/refactor_actions' into refactor_…
elb91 Oct 20, 2024
8f0868b
reverting to previous IsMonsterSealElite
elb91 Oct 20, 2024
d2dc941
Update clear_area.go
elb91 Oct 20, 2024
a2361d4
Update clear_area.go
elb91 Oct 20, 2024
6495a70
Update clear_area.go
elb91 Oct 20, 2024
a404b06
IsKeyPressed added to keyboard.go . Fix out of grid Diablo (again)
elb91 Oct 20, 2024
22e52dd
diablo should be ok.
elb91 Oct 20, 2024
015b7fe
New Burst skill attack type implementation with new nova profile
elb91 Oct 22, 2024
4df304c
Not leaving attack if theres still monster character can reach .
elb91 Oct 22, 2024
dd8c3af
In case monster is stuck behind a wall or character is not able to r…
elb91 Oct 22, 2024
bd2b577
attack.go now handle melee,aoe,burst .Mosaic is perfect .
elb91 Oct 22, 2024
cb6de37
attack.go new feature for ranged characters
elb91 Oct 23, 2024
247571a
attack.go new feature for ranged characters
elb91 Oct 23, 2024
b99d28f
optimized Foh using built-in attack.go functions
elb91 Oct 23, 2024
0462900
Update
elb91 Oct 25, 2024
6bf4d5e
Revert "Update"
elb91 Oct 26, 2024
380189b
Update 2
elb91 Oct 26, 2024
ba3112b
increased max attack loop foh
elb91 Oct 26, 2024
e13fdf8
burst skill (#520)
hectorgimenez Oct 29, 2024
693bd08
some optimizations?
hectorgimenez Oct 30, 2024
dbfa513
Additions to Radius clearing logic
elb91 Oct 30, 2024
dd7cf40
let character's specific combat logic handle attack distance (no over…
elb91 Oct 30, 2024
6940017
update
elb91 Oct 31, 2024
dc3602d
nova
elb91 Oct 31, 2024
ba13b2e
Burst skill draft revision (#524)
hectorgimenez Nov 1, 2024
78410ad
refactor attack + allow debugger to show last step/action based on pr…
hectorgimenez Nov 1, 2024
ee1a52c
Burst skill usage (#523)
hectorgimenez Nov 1, 2024
d383341
refactor Diablo run
hectorgimenez Nov 5, 2024
e0ad303
minor tweaks when dealing with seal elites in diablo run
hectorgimenez Nov 5, 2024
1cf92dc
add MapVirtualKey and GetWindowText to winproc pkg
hectorgimenez Nov 6, 2024
08e28f5
mod tidy
hectorgimenez Nov 6, 2024
b30188c
go 1.23
hectorgimenez Nov 6, 2024
4a5b8fd
tiny cleanup
hectorgimenez Nov 6, 2024
4f358f2
fixed diablo elite filter only considering seal elite monsters
hectorgimenez Nov 6, 2024
68d668d
decoy and necro revives are not considered enemies anymore
hectorgimenez Nov 6, 2024
e09e7ba
clear and stash cube items if there are items in there when starting …
hectorgimenez Nov 7, 2024
fee4893
try to fix the bug causing infinite movement attempts if destination …
hectorgimenez Nov 7, 2024
c86c362
don't buy TPs/IDs all the time
hectorgimenez Nov 7, 2024
b99fbab
fix walking movement issue
hectorgimenez Nov 7, 2024
1429593
add small delay and re-check when we don't properly detect the merc (…
hectorgimenez Nov 8, 2024
562ee86
refactor actions (#422)
hectorgimenez Nov 9, 2024
444531c
small tweaks in baal run
hectorgimenez Nov 11, 2024
595fdcf
Increase max FoH attack loop
hectorgimenez Nov 11, 2024
83bba05
Fix Foh Boss Attack rotation, also improved decision for regular atta…
elb91 Nov 13, 2024
0302c7b
Resolve unsync pathing issue (#526)
elb91 Nov 17, 2024
689acc6
PathFinder, GetCachedData, Area Correction fix, interact object (#533)
elb91 Nov 23, 2024
686d050
Adjust class specific option display (#536)
artosimonyan Nov 24, 2024
caf230b
Removed unused parameters and variables (#537)
artosimonyan Nov 24, 2024
85358bc
Blizzard sorceress distances update + andariel monster type fix (#543)
elb91 Nov 28, 2024
10ad8de
Lower Kurast Chest(simplified) + Duriel run fix. (#539)
elb91 Nov 28, 2024
b81c9ce
Cow level fixes (#545)
elb91 Dec 7, 2024
f0e0fcb
Update d2go for latest season (#550)
artosimonyan Dec 7, 2024
279ee74
Buff and Corpse fixes (#551)
artosimonyan Dec 7, 2024
ae2576d
Fix telestomp and improve range checks (#554)
artosimonyan Dec 8, 2024
c058065
EnsureEnemyIsnRange correction for other classes (#557)
elb91 Dec 10, 2024
14d8ae3
Fix Discord Message Filtering (#560)
artosimonyan Dec 12, 2024
1450e70
Increase delay after opening inventory (#564)
artosimonyan Dec 12, 2024
7142f29
Close open menus on movement (#565)
artosimonyan Dec 12, 2024
6d94f34
Don't buff in town >.> (#572)
artosimonyan Dec 13, 2024
6f91443
Find summoner pos from 1.13c (#570)
elb91 Dec 14, 2024
eddec96
Update readme (#566)
elb91 Dec 14, 2024
d18573a
Countess run fix (#552)
elb91 Dec 14, 2024
0976aec
Nihlatak safer( itempickup only after its dead) (#563)
elb91 Dec 14, 2024
72ea47a
fix mkdir (#544)
baiachen Dec 14, 2024
18b9cbf
Adjust pather error (#577)
artosimonyan Dec 15, 2024
da0e40f
Simplify better build script (#580)
artosimonyan Dec 16, 2024
48e7374
chore: Log the reason why we're going to town (#581)
artosimonyan Dec 16, 2024
a4425d2
minor buff check optimization (#573)
srliao Dec 16, 2024
03913d0
Fix repair loop indestructible item (#582)
elb91 Dec 16, 2024
52f0788
Allow teleport in duriel room only (#579)
elb91 Dec 16, 2024
83b1548
Upgrade deps
hectorgimenez Dec 16, 2024
5fc107d
Fix mele range chars (#588)
artosimonyan Dec 18, 2024
5a93a86
Stash before vendoring to store recipe mats (#589)
artosimonyan Dec 19, 2024
02b6aa1
enable CainIdentify with CharacterCfg option (#569)
srliao Dec 19, 2024
04ccdd6
Implement configurable options for Mosaic (#590)
artosimonyan Dec 19, 2024
e7c0ff7
Stash items before identify (#591)
artosimonyan Dec 20, 2024
f03856a
fix taking items from cube (#592)
artosimonyan Dec 20, 2024
759f8a7
Implement centralized pickit option (#601)
artosimonyan Dec 23, 2024
4ecbb0e
fix cain identify sometimes fails and falls back to using tome (#600)
srliao Dec 23, 2024
85f88cb
Ignore items in protected slots (#603)
artosimonyan Dec 24, 2024
5e609e2
Lower minimum move distance to 4 (#604)
artosimonyan Dec 24, 2024
724dc92
Add option to skip pames and prubys when rerolling charms (#605)
artosimonyan Dec 26, 2024
f43badc
Fix the error when trying to add new character (#606)
artosimonyan Dec 26, 2024
a607822
Arcane Sanctuary Grid, remove excess log attack.go (#607)
elb91 Dec 26, 2024
ec45141
Option Hide Portraits(prevent missing merc items) (#596)
elb91 Jan 1, 2025
fbe8ef0
Item pickup rework + ClearAreaAroundPosition fix (#609)
elb91 Jan 2, 2025
f0ff962
Add filter to stashed events (#611)
artosimonyan Jan 2, 2025
49dc1a7
Diablo run compatibility with ClearAreaAroundPosition (#614)
elb91 Jan 3, 2025
ff70853
Improve interaction error information (#616)
artosimonyan Jan 3, 2025
dab38a9
Baal run compatibility new ClearAreaAroundPosition (#617)
elb91 Jan 4, 2025
cee154d
Fix stats and small CPU improvement (#620)
artosimonyan Jan 6, 2025
f9100a2
Item Pickup revision (#622)
elb91 Jan 13, 2025
a0593fd
Area Correction fix (enabled only for travi) + adjustment for HidePor…
elb91 Jan 14, 2025
8954fe2
Repair 3 bug with gambling (#619)
elb91 Jan 14, 2025
245e404
Filter for Arachnid Lair and Recipe fix (#627)
artosimonyan Jan 14, 2025
6d6f2b5
Always stash unique charms to shared stash (#629)
artosimonyan Jan 15, 2025
de0b105
Prevent opening chat, clear TZ notification and game message spam (#633)
elb91 Jan 19, 2025
decc7dd
Exit through red portal after Mephisto (#637)
Sunblood Jan 25, 2025
28b2675
Chaos portal position and buff refresh before Infector (#625)
Sunblood Jan 25, 2025
b3d095c
Fix Teleport in circle and Line of sight improvement (#634)
elb91 Jan 25, 2025
8623088
Disable force stashing on first run
artosimonyan Jan 25, 2025
5c53c0d
Cain identify fix + improved npc interaction (#631)
elb91 Jan 26, 2025
16f4abd
Fix Meph Config Update run_settings_components.gohtml (#649)
braccali1 Feb 2, 2025
58ce90c
Do town actions only if we made it to town (#647)
elb91 Feb 2, 2025
2bb18c9
Disable first run stash forcing (#655)
artosimonyan Feb 3, 2025
f3ce6c4
feature: reopen tp when coming back from town if in leader mode (#638)
davidfvsilva Feb 4, 2025
e73047d
added chainlightning sorc (#574)
DarkDBx Feb 5, 2025
77d4778
Terror zone open chests option (#626)
Sunblood Feb 5, 2025
f19a0db
Fix seals, prevent issue with koolo closing entirely (crash) (#657)
elb91 Feb 5, 2025
0d0efd6
Additional vendor check for keys and scrolls (#628)
sorc653 Feb 6, 2025
f4b9a4b
Enable all cube recipes (#673)
artosimonyan Feb 8, 2025
59aa0f4
Fireball sorc (#675)
artosimonyan Feb 9, 2025
86912cc
Revert "Additional vendor check for keys and scrolls" (#677)
artosimonyan Feb 11, 2025
35b428d
Fix for cubing recipes with misssing items (#680)
davidfvsilva Feb 15, 2025
366905a
New drops UI (#682)
artosimonyan Feb 16, 2025
015e607
Doc Readme typo (#672)
samdoidge Feb 17, 2025
8ff9266
Item Pickup Improvements (#666)
braccali1 Feb 21, 2025
523a6a0
Fixes and stuff (#689)
artosimonyan Feb 21, 2025
b63d7a3
Wait until fcr/walk time is finished (#701)
hectorgimenez Feb 27, 2025
734122f
Fix anti-idle triggering when teleporting (#711)
elb91 Feb 27, 2025
6ab0cd2
More CPU Improvements and Faster TPs (#712)
artosimonyan Feb 27, 2025
0a6820f
Bugfix: UI crashes on first time setup because of validation error in…
jasorello Mar 1, 2025
8ef98c5
Fix bliz sorc boss killing (#727)
artosimonyan Mar 10, 2025
51d5d38
Potential fix for losing Magefist/gloves/weapon. (#728)
xVoidByte Mar 12, 2025
b6539c2
Optimization: Revert LoS door check, ClearAreaAroundPosition (#704)
elb91 Mar 15, 2025
5032952
Enable/Repair game.ShiftKey ( shift + left click ) (#684)
elb91 Mar 16, 2025
9f0c798
Fix immunity issue (#737)
artosimonyan Mar 16, 2025
85058b4
Update Tornado Druid (wing_druig.go) to work with latest code base of…
xVoidByte Mar 16, 2025
05224ba
update d2go (#747)
artosimonyan Mar 18, 2025
94bc91f
Revert "Potential fix for losing Magefist/gloves/weapon." (#752)
artosimonyan Mar 19, 2025
a791639
fix area sync errors (#753)
artosimonyan Mar 21, 2025
99b0d3a
Discord message settings ++ (#759)
artosimonyan Mar 24, 2025
b3231c3
RIP. Where is my 30% Blizzard?
hectorgimenez Mar 29, 2025
29b6f21
new logo, credits to mysteriogpt
hectorgimenez Mar 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Bug Report
description: File a bug report
body:
- type: textarea
id: details
attributes:
label: Details
description: Try to be as detailed as possible, what happened? What did you expect to happen? What steps can we take to reproduce the issue?
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: What version are you using?
placeholder: v0.4.0
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: Check latest logs (logs directory) for any errors, if information is relevant, please include it here.
validations:
required: true
27 changes: 3 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,16 @@ jobs:
name: "Build Koolo binary"
runs-on: windows-2022
steps:
# Remove this once Windows image get fixed
- name: Remove Strawberry Perl from PATH
run: |
$env:PATH = $env:PATH -replace "C:\\Strawberry\\c\\bin;", ""
"PATH=$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Append
rm C:\mingw64 -force -r
- name: "Install CMake"
run: |
choco install -y --force cmake 7zip.install wget
- name: "Install MinGW"
run: |
wget -nv https://download.qt.io/development_releases/prebuilt/mingw_64/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
7z x -aoa -oC: x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
"C:\mingw64\bin" >> $env:GITHUB_PATH
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup Go"
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: "Prepare env"
run: mkdir C:\go\pkg
- name: "Building OpenCV"
continue-on-error: true
env:
GOPATH: C:\go
run: .\prepare_env.bat
go-version: '1.23'
- name: "Building Koolo artifacts"
env:
GOPATH: C:\go
run: .\build.bat
run: .\build.bat "${{ github.ref_name }}"
- name: "Packing the release"
run: 7z a -tzip koolo_${{ github.ref_name }}.zip .\build\*
- name: Release
Expand Down
12 changes: 9 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
/.idea
/.vscode
/.github
/bin
/build
/stats
/screenshots
/log.txt
/config/*.yaml
/config/*.yml
/logs

/config/*
!/config/template
!/config/koolo.yaml.dist
!/config/Settings.json
77 changes: 45 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,30 @@
![Koolo](images/you_died.png)
<h1 align="center">Koolo</h1>
<div style="background-color: #FFFACD; padding: 10px; border-radius: 5px; text-align: center">
<h2 style="margin: 0;">⚠️ Warning: People using this tool have been reporting bans. Do not use it.</h2>
</div>
<p align="center">
<img src="assets/koolo.webp" alt="Koolo" width="150">
</p>
<h3 align="center">Koolo</h3>

---

Koolo is a small bot for Diablo II: Resurrected. Koolo project was built for informational and educational purposes
Koolo is a small bot for Diablo II: Resurrected (Expansion). Koolo project was built for informational and educational purposes
only, it's not intended for online usage. Feel free to contribute opening pull requests with new features or bugfixes.
Koolo reads game memory and interacts with the game injecting clicks/keystrokes to the game window. As good as it can.

Feel free to join our Discord community to report bugs, ask for help or just to chat: [Koolo Discord]( https://discord.gg/zgFMyzAFHE)

## Disclaimer
Can I get banned for using Koolo? The answer is a crystal clear yes, you can get banned although at this point I'm
not aware of any ban for using it. I'm not responsible for any ban or any other consequence that may arise from it.

## Features
- Blizzard Sorceress, Nova Sorceress and Hammerdin are currently supported
- Supported runs: Countess, Andariel, Ancient Tunnels, Summoner, Mephisto, Council, Eldritch, Pindleskin, Nihlathak,
Tristram, Lower Kurast, Stony Tomb, The Pit, Arachnid Lair, Baal, Tal Rasha Tombs, Diablo (WIP), Cows
- Blizzard Sorceress, Nova Sorceress, FoH, Berserk Barbarian Hork (Travincal), Mosaic are currently supported. Hammerdin, Javazon and Winddruid are WIP
- Supported runs: Countess, Andariel, Ancient Tunnels, Summoner, Mephisto, Council, Eldritch-Shenk, Endugu, Drifter Cavern, Pindleskin, Nihlathak,
Tristram, Lower Kurast and Superchests, Stony Tomb, The Pit, Arachnid Lair, Baal, Duriel, Tal Rasha Tombs, Diablo, Cows, Treshsocket
- Multi window support (run multiple bots at the same time)
- Bot integration for Discord and Telegram
- "Companion mode" one leader bot will be creating games and the rest of the bots will join the game... and sometimes it
works
- "Companion mode" one leader bot will be creating games and the rest of the bots will join the game... (not working currently)
- Pickit based on NIP files
- Auto potion for health and mana (also mercenary)
- Chicken when low health
Expand All @@ -25,54 +33,59 @@ not aware of any ban for using it. I'm not responsible for any ban or any other
- CTA buff and class buffs
- Auto repair
- Skip on immune
- Auto leveling sorceress and paladin (WIP)
- Auto leveling sorceress and paladin (WIP) this feature is not finished.
- Auto gambling
- Auto cubing and crafting (WIP)
- Terror Zones (WIP)
- Classic is not supported

## Requirements
- Diablo II: Resurrected
- Diablo II: LOD 1.13c (required by https://github.com/blacha/diablo2/tree/master/packages/map)
- Diablo II: Resurrected (1280x720 required, windowed mode, ensure accessibility large fonts disabled)
- **Diablo II: LOD 1.13c** (IMPORTANT: It will **NOT** work without it, this step is not optional)

## Quick Start
Koolo will be clicking, moving the mouse, pressing keys... Basically this makes the computer unusable while running the
bot. It's recommended to run it on a [virtual machine](https://github.com/jamesstringerparsec/Easy-GPU-PV).
### Preparing the character
- Koolo will read game keybindings in order to use the skills, doesn't matter what key is used, but the skills for the build must be set.
- For blizzard sorceress, set the **left** skill to Glacial Spike or Ice Blast, and for Hammerdin to Blessed Hammer.
- Foh set keybind for FOH and holybolt on left skill, conviction on right skill
- Berserk barb set berserk as left skill. Also to use FindItem you need higher goldfind on secondary weapons slot. Alibaba + anything will work.
- Buy TP and ID tomes and one stack of keys and keep them in the inventory, additionally set the TP tome to a key binding, this is **required**.
- Horadric Cube can be stashed or kept in inventory, Koolo will use it to cube recipes if enabled.
- Keep the charms in the inventory, Koolo can be configured to lock specific inventory slots.

- If you haven't done yet, install **Diablo II: LOD 1.13c**
- [Download](https://github.com/hectorgimenez/koolo/releases) the latest Koolo release, or alternatively you can [build it from source](#development-environment)
### Running the tool
- If you haven't done yet, install **Diablo II: LOD 1.13c** (required)
- [Download](https://github.com/hectorgimenez/koolo/releases) the latest Koolo release (recommended for most users), or alternatively you can [build it from source](#development-environment)
- Extract the zip file in a directory of your choice.
- Open `config/config.yaml` with your favorite text editor and ensure `D2LoDPath` config is pointing to your **Diablo II: LOD 1.13c** installation directory.
- Configure custom bot settings under `config/config.yaml` and `config/pickit/*.nip` files for pickit rules.
- Open Diablo II: Resurrected and ensure the game resolution is set to windowed mode and 1280x720 or 1920x1080 in HiDPI mode.
- Enter the game with your character.
- Run `koolo.exe`.
- It should start the configured runs. You can pause/resume execution with ```,``` or stop it with ```.``` keys
- Follow the setup wizard, it will guide you through the process of setting up the bot, you will need to setup some directories and character configuration.
- If you want to back up/restore your configuration, and for manual setup, you can find the configuration files in the `config` directory.

## Pickit rules
Item pickit is based on [NIP files](https://github.com/blizzhackers/pickits/blob/master/NipGuide.md), you can find them in the `config/{character}/pickit` directory.

## How it works
Koolo reads game memory and interacts with the game simulating clicks/keystrokes.
It uses the following third party libraries:
All the .nip files contained in the pickit directory will be loaded, so you can have multiple pickit files.

- https://github.com/hectorgimenez/d2go
- https://github.com/hectorgimenez/diablo2 (forked
from [blacha's repo](https://github.com/blacha/diablo2/tree/master/packages/map))
There are some considerations to take into account:
- If item fully matches the pickit rule before being identified, it will be picked up and stashed unidentified.
- If item doesn't match the full rule, will be identified and checked again, if fully matches a rule it will be stashed otherwise sold to vendor.
- If there is an error on the NIP file or Koolo can not understand it, the application will not start.
- Pickit rules can not be changed in runtime (yet), you will need to restart Koolo to apply changes.

## Development environment
**Note:** This is only required if you want to build the project from source. If you want to run the bot, you can just download the [latest release](https://github.com/hectorgimenez/koolo/releases).

Setting the development environment is pretty straightforward, but the following dependencies are **required** to build the project.

### Dependencies
- [Download MingGW](https://sourceforge.net/projects/mingw-w64/files/) ```x86_64-posix-seh``` should be fine, extract it
and add it to the system PATH on Windows environment variables. For example if extracted in ```C:\mingw64``` add
```C:\mingw64\bin``` to the PATH. [Robotgo](https://github.com/go-vgo/robotgo) and [GoCV](https://github.com/hybridgroup/gocv#windows) dependencies requires MinGW to build.
- [Download CMake](https://cmake.org/download/) select add it to the user path during the installation process.
- [Download Go >= 1.21](https://go.dev/dl/)
- [Download Go >= 1.23](https://go.dev/dl/)
- [Install git](https://gitforwindows.org/)

### Building from source
Open the terminal and run the following commands in project root directory:
```shell
git clone https://github.com/hectorgimenez/koolo.git
cd koolo
prepare_env.bat
build.bat
```
This will produce the "build" directory with the executable file and all the required assets.
Expand Down
Binary file added assets/koolo.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/quests/a1_1.webp
Binary file not shown.
Binary file removed assets/quests/a1_2.webp
Binary file not shown.
Binary file removed assets/quests/a1_3.webp
Binary file not shown.
Binary file removed assets/quests/a1_4.webp
Binary file not shown.
Binary file removed assets/quests/a1_5.webp
Binary file not shown.
Binary file removed assets/quests/a1_6.webp
Binary file not shown.
Binary file removed assets/quests/a2_1.webp
Binary file not shown.
Binary file removed assets/quests/a2_2.webp
Binary file not shown.
Binary file removed assets/quests/a2_3.webp
Binary file not shown.
Binary file removed assets/quests/a2_4.webp
Binary file not shown.
Binary file removed assets/quests/a2_5.webp
Binary file not shown.
Binary file removed assets/quests/a2_6.webp
Binary file not shown.
Binary file removed assets/quests/a3_1.webp
Binary file not shown.
Binary file removed assets/quests/a3_2.webp
Binary file not shown.
Binary file removed assets/quests/a3_3.webp
Binary file not shown.
Binary file removed assets/quests/a3_4.webp
Binary file not shown.
Binary file removed assets/quests/a3_5.webp
Binary file not shown.
Binary file removed assets/quests/a3_6.webp
Binary file not shown.
Binary file removed assets/quests/a4_1.webp
Binary file not shown.
Binary file removed assets/quests/a4_2.webp
Binary file not shown.
Binary file removed assets/quests/a4_3.webp
Binary file not shown.
Binary file removed assets/quests/a5_1.webp
Binary file not shown.
Binary file removed assets/quests/a5_2.webp
Binary file not shown.
Binary file removed assets/quests/a5_3.webp
Binary file not shown.
Binary file removed assets/quests/a5_4.webp
Diff not rendered.
Binary file removed assets/quests/a5_5.webp
Diff not rendered.
Binary file removed assets/quests/a5_6.webp
Diff not rendered.
Binary file removed assets/skills/102.webp
Diff not rendered.
Binary file removed assets/skills/106.webp
Diff not rendered.
Binary file removed assets/skills/112.webp
Diff not rendered.
Binary file removed assets/skills/113.webp
Diff not rendered.
Binary file removed assets/skills/115.webp
Diff not rendered.
Binary file removed assets/skills/117.webp
Diff not rendered.
Binary file removed assets/skills/220.webp
Diff not rendered.
Binary file removed assets/skills/36.webp
Diff not rendered.
Binary file removed assets/skills/37.webp
Diff not rendered.
Binary file removed assets/skills/38.webp
Diff not rendered.
Binary file removed assets/skills/39.webp
Diff not rendered.
Binary file removed assets/skills/40.webp
Diff not rendered.
Binary file removed assets/skills/41.webp
Diff not rendered.
Binary file removed assets/skills/42.webp
Diff not rendered.
Binary file removed assets/skills/43.webp
Diff not rendered.
Binary file removed assets/skills/44.webp
Diff not rendered.
Binary file removed assets/skills/45.webp
Diff not rendered.
Binary file removed assets/skills/46.webp
Diff not rendered.
Binary file removed assets/skills/47.webp
Diff not rendered.
Binary file removed assets/skills/48.webp
Diff not rendered.
Binary file removed assets/skills/49.webp
Diff not rendered.
Binary file removed assets/skills/50.webp
Diff not rendered.
Binary file removed assets/skills/51.webp
Diff not rendered.
Binary file removed assets/skills/52.webp
Diff not rendered.
Binary file removed assets/skills/53.webp
Diff not rendered.
Binary file removed assets/skills/54.webp
Diff not rendered.
Binary file removed assets/skills/55.webp
Diff not rendered.
Binary file removed assets/skills/56.webp
Diff not rendered.
Binary file removed assets/skills/57.webp
Diff not rendered.
Binary file removed assets/skills/58.webp
Diff not rendered.
Binary file removed assets/skills/59.webp
Diff not rendered.
Binary file removed assets/skills/60.webp
Diff not rendered.
Binary file removed assets/skills/61.webp
Diff not rendered.
Binary file removed assets/skills/62.webp
Diff not rendered.
Binary file removed assets/skills/63.webp
Diff not rendered.
Binary file removed assets/skills/64.webp
Diff not rendered.
Binary file removed assets/skills/65.webp
Diff not rendered.
Binary file removed assets/skills/98.webp
Diff not rendered.
Binary file removed assets/skills/merc_104.webp
Diff not rendered.
Binary file removed assets/skills/merc_99.webp
Diff not rendered.
Binary file removed assets/ui/config_gear.webp
Diff not rendered.
Binary file removed assets/ui/discovered_wp.webp
Diff not rendered.
Binary file removed assets/ui/undiscovered_wp.webp
Diff not rendered.
Loading