[Tool] GDAutocaster - play 🎹 builds with ease, autocasting of skills, combos, faster / automatic camera, autohiding of items, centered Inquisitor Seal and more for all games!

Now that the program restarts after Grim Dawn becomes active, config tweaking can look as follows

  • make a change in the currently loaded config
  • head straight back to the game without loading config or restarting the program since it’s done automatically

Very comfy.

1 Like

Everything is working smoothly on my end. Including the key toggle. For nearly a year I guess I’ve just not been able to figure out why I was doing this wrong as I could never get it to work. Your noticing that typo has made me week! Thanks again for your help.

To be honest with you, I personally changed it from

suspend_hotkeys

to

suspend_key

but it was more than half a year ago, before the program was on GitHub.
But yeah, at some point in time it was suspend_hotkeys :pensive:

That’s how long I’ve been copy/pasting my simple getup. I started using it when you first came out with it. :smiley: I always thought I just didn’t know how to do it right! LOL. While on the one hand it makes me feel less like I was just incompetent while on the other hand it points out a glaring issue with my attention to detail. :smiley:

hi tqFan / Veil,

I spoke with you on YouTube and you asked me to reply here.
First off; thank you for helping me!
I can’t wait to try your program out. But I’m not very good with programming/code/etc.
So I hope it’s not too difficult to get this working.

I play GD + reborn 3.0 mod (hope this doesn’t exclude me from using this)
My main is a lv 85 Cabalist summoner. I have 15 pets on my hotbars and 5 toggle-aura’s.
With 1 temporary buff/skill; Call of the Grave, I am already 1 button short and don’t have room to bind potions to hotkeys :confused:

Very frustrating!

It’s really hard in the thick of the fight to check if and which pet has died. Could there be a solution where you could resummon the killed pet(s) with 1 button ?

Or just resummon all if that’s not possible?

Would also love a single button to activate all my toggle-aura skills. This would free up much buttons and save me the hassle of swapping in and out of skills when starting playing (1 button short to activate everything from the 2 hotbars).

Lastly, (this is probably impossible) but it would be totally awesome;

I use 2 ranged skills to trigger/activate my petbuff-devotions: Ice bolt and poison blobs.
I have these on my left and right mouse button. This works, but is annoying because I would rather have pet-attack on my right MB, allowing me for better control when fighting bosses for example.

Do you think there is a way to make the left mouse button alternate between firing an ice-bolt and poison blob repeatedly? So I can spam both ranged attacks with the LMB ?

Many thanks in advance and I am already very impressed with your work so far. The Youtube videos you linked look awesome and I can’t wait to try the other classes with your awesome program!

Don´t forget: There are separate buttons you can bind to health and mana potions. Look them up in the game / key bindings.

The rest of your demands will not be a problem at all :wink:
Boy, you´re gonna have fun with that script, believe me.

1 Like

hihi I’m so excited. Thank you very much, secret santa !
I love this game so much, but the (lack of) controls ruin a lot of the fun.
The baddies in Cairn will be in so much trouble if I get this to work :stuck_out_tongue_closed_eyes:

Well there’s is some initial learning curve because the tool is very flexible so the configuration reflects and you need some kind of experience how to configure things optimally or even better be the author of the program which makes you understand what all features are for because you implemented them for specific reasons. But I’m here to help bridge that gap and I think it’s worth it.

 

No, it doesn’t, it’s still Grim Dawn. But even it it weren’t, the program is meant to work with every game (please report if it doesn’t I may be able to work around that). However it’s configured to work with Grim Dawn.exe process by default so if trying to use it with another game, then a specific entry in the config has to be made.

 

Since you have so many skills and pets I think teaching you GDAutocaster is needed so that you can tweak the program precisely to your needs. I think it will solve your problems or at least make them less frustrating.

 

The program doesn’t read the game’s memory / state in anyway so unfortunately it doesn’t know whether some of your pets are alive or not. Hard resummoning all of the pets (with one button) is possible since it’s just a stream of buttons which GDAutocaster specializes in. Maybe also dividing pets into 2 groups and 1 button for each of the group so that at least some control over which are summoned / cooldown optimal management is preserved.

 

This doesn’t pose any problems as this is just a string of buttons that you can configure however you want with GDAutocaster:

  • any string of button presses with configurable

  • initial delay

  • delay between separate button presses
    (there needs to be some in-between delay for all the skills to be registered and not interrupt each other)

  • and more like combo of button presses on a double button press or double mouse click
    (for example Pet Attack on Double Left Click / Movement skill on Double Left Click)

  • or even changing the behaviour of the combo so that it’s executed only if you hold the button down and stopped while you release (although I used it only once because you usually use other features for such things)

 

Not only it’s possible but can achieved in multiple different ways. But I would start with the combo that turns your perma auras / summons pets etc. first so that you get to know the program better and then maybe do this. It also matters if the skills you mentioned have cooldowns or not. I don’t know these skills, they’re not from Grim Dawn right? If the skills have cooldown then their buttons can and should be spammed while you hold the buttons but if they don’t have cooldowns (or cooldowns are very short; shorter than you would want them to be cast) then their spamming should be done a bit differently.

Another idea of how to do this that you could consider

  • just Movement on LMB

  • spamming of the 2 skills you’ve mentioned on RMB

  • Pet Attack on Double RMB click (or LMB)

IMPORTANT. I will write down some instructions / very initial config in the next post. In the mean time you could send me your character zipped / archived (i.e. _FangedBeatyCabalist) so that I could see where all the skills are on the hotbar; what are their cooldowns, get a feel of the character etc. Forgot you play with a mod that I don’t have installed.

1 Like

Ok, so let’s start with Combos for Permanent Auras, Pets, multiple Debuffs etc.


(btw you haven’t mentioned autocasting of temporary auras like

  • Blood of Dreeg

  • Pneumatic Burst

  • Word of Renewal

This is also a very often use of GDAutocaster and I usually do it so that they are casted by themselves without any input from the user.


 

Download the program from here: https://github.com/kowariantny/GDAutocaster/raw/master/GDAutocaster.exe
 

Now we want to make a text config file in i.e. Notepad with .ini extension, for example

pet_cabalist.ini

with sample content like that

Pet Cabalist

[general]
suspend_key=Tab

[combo presses]
combo1=r:1,t,1,2,3,4,5,t
delay1=400

combo2=f:7,8,9,0
delay2=300

LEGEND

  • suspend_key - is for turning most of the features of the program off / on while in-game (they’re on at the start)

  • r - in the sample config below I use R to activate the first combo which is the following string of buttons (1,t,1,2,3,4,5,t):

    • 1 (set to skill 1 in-game)

    • t (set to change hotbar in-game)

    • 1 (set to skill 1 in-game)

    • etc…

    • t (set to change hotbar in-game) <- we go back to our main hotbar in the end

  • delay1=400 <- this is the time in milliseconds between button presses in the 1st combo

    • it should be as low as possible (so that it’s as quick as possible) provided all the skills are actually cast and non of them get interrupted / do not register

    • in practice I set it to something high like 600 ms and then try to lower it and see if it’s still working 100% of the time (multiple check needed to be sure)

    • usually 200 - 150 is the lowest I can go in some combos but in some specific scenarios I had to even use 600

  • when you cast the same skill multiple times (for example Summon Guardians of Empyrion (1), it’s always got to space it out in the combo

    • what I mean is not to cast it sequentially 1,1,1,2,3,4,5 but space it out like that

    • 1,2,3,1,4,5,1


 
 
HOW TO USE THE PROGRAM

- to run the program just double click .exe and then select your config file

  • you can then proceed to the game

  • the program can run permanently on your computer as it’s light and doesn’t work outside Grim Dawn

  • you don’t have to restart it after making some changes to the config - it’s done automatically after you go back to the game

  • so sample testing workflow might look like that

    • you Alt Tab from the game

    • you make some change in the .ini file

    • you go back to the game (give a program a few seconds to restart)


 
 
Write if you have any questions, even simple / stupid

After you learn how to make Combos for Permanent Auras, Pets, multiple Debuffs and tweak them to your needs to a good degree, it will be a good time to try autocasting the 2 skills you talked before.

1 Like

This is so awesome !!!
I’m gonna try this evening when I’m back from work.
I’ll report back to you how it went.

Thank you. :pray:

1 Like

@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

.
[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
    .
4 Likes

Very clear. Thanks for letting this up to date and supported!

1 Like

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 !

1 Like

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 !!! :smiley:

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.

1 Like

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

  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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)

  1. 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

1 Like