Idle Wizard – Autohotkey Various Scripts

Tired of constantly having to mouseclick to get those achievements? Tired of having to change sets of spells and equipment all the time? Tried of having to hit space, then click the 4 dust places, then hit space again? Tired of a billion other things?

Well look no further. I made some scripts to facilitate just any stuff that you can come across, that would also tire me personally.

For this guide you will need to have autohotkey installed (I think? It’s free anyway) and… that’s it! I will cover the rest below, but it’s gonna simplify your runs 100%

Introduction

This guide will guide you to automate parts of the game that perhaps you find pesky. We will be using scripts, but not executable files. You can edit the scripts yourselves, so that there is no code hidden from you.

If you’re unsure about what a thingie is doing, you can see the documentation.

The program we will be using is AutoHotkey. It’s free, and though it’s not that simple to learn, we now have chatGPT don’t we. What a time to live in lmao.

The program basically allows to create macros for hotkeys. but it contains many structures of coding languages like loops, if-else, etc.

Anyway, I’ll go forwards cause I don’t read introductions either.

What to do for ALL scripts

I’m writing this once, so that I don’t have to write it again and again. Do this anytime you want to create a new script. Do this AFTER you install AutoHotkey.

1. Create a new notepad file.
2. Open it up and write these inside:

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

F6::ExitApp
F5::Reload

The first three lines just are some default stuff. I’ve no idea what the first 2 do, something about stability and compatibility or something. The third one can be omitted really, it just makes sure that the working directory is the directory that the current script is located.

Then we set our first two hotkeys. F6 exits the script, F5 reloads it. Change those hotkeys to whatever you want.

3. Rename the .txt file extension to .ahk

This just turned it into a script now. You can double click it to run it, then hit F6 to stop it, or F5 to run it again (if you make changes to it). To edit it, you have to right-click and open it with notepad. Btw, any IDE is also fine.

AutoClicker

This will lock your mouse cursor on the place where it was when you hit the hotkey, and will start clicking every 5 milliseconds.

c::StartClicks()

StartClicks(){
CoordMode, Mouse, Screen  
MouseGetPos, xpos, ypos  
Loop
  {
    Click, %xpos%, %ypos%  
    Sleep, 5
    If(GetKeyState("u", "P"))
    Break
  }
}

So with this, by pressing the “c” key, it will

a) The first line sets the coordinates relative to the screen or something. I just copied and pasted it. Do the same.

b) Get the x,y coordinates of the mouse cursor

c) Start a loop that clicks on those coordinates and then waits for 5ms.

d) Stop doing it if the user presses the “u” key.

Change these as you see fit. Always remember you can press F6 to stop the script immediately (with what we included in step 1).

AutoCollect Dust

So I simulated here what I always do when I go to collect dust. Hit space, click the bowls, then hit space again. Here’s the code for it

a::autoCollect()

autoCollect(){
  MouseGetPos, xpos, ypos 
    Send, {Space}
    Sleep, 100
    Click, 1330, 630  
    Sleep, 50
    Click, 1389, 849  
    Sleep, 50
    Click, 516, 624
    Sleep, 50
    Click, 447, 845
    Sleep, 50
    Send, {Space}
    MouseMove, xpos, ypos
  Return
}

Note that these coordinates are for my screen. So for example, the first click, clicks the bowl at the top right.

What it does is pretty straight-forward it simply does what you would do manually. Then it returns the cursor where it was originally.

To make your day easier, here’s a script that logs your mouse coordinates and simply shows them in a message box.

F1::logmouse()

logmouse(){
    MouseGetPos, MouseX, MouseY
    MsgBox, %MouseX% %MouseY%
Return
}

You can use this to find the exact coordinates of the bowls, so that you don’t have to guess.

Alternate between spell sets

I found myself many times hitting Z1 and Z2 fast to collect voids and stuff to get chara XP fast after realming. With this, this is automated.

Note that this only alternates between 2 spellsets of your choice.

s::startZeds()

startZeds() {
  Send P2
  Send {Z Down}

  loop{
  Send {2 Down}
  Sleep 50
  Send {2 Up}
  Sleep 50
  Send {3 Down}
  Sleep 50
  Send {3 Up}
  Sleep 50
  If(GetKeyState("u", "P")){
        Send {Z Up}
        Break
        }
  }
}

Ok so let’s explain what this does. I have my void equipment in set 2. So that’s why it sends P2 in the beginning, to equip the set.

Then I have my two spellsets on 2 and 3. So that’s why you see 2 and 3 there.

So first it hits Z and keeps it pressed.

Then it loops between pressing 2, then unpressing 2, then pressing 3, then unpressing 3.

This is a bit weird that I had to do it this way, but there were problems with the game if I did it in other ways. So yeah, this works at least.

Adjust the numbers or whatever to your liking.

AutoBuy & Upgrade

So I use this when I exile, to buy fast sources and upgrades. I also use it during burst, so that I don’t have to stand there and keep on pressing shift+up and B all the time.

F12::prep()

prep() {
    Send, {LShift Down}
    Sleep, 100
    loop{
    Send, {Up}
    Sleep, 50
    Send, B
    Sleep, 50
    If(GetKeyState("u", "P")){
        Send, {LShift Up}
        Break
        }
    }
}

As is obvious, it keeps the left shift down, then keeps on pressing the up arrow and B all the time. If you press “u” it stops pressing the left shift and stops the loop. I use F12 for it, because I rarely use it and I wanna remember where it is.

Always stop this script when using other scripts, because it keeps the shift button down, so you will most definitely rewrite spell sets if you use it with something like that.

Change sets and equipments fast

Just somethings to quickly change sets and equipment. Most of us keep spell set and equipment on the same number. So this simplifies this process, and selects the same number of spellset and equipment.

F1::setAny(1)
F2::setAny(2)
F3::setAny(3)

setAny(number) {
    Send {P Down}
    Sleep 50
    Send {%number% Down}
    Sleep 50
    Send {P Up}
    Sleep 50
    Send {%number% Up}
    Sleep 50

    Send {Z Down}
    Sleep 50
    Send {%number% Down}
    Sleep 50
    Send {Z Up}
    Sleep 50
    Send {%number% Up}
    Sleep 50
}

Simply, press F1, it selects spellset 1 and equipment set 1. Press F2 it selects 2, etc.

It would be simpler, but for some reason Idle Wizard messes up when you don’t do this stuff with “press key down, release key” and for some reason stores sets in different numbers, despite “shift” never being pressed, I don’t know why it does it, but this is a workaround.

This guide about Idle Wizard was written by MAKAIROSI. You can visit the original publication from this link. If you have any concerns about this guide, please don't hesitate to reach us here.

About the author