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

Iā€™ll add the configuration option so that you can configure it to be ā€œedgyā€
Iā€™ll also look into hacking camera rotation speed, maybe Iā€™ll be able to have a configuration option for it too.

<< reading your second message <<

[Edit] Maybe Iā€™ll first tackle the camera stuff and then I go back to the 2nd problem.

1 Like

Ok. Thanks for your help.

Iā€™m going to finish it tomorrow but itā€™s going to be

ignore_area_shape=circle
ignore_area_size=30
ignore_segment_angle=20

(size is in % relative to fullscreen size)

for rotation to work on edges only you are going to do something like this

ignore_area_shape=rectangle
ignore_area_size=90

(so ignore area is a big-ass rectangle)


After making the above available to users Iā€™ll try to find keyboard camera rotation speed in Grim Dawn process and hack it
(I think Iā€™ve seen it already but it may have just been my imagination)


And then your pets behavioral issues.

1 Like


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

[automatic camera]

[automatic camera]
rotate_left=b
rotate_right=n
initial_delay=200
rotate_key=LButton
delay=200
ignore_area_shape=circle
ignore_area_size=30
ignore_segment_angle=20
  • rotate_left [mandatory]

    • in-game button resposible for left camera rotation
  • rotate_right [mandatory]

    • in-game button reponsible for right camera rotation
  • initial_delay [optional] {200 by default}

    • rotation starts this many milliseconds after you hold the rotate_key
  • rotate_key [mandatory]

    • rotation activates when you hold this button
  • delay [optional] {100 by default}

    • cursor position is checked every this many milliseconds
  • ignore_area_shape [optional]

    • circle [default] or rectangle
    • shape of area centered at the middle of the screen where rotation doesnā€™t take place
  • ignore_area_size [optional] {50 by default}

    • this percentage of maximum area
      • which is either the whole screen

        • in case of rectangle
      • or the biggest circle than can be fit on the screen

        • in case of circle
  • ignore_segment_angle [optional] {20 by default}

    • half of the radius of a circular segment around 12 oā€™clock where rotations doesnā€™t take place
1 Like

I used your new default [automatic camera] script and when I turn, the camera keeps rotating endlessly. I will try the rectangle to see what happens.

Edit: Love the rectangle area_shape! Area_size 50 is the best for me as it does not turn so fast like the cursor auto camera and not so slow like Area_size 100 especially when doing 180 degree turns.

Edit 2: For the pet issue, the Fixed click is actually clicking outside the pet display for the 2nd pet because I will walk towards the direction of the pet display when the script finishes.

1 Like

Absolutely yes. My numbers are just some example numbers that are good for myself (1280 x 720). You need to make a screenshot and measure pixels in Paint.

Yes.

1 Like

Btw hereā€™s my 1 button combo for

  • perma buffs
  • summoning cosmetic pet from inventory
  • changing its behavior

The config for it is:

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

combo6=R:C,C
initial_delay6=0
delay6=1000

[fixed clicks]
delay=25
initial_delay=0
go_back=true

clicks3=[425,450][20,60][20,60]
initial_delay3=200
button3=R

Full config for my Main Campaign Drain Essence is

Cold Drain Essence

[general]
suspend_key=Tab

[autocast by hold]
cast1=Space:0,9
delay1=200
double_press1=false
double_press1_time_gap=500

cast2=s:i

cast3=RButton:7
delay3=200

cast4=RButton:6
delay4=2000

[autocast by toggle]
autocast_right_away=true

cast1=F1:5
delay1=1000

[combo holds]
combo1=RButton:8
initial_delay1=200

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

combo2=g:LButton,j
delay2=0

combo3=CapsLock:m
key_native_function3=false

combo4=z:m
key_native_function3=false

combo6=R:C,C
initial_delay6=0
delay6=1000

combo7=F1:`
initial_delay7=200

[hide items]
hiding_buttons=RButton
ingame_hide_button=RAlt
hide_duration=1000

[camera]
angle=60
counter_clockwise=a
clockwise=d
rotation_key=k
delay=40

[fixed clicks]
delay=25
initial_delay=0
go_back=true

clicks1=(1270,230)
delay1=0
initial_delay1=0
button1=Ctrl

clicks2=(640,580)
initial_delay2=100
button2=z

clicks3=[425,450][20,60][20,60]
initial_delay3=200
button3=R

Ok. Iā€™ve finished testing my own setup and here are the changes to the script for 1920 x 1080 (16:9) screen:

[combo presses]
combo1=CapsLock:1,2,3,4
delay1=0

[fixed clicks]
clicks1=[45,65] (45,65)
delay1=25
initial_delay1=250
repeat1=3
translation1=0,60
button1=CapsLock

If you want to change the petsā€™ behavior (edit: to Defensive) after summoning them, hereā€™s the script:

clicks2=[45,65] (50,115)
delay2=25
initial_delay2=250
repeat2=3
translation2=0,60
button2=F1 (edit 3: changed to F1 as @tqFan confirmed that there are no double presses in fixed clicks)

(Edit 3:) To change the petsā€™ behavior back to aggressive:

clicks3=[45,65] (45,65)
delay3=25
initial_delay3=250
repeat3=3
translation3=0,60
button3=F2

@tqFan, how do I do a double_press Shift to make the pet behavior change back to aggressive? I tried this but it does not work, it messes up the script:

clicks3=[45,65] (45,65)
delay3=25
initial_delay3=250
repeat3=3
translation3=0,60
button3=Shift
double_press3=true
double_press3_time_gap=300

Please help me debug the double_press script. Thanks.

Edit 2: Can you also help me check my script for 1-press to World map?

[combo presses]
combo2=z:m
delay2=0

[Fixed click]
clicks3=(955,855)
initial delay3=1000
button3=z

Fixed clicks donā€™t have Double presses!
You need another button. I wonā€™t add double press for Fixed Clicks because it would be an overkill.

Should be [fixed clicks] right? I see a typo

Oh and 1000 ms is not needed. I think I have just 100 ms and itā€™s working

Btw I could think one day of restructuring the code so that Double Press can be easily added to the features because as it is now I code Double Press from scratch for every feature.

Even putting 1000, sometimes the fixed clicks for world map does not work. I have no idea why but it shows only the local map even after pressing ā€˜zā€™. I thought it may be because the click is happening faster than the map appearing so I put a longer delay but apparently thatā€™s not the case as it still gets stuck on local map sometimes.

Please paste here your exact config for insta world map because in what you wrote before there are typos.

[combo presses]
combo2=z:m
delay2=0

[fixed clicks]
clicks4=(955,855)
initial delay4=1000
button4=z

initial_delay -> ā€œ_ā€ missing
you have 0 initial delay because of that
and thatā€™s way itā€™s not working sometimes

correct it to
initial_delay4=100

1 Like

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

Fixed serious error in the code that might have been causing bugs with some configs

  • worth redownloading
1 Like

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

fix Autocast By Hold not working correctly on double press

fix ComboHolds not working correctly on double press
(and working incorrectly on single press if double press was configured)

@wulunzun By attempting to use Double Press with a feature that doesnā€™t have it
you gave me idea to extract Double press code into separate class
so that I can add it to features easily
and not rewrite every time as Iā€™ve been doing so far

so if you want it for Clicks I can add it easily
for this 2 x Shift Defensive Pet behavior

1 Like

Iā€™m donā€™t think (edit) I need it now as I have changed the keybinds to F1 and F2 for Defensive and re-Aggressive respectively. The reason is that when I used Shift as keybind for GDA, it messes up things when I want to transfer items from bag to stash as I use Shift + item for easy transfer. So now I want to keep it free. Iā€™m lazy to un-tab and tab again to turn on and off GDA. :sweat_smile:

@tqFan the angle for manual camera is off. In my script, I use angle 120 and it turns 180 degrees. If I put 180 degrees, it turns around 270 degrees. If I put 90 degrees, it turns around 135 degrees. It seems to turn 1 1/2 times of the value of angle.

[camera]
angle=120
counter_clockwise=WheelUp
clockwise=WheelDown
rotation_key=MButton
suspend_key=Insert
delay=40

One QoL suggestion I have for users of GDA is to combine the following 3 functions into 1 key:

  1. Auto-rotate camera
  2. Walk
  3. Skill to Rift Tear or similar dash skills

Combine these 3 functions using GDA into 1 key, NOT the Left mouse button. The reason is that sometimes I want to walk backwards a short distance to loot an item dropped by an enemy killed by my pets and the camera turns as I turn. Then, when I move forward again, the camera turns again. This makes me dizzy no matter how slow I make the camera rotate. So, to prevent this from happening, I bind ā€˜Aā€™ to the 3 functions so that for the scenerio just mentioned, I can use my Left mouse button to move backwards without the camera rotating.

I do not want to bind the skill Rift Tear to my Left mouse button because sometimes I am just beside a chest or vendor and when I press the Left mouse button to activate the chest or vendor, I do a Rift Tear instead.

Also, if I bind auto-rotate camera to my left mouse button, the background will rotate when I try to drag the map to find Rift gates to port to. This is just a minor annoyance, nothing major.

1 Like

Hmmā€¦ maybe it depends on number of pixels because at 1280 itā€™s ok to me
and you probably play at 1920 and 1920 / 1280 = 1 1/2. Iā€™ll test it maybe and change it


Or maybe you can move by holding cursor near your character?
Then itā€™s in Ignore Area and the camera is not rotating.


You can bind Rift Tear to LMB Hold Spam with an initial delay.
This way it wonā€™t work on single clicks. Something like this:

[autocast by hold]
cast1=LButton:Rift_Tear
delay1=200
initial_delay1=200

(also on double LMB + hold with initial delay)


Maybe youā€™d like

  • rotation on Double LMB + Hold

  • or rotation will a long initial delay so that when you drag the map it doesnā€™t activate


1 Like

@GaeanC @wulunzun

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

1 Like

Just tested it. Working perfectly now. :grinning:

Warning!
How you set Double Press Time Gap has changed from

double_press1_time_gap=300

to

double_press_time_gap1=300