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

Yes, these are the names of these keys in AutoHotkey. I remember testing in once in some other script and it worked. I bound camera rotation to WheelUp/Down.

Btw half an hour ago I pushed bugfix (Autocasting on Toggle delay wasn’t changing and it was always the default 100ms, never 10s for example) so you may want to redownload if you downloaded the program before that.

Wheel

WheelDown Turn the wheel downward (toward you).
WheelUp Turn the wheel upward (away from you).
WheelLeft
WheelRight [v1.0.48+]: Scroll to the left or right.

https://www.autohotkey.com/docs/KeyList.htm

1 Like

Yes, you should make a combo such as

[combo presses]
combo1=WheelUp:1,2
delay1=200

where 1 is Curse of Frailty,
2 is Bloody Pox

(200 ms delay between buttons presses for such combos is the usual I use)

The drawback of scroll however is that you cannot hold it because I play even most complicated builds by just holding RMB (sometimes also MButton so that it occasionally behaves differently)
[also a button for movement skill, or skills that need to be used occasionally like Mirror / MoT]

so I couldn’t use Scroll because I would always want to bind some Autocast on Hold to it at the same time and it’s impossible. Because the coolest things of the program is combining multiple its feature into one button which may look like this

  • you press and hold RMB
    • first 2 debuffs are cast

    • then delayed centered Inquisitor Seal

    • than after a further delay your channeling attacks or spammable cooldown attacks

You cannot achieve it with Scroll Wheel I think.

Btw write if you’d like some config to a build to get to know the program better.

1 Like

Thank you so much tqFan! I’ll try this right away!
Well I’m totally new to the program so there’s a lot of backspacing going on.
So far I was able to setup perma buffs & periodic buffs.

1 Like

When you make a change in the config, you don’t even have to restart the program:

  • alt tab
  • make a change in text editor
  • back to the game

new, changed config is loaded again automatically after 3 seconds


Permabuffs usually look like this at my end (T is for swapping hotbar in-game)

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



Autocasting by hold can be written like this

0, 7 are attacks on cooldown you spam

[autocasting by hold]
cast1=RButton:0,7



This is how I combine it with 2 debuffs (4 i 5) <- actually one can be just on RMB in-game not or 4/5 usually unless it’s spammed while you hold RMB
(some skills on RMB in-game are spammed while you hold it, others are not)

[autocasting by hold]
cast1=RButton:0,7
initial_delay1=400
^ 200 ms for each of the 2 debuffs from Combo Presses

[combo presses]
combo1=RButton:4,5
delay1=200



If you have channeling skill (or a skill you’d like to have a button pressed down and held) and you want it to cast it with the program with a delay, you can do something like this

7 is your channeling skills

[combo holds]
combo1=RButton:7
initial_delay1=400

initial delay is sometimes needed just to work
or needed when you want to cast some debuffs before channeling




Also remember you can activate these features / combos / casts on double press (and holds optionally)

double_press3=true
double_press3_time_gap=300



If you copy the code, watch out for some typos I may have made.

1 Like

Thanks a bunch again for the effort & documentation of this tool tqFan!

I hate to ask, but how do I make something like “Word of Pain” & “Primal Strike/Savagery” to work with 1 button?

I mean it works, but you stop & look like you’re lagging for it cast and have to release it or press “move to” to get close to your opponent.

Thanks again in advance! :wink:

Definitely ask such questions because it takes experience, ideas and trying dozens of options to find optimal configs.

I assume you’re asking for virtually one button for moving and everything (I usually use Left for Moving and Right for (almost) everything) which makes things easier. The other thing is Melee Savagery in is one of the hardest skills to work with. Melee is harder to autocast in general than ranged or caster. Maybe I also propose you some option for 2 buttons after you respond.

The way Savagery and other Melee skills that are not bound to LMB behave when there are not monsters (targets) around is unfortunately an engine thing and I cannot do anything about it. It definitely makes scripting them harder.

One could mod Savagery I guess.




1 Button Config

  • Savagery cannot be on LMB but on the 0-9 hotbar

    • because it would be than spammed all the time
  • we cannot detect whether we’re near the monster or not

    • so have to switch to Also using Savagery mode manually with just LMB

The only option is the Doube Press I guess

  • after we’ve appproached the enemy we need to click LMB 2x and hold it

We have 2 options now


Option 1

  • clicking LMB 2x and holding it
    • makes you attack with Savagery periodically here and there, in-between your Primal Strike attacks

Option 2

  • clicking LMB 2x and holding it
    • makes you attack with Savagery instead of Primal Strike so that you stack 6 charges that will last you 12 seconds (this is how non-AHK people play)

Option 3 (doable but I’m not including the config since it’s probably too much)

  • clicking LMB 2x and holding it
    • makes you attack with Savagery only for a defined period of time
    • and after that the character goes back to Primal Strike

Config for option 1

  • LMB - Primal Strike

  • 0 - Savagery

  • delay1 - less than 2 seconds

    • depends on variety of things like
      • attack speed
      • gameplay style
      • expectations
      • Crucible vs SR
  • double_press1_time_gap

    • depends on personal speed of clicks
    • high enough so you always manage to 2nd-click in the given time windows
    • low enough so that you not activate while walking / doing other stuff
    • for inventory management and stuff disable it with suspend_key
[autocast by hold]
cast1=LButton:0
delay1=1500
double_press1=true
double_press1_time_gap=300

Config for option 2
(this is not obvious that it works because it makes 0 be pressed while LMB is also pressed and multiple buttons pressed down at the same time often don’t work well in Grim Dawn. Inform me if there are some problems but it works for me.)

  • LMB - Primal Strike
  • 0 - Savagery
[combo holds]
combo1=LButton:0
delay1=0
double_press1=true
double_press1_time_gap=300



How to include Word of Pain into this

Maybe cast it once everytime you press LMB or double press LMB? It would need some initial_delays, good config and testing.




How I would cast Wind Devils (example without Savagery but with Word of Pain)

I like them cast all the time which may be not would some players like because they deal a lot of damage. This is an example of how I usually do it. I would maybe cast Savagery with MButton but I don’t know since I haven’t played such builds for a long time (only Ranged Physical Primal Strike which is a completely different story). But I remember also having Savagery button pressed once every 1XXX ms. Maybe it will give you some ideas.

Our goals

  • Primal Strike (RMB) on RMB in-game

  • Word of Pain (0) cast once after RMB by the script

  • Wind Devils (9) cast all the time

    • but we also making sure they never interrupt our Word of Pain (0)
      • which is not a big deal because you could just press RMB one more time
      • but very occasional interrupting is something we can avoid
[general]
suspend_key=Tab

Word of Pain
[combo presses]
combo1=RButton:0

Wind Devils
[autocast by toggle]
master_toggle=q

key1=9
delay1=200
not_hold_keys19=RButton
^
^we prevent it to be Autocast by Toggle
 when we hold RMB (Primal Strike)

[autocast by hold]
cast1=RButton:9
initial_delay1=200
delay1=200
^
^but we autocast if with initial delay1
 with Autocast by Hold to crate the gap
 where Word of Pain can be cast without
 a low probability of being interrupted
 by Wind Devil



Another option is to switch from Melee to Ranged Lightning PS Vindicator as it’s great too and is better for scripting (because we don’t move when we shot + first Savagery strike is ensured and you can be more precise with everything). But not necessary and maybe you’ll like some of the 1-button configs above or some 2-button configs. I think shooting PS feel better in general, not only for AHK. You can cast Inquisitor Seal where you stand and shoot from there

  • by the way I always have Inquisitor Seal autocast under my character’s feet after starting shooting with my ranged characters

My chilling rounds character: https://www.youtube.com/watch?v=iy7Qkf9Pcn4
or Fire Strike one: Flame Keeper of the Blaze - my results | 7-8s MQ | Crucible ready
are fully automated despite having tons of skills

1 Like

Btw why do you need Word of Pain on Melee Primal Strike?
It’s not some weird Aether one? Cannot it be avoided?
Do you proc some devos with it? Maybe movement skill would longer cooldown (for 100% chance) would be better if you try to proc Skellies for example

1 Like

@tippytam The Autocast on toggle fragment in the last config from my post is not correct now.

Update https://github.com/kowariantny/GDAutocaster/raw/master/GDAutocaster.exe

Autocast by Toggle rewritten and now configurerd as the rest of the features.

  • master_toggle removed!

    • you now specify the toggling button for all the autocasts
      as it’s the case in the rest of the features
  • Watch out for possible bugs!

[autocast by toggle]
cast1=q:0
delay1=100
not_hold_keys1=RButton

cast2=q:1
delay2=1000

cast3=q:7
delay3=100
not_hold_keys3=RButton

All in the documention in the OP

1 Like
  • Takes down notes *

Can’t thank you more as I am forever grateful. :beers:

Let me just take a moment for me to decipher your lesson.

Btw why do you need Word of Pain on Melee Primal Strike?

I just made those examples as I am familiar with those said skills.

Word of Pain is a good skill to be put for RMB (at least if you move with LMB and attack with RMB like me) for many builds because it’s not spammed when you hold RMB IIRC and it’s good to have it cast instantly as an important debuff.

You then proceed to cast i.e. 2nd debuff after 200ms, this time with GDAutocaster
and then maybe 200ms later Inquisitor Seal
and then your channeling skill / spam attacks

That how I play most builds

1 Like

What I did for now is 2 debuffs & 1 item heal on RMB (an experimentation, not perfect, but works) then a default weapon attack replacer on LMB (no links).

1 Like

I’m trying to make certain skills for my reaper autocast while I hold the LMB. Here’s what I have in the ini file right now.

[general]
game_window_id=Grim Dawn
suspend_key=Tab

[autocast by hold]
cast1=LButton: 5,t,RButton,LButton
delay1=100

5 is decapitate, t is bloodbath, Rbutton is Reap Spirit, and LButton is Amarasta’s blade burst

However, none of the skills are activating. It’s like I don’t have the program on

1 Like

It works for me. Sorry for potential stupid questions

  1. Have you used suspend_key to turned it on/off?

  2. Do you see the program working in the taskbar?

  3. When have you downloaded the program? I change the name to
    [autocast by hold] yesterday. Maybe you downloaded the program before that?
    Are you sure you’re running the correct .exe not some earlier version?

  4. Do you see that the correct config has been loaded?
    The config name is displayed when you right click the program’s icon in the task bar.

  5. game_window_id=Grim Dawn

    is not necessary as it is by default

  6. I can see whitespace ’ ’ after the first LButton
    although it’s working for me and probably works
    I haven’t tested it honestsly so maybe better remove it

  7. When You have ABB on LButton in-game you don’t have to autocast it by script
    What I mean is that the second LButton is not necessary and even not recommened
    but will probably work anyway. I don’t particularly like RButton there either but it can
    stay I guess

So I’d use this config

  • deleted 2nd Lbutton as it’s not necessary and may even make it worse
  • deleted space (although it did work for me)
[general]
game_window_id=Grim Dawn
suspend_key=Tab

[autocast by hold]
cast1=LButton:5,t,RButton
delay1=100
1 Like

I forgot to download the newest version. Thanks!

1 Like

Hello again tqFan!

How will I setup skills like “Word of Pain + Shadow Strike” to work fluidly? :thinking:

Thanks again :pray:t4:

Do you have the whole build with all the skills?

I’m playing on a mod and the skills that I gave as an example works just like it. Why? :thinking:

Everything on a LMB should be double (movement there normally, WoP + SS on double press)
or would you like movement on LMB, Shadow Strike + WoP on RMB?

1 Like

On what setting should I set it?

Combo press?
Combo hold?
:thinking:

Combo Hold for SS would be ok but for skills with cooldown I prefer spamming the buttons instead of holding them and leave Combo Hold for cases when i.e. Fire Strike or Channeling skill needs to be held down.

Here are some ways to do it. I tested them all. First two are LMB + RMB, 3rd one is just LMB for movement, WoP and SS.



  1. Two Button setup
  • Movement on LMB in-game

  • Word of Pain on RMB in-game cast by the game

  • Shadow Strike on 0 in-game cast by the scrirpt
    (you don’t have to aim it as it doesn’t need a target or in other words you can cast it under monster feet when none of them are highlighted)

When you press RMB Word of Pain is cast by the game and now we’d like to add Shadow Strike to it. Let’s use initial_delay to be sure Shadow Strike does not interrupt Word of Pain. Let’s spam it so that you don’t have to aim it initially as well

What I mean is you can RMB on the ground and cast WoP as a consequence
and then you can move your cursor while the RMB is still pressed down and
Shadow Strike will fire as soon as you hover over some monster

This is very comfortable because you don’t have to target your Shadow Strike
You just need to target some monster at some point while the RMB is pressed down
after Word of Pain has been cast.

[autocast by hold]
cast1=RButton:0
initial_delay1=200
delay1=100


  1. If you have Word of Pain on 9 instead of RMB yet you still use RMB. This time WoP is cast by the script not by the game.
[general]
suspend_key=Tab

[combo presses]
combo1=RButton:9

[autocast by hold]
cast1=RButton:0
initial_delay1=200
delay1=100


  1. One button setup (LMB for movement + Word of Pain + Shadow Strike)
  • Movement on LMB in-game

  • WoP on 9 in-game cast by the script

  • Shadow Strike on 0 in game cast by the script

  • Word of Pain cast instantly after you double press LMB

  • Shadow Strike spammed after double press LMB and hold after WoP

[general]
suspend_key=Tab

[combo presses]
combo1=LButton:9
double_press1=true
double_press1_time_gap=300

[autocast by hold]
cast1=LButton:0
initial_delay1=200
delay1=100
double_press1=true
double_press1_time_gap=300

Again - you don’t even need to target monsters as WoP doesn’t need a target, just needs to be cast close to monsters. After double LMB press and hold you just need to hover over a monster and then automatically spammed SS kicks in immediately.

1 Like