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

Thx mate <3 hope u best, going to check this thread for a while. So sad this game does have a lot QoL things but not default auto changer or multiple buttons interaction. But im already having much joy with code what i have already posted ^^

Btw, there is a bug with shift, if u fast press shift and release then shift could stack foreva till u dont press shift again

I haven’t fixed the Shift problem (although I know it well) it but maybe if you’re playing I could send you another version of the program with some potential fix to test :thinking:

but it may also be some Autohotkey infixable bug or maybe Windows

Anyway you can try this changed version of the program
(may not fix this issue but worth a try :stuck_out_tongue: )


1 Like

Both bugs still exist)

Hmmm so you’re able to reproduce it easily right?
Can you give me your config and describe how to reproduce it? Maybe it will then be easier for me to fix it.

What do you mean by both bugs? Which other than Shift getting stuck do you mean?

[I’m working on the interrupt hold thingy btw]

1 Like

game_window_id=ahk_exe Grim Dawn.exe
[autocast by hold]

Second one its that makes shift to be spammed with RMB as well.
To reproduce stuck bug u need HOLD LMB and then fast press SHIFT. Mby even press second time after 500ms delay, im not sure.

Im pretty sure something strange happens even if u hold SHIFT and then fast click LMB. Shift becomes unheld…unholded…is there even a word?

1 Like

Grim Tools draft

Cooldown caster (main spell has cooldown)

1H & Off-hand
Beginner’s Ravenous Earth Ritualist Vitality Ritualist Nery
SSF shieldbreaker mortar trap blackwater cocktail Fire Shieldbreaker Dabuwa87
Trozan’s Ice Shards - A cold Warlock Beginner Guide Cold Warlock Monceaux
Beginner’s/budget lightning Vindicator (caster version) Lightning Vindicator Nery
Beginner’s Sparky Elementalist Lightning Elementalist Stupid_Dragon
Beginner Storm Box + Stun Jacks Purifier from scratch Lightning Purifier teppieteptep
Semi-beginner target-farmable Outcast Spellbinder Aether Spellbinder AlkamosHater
Beginner’s/budget vitality RE Oppressor + Cabalist Vitality Oppressor/Cabalist Nery
Beginner’s vitality caster Conjurer guide Vitality Conjurer Nery
Beginner’s/budget acid Sentinel Acid Sentinel Nery
Acid Aegis Sentinel - Leveling Journal Acid Sentinel Brewshock84
Fire Shield Throw Paladin build from scratch Fire Paladin Ulvar1
Ruinous Apostle - chaos caster Chaos Pyromancer Evil_Baka
Beginner’s Shield Caster Sentinel - SSF Vitality Sentinel thepowerofmediocrity
How to play Sigil of Consumption - HC - Ravager Vitality Sentinel mostmost
2H Weapon
Beginner’s Pre-Gargabol’s Defiler Vitality Defiler thepowerofmediocrity
Full Faction Gear Ritualist Vitality Ritualist AlexGoldFish_322
Dual Wield
Cold DW Caster Infiltrator | Beginner guide + Endgame Cold Infiltrator tqFan

Not held anymore.

Btw, do u have idea what Ctrl + D does in main menu? xD

No, it’s the first time I see it :thinking: interesting

1 Like

Unfortunately I cannot reproduce these bugs today :thinking:
That’s the main problem for me that they’ve always happened too rarely for me to attempt proper fixing.
(and I’m not that good in AHK to limit the number of possible fixes)

but it does happen often enough for me that I usually try avoid using Shift :laughing:

Hi @Gnomish_Inquisition

1 Like

Same, i notice second one much more often.
Mby its something with windows…

I coded something. The behavior you want works for me

(there can only be one argument before : in combo)


[combo holds]

When holding Space, 3 is held but it’s released for 1000ms every 3s

For example if you’d like to squeeze in (200 ms window) a Doom Bolt on LMB held every 1s while holding Shift (Beronath is on 3), you could write


[combo holds]

if you test longer interrupt_duration with button on the hotbar (3 in this example) you can see them turning on / off

200 ms interrupt duration doesn’t show button on / off I think but it’s happening

1 Like

Sorry if this is a newbie question. If I have Savagery and Primal Strike on cooldown, I want the Primal strike to activate by itself while pressing LMB (doing Savagery attacks) after its cooldown is done, and go back to Savagery while the cooldown cycles. Basically cycle Savagery and Primal Strike alternately while holding down LMB.
would I do it using interrupting combo holds like:
[combo holds]
combo2=Lbutton:1,2 (1=Savagery, 2=Primal Strike)

Or did I get that completely wrong?

Is it Ranged or Melee?
Can you have Savagery on LMB?

Anyway, this interruption is a pretty new feature and kinda hacky in nature and I would do it in some other way.

Here are my assumptions, let me know you want it differently:

  • Savagery on LMB (for simplicity, can be changed)
  • cooldown version of Primal Strike on 2
[autocast by hold]

what it does it spams 2 every 200ms while you’re holding LMB which is totally fine for cooldown skils.

It might be the case that having 2 spammed while holding LMB might be annoying for you in certain scenarios. For example when filtering stash, clicking on some text field. Here are some solutions for it:

Solution 1 - turning if off manually when it’s bothering you with Tab for example


[autocast by hold]

Solution 2 - delaying the spam by 200 ms with initial_delay so that it’s not activated with single LMB clicks but clicks proceeded with at least short holds.

[autocast by hold]

Solution 3 - making the spam work not after 1 click and hold but after 2 clicks and hold

[autocast by hold]

I was writing by hand not copying hopefully there are not typos and I remember everything right.

@steve01055 I’ve just noticed / recalled that at least with melee when you spam 2 cooldown Primal Strike like that and hold LMB (Savagery) very close to your character when there are no monsters around / highlighted - Primal Strike is activated in place without targeting any monsters which can be kinda meh at times. One can probably used to it but I’ll think now if it can be avoided.

The build is Melee.
And the first solution worked for the cooldown based Primal Strike. Had the delay set to 3000 so there’s no “skill isn’t ready” announcement, works great so far. Tested it on the dummies, the no-target-activation doesn’t seem to be happening.
Thanks for the help!

1 Like

You need to turn it off in options. I cannot imagine using GDAutocaster with these on
And I recommend revert the delay back to 200

There are 2 separate options (in different menus I believe) for

  • message on the screen
  • sound informing you about the cooldown

The thing I mentioned happens when no monster / dummies are around / highlighted. When you are just running with your char, holding LMB and move it very close you your character.

[edit] I don’t think there’s a solution for that but it’s not that big of a deal. This is how Grim Dawn works for the most part. Only skills on LMB don’t behave like that.

Alternative could be having

  • Move on LMB
  • Primal Strike + Savagery on RMB

(probably better for Ranged Shaman)

Depends on preferences.

MY bad, the 3000 was perhaps not the right choice.
Otherwise Solution 2 is working great. The initial delay-short hold is much better ingame.

And yes the secondary issue isn’t that big of a deal. Thanks for the quick response!

1 Like

Yeah, you want that PS button to be spammed so that it fires as soon as off cooldown in various different scenarios.

3s delay could cause very long delays, for example if PS was pressed just before targetting the monster
it would activate nearly 3 second after you started fighting with it because that’s when the next press would be
(at least if you kept holding LMB the whole time and not release + press down again after highlighting the monster)

When I load the .ini file that is posted here, or attempt any edits to it, I get the following error and GD Autocaster closes:
“Some functions bound to 1 differ in
whether they allow 1 native function.”

1 Like

Hi. I don’t think you should attempt to load this super extensive config by the program. It’s just a showcase of options not meant to work, I’ve never loaded it. Better to write config from scratch or ask me to write you some basic one with stuff you want.

Anyway, here’s some example when you can get such error (or rather a warning):

[autocast by hold]

[combo presses]

See that one function bound to 1 has key_native_function equal to false, another to true.
This warning tells you to make it consistent because

  • in one place ([combo presses]) you say you want pressing 1 to still send 1 press
  • in other ([autocast by hold]) you say you don’t want 1 press signal sent after pressing 1

(“1” being sent after pressing “1” is button’s 1 native function)

Anyway, the easy solution is just to delete the key_native_function thing from the config:

[autocast by hold]

[combo presses]

(or just delete all features activated by 1 altogether)

although it might be possible that some features (aka sections of the config) have different default setting for this nativeness but it should be pretty rare