How can I determine Vive worn state?

Hi there,

I’ve been using the VRNotifications component along with the “Get VR Focus” node to determine whether or not the user is currently wearing their headset. This works perfectly for the Oculus, but for the Vive the VRNotifications won’t fire and the “Get VR Focus” and “Get HMD Worn State” will just return “Unknown” or “Not Worn”.

I’ve seen that the VRNotifications components will fire occasionally when using the Vive, but I’ve not been able to determine when and why.

I’ve tried the VR Expansion plugin, which has a “GetIsHMDWorn” but that doesn’t work either. I’ve also installed Runeberg’s VR Pawn that has a check for worn state, but that will also return false.

I’m looking for a solution that can be implemented via blueprints, as I don’t know the first thing about C++.

Others have encountered this issue as well (Unreal Engine Issues and Bug Tracker (UE-67103)) but the issue was listed as not being reproducible. If Oculus works correctly in this context and Vive does not, my first guess would be that the Vive sometimes reports an incorrect worn state to Unreal.