XR player gets unwanted acceleration and moves backwards

Godot Version

4.3

Question

Hello Godot community. I’m new here, and I’m working on a VR/XR project at the moment.

Here’s my biggest current issue:
I managed to export the project to android Meta Quest as an apk file, which I sideloaded and installed.
However when I run it on the quest (while wearing it obviously), the player almost instantly starts sliding backwards. If I stand very still and just move and turn with the joysticks on the controllers, nothing happens, or I only slide very slowly.

I also have XR simulator installed and this issue doesn’t exist there.

This is my setup:
Made a new project in godot, installed XR tools, vendor plugin and XR simulator. Enabled XR and vendor plugin, made an autoload for the XR simulator, ran the XR tools to “enable” XR and name the physic (collision) layers.
I’m using the VR staging template, with a main scene, a zone_base scene, different zones, climbing points, 2d_in_3D_viewport for several control node based UIs.

Another issue I have is that I’d like to keep the jump and teleport functions use the primary trigger, but not while the pointer detects a 2D_in_3D_viewport (UI) or a climbable or pickupable object (although I’ve worked around the climbable and pickupables by using the grip instead of the trigger).

My biggest issue is that the player automatically starts sliding until he kinda catapults out of the floor (if there is no collisionshape boundary).

Does anyone know what might cause this? Thank you for your time and effort.

Generally speaking when something like this happens you’ve not setup the correct physics layers for some object.

The problem in Godot is that it now allows you to create nodes through the + button for any script that has a class_name, but there are many scripts in XR Tools that also have an accompanying scene that sets up the correct values for all the built-in properties. There currently isn’t a way to overrule default values for built-in properties in GDScript.

The result is that you end up with the physic layer set to 1 for say one of the features you can add to your XRcontroller node, and now your hand collides with the player body and pushes the player body backwards.

So you need to check through some of the things you’ve added, and make sure they use the correct physics layers and masks, or re-add them through their scenes instead of just adding the node.

Apologies for the late reply. Thank you and you were right. The problem was in a physics layer that wasn’t configured properly, and upon inspection, also gave the same problem in the simulator once I moved the hand close enough to intersect with the body.

I have more questions, but it’s really late and I need to sit down for this. I wish this forum was accessible at work. It’s so helpful.