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
Ok, tested it for about 40-ish minutes, with window swapping every now and then, and it worked seamlessly. Only one instance active, and it also resumed casting every time I got back to GD (which is great cause Iāve lost count how many times I almost died on my HC char by running around Ugdenbog with 40% poison resist until I noticed Blood of Dreeg was off).
Havenāt tried using it as admin as I decided to check it without selecting that first. Since it worked I guess thereās no need for that.
Also, just added the shortcut thing to skip the config file selection dialog and it worked as well.
Thanks a lot for your work and help.
Thanks for not going back to the previous version and testing the new one.
Update https://github.com/kowariantny/GDAutocaster/raw/master/GDAutocaster.exe
- Autocasting on toggle is prevented while you hold any of not_hold_keys, not all of them at once as it was before.
[1]
toggle_key=1
delay=2000
not_hold_keys=LButton,RButton
- Deleted autocasting while holding button from the feature below because its better version is Periodic casts. The following is not possible now
Warning! Periodic Casts is being renamed to Autocast by hold.
[1]
hold_keys=Space
delay=2000
3.- Basic autocasting on toggle renamed to [u]Autocast by toggle[/u]
-
Itās now configured in a consistent way with other features of the program
-
toggle_key is now optional
-
pressed_buttons was deleted because it was redundant
-
Read more in the new documentations in OP
-
old version of the program and documentation are still there if you donāt feel like changing your configs but will not be further developed
-
Iām planning to add a new option to reset/refresh Autocast by toggle timer while pressing itās button for optimal usage of skills like Blood of Dreeg
- When you press the button, you activate BoD and get healed and next time the skill is activated is delay from the moment you activated it manually
-
New configuration
[autocast by toggle]
master_toggle=q
key1=0
delay1=100
not_hold_keys1=RButton
key2=1
delay2=1000
key3=7
delay3=100
not_hold_keys3=RButton
Old configuration
[autocasting]
master_toggle=q
[0]
toggle_key=0
delay=100
not_hold_keys=RButton
[1]
toggle_key=1
delay=1000
[7]
toggle_key=7
delay=100
not_hold_keys=RButton
4.- Periodic casts renamed to Autocast by hold
- Just change the name of the section in your config from [periodic casts] to [autocast by hold]
Hereās how my config to the following build
looks now
Vitality Storm Totem
[general]
suspend_key=Tab
[autocast by toggle]
master_toggle=q
key1=0
delay1=100
not_hold_keys1=RButton
key2=1
delay2=1000
key3=7
delay3=100
not_hold_keys3=RButton
[autocast by hold]
delay=100
cast1=s:s
cast2=Space:6
cast3=RButton:0,7
initial_delay3=400
cast4=RButton:8
initial_delay4=200
delay4=2850
[combo holds]
combo1=RButton:9
delay1=400
[combo presses]
combo1=r:t,1,2,3,4,5,t
delay1=600
combo2=g:LButton,j
delay2=0
combo3=CapsLock:m
key_native_function3=false
Thank you so much for this wonderful tool tqFan!
Do we have a command or option to assign on mouse scroll? Like WheelUp/WheelDown commands?
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. |
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.
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.
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.
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!
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
- depends on variety of things like
-
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
- but we also making sure they never interrupt our Word of Pain (0)
[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
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
@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
- you now specify the toggling button for all the autocasts
-
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
- Takes down notes *
Canāt thank you more as I am forever grateful.
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
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).
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
It works for me. Sorry for potential stupid questions
-
Have you used suspend_key to turned it on/off?
-
Do you see the program working in the taskbar?
-
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? -
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. -
game_window_id=Grim Dawn
is not necessary as it is by default
-
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 -
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
I forgot to download the newest version. Thanks!