; Script can be directly run by or compiled into an .exe by the open-source software AutoHotkey ; https://www.autohotkey.com ; ; Front Matter ; ; Include general library #Include ../lib/Prelude.ahk #Include ../lib/Stopwatch.ahk ; Include ViGEm library #Include ../thirdparty/AHK-ViGEm-Bus/AHK-ViGEm-Bus.ahk ; Create a new Xbox 360 controller MyXbox := new ViGEmXb360() ; Make this a wrapper script WrapperPath:="steam://rungameid/753640" WrapperWindow:="Outer Wilds" #Include ../lib/Wrapper.ahk ; Set percent to deflect by for fine controls Defl := 40 ; Create Gui for timer Gui, +AlwaysOnTop -Caption +ToolWindow Gui, Margin, 0, 0 Gui, Font, s20 CWhite Gui, Color, Black Gui, Add, Text, vStopwatchText +Center, 00:00 Gui, Show, NoActivate x0 y0, StopwatchGui WinSet, TransColor, Black 100, StopwatchGui StopwatchHide() ; ; Hotkeys ; ; ; Stopwatch ; ; Alt+F1: Show/Hide stopwatch !F1::StopwatchToggleHidden() #If not StopwatchHidden ; F1: Reset stopwatch F1::StopwatchReset() ; F2: Start/stop stopwatch F2::StopwatchToggle() ; F3: Rewind stopwatch 5 sec F3::StopwatchRewind(5) ; F4: Fastforward stopwatch 5 sec F4::StopwatchFastforward(5) ; ; Fine Controls ; #If 1 ; Reset all axes when capslock is pressed ~CapsLock:: MyXbox.Axes.LY.SetState(50) MyXbox.Axes.LX.SetState(50) MyXbox.Axes.RT.SetState(0) MyXbox.Axes.LT.SetState(0) return ; Fine control is active when caps lock is on #If GetKeyState("CapsLock","T") W::MyXbox.Axes.LY.SetState(50+Defl*.5) W UP::MyXbox.Axes.LY.SetState(50) S::MyXbox.Axes.LY.SetState(50-Defl*.5) S UP::MyXbox.Axes.LY.SetState(50) D::MyXbox.Axes.LX.SetState(50+Defl*.5) D UP::MyXbox.Axes.LX.SetState(50) A::MyXbox.Axes.LX.SetState(50-Defl*.5) A UP::MyXbox.Axes.LX.SetState(50) Space::MyXbox.Axes.RT.SetState(Defl*.16) Space UP::MyXbox.Axes.RT.SetState(0) Shift::MyXbox.Axes.LT.SetState(Defl*.16) Shift UP::MyXbox.Axes.LT.SetState(0)