File information
Created by
FedRandomNumberUploaded by
FedRandomNumberVirus scan
About this mod
Now with instant War Table missions and Happy Jumper. Not a mod per se. A simple script for a programm i've been using for years to improve the controls in various games (especially those that make me hold buttons for a long time).
- Requirements
- Permissions and credits
My first concern when I hear an additional software needs to be installed is safety.
So I will address that at the very start.
The program in question is AutoHotkey. It's been around for years. You can check the site (https://www.autohotkey.com/), you can check their forums. It's not some obscure programm even google doesn't know about. Oh, and it's free and open source - no registration, no trial period.
The script itself - you can safely open it with a notepad and check if there is anything suspicious. It's very simple and only has 80 lines - including blank lines and many comments (a line that starts with a ;).
Version Guide:
Basic Version (v.1) - AutoSearch, Toggle MouseLook.
Extended Version (v.2) - AutoSearch (with extended pause when you use ability, potion or left mouse button), Toggle MouseLook.
Extended 2 Version (v.3.03) - AutoSearch (with extended pause when you use skill, potion or left click mouse), Toggle MouseLook (turned off by default), InstaWarTable, HappyJumper.
Obsolete versions:
Extended 2 Version (v.3.02) - AutoSearch (with extended pause when you use skill, potion or left click mouse), Toggle MouseLook, InstaWarTable.
The Works:
Basic Version:
NumPad7 (tap): turn on/off AutoSearch mode in which presses q (I use q for searching) every 3 seconds.
Left Shift (tap): starts holding/releases Right Mouse Button (RMB) - that's Toggle Mouse Look for you.
Extended Version:
NumPad7 (tap): turn on/off AutoSearch mode in which script presses q (I use q for searching) every 3 seconds (the pause is longer if you click left mouse button or press a default button for ability or potion - 1, 2 etc.).
NumPad8 (tap): turn on/off the "debug" tooltip for the script. The game needs to be windowed (or "windowed fullscreen") for tooltip to work properly. Tooltip seems to be affecting fps negatively so I recommend you to turn it on only if you need to check something.
Left Shift (tap): starts holding/releases Right Mouse Button (RMB) - that's Toggle Mouse Look for you.
Extended 2 Version (the one I use myself):
NumPad7 (tap): turn on/off AutoSearch mode in which script presses q (I use q for searching) every 3 seconds (the pause is longer if you click left mouse button or press a default button for ability or potion - 1, 2 etc.).
NumPad4 (tap): turn on/off the Toggle MouseLook ability (if it is off - you can use Left Shift without the script toching RMB).
NumPad1 (tap): turn on/off the HappyJumper ability (more details - below).
NumPad8 (tap): turn on/off the "debug" tooltip for the script. The game needs to be windowed (or "windowed fullscreen") for tooltip to work properly. Tooltip seems to be affecting fps negatively so I recommend you to turn it on only if you need to check something.
NumPad9 (tap): changes your system time a week forward, then in a couple of milliseconds - restores it. Usually it's enough for the game to finish all the war table missions that currently have timer ticking.
Left Shift (tap): starts holding/releases Right Mouse Button (RMB) - that's Toggle Mouse Look for you. Only works if turned on by NumPad4.
Left Alt (hold): while you hold Left Alt, the script taps Left Ctrl (which I use for jumping) 20 times a second. Only works if turned on by NumPad1.
Functionality:
Same as above but from a different perspective.
AutoSearch:
Basic, Extended, Extended 2.
When I play I find myself constantly presseng the Search key because I don't want to miss anything. I don't rememmber if q is default key for Search but since I press it so often it had to be close and convenient.
It still get's annoying to run around constantly pressing the key.
So I set this script to press if for me regularly every 3 seconds.
Since sometimes you need the script to stop doing what it's doing, you can this functionality turn on/off with NumPad7.
The Extended version added a auto-pause to the AutoSearch functionality to lessen it's interferance with the combat. So when you press 1, 2 etc. the AutoSearch skips next two "searches". This is also true for Extended 2 version.
Toggle MouseLook:
Basic, Extended, Extended 2.
When the time was young and DA:I didn't have it's own MouseLook Toggle, playing it was pain. Since you had to hold RMB for the most of the time.
Now DA:I has a setting for MouseLook Toggle, but the functionality is still in the script.
When you press Left Shift the script checks the state of your RMB and makes it opposite - untill you press Left Shift again (or press the real RMB).
The Extended 2 version has a control to turn this functionality on/off (NumPad4). It was always on in previous versions, but now it is off by default.
InstaWarTable:
Extended 2.
Many people don't like to wait for War Table missions to end. I understand the reasons behind this gameplay (I think I do) but I still don't like it.
It looks like the game remembers the system time when the mission started. And constantly compares it to the current system time. When the gap is big enough, the mission is marked as completed.
So when you press NumPad9 the script changes your system time. In a couple milliseconds it changes the time back. During this time the game usually marks the ongoing War Table missions as completed.
There is a mod on Nexus to make missions to take zero time. But with this script you get to see how much time it saved you - a pleasure of it's own kind. :D
HappyJumper:
Extended 2.
Sometimes climbing equals jumping as fast as you can. I use Ctrl for jumping (well, I have hands like that). If you turn this functionality on (turned on/off with NumPad1) the script starts checking the state of Left Alt. While Left Alt is pressed the script presses Ctrl 20 times a second. So you can just hold Left Alt instead of frantically press Ctrl.
"Debug" Tooltip:
Extended, Extended 2.
Press NumPad8 to show/hide tooltip with additional information abot the functionality state (off = 0, of = 1).
The game needs to be windowed (or "windowed fullscreen") for tooltip to work properly. Tooltip seems to be affecting fps negatively so I recommend you to turn it on only if you need to check something.
Installation:
1) Download and install https://www.autohotkey.com/download/ahk-install.exe
That is if you don't choose to download the carelss version of the "mod". If installing a programm is too much hussle - check it out somewhere below.
2) Download the "mod", unzip anywhere you want. There is only one .ahk file in the archive (e.g. DAI.ahk).
(you'll need to run it again if you close it or reboot your pc, so it should be somewhere convenient like desktop)
UnInstallation:
1) To stop using it - Right Click it's icon in systray -> Exit
Rebooting your pc will also work but it does seem like an overkill. )
2) If you want to get rid of AutoHotKey itself - uninstall it like any other programm (Control Panel -> Programs and Features... you know).
Usage:
1) Run the script file (e.g. DAI.ahk - doubleclick it or something)
That's pretty much it (read "The Works" above).
The "H" icon will appear in your systray. That's where you can close it if you don't need it anymore (or reload it if you changed something via notepad - see Modification).
And you'll need to run the script again if you close it or reboot the pc.
2) You might need to run it as administrator. If it turns out the script does not work at all - check back at the comments if you need additional info. Thanks, Steelrat67.
InGame Key Bindings:
The script correlates with my own key bindings. In case you and I have different key bindings for script to work properly, you'll need either change your ingame key bindings or modify the script a little (the latter will demand a little bit more understanding, but if you need help - check the comments and ask there).
Q - search (if you are going to be using the AutoSearch part)
Left Shift - nothing (it tells the script to "emulate" toggle mouselook via holding/releasing rught mouse button)
Left Alt - nothing (important only if you use HappyJumper)
Ctrl - jump (important only if you use HappyJumper)
NumPad Numbers - nothing (it is used to control the script itself i.e. turning on and off the autosearch)
Problems:
1) It does not really know how to search or toggle mouse look (see the longer version of "what does it do"). It just presses q and hold mouse button. So if you have jump on q - it will just jump every 3 seconds (that is - if you use NumPad7 to make it try to search).
It is pretty easy to change what it tries to press though. It's not rocket science or anything. Use the notepad.
2) It does not really know if you are playing Dragon Age. It just checks if the window that is currently active, starts with "Dragon Age". So if you are browsing nexus for dragon age mods - chances are your active window (browser) does have title starting with Dragon Age. :D
So if you get q pressed or LeftShift starts clicking the right mouse button where it shoud not - find the script in systray (white H with green background, right click and choose "exit"... and remember - if this script is pressing you RMB, the first time you press RMB on uyour mose will only make the script release it's grip)
3) Considering InstaWarTable.
DAI sorts the savegames by the time of creation. So if you save the game while the script changed your system time (by adding a week) you will get a savegave that will be considered the latest for a week (so it will get to the top o the list of savegames, will be loaded if you press Continue when DAI starts etc.).
This is why the script only changes your system time for a couple of milliseconds (so you really-really work to catch the moment to use InstaWarTable to mess up the date of the savegame).
And this is why I don't recommend you to use InstaWarTable (pressing NumPad9 while using the Extended 2 version of the script) anywhere othe than at the War Table. As far as I know, you can't save the game at the War Table. So if you only use InstaWarTable at the War Table I don't see how this can go wrong.
4) You might need to run it as administrator. If it turns out the script does not work at all - check back at the comments if you need additional info. Thanks, Steelrat67.
Modification:
If the script is already running, you'll need to reload it after making changes (and saving the script file).
Use notepad to open and edit the script file (e.g. DAI.ahk).
Also run the script, then press it's icon in systray, click Help (you might want to check the "Hotkeys" and "List of Keys, Mouse Buttons, and Joystick Controls" if you want to change the buttons to control the script or the buttons the script presses for you).
1) If you want to change how often the script presses q, look for "SearchPeriod = 3000" that's every 3000 milliseconds (every 3 seconds). Change it to whatever you like.
2) If you want to change the button that you need to press to "toggle mouselook", look for "~LShift::". "~" part says it does not stop LShift from working as itself. Check the Help to see with what you could replace "LShift"
3) If you want to change the button the script presses every 3 seconds - look for "Send {q down}" and "Send {q up}". Replace "q" with something you use for searching. Check Help if you need help.
Advantages:
1) Compatibility with updates, dlcs, mods.
It's weakness is also it's strength. It doesn't really know you are playing the game. It just presses the buttons - when you press buttons, over
time and when some conditions are met.
It's almost impossible to break it with an update, dlc or mod. Unless it modifies controls - which almost never happens. And even if it does happen - it's probably be okay.
2) You'll learn. But you don't have to.
It all starts with a simple action. Say, you want the script to search more often. It's simple and described in Modification part of the "mod" description.
While doing it you also see - the script itself looks simple.
A couple month later you play some other game and you understand - if you can just change the buttons the script reacts to and handles, you can
improve this game's controls too. And you manage to do that.
Skip a couple years and when you start playing a new game you tell yourself - "hey, this is bullshit! who made those controls? why do they want me to
suffer?! I can easily write a script to make it better and that's without actually programming the game!". And you can.
Extended Version:
Optional download.
1) Don't run two scripts simultaneously (check systray for H).
They use the same controls and do mostly the same stuff. Each of them will do what it is supposed to do, but if they run togather they will do it twice (which in some cases means not doing it at all).
2) This script takes a pause between searches (pressseing q for you) if you press LMB or 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -. So it does not interfere with combat so much and you don't need to manually dasable the AutoSearch win NumPan7.
3) NumPad8 turns on/off the tooltip with "debug" information.
3.1) The tooltip deos not monitor switching between programms (e.g. Alt+Tab). Keep that in mind.
3.2) It tells you if your active window does not have title starting with "Dragon Age" (remember, tooltip will not renew if you switch to some other program after that - untill something else that tooltip shows changes). Also you can see that for the purposes of the script you are in game when you check nexus for gragon age mods in your browser (see Problems).
3.3) It tells you if you have AutoSearch on (the one that is controlled with NumPad7) and if it "detected" the combat and takes a pause between searches.
4) Some new variables you can change (see Modification; use notepad of your choice).
4.1) CombatNoSearchSkipTicks - how many times it will not search after "detecting" combat.
4.2) TooltipCoordX and TooltipCoordY - coordinates of the tooltip debug.
Extended 2 Version:
This is the one I use myself. As Extended version plus InstaWarTable and HappyJumper functionality.
InstaWarTable changes the system time (not the game time) so... something can go wrong. I try to be carefull but I don't have the expertise to make any promises.
There is a mod that nullifies missions time http://www.nexusmods.com/dragonageinquisition/mods/479 - you might want to use it instead the Extended 2 version of the script.
1) NumPad9 makes the script add a week to your system time, waits two milliseconds, substracts a week back from your system time.
it is enough (in my experience) for the game to compare the the time (yeah, it uses system time!) when you started the mission at the war table and the current time (wich is "a week later") and mark the mission as completed.
So you go to your War Table, start a mission, press NumPad9 and the mission is done. Just don't spam the NumPad9 while you are starting the mission since it could mess up it's start time.
2) NumPad4 and NumPad1 toggle if Toggle MouseLook and HappyJumper functionality works at all.
3) Holding Left Alt uses HappyJumper functionality and presses Left Control 20 times a second. I use Left Control for jumping.
Careless Version:
Optional download.
It's a... well, it's a kind of sorcery I don't understand myself. The script is compiled into a standalone executable. That means you get an .exe, unpack it anywhere you want and run it without installing any additional software.
Personally I recommend installing AutoHotKey and using the script. I mean - you won't trust a random guy in the internet to supply you with a program that will not format your disc or steal your credit number, right? Right?..
I'm half-sure your antivirus might consider the file suspicious.
1) Pros
1.1) You don't have to install anything. Just download, unzip and run.
2) Cons
2.1) You have to trust a random guy in the internet not to wreck your pc. I know I'm not malevolent. You don't know that.
2.2) You will not be able to open the safely file with a notepad and see that it does not look suspicious. Notepad will not help you here.
2.3) You will not be able to change anything. So if you want to change buttons used or the regularity of search - there's no chance this will happen.
I don't use this option myself since I have AutoHotKey installed - I just run the scripts.
Why am I adding this option at all? I don't know.
Language / Язык:
The script should not care about the language you use - as long as you have the right buttons assigned to right actions.
Скрипту должно быть по барабану, каким языком вы пользуетесь. Главное, чтобы на клавиатуре были нужные кнопки, и эти кнопки были назначены на нужные действия в игре.
Переводить всё описание на русский мне, откровенно говоря, лень. Да и непонятно, куда его впендюрить.
Если кому-то сильно нужно - могу сделать комментарии на русском (в самом скрипте).
Thanks:
First and foremost - the guy who created the AutoHotKey.
Niire for the first endorsement - the only currency most mod authors get paid.
P.S.
Do endorse and comment after you try this out.
I remember my right hand hurt because of how much I held RMB when I first played DA:I.
You don't have to do this alone. There is help. People need to know.
;)