User reports that if more than 5 trackers are connected, UE4 crashes

Suggested fix:

Root cause of bug is related to the fact that UE has no setup to receive input events from Vive Trackers. (we have 'Motion Controller (R) Trigger Press/Release', 'Motion Controller(L) Trigger' and other events, but not 'Vive Tracker (1) Trigger'). So you need to edit [Engine/Plugins/Runtime/Steam/SteamVR/Source/SteamVRController/Private/SteamVRController.cpp] file. Open it and add this lines after line 237 (within the for() loop):

Buttons[SpecialIndex][ESteamVRControllerButton::TriggerPress] = FGamepadKeyNames:PadUp; Buttons[SpecialIndex][ESteamVRControllerButton::Grip] = FGamepadKeyNames:PadDown; Buttons[SpecialIndex][ESteamVRControllerButton::TouchPadPress] = FGamepadKeyNames:PadLeft; Buttons[SpecialIndex][ESteamVRControllerButton::ApplicationMenu] = FGamepadKeyNames:PadRight;

For a safe, change all other 'Invalid' key names in mapping to any existing events and rebuild the engine.


Additional information from another user regarding lighthouses:

4 way lighthouse tracking is working outside of UE4 in steam applications. This appears to be a UE4 steamVR plugin device serialization order related crash. You can see the expected result by using this work around. Turn on the 3rd and 4th lighthouses only after you have turned on all controllers and trackers. If anything loses connection, you must restart steamVR, and turn off and on again your 3rd and 4th lighthouses.

Steps to Reproduce

Unable to test locally due to lack of hardware. User submitted project and repro steps: 

1) Launch SteamVR and turn on all 4 lighthouses note: follow instruction here for enabling 4 way tracking on 3rd and 4th lighthouses: [Link Removed]

2) Turn on controller and 3 vive tracker pucks so they register with SteamVR after the lighthouses

3) Launch project - includes a character with 2 controllers, and 3 tracker pucks enabled as components.


Assertion failed: Key.IsValid() [Link Removed] [Line: 6343]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:425]
UE4Editor_Slate!FSlateApplication::OnControllerButtonReleased() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6345]
UE4Editor_SteamVRController!FSteamVRController::SendControllerEvents() [d:\build\++ue4\sync\engine\plugins\runtime\steam\steamvr\source\steamvrcontroller\private\steamvrcontroller.cpp:430]
UE4Editor_ApplicationCore!FWindowsApplication::PollGameDeviceState() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2259]
UE4Editor_Slate!FSlateApplication::PollGameDeviceState() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1594]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3474]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]


[Image Removed]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-54387 in the post.

Login to Vote

ComponentUE - Platform - XR
Affects Versions4.
CreatedJan 24, 2018
ResolvedJan 3, 2019
UpdatedJan 10, 2019
Pull Requests
4492 - AntiAnti