Overview
No More Double Tapping To Evade!When I started out playing NieR:Automata I did not have a controller. It was only until I was halfway done with the game did I find out how tedious the original keyboard and mouse controls were. With a controller you have the ability to dodge with a dedicated button. But with only a keyboard and mouse, you need to double tap to dodge and run which can take up precious time and hinder your split second decision making.With a simple AutoHotkey script that takes a few minutes to set up combat and movement in NieR:Automata will be significantly smoother.
Introduction
Script Features
- Allows for you to toggle your Pod’s “Fire” function by tapping the “Tab” key.
- Allows you to evade by holding the “Left Shift” key. This allows you to dodge and sprint instantly.
- Allows you to perform an “Air Slide” by pressing the one key. This is normally done by by using the “Fire” function and Jump. Default key is “Z”.
- Allows you to cycle through weapons with one key. Default Key is “X”.
- Allows you to cycle through pods with one key. Default Key is “C”.
Keyboard Bindings
- We can do this by starting a game or continuing one.
- Once in a game, while standing still, press Esc and navigate to System > Controls > Customize Keyboard.
- This is where you can view all the keyboard bindings and change them to your preference.
With a controller as shown above, you have a dedicated button to evade, switch weapons, and switch pods.
With a keyboard as shown above, you need to double tap your movement keys which will slow you down especially when split second decisions are necessary. To switch weapons or pods you also need to press two keys.
Here is where this script is useful.
Installation
1.First we need to download and install AutoHotkey.
You can download it here.[autohotkey.com]
This is absolutely necessary in order for our script to work.
If you don’t want to go through all the steps:
Download NieR: Automata Script Here[www.dropbox.com]
You can now skip steps 2-4, which basically involves copying and pasting the code manually. Scroll down to “5. Now lets edit our “Fire 2″ keybind in Controls to make the script work.”
If you downloaded from Dropbox, you can skip steps 2-4 below.
2.After installing AutoHotkey, we can then make a new Text Document.
This is where we will put our script.
3.Copy and paste this script into the new text document.
; -BEGIN—————————————MAKE SURE THESE MATCH – CHANGE TO YOUR OWN LAYOUT IF NEEDED—————————————- ; -BEGIN——————-GAME KEYBINDINGS – MUST MATCH TO IN-GAME CONTROLS——————– ; controls that correspond to in-game controls ; make sure the in-game controls MATCH the controls below ; basic movement – must match to in-game controls fwdButton := “w” backButton := “s” leftButton := “a” rightButton := “d” ; pod fire & jump – must match to in-game controls fireButton := “Tab” jumpButton := “Space” ; cycle usage – must match to in-game controls altButton := “LAlt” switchWeaponButton := “Up” ; cycle through weapons switchPodButton := “Left” ; cycle through pods ; -END——————-GAME KEYBINDINGS – MUST MATCH TO IN-GAME CONTROLS——————– ; -BEGIN——————-SCRIPT KEYBINDINGS – CONTROLS ADDED BY THE SCRIPT——————– ; extra controls added by the script ; make sure these keybindings for the controls below are NOT used for in-game controls ; evade evadeButton := “LShift” ; air slide (fire + jump normally) airSlideButton := “z” ; cycle through weapons cycleWeaponButton := “x” ; cycle through pods cyclePodButton := “c” ; -END——————-SCRIPT KEYBINDINGS – CONTROLS ADDED BY THE SCRIPT——————– ; -END—————————————MAKE SURE THESE MATCH – CHANGE TO YOUR OWN LAYOUT IF NEEDED—————————————- ; -BEGIN—————————————DELAYS—————————————- ; delays to make sure the script runs smoothly ; all values are in milliseconds (ms) keypressDelay := 50 ; delay between keydown/keyup doubletapDelay := 50 ; wait time between keypresses to perform doubletap sequenceDelay := 50 ; wait time between various sequences dodgeTime := 400 ; cooldown while dodge animation plays, setting it too small will cause derps when holding SHIFT+WSAD. ; -END—————————————DELAYS—————————————- ; -BEGIN—————————————SCRIPT—————————————- #UseHook SendMode Input global fwdButton, backButton, leftButton, rightButton global fireButton, jumpButton global altButton, switchWeaponButton, switchPodButton global evadeButton, airSlideButton, cycleWeaponButton, cyclePodButton global keypressDelay, doubletapDelay, sequenceDelay, dodgeTime press(key) { Send {Blind}{%key% down} Sleep keypressDelay Send {Blind}{%key% up} } handleEvade(key) { Send {Blind}{%key% up} ; stop running first in case we were Sleep sequenceDelay press(key) Sleep doubletapDelay Send {Blind}{%key% down} Sleep dodgeTime if (GetKeyState(fwdButton) && !GetKeyState(fwdButton, “P”)) { Send {Blind}{%fwdButton% up} } if (GetKeyState(backButton) && !GetKeyState(backButton, “P”)) { Send {Blind}{%backButton% up} } if (GetKeyState(leftButton) && !GetKeyState(leftButton, “P”)) { Send {Blind}{%leftButton% up} } if (GetKeyState(rightButton) && !GetKeyState(rightButton, “P”)) { Send {Blind}{%rightButton% up} } } waitForEvade() { while (GetKeyState(evadeButton, “P”)) { if (GetKeyState(fwdButton, “P”)) { handleEvade(fwdButton) } else if (GetKeyState(backButton, “P”)) { handleEvade(backButton) } else if (GetKeyState(leftButton, “P”)) { handleEvade(leftButton) } else if (GetKeyState(rightButton, “P”)) { handleEvade(rightButton) } Sleep, 10 } } toggleFire() { if (GetKeyState(fireButton)) { Send {%fireButton% up} } else { Send {%fireButton% down} } } airSlide() { if (GetKeyState(jumpButton)) { Send {%jumpButton% up} } if (GetKeyState(fireButton)) { Send {%fireButton% up} toggleFireBack := 1 } Sleep sequenceDelay Send {%jumpButton% down} Send {%fireButton% down} Sleep keypressDelay Send {%fireButton% up} Send {%jumpButton% up} Sleep sequenceDelay ; press back what we released if (toggleFireBack) { Send {%fireButton% down} } if (GetKeyState(jumpButton, “P”)) { Send {%jumpButton% down} } } cycleWeapons() { Send {%altButton% down} Send {%switchWeaponButton% down} Sleep keypressDelay Send {%altButton% up} Send {%switchWeaponButton% up} } cyclePods(){ Send {%altButton% down} Send {%switchPodButton% down} Sleep keypressDelay Send {%altButton% up} Send {%switchPodButton% up} } #IfWinActive, NieR:Automata ; fire toggle Hotkey $%fireButton%, toggleFire Hotkey $^%fireButton%, toggleFire Hotkey $+%fireButton%, toggleFire ; evades, work when you press/hold LShift while already holding WSAD Hotkey ~*%evadeButton%, waitForEvade ; air slide, normally executed with pod fire + jump Hotkey $*%airSlideButton%, airSlide ; cycles Hotkey $*%cycleWeaponButton%, cycleWeapons Hotkey $*%cyclePodButton%, cyclePods ; -END—————————————SCRIPT—————————————-
4.After you save the document, change the file extention to .ahk
Rename the file and change the extension to “.ahk”.
If you downloaded from Dropbox, DO NOT skip these steps below.
5.Now lets edit our “Fire 2” keybinding in Controls to make the script work.
Change the LShift to Tab in the “Fire 2” keybinding. These setting are located in System > Controls > Customize Keyboard
6.Finally lets disable Steam Overlay.
Since Tab is being toggled to constantly use the “Fire 2”, we will need to turn the Steam Overlay service off so it does not interrupt gameplay. (It is brought up when you press Shift+Tab, two frequently pressed keys) You can still communicate with your friends by Alt-Tabbing.
Uncheck the box next to “Enable the Steam Overlay while in-game”.
Usage
Starting the script
Just double-click the .ahk file to start the script.
You can see if its active by viewing your icons and looking for the “H” icon.
Stopping the script
When you are done, just simply right click the “H” icon and select Exit or Pause.
Gameplay
Evading
To Evade, just hold your “Left Shift” key and press any of your “WASD” keys.
Toggling Pod Fire
To Toggle Pod Fire, tap your “Tab” key.
Air Slide
To Air Slide, tap your “Z” key.
Cycle Weapons
To Cycle Weapons tap your “X” key.
Cycle Pods
To Cycle Pods, tap your “C” key.
Changing Keybinding Preference
Game Keybindings
These are the controls that are used by both the game and the script.
Under GAME KEYBINDINGS you can edit these keybindings but must make sure that the assigned keys for each of the controls in this section of the script are the SAME assigned keys for the corresponding controls used by the game.
Script Keybindings
These are extra ease of use controls that the script provides.
Under SCRIPT KEYBINDINGS you can edit these keybindings but must make sure that the assigned keys for each of the controls in this section of the script are NOT used by any controls in the game.
Thanks For Reading
Thanks for reading this guide. I hope I was able to help you. If you have any questions please feel free to comment below or you can add my steam account. Please rate this guide, and if you liked it you can add it to your favorites. You can find these options at the top of this page.
My Reviews for NieR:Automata and 3C3C1D119440927
NieR:Automata™
NieR:Automata™ – 3C3C1D119440927
Thank You 😀