Latest Diablo 3 News
DiabloWiki Updates

AutoHotkey Scripts to enable WASD-style movement

Discussion in 'Diablo 3 Community Forum' started by YelgisDarej, Mar 26, 2012. | Replies: 17 | Views: 22598

  1. YelgisDarej

    YelgisDarej IncGamers Member

    Joined:
    Nov 1, 2004
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    AutoHotkey Scripts to enable WASD-style movement

    Hello, on the Blizzard forums I go by Yelgis. I run a Google Code project site called diablo-iii-wasd.

    The purpose of this project is to enable alternative movement styles and input methods within Diablo 3 through unobtrusive means. That means none of the scripts you will find on the project site try to read, modify, or otherwise hack game information. They also are not in anyway intended to automate anything. I will never support botting with scripts.

    With that out of the way, I'll move on to what I have to offer at the project.

    Currently, I have two scripts offering alternative movement options.

    The first is Diablo III WASD. This script enables WASD input to move your character in the 8 basic directions (N, E, S, W and NE, SE, SW, NW). It detects your resolution automatically upon entering the game and will work on all 16:10 and 16:9 resolutions. The only setup required is to downloading AutoHotkey and making a few keybind changes within the game. You have to bind the "Move" key to F12 and make sure to unbind WASD from any actions in the game.

    The second is Diablo III G13 Joystick. This script uses the analog joystick on the G13 to give you nearly 360 degree facing and movement control in the game. It is based on the same code as the script above so setup is also pretty much the same with the added step of running a joystick test app to identify the joystick number your system has applied to your G13 and editing it in the source.

    Both scripts will close by themselves when you exit the game and as a bonus will terminate the Agent.exe process if for some reason it is still running after Diablo has already shutdown. (An annoying little bug that keeps you from relaunching the game because it is still running. This annoyance is reintroduced every so many beta patches)

    The scripts are released under the Free BSD license so you can do whatever you want with them and they can be found at:
    http://code.google.com/p/diablo-iii-wasd/downloads/list

    I urge everyone to give them a shot if you have access to beta, even if you are unsure that this style of movement would fit with the game. The only way to know is to take a test drive. Several skeptics were doubtful at first, but I have received a few compliments from those same people once they gave it a shot.
  2. skyevn

    skyevn IncGamers Member

    Joined:
    Mar 15, 2012
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Caution:

    Using scripts that utilize per-recorded x,y coordinates and/or causing mouse movement (like this one above) is strictly against the Term of Use.

    Blue Post:
    Link:
    http://blue.mmo-champion.com/topic/38155-is-this-within-the-tos/

    Use at your own risk.
  3. YelgisDarej

    YelgisDarej IncGamers Member

    Joined:
    Nov 1, 2004
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Skyevn. That is an interesting find and it certainly does have some relevance to what the script does. It was in reference to WoW though so it may not apply 100%.

    Also this script isn't targeting or casting spells for you, but it is in essence moving the mouse for you in response to you pressing a key for movement.

    I am going through several steps to try to get an official answer on this specific scripts function by sending emails, posting the question on the official forums, and even sending tweets to key Blizzard employee twitter accounts. If or when I get an answer I will respond accordingly.

    If they red flag it I will take my stuff down and be saddened, because I really think movement options besides just mouse clicking should be supported. They are going to have to do so anyway to support the console port idea the are toying around with anyway. It is strange for them not to test the waters with the PC version. If I get the okay from someone official I will link that information here to ease people's fears.

    Caution is of course a good thing to advise to people and I have never claimed this is 100% safe since I don't have a response from someone official yet. My license for the script also lets user know they are using it at their own risk and I hold no liability like any good license will.

    I have used this in beta for a while now though, and this is not something that Warden will automatically flag. AutoHotkey is not on their list of unapproved third party programs, because it has several legitimate uses in creating Hotkeys for your desktop and all kinds of programs. Here is an article at PC World discussing such uses: http://www.pcworld.com/article/187074/work_more_efficiently_with_free_autohotkey_tool.html

    Another telling factor is Blizzard has allowed this particular program to run alongside WoW since its release. It is a common program to be running in a mutliboxxer's arsenal. That fact alone gives me some comfort in the fact that this script isn't going to be flagged as a no go right off the bat.
  4. skyevn

    skyevn IncGamers Member

    Joined:
    Mar 15, 2012
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    It's not about what program you use (in this case AutoHotkey) or the end purpose of the script per-se but what the script does.

    There was a discussion about this a few year back, it was regarding Multi-boxing, mousecloning and what is acceptable by Blizzard.
    Blue clearly draw the line about what you can and cannot do regarding mouse function.

    Basically you cannot write a script to tell your mouse to move to a specific spot (x,y coordinate), or move on its own. Part of their reason is because function like this can be use to create action that is impossible/or hard for human to perform (moving in a precise fashion) or perform a pre-defined, pre-determined action (botting).

    I think your script fall under the second category since every time you click W,A,S or D you tell your mouse to move in a pre-determined fashion (If I am not mistaken)

    Sure your cause is noble and to be honest I could not careless about WASD, but utilizing a script that move your mouse in a predetermined pattern is a clear no-no.

    Multiboxing In wow for example :
    -Move your mouse and click in one screen - the mouse in other screen move and click in an identical fashion -> Acceptable (mouse cloning)
    -Click a button: the mouse move to a pre-determined spot and click -> Not Ok. Since the precise location of where to move and click on the screen is pre-determined, this is considered automation (botting), even though you can argue that you have to physically clicking a button.

    And it's true about the AutoHotkey program, it's true that Blizz is not flagging program like this and AutoIt specifically. It's what the script you write does and what you use with the program that is more relevant. I remember back when I was still playing in WoW BC and people in my guild was using an AutoHotKey script to bot BG and farming Honor. Many of them get the ban hammer, many does not. It was pretty clear that script was illegal, but it's all about getting caught.

    I'm merely talking about whether your script is acceptable under the Term of Use or not.


  5. YelgisDarej

    YelgisDarej IncGamers Member

    Joined:
    Nov 1, 2004
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I don't mind the discussion Skyevn. I can somewhat agree your stance on calling it botting. The script does do automated precision mouse movement and does it very rapidly.

    As for your example of your friends botting BG's, that is understandable that they got banned. They were using a program to play the game for them while they were doing other things. That is automation in its worse form. Anytime you have a program perform actions for you, whether they be keyboard keypresses in a certain order or mouse movement and input, that is automation. What that automation achieves as its end goal is what is more important to focus on, in my opinion.

    AFK botting programs I am completely against and will never try to code one. This script's goal is to add an alternate move style to the game while reducing the reliance on the mouse hand for a gamer that may not like it or actually has physical reasons it would be better for him to offload some repetitive tasks from that hand.

    The issue I find with some of the references to the issue in WoW mutliboxxing is that those sources are fairly old and in truth people still use these types of things today and they seem to be accepted in that facet. Many multiboxers use macros and/or scripts to do things like reposition their characters into a flying V formation or a pentagram for instance. I can tell you for certain those types of maneuvers are mostly achieved by automating keyboard and mouse inputs in a precise manner on multiple characters at once. If that is to be allowed wouldn't it make sense something simpler such as these scripts is pretty much along the same lines?

    That earlier link mentioned targeting spells with precision mouse input. All my script is doing is moving the character forward in specific direction tied to a Keyboard key a very short distance.
  6. skyevn

    skyevn IncGamers Member

    Joined:
    Mar 15, 2012
    Messages:
    8
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I bring up the botting example precisely to demonstrate that point: Just because many people do stuff and still not be ban doesn't mean it is not against the rule or Blizzard accepted it. I have seen many popular and unpopular bot, simple and not so simple bot in WoW being used and not ban. Auto Mining, auto herbing, heck there's even one that auto inscribe, listing glyph on the AH for you and that short of things. I have friend that keep nagging me to come back to WoW so he can use my char to bot since it was so lucrative selling gold for cash ( I wish I was making that up).

    Again, just because it is running rampant is not the same as Blizzard accepted it. The more important thing is getting caught.
    Back to the period in WoW I was citing, the number of my friend that got banned is not that many actually, they were idiots overusing it, most are smarter. The botting problem get so bad later in BG Blizzard have to implement the peer reporting Idle system thingy. I think botting BG still continued to this day (dunno, didn't play Cataclysm)

    Also while multi-boxing in its simple form is allowed by Blizz, what specific actions are allowed is a very-gray area. It usually take a blue response to address something specific. Like in this case regarding using x,y coordinate. I still remember cause a few year ago there was a multi-boxer tool call mousecloner that utilized the x,y coordinate scripting. And the blue response I quoted basically made the developer to revamp the whole program code to not using any pre-recorded x,y coord .

    With that said it's kinda like the law, what is unacceptable is rather clear. You can argue its simplicity, or its usage or "other are doing it and not being banned" all you want but that is just rationalization.


    Your purpose is simple and innocent enough (just for WASD) and like I said, I could not careless. But be warn that bot will be using similar method to move their character. It would suck to trip up Blizzard bot detection and get suspended because of a script that move your character 2 yard.

    I'm not saying you should stop using it, hell I used plenty of things in my WoW day knowing I would be screwed if I get caught. That's not the point. The point is if you are using script like this and get caught (however unlikely that is), they can ban you.
  7. YelgisDarej

    YelgisDarej IncGamers Member

    Joined:
    Nov 1, 2004
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Oh I know full well that Blizzard could ban me anytime they deemed for any reason pretty much. You agree to that the moment you sign their ToS.

    You said "With that said it's kinda like the law, what is unacceptable is rather clear." This thing is that it isn't. The only place the "law" in this case is defined is in the posted Terms of Service you agree to when you install or log into the game (if it changes). In that respect, the only thing this script could violate is the clause where they claim "A third party program is any file or program that is not a part of the Diablo III software, but is used to gain an advantage in the game"

    Source: http://us.battle.net/support/en/art...itation-and-client-server-manipulation-policy

    If you look up the WoW policy they list "unapproved third-party applications", the issue is Blizzard doesn't maintain a list of what is or isn't approved or even an exact list of things that can and cannot be done. The example from the Diablo Policy only mentions apps that give you an advantage such as faster gathering rates and increases map visibility (auto-gather mods and MapHacks seem to be the examples they were using). This leaves gamers guessing about what is an isn't allowed. It isn't Blizzard's responsibility to list every possible thing, but it should be easier to get a response from them on a certain program or mod. I've been trying various channels to do just that with no luck yet.

    The issue with the examples you have been giving are all mods that exploit the game economy in some way or get the user something for nothing. All your examples so far have been called strictly what could be called bots, with the exception of that one mouse cloning tool you were talking about.

    Technically Input Director, Synergy and a slew of other mouse/keyboard cloners all fundamentally do the same thing. They take mouse data from one system and cause the mouse on other systems to go to the same recorded coordinates and issue the same clicks as the master. So by that explanation given by that old blue post you dug up all those tools are on the bad list. Yet they are still used and widely accepted in the multiboxing community. Generally it seems Blizzard has given those kind of tools a pass as they don't play the game for you.

    Neither do my scripts. That isn't saying Blizzard couldn't ban for them all the same and it is fair to give potential users that warning, but you can be banned for nearly anything at any time. You agree'd to the Terms of Service and it pretty much states that if you read it clearly.

    Once again I am still going about many channels to try and get a real yay or nay on this specific implementation. I blue post referring to another title (and vaguely at that seeing as how the question was framed) that is nearly 3 years old doesn't necessarily apply directly to this case. If people want to take that as a sign to be cautious, that is their choice and I won't fault them for that.

    Everyone will have their opinion on things like this. Some people see script or something not naturally in the game an immediately equate it with cheating. All you have to do is look at the anti-mod/addon community in any MMO. Official forums often have a presence from them. Others really like the ideaof having more options to customize their gameplay. You will hardly ever get much agreement between the camps on these matters.

    So with that, I won't be arguing the point of legality of these scripts here anymore. We could both argue back and forth till we were blue in the face and solve nothing. I will post back here if I ever get a thumbs up or down on this from an official source. If I get a no, I will take my downloads off the code site as to not get people in trouble with it.

    If anyone has any questions or comments about the scripts, feel free to ask me here and I will respond. I just don't plan to argue whether they are okay to use or not anymore.

    Thanks to anyone who does try the scripts though. I appreciate your time and any feedback you are willing to give.
  8. Pheal

    Pheal IncGamers Member

    Joined:
    Oct 31, 2011
    Messages:
    206
    Likes Received:
    0
    Trophy Points:
    57
    Re: AutoHotkey Scripts to enable WASD-style movement

    Blizz can ban for any reason really... Hell they don't even need one according to their tos! A nice idea nonetheless.
  9. YelgisDarej

    YelgisDarej IncGamers Member

    Joined:
    Nov 1, 2004
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I just released an early version of my script to enable full control of the game with a controller. You can find it in the downloads section of my Google Code project linked in the OP.


    The script is currently only for the Logitech Rumblepad 2 series of games (but it may work just fine on any 12 button controller with dual analog sticks). The D-pad on the Rumblepad 2 functions as a POV Hat so that is how it is bound to abilities. This may not work for some controllers if you try to adapt/use it with anything other then a Rumblepad 2.


    Right now the script allows you to:


    - Control character movement with the left analog stick in the same way the G13 script does with its joystick (pressing left stick causes you to stand still like pressing Shift)
    - Control the mouse pointer using the right analog stick (pressing in right stick shows items on the ground)
    - Top-right trigger is Left mouse
    - Top-left trigger is Right mouse
    - Bottom-right trigger is Skill Slot 1
    - Bottom-left trigger is Skill Slot 2
    - Button 4 (triangle on a PSX controller) is Skill Slot 3
    - Button 3 (circle on a PSX controller) is Skill Slot 4
    - Button 1 (square on a PSX controller) is Potion
    - Button 10 (Start) drops your Banner
    - Button 9 (Select) opens the Game Menu (Esc)
    - D-pad Up opens Town Portal
    - D-pad Right opens Map
    - D-pad Down opens Skills Menu
    - D-pad Left opens Inventory


    Button 2 is currently unbound and may be used for a future improvement to the script I am still working on to make it more intuitive. You could use it as a PTT key for voice chat though.


    The game is very playable with this script on just a controller, but I am still working on some quality of life tweaks to make it simpler to move and use abilities at the same time. Once I figure out a good system for this that seems intuitive and I test it I will release an update including it.


    If you have a Logitech Rumblepad lying around and like the idea of trying a controller out, please try my script out and give me some feedback on it. I could use any advice and feature requests from you guys to help improve upon it.


    Also all the buttons are configurable as well as the sensitivity of the mouse movement on this script. Just check the comments in the source near the top of the script and you will see a section between comments with all the variables you can easily change around.


    Hope you enjoy it guys and gals!
    Last edited: Mar 30, 2012
  10. WalkerJ

    WalkerJ IncGamers Member

    Joined:
    Apr 10, 2012
    Messages:
    19
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Hi Yelgis, I really love it. I just tried it on beta and it works great and is much more intuitive than clicking to move, especially after playing so many isometric games with WASD controls.

    One note: I tried the original and the corners version and like the corners much better. idc if I'm moving to the corners of my screen, but based on the tilesets I've seen the corners version will match the diagonal nature MUCH better. ex: http://i41.tinypic.com/10fxqtw.png

    I'd recommend you make the corners one the default version and have the non-corners version be an 'optional' version.
    Last edited: Apr 18, 2012
  11. Tilitoon

    Tilitoon IncGamers Member

    Joined:
    May 26, 2011
    Messages:
    876
    Likes Received:
    0
    Trophy Points:
    120
    Re: AutoHotkey Scripts to enable WASD-style movement

    I just tried the script and I must say I like it more than I thought I would. It actually solves a few problems I had :
    One is that the targeting system can be a pain. Sometimes you need to move to a specific location but if there are monsters nearby, your character will target and attack them instead of moving to the location your cursor is pointing at. By using the WASD I can go wherever I want, without any issues.

    The second problem is that there are no "/nopickup" switch yet, so I often ended up picking up items I didn't want. This happens a lot less with this script.

    Also, I found out that since you are not using the mouse to move, it frees it for other uses. For example you can open your inventory or quest log while moving. But, I tried managing my inventory and it didn't work very well. You need to stop moving to be able to move stuff around / equip gear. Do you think it would be possible to fix that ? Thanks !
  12. GemofIndia

    GemofIndia IncGamers Member

    Joined:
    Jun 24, 2003
    Messages:
    17
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    that is so TRUE, they were even Banning people for using Map H,,K when 85% people were using it.



  13. Santosvella

    Santosvella IncGamers Member

    Joined:
    Apr 4, 2012
    Messages:
    15
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I can't find the source, but I distinctly remember a blue post saying that the main reason why they wouldn't implement wasd as an alternative control scheme was that since the entire game's difficulty had been tuned to a 100% mouse-control scheme, allowing players to dissociate movement and targetting would make many areas much, much easier and somewhat trivialize the game.
  14. Hipsterswine

    Hipsterswine IncGamers Member

    Joined:
    May 9, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I actually have just created an account within these forums to commend you; I will be playing with ESDF movement even if it is bannable as I would rather not play if they discontinue the use of scripts such as these.

    Superlative movement is superlative. Thanks for the effort you placed into this project Yelgis, and there are many who appreciate this greatly.

    Who cares about Diablo 3 if you cannot use superior movement? Knowing that I am forced to use an inferior toolset because the designer forces it upon me with no alternative reminds me of the Apple Corporation. The people who try to smite you for using WASD/ESDF etc must be narrow-minded conservatives who bring about cringing and shuddering in the scene of true ingenuity and innovation.

    Personally, I would rather commit my time to Guild Wars 2 if superior movement is not permitted because living in the dark ages is just silly and counterproductive; I refuse to be "dumbed down" to such stagnant levels of play.
  15. WalkerJ

    WalkerJ IncGamers Member

    Joined:
    Apr 10, 2012
    Messages:
    19
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    So is anyone using this?
  16. KingofMMo

    KingofMMo IncGamers Member

    Joined:
    Jun 24, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Blizz can ban for any reason really... Hell they don't even need one according to their tos! A nice idea nonetheless
  17. dingles

    dingles IncGamers Member

    Joined:
    Jul 1, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    Thank you so much for the script, YelgisDarej. It has been working amazingly well for me.

    I do have one thing to mention, however. This does not work properly on the Belial fight. During phase 3, when he goes into "big green demon mode," the screen "shifts" upward to give you more visibility. Because your character then slides down, the move commands are all being issued too high on the screen. This mean that trying to move down makes you run up, and it can be a bit scary when this suddenly occurs in phase 3, especially if you are in hardcore!

    Can this be remedied by having a "Belial Phase 3" checkbox on the Gui? During the cinematic between phase 2/3, the user could open the gui, check the box, and go back to the Diablo 3 window. The script could then read if this boxed is checked. If so, add a certain number to the Y-coordinate on the screen, so down becomes down again. After the fight, the user could uncheck the box.

    Thanks again for this wonderful script!
  18. Alkyen

    Alkyen IncGamers Member

    Joined:
    Apr 26, 2012
    Messages:
    11
    Likes Received:
    0
    Trophy Points:
    1
    Re: AutoHotkey Scripts to enable WASD-style movement

    I cannot seem to bind the 'move' key to any other than Mouse 1. Is it me or have Blizzard done something?

Share This Page