XR Doesn't seem to detect inputs from Controller

Godot Version



HTC Vive Wand doesn’t trigger any input event/signal and only tracks when using “skeleton” pose.

(I’m using steam vr / HTC vive / win 10 / Godot C# 4.2.2)

The weird thing is that everything worked perfectly with the godot-xr-tools premade hands, (or at least I think they did) then one of the controllers ran out of battery and ever since then I can’t get any input out of the damn thing. (Inputs work fine in other vr apps)

I think I maybe f****d up openxr_action_map.tres so bad eve reseting to default and saving wont recover it. (I checked and it is the default in the project settings)

Since then I tried making an entirely new project and directly following tutorials but every time the same result, no tracking unless “skeleton” is selected in pose and no inputs.

Skeleton is getting input from hand tracking, which on Steam is inferred from controller information and will work regardless of whether the action map is configured correctly.

If the controllers stop working it is important to check which action you’re using, if that action is defined in the action map as a pose, and whether it is bound to your controller profile. If you are using the default action map, this should be setup correctly.

The second thing to check is whether the controller is getting bound. The easiest is turning verbose output on (you can find this in project settings by searching for verbose). This will output a lot of extra OpenXR information, it should show whether the action map is loaded properly, and later on it should show that it is binding your controller to the correct interaction profile.

With SteamVR and controllers it is possible that binding is delayed until you actually wear your headset. Steam is a bit weird in that.

Also note that SteamVR behaves differently when OpenXR is used compared to when OpenVR is used, many games still use OpenVR.

Thanks for the reply.

Its probably an issue with the profile binding since I don’t see any logs about binding to interaction profiles. (I am now using the verbose option)
I always use the default so it should be setup correctly. Is there a way to manually tell the engine to use specific profiles?

There is also two weird errors. One about a "VK_LAYER_Twitch_Overlay not using the correct API version and one about registry lookup failing. I don’t remember using any twitch overlays (maybe the discord overlay?) and really not sure what registry lookup failed and why.

Hmm, haven’t seen that one before. If you’re using SteamVR you can turn off any extra layers from the settings menu.

It not showing an interaction profile being bound definately indicates there is an issue with the action map being provided, either due to it being misconfigured or due to a layer throwing things off.