Universal WASD controls for top-down RPGs

Created on Friday, October 29, 2010. I last modified it on Thursday, October 27, 2016.
Filed under Software, Game Tools.

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.

Click to download Universal WASD Controls v6.0

Windows only. Works with any game or program. Includes some pre-made profiles to get you started.

What does it do?

This program binds mouse clicks to the WASD keys so that you can 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, etc.).

It also doubles as an auto-pickup macro; move your character over an item and he 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.


  • Any Windows game or program.


  • Move with WASD — amazing eight-directional movement!
  • Save and reload your settings for multiple games.
  • Pick stuff up or active or attack things by WASDing towards them.
  • Supports all resolutions and window modes.
  • Run from the compiled .exe, or download Autohotkey and run the included source if you’re worried about malware (Universal version requires Autohotkey).

Quick start

  1. Run the game and then start Universal WASD Controls (UWASD).
  2. Select the game window in UWASD’s dropdown.
  3. Tell UWASD where to place clicks by adjust the cardinal offsets. 5-10 is a good start.
  4. Click Recalculate coordinates or press Ctrl + Shift + Insert inside the game.
  5. Get back into the game window and press a WASD key. UWASD will hook the window and begin sending clicks.
  6. Save your settings in a profile so that you can reload them again later.


Problem: Clicks are not centered on the screen.


UWASD may have hooked the wrong window, or the window has changed size/resolution since UWASD hooked it.


  1. Make sure that you have selected the correct game window.
  2. While in-game, press Ctrl + Shift + Insert to recalculate coordinates and then press a WASD key to re-hook the window.
  3. If you do not have an Insert key, click the “Recalculate coordinates” button and only press WASD when back inside the game.

Problem: UWASD places unwanted clicks on faraway objects during WASD movement.


You may have told UWASD to place clicks too far away.


  1. Slowly decrease the cardinal offsets until UWASD places clicks as close to your character as possible.
  2. Decrease the diagonal axis offset until diagonal clicks are placed as close to your character as possible.

Problem: Your character drifts up or down instead of travelling horizontally.


Movement is centered around your character’s feet, and the game’s developers have moved the feet away from the center of the screen.


  1. Adjust the vertical axis offset until your character moves straight.
  2. The horizontal axis offset can also be adjusted if you find that your character won’t travel straight up and down.

Notes and Caveats

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.


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 window’s 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 browser’s 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.

That's all there is, there isn't any more.
© Desi Quintans, 2002 – 2016.