Macros Ultima IV

Mixing reagents for spells and other tasks can require quite a few key-presses in Ultima IV. Using an external program can save you a lot of repetitive actions and the need to look up the required reagents.


 * 1)  Go to AutoHotKey and download the installer.  Installation is simple and the program uses few system resources.
 * 2)  Write macro scripts (file type .ahk), which may contain any number of commands.  You activate scripts by double-clicking .ahk files and deactivate them by right-clicking the AutoHotKey icon on the task bar.  Both of these can be done at any time - even right in the middle of a game.  AutoHotKey also allows for automated activation of scripts.

The below script will mix the appropriate spell (if you have the required reagents) by hitting Ctrl-Alt-. For example, Ctrl-Alt-A for Awaken or Ctrl-Alt-T for Tremor. Ctrl-Space will hit space seven times which can ease handling the eight person party.

^!a:: Send m Sleep 200 Send abc{Enter}{Esc} return ^!b:: Send m Sleep 200 Send bed{Enter}{Esc} return ^!c:: Send m Sleep 200 Send cbc{Enter}{Esc} return ^!d:: Send m Sleep 200 Send dfac{Enter}{Esc} return ^!e:: Send m Sleep 200 Send efda{Enter}{Esc} return ^!f:: Send m Sleep 200 Send ffa{Enter}{Esc} return ^!g:: Send m Sleep 200 Send gfha{Enter}{Esc} return ^!h:: Send m Sleep 200 Send hbd{Enter}{Esc} return ^!i:: Send m Sleep 200 Send ifh{Enter}{Esc} return ^!j:: Send m Sleep 200 Send jfhg{Enter}{Esc} return ^!k:: Send m Sleep 200 Send kfg{Enter}{Esc} return ^!l:: Send m Sleep 200 Send la{Enter}{Esc} return ^!m:: Send m Sleep 200 Send mfa{Enter}{Esc} return ^!n:: Send m Sleep 200 Send ncha{Enter}{Esc} return ^!o:: Send m Sleep 200 Send oea{Enter}{Esc} return ^!p:: Send m Sleep 200 Send pcba{Enter}{Esc} return ^!q:: Send m Sleep 200 Send qeba{Enter}{Esc} return ^!r:: Send m Sleep 200 Send recbhda{Enter}{Esc} return ^!s:: Send m Sleep 200 Send sbd{Enter}{Esc} return ^!t:: Send m Sleep 200 Send teha{Enter}{Esc} return ^!u:: Send m Sleep 200 Send uca{Enter}{Esc} return ^!v:: Send m Sleep 200 Send vgh{Enter}{Esc} return ^!w:: Send m Sleep 200 Send wea{Enter}{Esc} return ^!x:: Send m Sleep 200 Send xeda{Enter}{Esc} return ^!y:: Send m Sleep 200 Send yed{Enter}{Esc} return ^!z:: Send m Sleep 200 Send zed{Enter}{Esc} return ^Space:: Send {Space}{Space}{Space}{Space}{Space}{Space}{Space} return