Universal WASD controls for top-down RPGs
Move your character using WASD in games like Titan Quest and Torchlight instead of clicking all the time, because I get really sick of clicking.
Windows only. Works with any game or program. Includes some pre-made profiles to get you started.
If you are like me, you’ve always wished you could use WASD to control the movement of your character in top-down RPGs, where you would otherwise have to click on the ground to move (Diablo, Torchlight, Titan Quest, Grim Dawn, and so on). Universal WASD (UWASD) binds mouse clicks to the WASD keys, so that pressing W places a click above your character and makes them walk up. Or you can tell UWASD to click somewhere else, like clicking to the top-left of your character in an isometric game.
UWASD also doubles as an auto-pickup macro; move your character over an item and they will grab it automatically. In the past there have been lots of requests for such a thing and not enough action, so here we are. This is handy for idle exploring or travelling, eliminating the need to keep clicking all the dang time.
Run as administrator
. UWASD must be run as Administrator or else clicks will not be sent to some games.Refresh
button if your game’s window does not appear in the list.Recalculate coordinates
to prepare UWASD to detect the game window.cardinal offsets
values. Adjust these offsets until your game character moves in straight lines.UWASD is not running with elevated permissions, so its clicks are being blocked.
Right-click UWASD and choose Run as administrator
.
UWASD may have hooked the wrong window, or the window has changed size/resolution since UWASD hooked it.
Ctrl + Shift + Insert
to recalculate coordinates and then press a WASD key to re-hook the window.Recalculate coordinates
button and only press WASD when back inside the game.You may have told UWASD to place clicks too far away.
Game movement is centered around your character’s feet, and the game’s developers have moved the feet away from the center of the screen.
There is an option to put the cursor back in its original position but it’s honestly really janky. There is currently no reliable way to send a mouseclick aside from hijacking control of the mouse pointer, as this script does. That’s why the cursor flickers if you turn the “return cursor” option on; it’s being moved from its current position to the click position every 50 ms. You can still move your mouse while WASDing because you can see where the pointer is, but it’s admittedly very confusing. This means that you will probably use WASD for exploration and travelling, and switch to your mouse to fight and maneuver near enemies. If you leave this option off, at least you always know where the cursor is.
If you change your game’s resolution or window size, you will need to recalculate the click coordinates. To recalibrate, click the Recalculate coordinates
button or press Shift + Ctrl + Insert
, and then press a WASD key when you’re inside the game.
v7.0: Removed Play Sounds option; UWASD now always plays a sound when it hooks the target window. WASD keys are now called by scancode instead of keyname (e.g. SC011 instead of w) to get around a reported warning screen (“The hotkey *w will not be active because it does not exist in the current keyboard layout.)
v6.0: Fixed a bug where Execution Mode didn’t actually do anything. Fixed a bug where Execution Mode was not being correctly loaded from a saved profile.
v5.0: I wrote Universal WASD Controls as a more flexible user-configured program, making the scripts outlined below obsolete.
v4.0: Added a Universal script. Added support for Titan Quest Anniversary Edition. Added support for Torchlight 2. Exposed the numbers that determine where clicks are sent so that users can adjust the positions as needed.
v3.1: Stricter checking to ensure that the script only calibrates to the game windows measurements. Previously, for example, running the Torchlight script and then visiting a website whose title begins with Torchlight would make the script think you were playing the game, and so it would calibrate itself to the browsers measurements and provide broken in-game WASD controls.
v3: Fixed the problem with menus not opening. Improved performance by setting coordinates only once at runtime, instead of every 1 millisecond. Tightened offset coordinates so that tapping a key will make the character move the shortest distance possible for better control: no more accidentally walking into fireballs. (Note: Titan Quest controls are improved, but still quite loose because TQ requires you to place clicks quite far away from the character for them to register.) Allowed mouse to snap back to where the user originally placed it when no WASD buttons are pressed.
v2.1: Torchlight support was screwing with Titan Quest support, so I separated the games into their own scripts.
v2: Script architecture now optimised, more elegant. 100% support for Torchlight. Changed click method from single click to double click to force compatibility across games. Added window checking to load offsets customised to each game to improve in-game control. Because A is now used for movement, remapped M to toggle the automap in Torchlight. Remapped S to Numpad2 in Torchlight to prevent it from enabling the Skills window. To get to your Skills window, click its icon on the HUD instead.
v1: Initial release. 100% support for Titan Quest, nominal support for other games.