ValveSoftware / steamvr_unreal_plugin

SteamVR Input Unreal Plugin - Documentation at: https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki Sample project (UE4.15-4.23): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin.zip Sample Project (UE.424+): https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/sample/SteamVRInputPlugin_UEIntegrated.7z

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

4.25.0/.1 - PIE & game crash when using knuckles controllers

RDTG opened this issue · comments

Affected Versions: 4.25.0 and 4.25.1 tested

Steps to reproduce:
1.) Create a VR project in 4.25
2.) Start SteamVR and have it ready
3.) Bind some Knuckles controller mappings in your project to some events
4.) Create a VR character BP
5.) Create some basic Slate UI widgets and place them in your test map
6.) Play in editor

Results: Crash 4 out of 5 times within 45 seconds

Expected Result: No crash, proper input detected

Crash?: Yes

Call stack:

[2020.06.12-01.44.52:158][517]LogWindows: Error: === Critical error: ===
[2020.06.12-01.44.52:158][517]LogWindows: Error: 
[2020.06.12-01.44.52:158][517]LogWindows: Error: Assertion failed: Key.IsValid() [File:E:/UE4Try2/UnrealEngine/Engine/Source/Runtime/Slate/Private/Framework/Application/SlateApplication.cpp] [Line: 5610] 
[2020.06.12-01.44.52:158][517]LogWindows: Error: 
[2020.06.12-01.44.52:158][517]LogWindows: Error: 
[2020.06.12-01.44.52:158][517]LogWindows: Error: 
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb86cea799 KERNELBASE.dll!UnknownFunction []
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb144eeb76 UE4Editor-Core.dll!ReportAssert() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Core\Private\Windows\WindowsPlatformCrashContext.cpp:1537]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb144f1f58 UE4Editor-Core.dll!FWindowsErrorOutputDevice::Serialize() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Core\Private\Windows\WindowsErrorOutputDevice.cpp:78]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb1427e56d UE4Editor-Core.dll!FOutputDevice::LogfImpl() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc\OutputDevice.cpp:61]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb142097e5 UE4Editor-Core.dll!AssertFailedImplV() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:100]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb1420bb20 UE4Editor-Core.dll!FDebug::CheckVerifyFailedImpl() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:450]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb13adf244 UE4Editor-Slate.dll!FSlateApplication::OnControllerButtonPressed() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5610]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffafbebfae9 UE4Editor-SteamVRInputDevice.dll!FSteamVRInputDevice::ProcessActionEvents() [E:\UE4Try2\UnrealEngine\Engine\Plugins\Runtime\Steam\SteamVR\Source\SteamVRInputDevice\Private\SteamVRInputDevice.cpp:3750]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffafbec8b07 UE4Editor-SteamVRInputDevice.dll!FSteamVRInputDevice::SendControllerEvents() [E:\UE4Try2\UnrealEngine\Engine\Plugins\Runtime\Steam\SteamVR\Source\SteamVRInputDevice\Private\SteamVRInputDevice.cpp:369]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb59666741 UE4Editor-ApplicationCore.dll!FWindowsApplication::PollGameDeviceState() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2662]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb13ae7339 UE4Editor-Slate.dll!FSlateApplication::PollGameDeviceState() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1266]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ff7e4d27269 UE4Editor.exe!FEngineLoop::Tick() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4823]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ff7e4d3b92c UE4Editor.exe!GuardedMain() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ff7e4d3ba0a UE4Editor.exe!GuardedMainWrapper() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ff7e4d4e1cd UE4Editor.exe!WinMain() [E:\UE4Try2\UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ff7e4d5130a UE4Editor.exe!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb875c7bd4 KERNEL32.DLL!UnknownFunction []
[2020.06.12-01.44.52:158][517]LogWindows: Error: [Callstack] 0x00007ffb8926ce51 ntdll.dll!UnknownFunction []
[2020.06.12-01.44.52:158][517]LogWindows: Error: 
[2020.06.12-01.44.52:173][517]LogExit: Executing StaticShutdownAfterError
[2020.06.12-01.44.52:177][517]LogWindows: FPlatformMisc::RequestExit(1)
[2020.06.12-01.44.52:177][517]LogCore: Engine exit requested (reason: Win RequestExit)
[2020.06.12-01.44.52:180][517]Log file closed, 06/11/20 21:44:52

Workaround: You can kind of get around this by going to your projects config directory and deleting the SteamVRBindings folder and the steamvr json file. While this prevents it from crashing for a while, eventually SteamVR plugin regenerates these and the crashes resume.

Thanks @RDTG for the detailed issues report - much appreciated!

Can you send over/post please a copy of your DefaultInput.ini youve setup in your test project?

Thanks,
Rune

Sure @1runeberg -- Here is a sample from one of my latest attempts. We're currently working on a project that is at the stage of testing on different VR devices with different controllers -- no matter the default input, if it's only Index or includes inputs from other devices, the crashes seem to persist


[/Script/Engine.InputSettings]
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Touch",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Left_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Left_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Left_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Right_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Right_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouchpad_Touchpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouchpad_Touchpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog0",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog3",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog4",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog5",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog6",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog7",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog8",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog9",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog10",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog11",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog12",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog13",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog14",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog15",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog16",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog17",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog18",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="nDisplayAnalog19",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_HandGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_IndexGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_MiddleGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_RingGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Left_PinkyGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_HandGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_IndexGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_MiddleGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_RingGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="SteamVR_Knuckles_Right_PinkyGrip",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusGo_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusGo_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusGo_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusGo_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
bAltEnterTogglesFullscreen=True
bF11TogglesFullscreen=True
bUseMouseForTouch=False
bEnableMouseSmoothing=True
bEnableFOVScaling=True
bCaptureMouseOnLaunch=True
bAlwaysShowTouchInterface=False
bShowConsoleOnFourFingerTap=True
bEnableGestureRecognizer=False
bUseAutocorrect=False
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
DefaultViewportMouseLockMode=LockOnCapture
FOVScale=0.011110
DoubleClickTime=0.200000
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftMouseButton)
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_RightTrigger)
+ActionMappings=(ActionName="Fire",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Right_Trigger)
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Left_Trigger)
+ActionMappings=(ActionName="ResetVR",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=R)
+ActionMappings=(ActionName="Interact",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=E)
+ActionMappings=(ActionName="Interact",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Top)
+ActionMappings=(ActionName="Pipboy",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Tab)
+ActionMappings=(ActionName="Pipboy",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Right)
+ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=C)
+ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_RightThumbstick)
+ActionMappings=(ActionName="Aim",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=RightMouseButton)
+ActionMappings=(ActionName="Aim",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_LeftTrigger)
+ActionMappings=(ActionName="ZoomOut",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MouseScrollUp)
+ActionMappings=(ActionName="ZoomIn",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MouseScrollDown)
+ActionMappings=(ActionName="ZoomOut",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_RightShoulder)
+ActionMappings=(ActionName="ZoomIn",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_LeftShoulder)
+ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftControl)
+ActionMappings=(ActionName="Quick Save",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=F5)
+ActionMappings=(ActionName="Quick Load",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=F9)
+ActionMappings=(ActionName="Cancel",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Escape)
+ActionMappings=(ActionName="Cancel",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Delete)
+ActionMappings=(ActionName="Cancel",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_Special_Right)
+ActionMappings=(ActionName="SkipDialogue",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Escape)
+ActionMappings=(ActionName="SkipDialogue",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Enter)
+ActionMappings=(ActionName="SkipDialogue",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftMouseButton)
+ActionMappings=(ActionName="SkipDialogue",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
+ActionMappings=(ActionName="SkipDialogue",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_Special_Right)
+ActionMappings=(ActionName="Sprint",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftShift)
+ActionMappings=(ActionName="Sprint",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_LeftThumbstick)
+ActionMappings=(ActionName="Sprint",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Left_Trigger)
+ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MotionController_Left_Grip1)
+ActionMappings=(ActionName="Pause Menu",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Enter)
+ActionMappings=(ActionName="Pause Menu",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Escape)
+ActionMappings=(ActionName="Pause Menu",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_Special_Right)
+ActionMappings=(ActionName="HMDTeleport",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom)
+ActionMappings=(ActionName="HMDTeleport",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Right_Trackpad_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Right_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusGo_Right_Trackpad_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Daydream_Right_Trackpad_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_A_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Left_Trackpad_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Left_Thumbstick_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusGo_Left_Trackpad_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Daydream_Left_Trackpad_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_X_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Left_Trigger_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Left_Grip_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_Grip_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Left_Trigger_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusGo_Left_Trigger_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Vive_Right_Trigger_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusTouch_Right_Grip_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_Grip_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MixedReality_Right_Trigger_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=OculusGo_Right_Trigger_Click)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Right_A_Click)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=ValveIndex_Left_A_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Daydream_Left_Select_Click)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Daydream_Right_Select_Click)
+ActionMappings=(ActionName="GrabLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MagicLeap_Left_Trigger)
+ActionMappings=(ActionName="GrabRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MagicLeap_Right_Trigger)
+ActionMappings=(ActionName="TeleportRight",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MagicLeap_Right_Bumper)
+ActionMappings=(ActionName="TeleportLeft",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=MagicLeap_Left_Bumper)
+AxisMappings=(AxisName="MoveRight",Scale=-1.000000,Key=A)
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D)
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=Gamepad_LeftX)
+AxisMappings=(AxisName="TurnRate",Scale=2.000000,Key=Gamepad_RightX)
+AxisMappings=(AxisName="Turn",Scale=1.000000,Key=MouseX)
+AxisMappings=(AxisName="LookUpRate",Scale=2.000000,Key=Gamepad_RightY)
+AxisMappings=(AxisName="LookUp",Scale=-1.000000,Key=MouseY)
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=MotionController_Left_Thumbstick_X)
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W)
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S)
+AxisMappings=(AxisName="TurnRate",Scale=1.000000,Key=MotionController_Right_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=Vive_Left_Trackpad_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=Vive_Left_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=Vive_Right_Trackpad_Y)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=Vive_Right_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=OculusTouch_Right_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=ValveIndex_Right_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=MixedReality_Right_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=OculusGo_Right_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_X",Scale=1.000000,Key=Daydream_Right_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=OculusTouch_Right_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=ValveIndex_Right_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=MixedReality_Right_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=OculusGo_Right_Trackpad_Y)
+AxisMappings=(AxisName="MotionControllerThumbRight_Y",Scale=1.000000,Key=Daydream_Right_Trackpad_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=ValveIndex_Left_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=MixedReality_Left_Thumbstick_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=OculusGo_Left_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_X",Scale=1.000000,Key=Daydream_Left_Trackpad_X)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=OculusTouch_Left_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=ValveIndex_Left_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=MixedReality_Left_Thumbstick_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=Daydream_Left_Trackpad_Y)
+AxisMappings=(AxisName="MotionControllerThumbLeft_Y",Scale=1.000000,Key=OculusGo_Left_Trackpad_Y)
+AxisMappings=(AxisName="Mouse Scroll Axis",Scale=1.000000,Key=MouseWheelAxis)
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=Up)
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=Down)
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=Gamepad_LeftY)
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=ValveIndex_Left_Thumbstick_Y)
+AxisMappings=(AxisName="TurnRate",Scale=1.000000,Key=Left)
+AxisMappings=(AxisName="TurnRate",Scale=1.000000,Key=Right)
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
+ConsoleKeys=Tilde

[/Script/EngineSettings.ConsoleSettings]
MaxScrollbackSize=1024
+ManualAutoCompleteList=(Command="Exit",Desc="Exits the game")
+ManualAutoCompleteList=(Command="DebugCreatePlayer 1",Desc="")
+ManualAutoCompleteList=(Command="ToggleDrawEvents",Desc="Toggles annotations for shader debugging with Pix, Razor or similar GPU capture tools")
+ManualAutoCompleteList=(Command="Shot",Desc="Make a screenshot")
+ManualAutoCompleteList=(Command="RecompileShaders changed",Desc="Recompile shaders that have any changes on their source files")
+ManualAutoCompleteList=(Command="RecompileShaders global",Desc="Recompile global shaders that have any changes on their source files")
+ManualAutoCompleteList=(Command="RecompileShaders material ",Desc="Recompile shaders for a specific material if it\'s source files have changed")
+ManualAutoCompleteList=(Command="RecompileShaders all",Desc="Recompile all shaders that have any changes on their source files")
+ManualAutoCompleteList=(Command="DumpMaterialStats",Desc="Dump material information")
+ManualAutoCompleteList=(Command="DumpShaderStats",Desc="Dump shader information")
+ManualAutoCompleteList=(Command="DumpShaderPipelineStats",Desc="Dump shader pipeline information")
+ManualAutoCompleteList=(Command="StartFPSChart",Desc="after that use StopFPSChart")
+ManualAutoCompleteList=(Command="StopFPSChart",Desc="after that look for the output in Saved/Profiling/FPSChartStats")
+ManualAutoCompleteList=(Command="FreezeAt",Desc="Locks the player view and rendering time.")
+ManualAutoCompleteList=(Command="Open",Desc="<MapName> Opens the specified map, doesn\'t pass previously set options")
+ManualAutoCompleteList=(Command="Travel",Desc="<MapName> Travels to the specified map, passes along previously set options")
+ManualAutoCompleteList=(Command="ServerTravel",Desc="<MapName> Travels to the specified map and brings clients along, passes along previously set options")
+ManualAutoCompleteList=(Command="DisplayAll",Desc="<ClassName> <PropertyName> Display property values for instances of classname")
+ManualAutoCompleteList=(Command="DisplayAllLocation",Desc="<ClassName> Display location for all instances of classname")
+ManualAutoCompleteList=(Command="DisplayAllRotation",Desc="<ClassName> Display rotation for all instances of classname")
+ManualAutoCompleteList=(Command="DisplayClear",Desc="Clears previous DisplayAll entries")
+ManualAutoCompleteList=(Command="FlushPersistentDebugLines",Desc="Clears persistent debug line cache")
+ManualAutoCompleteList=(Command="GetAll ",Desc="<ClassName> <PropertyName> <Name=ObjectInstanceName> <OUTER=ObjectInstanceName> <SHOWDEFAULTS> <SHOWPENDINGKILLS> <DETAILED> Log property values of all instances of classname")
+ManualAutoCompleteList=(Command="GetAllLocation",Desc="<ClassName> Log location names for all instances of classname")
+ManualAutoCompleteList=(Command="Obj List ",Desc="<Class=ClassName> <Type=MetaClass> <Outer=OuterObject> <Package=InsidePackage> <Inside=InsideObject>")
+ManualAutoCompleteList=(Command="Obj ListContentRefs",Desc="<Class=ClassName> <ListClass=ClassName>")
+ManualAutoCompleteList=(Command="Obj Classes",Desc="Shows all classes")
+ManualAutoCompleteList=(Command="Obj Refs",Desc="Name=<ObjectName> Class=<OptionalObjectClass> Lists referencers of the specified object")
+ManualAutoCompleteList=(Command="EditActor",Desc="<Class=ClassName> or <Name=ObjectName> or TRACE")
+ManualAutoCompleteList=(Command="EditDefault",Desc="<Class=ClassName>")
+ManualAutoCompleteList=(Command="EditObject",Desc="<Class=ClassName> or <Name=ObjectName> or <ObjectName>")
+ManualAutoCompleteList=(Command="ReloadCfg ",Desc="<Class/ObjectName> Reloads config variables for the specified object/class")
+ManualAutoCompleteList=(Command="ReloadLoc ",Desc="<Class/ObjectName> Reloads localized variables for the specified object/class")
+ManualAutoCompleteList=(Command="Set ",Desc="<ClassName> <PropertyName> <Value> Sets property to value on objectname")
+ManualAutoCompleteList=(Command="SetNoPEC",Desc="<ClassName> <PropertyName> <Value> Sets property to value on objectname without Pre/Post Edit Change notifications")
+ManualAutoCompleteList=(Command="Stat FPS",Desc="Shows FPS counter")
+ManualAutoCompleteList=(Command="Stat UNIT",Desc="Shows hardware unit framerate")
+ManualAutoCompleteList=(Command="Stat UnitGraph",Desc="Draws simple unit time graph")
+ManualAutoCompleteList=(Command="Stat NamedEvents",Desc="Stat NamedEvents (Enables named events for external profilers)")
+ManualAutoCompleteList=(Command="Stat StartFile",Desc="Stat StartFile (starts a stats capture, creating a new file in the Profiling directory; stop with stat StopFile to close the file)")
+ManualAutoCompleteList=(Command="Stat StopFile",Desc="Stat StopFile (finishes a stats capture started by stat StartFile)")
+ManualAutoCompleteList=(Command="Stat CPULoad",Desc="Stat CPULoad (Shows CPU Utilization)")
+ManualAutoCompleteList=(Command="Stat DUMPHITCHES",Desc="executes dumpstats on hitches - see log")
+ManualAutoCompleteList=(Command="Stat D3D11RHI",Desc="Shows Direct3D 11 stats")
+ManualAutoCompleteList=(Command="Stat LEVELS",Desc="Displays level streaming info")
+ManualAutoCompleteList=(Command="Stat GAME",Desc="Displays game performance stats")
+ManualAutoCompleteList=(Command="Stat MEMORY",Desc="Displays memory stats")
+ManualAutoCompleteList=(Command="Stat PHYSICS",Desc="Displays physics performance stats")
+ManualAutoCompleteList=(Command="Stat STREAMING",Desc="Displays basic texture streaming stats")
+ManualAutoCompleteList=(Command="Stat STREAMINGDETAILS",Desc="Displays detailed texture streaming stats")
+ManualAutoCompleteList=(Command="Stat GPU",Desc="Displays GPU stats for the frame")
+ManualAutoCompleteList=(Command="Stat COLLISION",Desc="")
+ManualAutoCompleteList=(Command="Stat PARTICLES",Desc="")
+ManualAutoCompleteList=(Command="Stat SCRIPT",Desc="")
+ManualAutoCompleteList=(Command="Stat AUDIO",Desc="")
+ManualAutoCompleteList=(Command="Stat ANIM",Desc="")
+ManualAutoCompleteList=(Command="Stat NET",Desc="")
+ManualAutoCompleteList=(Command="Stat LIST",Desc="<Groups/Sets/Group> List groups of stats, saved sets, or specific stats within a specified group")
+ManualAutoCompleteList=(Command="Stat splitscreen",Desc="")
+ManualAutoCompleteList=(Command="MemReport",Desc="Outputs memory stats to a profile file. -Full gives more data, -Log outputs to the log")
+ManualAutoCompleteList=(Command="ListTextures",Desc="Lists all loaded textures and their current memory footprint")
+ManualAutoCompleteList=(Command="ListStreamingTextures",Desc="Lists info for all streaming textures")
+ManualAutoCompleteList=(Command="ListAnims",Desc="Lists info for all animations")
+ManualAutoCompleteList=(Command="ListSkeletalMeshes",Desc="Lists info for all skeletal meshes")
+ManualAutoCompleteList=(Command="ListStaticMeshes",Desc="Lists info for all static meshes")
+ManualAutoCompleteList=(Command="InvestigateTexture",Desc="Shows streaming info about the specified texture")
+ManualAutoCompleteList=(Command="RestartLevel",Desc="Restarts the level")
+ManualAutoCompleteList=(Command="Module List",Desc="Lists all known modules")
+ManualAutoCompleteList=(Command="Module Load",Desc="Attempts to load the specified module name")
+ManualAutoCompleteList=(Command="Module Unload",Desc="Unloads the specified module name")
+ManualAutoCompleteList=(Command="Module Reload",Desc="Reloads the specified module name, unloading it first if needed")
+ManualAutoCompleteList=(Command="Module Recompile",Desc="Attempts to recompile a module, first unloading it if needed")
+ManualAutoCompleteList=(Command="HotReload",Desc="<UObject DLL Hot Reload> Attempts to recompile a UObject DLL and reload it on the fly")
+ManualAutoCompleteList=(Command="AudioDebugSound",Desc="<filter> Rejects new USoundBase requests where the sound name does not contain the provided filter")
+ManualAutoCompleteList=(Command="AudioGetDynamicSoundVolume",Desc="Gets volume for given sound type (\'Cue\' or \'Wave\') with provided name")
+ManualAutoCompleteList=(Command="AudioMemReport",Desc="Lists info for audio memory")
+ManualAutoCompleteList=(Command="AudioMixerDebugSound",Desc="<filter> With new mixer enabled, rejects new USoundBase requests where the sound name does not contain the provided filter")
+ManualAutoCompleteList=(Command="AudioResetAllDynamicSoundVolumes",Desc="Resets all dynamic volumes to unity")
+ManualAutoCompleteList=(Command="AudioResetDynamicSoundVolume",Desc="Resets volume for given sound type (\'Cue\' or \'Wave\') with provided name to unity")
+ManualAutoCompleteList=(Command="AudioSetDynamicSoundVolume",Desc="Name=<name> Type=<type> Vol=<vol> Sets volume for given sound type (\'Cue\' or \'Wave\') with provided name")
+ManualAutoCompleteList=(Command="AudioSoloSoundClass",Desc="<name> Solos USoundClass")
+ManualAutoCompleteList=(Command="AudioSoloSoundCue",Desc="<name> Solos USoundCue")
+ManualAutoCompleteList=(Command="AudioSoloSoundWave",Desc="<name> Solos USoundWave")
+ManualAutoCompleteList=(Command="ClearSoloAudio",Desc="Clears solo\'ed object")
+ManualAutoCompleteList=(Command="DisableLPF",Desc="Disables low-pass filter")
+ManualAutoCompleteList=(Command="DisableEQFilter",Desc="Disables EQ")
+ManualAutoCompleteList=(Command="DisableRadio",Desc="Disables radio effect")
+ManualAutoCompleteList=(Command="DumpSoundInfo",Desc="Dumps sound information to log")
+ManualAutoCompleteList=(Command="EnableRadio",Desc="Enables radio effect")
+ManualAutoCompleteList=(Command="IsolateDryAudio",Desc="Isolates dry audio")
+ManualAutoCompleteList=(Command="IsolateReverb",Desc="Isolates reverb")
+ManualAutoCompleteList=(Command="ListAudioComponents",Desc="Dumps a detailed list of all AudioComponent objects")
+ManualAutoCompleteList=(Command="ListSoundClasses",Desc="Lists a summary of loaded sound collated by class")
+ManualAutoCompleteList=(Command="ListSoundClassVolumes",Desc="Lists all sound class volumes")
+ManualAutoCompleteList=(Command="ListSoundDurations",Desc="Lists durations of all active sounds")
+ManualAutoCompleteList=(Command="ListSounds",Desc="Lists all the loaded sounds and their memory footprint")
+ManualAutoCompleteList=(Command="ListWaves",Desc="List the WaveInstances and whether they have a source")
+ManualAutoCompleteList=(Command="PlayAllPIEAudio",Desc="Toggls whether or not all devices should play their audio")
+ManualAutoCompleteList=(Command="PlaySoundCue",Desc="Plays the given soundcue")
+ManualAutoCompleteList=(Command="PlaySoundWave",Desc="<name> Plays the given soundwave")
+ManualAutoCompleteList=(Command="ResetSoundState",Desc="Resets volumes to default and removes test filters")
+ManualAutoCompleteList=(Command="SetBaseSoundMix",Desc="<MixName> Sets the base sound mix")
+ManualAutoCompleteList=(Command="ShowSoundClassHierarchy",Desc="")
+ManualAutoCompleteList=(Command="SoloAudio",Desc="Solos the audio device associated with the parent world")
+ManualAutoCompleteList=(Command="SoundClassFixup",Desc="Deprecated")
+ManualAutoCompleteList=(Command="TestLFEBleed",Desc="Sets LPF to max for all sources")
+ManualAutoCompleteList=(Command="TestLPF",Desc="Sets LPF to max for all sources")
+ManualAutoCompleteList=(Command="TestStereoBleed",Desc="Test bleeding stereo sounds fully to the rear speakers")
+ManualAutoCompleteList=(Command="ToggleHRTFForAll",Desc="Toggles whether or not HRTF spatialization is enabled for all")
+ManualAutoCompleteList=(Command="ToggleSpatExt",Desc="Toggles enablement of the Spatial Audio Extension")
+ManualAutoCompleteList=(Command="DisableAllScreenMessages",Desc="Disables all on-screen warnings/messages")
+ManualAutoCompleteList=(Command="EnableAllScreenMessages",Desc="Enables all on-screen warnings/messages")
+ManualAutoCompleteList=(Command="ToggleAllScreenMessages",Desc="Toggles display state of all on-screen warnings/messages")
+ManualAutoCompleteList=(Command="ToggleAsyncCompute",Desc="Toggles AsyncCompute for platforms that have it")
+ManualAutoCompleteList=(Command="ToggleRenderingThread",Desc="Toggles the rendering thread for platforms that have it")
+ManualAutoCompleteList=(Command="CaptureMode",Desc="Toggles display state of all on-screen warnings/messages")
+ManualAutoCompleteList=(Command="ShowDebug None",Desc="Toggles ShowDebug w/ current debug type selection")
+ManualAutoCompleteList=(Command="ShowDebug Reset",Desc="Turns off ShowDebug, and clears debug type selection")
+ManualAutoCompleteList=(Command="ShowDebug NET",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug PHYSICS",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug COLLISION",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug AI",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug CAMERA",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug WEAPON",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug ANIMATION",Desc="Toggles display state of animation debug data")
+ManualAutoCompleteList=(Command="ShowDebug BONES",Desc="Toggles display of skeletalmesh bones")
+ManualAutoCompleteList=(Command="ShowDebug INPUT",Desc="")
+ManualAutoCompleteList=(Command="ShowDebug FORCEFEEDBACK",Desc="Toggles display of current force feedback values and what is contributing to that calculation")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory 3DBONES",Desc="With ShowDebug Bones: Toggles bone rendering between single lines and a more complex 3D model per bone")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory SYNCGROUPS",Desc="With ShowDebug Animation: Toggles display of sync group data")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory MONTAGES",Desc="With ShowDebug Animation: Toggles display of montage data")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory GRAPH",Desc="With ShowDebug Animation: Toggles display of animation blueprint graph")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory CURVES",Desc="With ShowDebug Animation: Toggles display of curve data")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory NOTIFIES",Desc="With ShowDebug Animation: Toggles display of notify data")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory FULLGRAPH",Desc="With ShowDebug Animation: Toggles graph display between active nodes only and all nodes")
+ManualAutoCompleteList=(Command="ShowDebugToggleSubCategory FULLBLENDSPACEDISPLAY",Desc="With ShowDebug Animation: Toggles display of sample blend weights on blendspaces")
+ManualAutoCompleteList=(Command="ShowDebugForReticleTargetToggle ",Desc="<DesiredClass> Toggles \'ShowDebug\' from showing debug info between reticle target actor (of subclass <DesiredClass>) and camera view target")
+ManualAutoCompleteList=(Command="Stat SoundCues",Desc="Shows active SoundCues")
+ManualAutoCompleteList=(Command="Stat SoundMixes",Desc="Shows active SoundMixes")
+ManualAutoCompleteList=(Command="Stat SoundModulators",Desc="Shows modulator debug info as provided by active audio modulation plugin")
+ManualAutoCompleteList=(Command="Stat SoundModulatorsHelp",Desc="Shows modulator debug help provided by active audio modulation plugin")
+ManualAutoCompleteList=(Command="Stat SoundReverb",Desc="Shows active SoundReverb")
+ManualAutoCompleteList=(Command="Stat SoundWaves",Desc="Shows active SoundWaves")
+ManualAutoCompleteList=(Command="Stat Sounds",Desc="<?> <sort=distance|class|name|waves|default> <-debug> <off> Shows active SoundCues and SoundWaves")
+ManualAutoCompleteList=(Command="ScriptAudit LongestFunctions",Desc="List functions that contain the most bytecode - optionally include # of entries to list")
+ManualAutoCompleteList=(Command="ScriptAudit FrequentFunctionsCalled",Desc="List functions that are most frequently called from bytecode - optionally include # of entries to list")
+ManualAutoCompleteList=(Command="ScriptAudit FrequentInstructions",Desc="List most frequently used instructions - optionally include # of entries to list")
+ManualAutoCompleteList=(Command="ScriptAudit TotalBytecodeSize",Desc="Gather total size of bytecode in bytes of currently loaded functions")
+ManualAutoCompleteList=(Command="Audio3dVisualize",Desc="Shows locations of sound sources playing (white text) and their left and right channel locations respectively (red and green).  Virtualized loops (if enabled) display in blue.")
+ManualAutoCompleteList=(Command="StartMovieCapture",Desc="")
+ManualAutoCompleteList=(Command="StopMovieCapture",Desc="")
+ManualAutoCompleteList=(Command="TraceTag",Desc="Draw traces that use the specified tag")
+ManualAutoCompleteList=(Command="TraceTagAll",Desc="Draw all scene queries regardless of the trace tag")
+ManualAutoCompleteList=(Command="VisLog",Desc="Launches Log Visualizer tool")
+ManualAutoCompleteList=(Command="CycleNavDrawn",Desc="Cycles through navigation data (navmeshes for example) to draw one at a time")
+ManualAutoCompleteList=(Command="Log ",Desc="<category> <level> Change verbosity level for a log category")
+ManualAutoCompleteList=(Command="Log list",Desc="<search string> Search for log categories")
+ManualAutoCompleteList=(Command="Log reset",Desc="Undo any changes to log verbosity")
+ManualAutoCompleteList=(Command="RecordAnimation ActorName AnimName",Desc="Record animation for a specified actor to the specified file")
+ManualAutoCompleteList=(Command="StopRecordingAnimation All",Desc="Stop all recording animations")
+ManualAutoCompleteList=(Command="RecordSequence Filter ActorOrClassName",Desc="Record a level sequence from gameplay. Filter=<All|Actor|Class>")
+ManualAutoCompleteList=(Command="StopRecordingSequence",Desc="Stop recording the current sequence. Only one sequence recording can be active at one time.")
+ManualAutoCompleteList=(Command="RecordTake Filter ActorOrClassName",Desc="Record a level sequence from gameplay. Filter=<All|Actor|Class>")
+ManualAutoCompleteList=(Command="StopRecordingTake",Desc="Stop recording the current sequence. Only one sequence recording can be active at one time.")
+ManualAutoCompleteList=(Command="FreezeRendering",Desc="Toggle freezing of most aspects of rendering (such as visibility calculations), useful in conjunction with ToggleDebugCamera to fly around and see how frustum and occlusion culling is working")
+ManualAutoCompleteList=(Command="ProfileGPU",Desc="Profile one frame of rendering commands sent to the GPU")
+ManualAutoCompleteList=(Command="ProfileGPUHitches",Desc="Toggle profiling of GPU hitches.")
+ManualAutoCompleteList=(Command="Automation",Desc="Run an automation command (e.g., Automation RunTests TestName)")
+ManualAutoCompleteList=(Command="CsvProfile Start",Desc="Start CSV profiling.")
+ManualAutoCompleteList=(Command="CsvProfile Stop",Desc="Stop CSV profiling.")
+ManualAutoCompleteList=(Command="NetProfile Enable",Desc="Start network profiling.")
+ManualAutoCompleteList=(Command="NetProfile Disable",Desc="Stop network profiling.")
+ManualAutoCompleteList=(Command="coc",Desc="Teleport to cell")
+ManualAutoCompleteList=(Command="cow",Desc="Teleport to world")
+ManualAutoCompleteList=(Command="tcl",Desc="Toggle clipping")
+ManualAutoCompleteList=(Command="tgm",Desc="God-mode")
+ManualAutoCompleteList=(Command="tim",Desc="Immortal mode")
+ManualAutoCompleteList=(Command="$.additem % #",Desc="Add item to inventory of player or NPC")
+AutoCompleteMapPaths=Content/Maps
BackgroundOpacityPercentage=85.000000
bOrderTopToBottom=False
bDisplayHelpInAutoComplete=True
InputColor=(B=230,G=230,R=230,A=255)
HistoryColor=(B=180,G=180,R=180,A=255)
AutoCompleteCommandColor=(B=185,G=109,R=144,A=255)
AutoCompleteCVarColor=(B=86,G=158,R=86,A=255)
AutoCompleteFadedColor=(B=100,G=100,R=100,A=255)

@1runeberg It would appear the issue resolves if you remove all mappings of ANY other gamepad, leaving only the Index. At this point I wouldn't be sure if it's Unreal Engine getting multiple input types confused or the SteamVR plugin -- but we're able to successfully test with an input that has only Knuckles mappings, excluding gamepad or any other touch input. This turns into only a minor annoyance of having to switch DefaultInput ini files when testing different VR input devices as we appear to be unable to create shared profiles, but might be something still worth looking into.

Did this input.ini came from the default vr template (from your repro steps above)?

The MotionController abstracted keys shouldnt be there I would think and they shouldnt appear either in the UI in 4.25. Something must be off in the template.

The crash stack you sent is indicating there's a key defined in your inputs that the engine doesn't recognize. So that could be the motioncontroller.

@RDTG - Any updates on this? Not sure how the MotionController keys were added there from the standard templates.

It turns out the input ini was modified on our source build of UE4, resolving that fixed some of the issue. However if we still try and map more than 2 or 3 VR controller input buttons to actions or axis to axis mappings we still experience crashing

@RDTG - are you directly mapping from the UI? If it's the same error in the stack trace, that means your custom build is somehow using non-existent keys. Can you replicate the issue as well in 4.25.1 from the Launcher?

I found this thread while searching for help with this same crash. In my case, I think it was caused by the shift from the Marketplace SteamVR plugin to the built-in one. All of my inputs in the editor had the wrong names. I re-bound everything and it has resolved the crash for me (so far).

Thanks @AurelTristen - Yes, the naming has been harmonised with the OpenXR key naming in Unreal 4.24 and above. Therefore, we removed the SteamVR specific keys as they are no longer needed (other than for the HTC Cosmos keys).

@RDTG - Can you confirm if you are still having issues with this?

@1runeberg My apologies for not replying sooner. I am no longer having issues or crashing. I believe my problem was with the input configuration using multiple VR inputs during testing or using the old keys.

Thanks @RDTG - glad it all worked out. Closing this then :)