@CaiusMartius @GaeanC @Dlightfull @Tennaen @Ed-Zero @TheBigHam @RoninwarAC @Kanjineo @vael @RedPriest
@Caspiaan @mrchops @Vaexar @FangedBeauty @El_Principe @Ungoliath @iWonder @Socrhate @Hagritty @Snozzleberry
OLD DOCUMENTATION (BEFORE CHANGING NAMING CONVENTION).
Documentation - excessive config explained
The program reads command line / shortcut arguments
GDAutocaster.exe config.ini    (reads config.ini and skips file selection dialog)
GDAutocaster.exe config.ini whatever    (reads config.ini, skips file selection dialog, starts autocasting on toggle automatically)
All sections and individual settings in this extensive config are optional.
[general]
game_window_id=ahk_exe Grim Dawn.exe
suspend_key=Tab
[autocasting]
master_toggle=`
pressed_buttons=0,1,2,3,4,5,6,7,8,9
[combo presses]
delay=300
combo1=j:7,3,6
combo2=h:t,1,2,t
delay2=2000
initial_delay2=true
combo3=Space:1,1,1,1,1
delay3=2000
stop_on_release3=true
combo4=RButton:1,2
delay4=200
double_press4=true
double_press4_time_gap=300
combo5=CapsLock:m
key_native_function5=false
[periodic casts]
delay=100
cast1=RButton:0,9
delay1=200
cast2=Space:2
initial_delay2=500
cast3=LButton:1
delay3=500
double_press3=true
double_press3_time_gap=300
cast4=Shift,A:1
[combo holds]
combo1=LButton:7
delay1=150
double_press1=true
double_press1_time_gap=300
combo2=RButton:6
delay2=0
[center casts]
cast1=RButton:7,6
initial_delay=0
delay=200
delay_after_cursor=40
closer_not_center=false
[clicker]
button=Alt
X=1270
Y=230
[hide items]
hiding_buttons=RButton
ingame_hide_button=Space
hide_duration=3000
[camera]
angle=60
counter_clockwise=a
clockwise=d
rotation_key=k
delay=40
[2]
toggle_key=2
delay=1000
[6]
toggle_key=6
not_hold_keys=LButton,RButton
delay=500
.
[general] - settings of the program
[general]
game_window_id=ahk_exe Grim Dawn.exe
suspend_key=Tab
-
game_window_id [optional] {ahk_exe Grim Dawn.exe by default}
- the default value is ahk_exe Grim Dawn.exe
- you need to change it if youâd like to use the program in other games
- can also identify by just windowâs name: game_window_id=Grim Dawn
-
suspend_key [optional]
- turns off/on all the hotkeys except itself
- doesnât turn off/on autocasting feature below (master_toggle hotkey is for it [is turned off/on by suspend_key)
[9] toggle_key=y delay=1000
.
[autocasting] - these settings only affect Autocasting on toggle
[autocasting]
master_toggle=`
pressed_buttons=0,1,2,3,4,5,6,7,8,9
This is only affects these types of autocasts:
[9]
toggle_key=9
delay=1000
-
master_toggle [optional]
-
when you click this, all your current [X] toggle autocasts are stopped and saved
-
when you click it again, saved toggle autocasts are resumed
-
at first all autocasts saved but if you click it while fewer skills are being autocasted at the moment, those fewer skills will be saved
-
turned on/off by suspend_key
-
-
pressed_buttons [optional] {0,1,2,3,4,5,6,7,8,9 by default}
-
which [X] sections will be read for autocasting (X in [X] is not only sectionâs name but also the button pressed)
-
you can change to i.e. pressed_buttons=Alt,LButton,4,5,3
-
.
[combo presses] - sequences of button presses / clicks, rebinding the key
                                       combine it with [periodic casts], [combo holds] and [center casts] in the same button using initial_delay
[combo presses]
delay=300
combo1=j:7,3,6
combo2=h:t,1,2,t
delay2=2000
initial_delay2=true
combo3=Space:1,1,1,1,1
delay3=2000
stop_on_release3=true
combo4=RButton:1,2
delay4=200
double_press4=true
double_press4_time_gap=300
combo5=CapsLock:m
key_native_function5=false
-
string of buttons presses activated by a button pressed
-
sample usages
-
casting all your permabuffs & pets with 1 button press, even if some of them are on the 2nd hotbar
-
casting multiple debuffs with i.e RMB before your other RMB (possibly) delayed spamming starts
-
actively casting a skill from the second hotbar (by swap, button, swap combo)
-
making a drop item button that doesnât require you to pick an item before hands
-
-
delay [optional]
- global delay in-between button presses for all the comboX unless overridden by delayX for a specific combo
-
combo1=j:7,3,6
-
after pressing J, buttons 7, 3, 6 are pressed
- 7 intstantly
- 3 after 300 ms
- 7 after another 300 ms (600ms in total from the start)
-
-
initial_delay2=true [optional]
- makes the 2nd combo start after delay2 ms (so the in-between delay proceeds the whole combo)
-
stop_on_release3=true [optional]
- makes the 3rd combo stop if you release the button
- you just make a short press, probably only the 1st press from the combo will be made
-
double_press4=true [optional]
- activates the combo on a double press, useful for i.e. Pet Attack, Movement skills
-
double_press4_time_gap=300 [optional]
- the time window you give yourself for the 2nd click/press after the 1st one to activate the combo
-
key_native_function5=false [optional]
-
blocks the key native function
-
I advise not to use it in general because you wonât block skills from Hotbars / in-game mouse action anyway I think
-
I used it here for Capslock to not light up when I use it for showing/hiding the map
-
.
[periodic casts] - your default spamming / autocasting while holding some button(s)
                                   combine it with [combo presses], [combo holds] and [center casts] in the same button using initial_delay
[periodic casts]
delay=100
cast1=RButton:0,9
delay1=200
cast2=Space:2
initial_delay2=500
cast3=LButton:1
delay3=500
double_press3=true
double_press3_time_gap=300
cast4=Shift,A:1
-
your default autocasting while holding some buttons
-
first press is instant which might not be the case for [X] autocasting holding version
-
here the delay is not in between separate buttons but in-between full spams of multiple butons (will be explained below)
-
delay=100 [optional
- the default delay 100 for spamming ASAP if I remember correctly
- is overridden by delayK for specific castK
-
cast1=RButton:0,9
-
when you press RMB, the buttons 0, 9 are instantly pressed
- but in that order, so if for example they are movement skills, 0 will have higher priority
-
if you continue to hold RMB
-
-
initial_delay2=500
- spamming starts with 500 ms delay with a default frequency of 100 ms
-
double_press3=true [optional]
- activates the spam cast after a double press + holds
-
double_press3_time_gap=300 [optional]
- the time window you give yourself for the 2nd click/press after the 1st one to activate the cast
-
cast4=Shift,A:1
- you can also demand holding multiple buttons but I personally never use it
Â
Autocasting on toggle - only option for autocasting without touching the keyboard/mouse
-
[autocasting] section contains settings for these sections
-
perfect for autocasting skills like Blood of Dreeg
[2]
[2]
toggle_key=2
delay=1000
- a skill bound to 2 in-game (i.e. Wind Devil on 2 on hotbar) cast every 1000 ms by itself
-
turned on/off by 2 (toggle_key) or master_toggle
-
master_toggle saves/resumes all current autocasts on toggle
-
these hotkeys can be turned off/on by suspend_key
-
-
100 ms is the default if you donât specify it IIRC
-
[6]
[6]
toggle_key=6
not_hold_keys=LButton,RButton
delay=500
-
skill bound to 6 in-game i.e. Ring of Steel cast automatically by itself every 0.5s if you clicked 6 or master_toggle
-
click again (or master_toggle if you have it) to stop autocasting
-
not_hold_keys - casting of skill bound to 6 is disabled if youâre holding LButton or RButton
.
[combo holds] - holds down a button to have another button(s) held
                                 combine it with [combo presses], [periodic casts] and [center casts] in the same button using initial_delay
[combo holds]
combo1=LButton:7
delay1=150
double_press1=true
double_press1_time_gap=300
combo2=4:w
delay2=0
-
literally holds the button down
-
in the first combo
-
7 is held if you hold LMB
-
some delay for pressing and holding 7 down is sometimes needed for it to work
- for example for Aether Ray on LMB
-
-
but sometimes not, especially if you want non-skills to be held, i.e. Force Move, Stationary Attack
-
also the 1st combo was made to start working on the 2nd click + hold which has to be no more than 300 ms after the 1 click
-
hold after single button press is the default option
-
multiple buttons can be held IIRC
.
[center casts] - like Combo Press but also moves your cursor under your characterâs feet for i.e. Inquisitor Seal
                               combine it with [combo presses], [periodic casts] and [combo holds] in the same button using initial_delay
[center casts]
cast1=RButton:7,6
initial_delay=0
delay=200
delay_after_cursor=40
closer_not_center=false
-
cast1=RButton:7,6
-
userâs mouse movement is blocked
-
cursor moves to the center of the screen
-
7 and 6 are pressed with 200 ms delay in-between them
-
cursor goes back after that
-
userâs mouse movement is unlocked
-
-
delay_after_cursor=40
- should be as low as possible
-
closer_not_center=false
-
I normally use it with true
- which makes cursor not go to the center but slightly further from it so that the characterâs rotation is not changing randomly which can sometimes happen with false
-
.
[camera]
[camera]
angle=60
counter_clockwise=a
clockwise=d
rotation_key=k
delay=40
- see [Tool] Faster camera rotation using keyboard or scroll wheel
- hotkeys responsible for (counter) clockwise rotations are turned on/off by suspend_key
.
[Clicker]
[clicker]
button=Alt
X=1270
Y=230
.
[hide items]
[hide items]
hiding_buttons=RButton
ingame_hide_button=Space
hide_duration=3000
-
hides items on the ground after you press one of the hiding_buttons for hide_duration ms
-
hiding is maintained if you continue to press one of the hiding buttons or hold them
-
ingame_hide_button is the key from GD Keybinding called Toggle Hide All Items
.
Write if you
- need help with specific config (or just describe how you play and Iâll propose a config)
- would like some additional features
- something doesnât work as expected
.
Very clear. Thanks for letting this up to date and supported!
Thanks for the updates and comprehensive documentation ! This is IMHO an essential QoL tool in the same tier with GrimInternals. It can also be adopted for other games too !
Update https://github.com/kowariantny/GDAutocaster/raw/master/GDAutocaster.exe
1. Important bugfixes
- pressing Space via Periodic Casts would probably not work before
- protections against 2nd activation of the same combo while the 1st one still last in some way
Iâve written here about some of the technical details: [Tool] AutoHotkey scripts
2. Temporary blocking autocasting feature removed
- this was a hack
- such effects can be achieved directly with appropriate config
3. Hide Items rewritten
as it was a mess before. Hereâs a video demonstration for the following config
[hide items]
hiding_buttons=RButton
ingame_hide_button=Space
hide_duration=3000
hi Secret Santa !
I failed in the beginning to get anything to work, but I needed to give admin rights to the program and after some tinkering; it worked !!!
Your idea of splitting all 15 pets into 2 groups worked flawlessly. I have the hardcore big boyz on skillbar 1 (they usually never die/much hp). The weaker pets on bar 2, which I occasionally have to resummon due to being gored by baddies.
With 1 combo/button press I recast them all quicklyâŚno need to look wich ones are down.
Takes only about 1.5 seconds. Super awesome deluxe <3
Unfortunately, I have absolutely no idea how to combine my 2 ranged attacks to the LMB, so that I can spam-fire both alternatively (ice/poison/ice/poison/ice/poison/ice/poison/etc)
Could you please give me some advice on how that would look in code?
Loving this program! Thnx and have a great day.
Hmmm⌠never needed admin rights for GD but needed them for Diablo 2. Glad youâve figured it out.
You can try to push delay down to make it even quicker.
[EDIT] oh w8, I didnât notice you want them on LMB instead of RMB. Do you move with LMB as well? Then we probably need to to it in a different way than in examples below. I will write an untested example in the next post how to do that
It depends a little bit
- on whether they have cooldowns
- you want want of them to be always cast first
- youâd like to cast some debuffs before hands
Nevertheless for spamming like that [periodic casts] would be best. Some examples
- Skills on cooldowns, we want them ASAP, as offten as possible, 1 higher priority than 2
- skills activated by buttons 1 and 2
- they are on cooldowns thatâs why we spammed the buttons every 100 ms to have them asap
(to turn off âskills not availableâ message and voice - check 2 options in settings)
[periodic casts]
cast1=RButton:1,2
delay1=100
- One of the skills is on RMB cast natively, another is on 1 cast by GDAutocaster
- in this example skill 1 doesnât have cooldown and we donât want
to spam it too often, we increase the delay from 100 ms to 2 seconds
[periodic casts]
cast1=RButton:1
delay1=2000
- In this example we want a skill on RMB and skill on 1 incorrectly
fires before our skill on RMB, so we introduce initial_delay of 200 ms for skill 1
[periodic casts]
cast1=RButton:1
delay1=100
initial_delay1=200
- In this example both skills are on the hotbar 0 - 9 but we want the 2nd skill
only be cast and spammed when we press RMB twice and hold (1st skill is cast always)
(defualt delay is 100 ms so we skip it no need to overwride it by delay1 or delay2)
[periodic casts]
cast1=RButton:1
cast2=RButton:2
double_press2=true
double_press2_time_gap=300
- In this example we have Curse of Frailty on RMB that is cast once when we press and hold it not spammed.
The skills we spammed are on 1 and 2 and need to be start cast with delay to not interrupt Curse of Frailty
[periodic casts]
cast1=RButton:1,2
initial_delay1=200
- In this example we have 2 debuffs on 3 and 4 that weâd like to spam before 1 and 2 and have RMB empty
[combo presses]
combo1=RButton:3,4
delay1=200
[periodic casts]
cast1=RButton:1,2
initial_delay1=400
- In this example 2nd skill is cast once on the double click and hold not spammed
1 skill is spammed with delay
[combo presses]
combo1=RButton:2
double_press1=true
double_press1_time_gap=300
[periodic casts]
cast1=RButton:1
initial_delay1=200
Remember to only have one continuous section i.e. [combo presses] or [periodic casts] in your config
How to to have movement and skills spam all on just LMB
(untested - some corrections like (initial_)delay might be needed)
- We need to inform the game that we would like to
- stand still
- spam our two attacks (1, 2)
The only way to do it with just LMB is double press. We need to do 2 things:
- hold down Stationary Attack after clicking LMB twice and then holding it down
[combo holds]
combo1=LButton:STATIONARY_BTN
double_press1=true
double_press1_time_gap=300
- spam our 2 attacks
[periodic casts]
cast1=LButton:1,2
double_press1=true
double_press1_time_gap=300
(initial_delay might be needed if fires before Stationary Attack for some reason and moves the character unnecessarily)
Got the spam-fire working <3
Because 4 important devotion pet buffs are linked to these 2 ranged attacks to proc on hit, I can already see almost double the damage !!!
Only thing is that I had to move the 2 ranged skills/hotkeys on the right of the actionbar into the actionbar. Effectively losing 2 more slots there. Which is a bummer, but a sacrifice I am happy to make.
In the end it only means that I have to juggle my 5 aura/buff skills toggles on start up of the game, swapping them in and out of the second bar to activate them once.
Which only takes about 10 secondsâŚno biggy.
I R very happy !!! thank you <3
Couldnât you left one of the attacks on the RMB?
Could you explain more precisely why do you have that problem? Maybe I can figure something out.
Why cannot they be on the 2nd bar permanently? Because you have more than 20 skills?
I think 20+ skills is the only problem that cannot be solved somehow but maybe I just cannot imagine it at the moment.
I have 20 slots total (2 bars);
~ 15 of them are occupied by my pets.
~ 1 for Call of the Grave (temporary pet buff-skill on cooldown).
~ 5 aura/buff skills to toggle (once at start of game)
This way I am already 1 slot short.
But to get the spam-fire working, I had to place them in slot 1 and 2 of the first action bar (donât know how to do it another way).
Which means I lost 2 more slots on the action bars.
My ini file now looks like this:
Pet Cabalist
[general]
suspend_key=Tab
[combo presses]
combo1=BS:3,4,5,6,7,8,9
delay1=300
combo2=NumpadAdd:t,1,2,3,4,5,6,7,t
delay2=300
[periodic casts]
cast1=RButton:1,2,0
delay1=100
Combo 1 & 2 are the group pet summons (works great!)
The periodic cast is the spam fire (skill 1 & 2), with 0 being Call of the Grave buff thrown in, to activate as soon as cooldown allows. I often forgot to use it, which was a total waste of skill points.
I deactivated error/cooldown messages in-game so I donât get txt on screen or annoying voice.
Thanks for explaining everything in detail Iâll think about it but⌠15 pets?
15 different pet species? Youâre not repeating any of them, do you?
(sorry for stupid questions, please not be offended by them
but you need to check everything while writing with someone like that
sometimes people donât see some silly mistakes / typos)
Btw If you have RMB free you can put one of the 3 skills that is spammed when you hold RMB I guess.
Do you have something on RMB? Then it would look like this (one skill less)
[periodic casts]
cast1=RButton:1,2
delay1=100
Unless none of the skills 0,1, 2 is spammed natively (just cast once) when on RMB slot in-game
then maybe we would have to do it in a different way.
But yeah I donât think I can work around 20+ skills.
Although I could implement clicking cursor combos I guessâŚ
hahaha yes 15 (permanent pets) now and hopefully 16 soon when I finally get Heart of the Mountain to drop for my Yeti-pet
Itâs my own fault. I wanted as big as an army of pets I could get. Thatâs one of the reasons I installed the Reborn 3.0 mod. The ranged attacks I spam also trigger the spawning of temporary chtonian and ghost pets. Filling my screen with loads of extra minions. I even have pets spawning when I get hit.
Not only that, but to top it all off, I deliberately picked devotions for my pets with glorious visual bombardments of Meteors, Blizzards and thunderstorms. Which all proc nonstop.
In combat I seriously have a hard time to see my own character sometimes in all the visual carnage, but itâs G L O R I O U S
You probably already guessed I am a bit of a summoner-lover. Itâs my favorite class in all rpg games.
I want to thank you. These tweaks made my enjoyment of the game much bigger.
I would much rather spend 10 seconds at the start of the game switching out a few buttons to activate my auraâs/buffs, than the hassle of checking which pets to respawn with wich button-press.
Gameplay is much faster and fluent now and the double ranged attack-spam is the icing on the cake <3
Super happy with this. I am glad I found you on YouTube and followed your advice.
Thanks dude !
No problem. Just a quick tip
You can use YOLO mouse (big colorful cursor) if you donât see your cursor. I do that even not having pets.
So, I need help.
I used a (very) old version of GDAutocaster a while back just for casting stuff like Blood of Dreeg on cooldown and it worked fine. Recently I downloaded the newest version to do the same. My config file looks like this:
[general]
game_window_id=ahk_exe Grim Dawn.exe
suspend_key=0[autocasting]
master_toggle=9
pressed_buttons=0,1,2,3,4,5,6,7,8[7]
skill=Word of Renewal
toggle_key=7
delay=1000[6]
skill=Blood of Dreeg
toggle_key=6
delay=1000
Now, the issue I have is that sometimes when I stop playing there are like 6-10 instances of GDAutocaster open on my PC. Usually itâs just kinda weird, but doesnât really affect gameplay.
Today, however, the tool started sending me error messages saying something about being unable to close the previous instance of GDAutocaster and if I wanted to keep waiting or not. I shouldâve written down the exact message, canât remember it now. But I just panicked cause it opened like a hundred of those messages and just wouldnât stop - had to just shut my PC down on the power button.
Also, not sure if related, but when I switch from the game window into my web browser and then go back sometimes the autocaster just keeps going. But more often than not it just stops and I have to press the toggle button (9) for it to start again. Which is not a huge deal, just kinda odd that it sometimes keeps going and sometimes just stops. The big issue is the one above though.
Could you see how many instances of GDAutocaster do you have when you
- go to the game
- then alt tab
- go to the game again
- alt tab
Then look in the task manager how many instances of GDAutocaster. I looks like GDAutocaster is not closing for some reason.
Also things Iâd like you to try
-
Try running the program as administrator (it only presses buttons / closes, restarts itself so wonât do any damage)
-
Always give GDAutocaster a few seconds after to go to the gameâs window before next Alt Tab
What I mean is donât Alt + Tab and go back to the game in like 1s. Or reverse donât go the the gameâs windows and alt Tab 1 s later. Not change these states more often than once every 5 seconds (Iâll improve it but itâs just how it is now)
What do you mean by keep going? Is it when youâre browsin some Grim Dawn site maybe? Having to press toggle button again is a consequence of me restarting the program after the gameâs windows becomeâs active. Iâm doing it to have hotkeys worked 100% of the time after starting the program which I couldnât do without this hack. But I think I can implement remembering âbeing toggledâ again in a different way.
Please try using GDAutocaster now the way I described / maybe make the test I mentioned (not alt Tabbing / activating gameâs window more than once every 5s <- maybe you wonât have any issues then).
After that and hearing if it changed anything Iâll make some changes to the program to improve some of the things you talked about.
Update https://github.com/kowariantny/GDAutocaster/raw/master/GDAutocaster.exe
1. Autocasting on toggle state remembered between Alt + Tabs again
2. Small technical improvement
-
You shouldnât now need to retoggle autocasting_on_toggle again after gameâs window active again
-
Now the program restarts immediately after the gameâs active not 3 seconds after [technical]
It may influence quick subsequent Alt Tabs + coming back to game + Alt tabs
So the tip I gave you to Alt+Tab / gameâs active with 5s frequency at least should not be needed
Now just try what I already written which is
-
maybe running the program as administrator
-
checking whether thereâs only once instance of GdAutocaster after you
- run the program
- go to the game
- alt_tab / make window not active
- go to game again
- alt / tab / make window not active
Now you shouldnât need a few seconds between those but maybe just a second or two
(this probably only applies in practice if you have a game windows and you would rapidly click on the window and on the desktop quicker than once per second?)
The program reads command line / shortcut arguments
GDAutocaster.exe config.ini    (reads config.ini and skips file selection dialog)
GDAutocaster.exe config.ini whatever    (reads config.ini, skips file selection dialog, starts autocasting on toggle automatically)
Ok, so I do alt + tab away from the game and back into it quite fast sometimes - the other day I was just checking a farming route for example, so I was probably going back and forth in a few seconds. I guess that might have been the issue.
In any case, Iâll test the new update later today when I get time to play and say how it goes. Thanks