Godot Version
Godot V4.6.1
Godot XR Tools 4.5.0
OpenXR Vendors Plugin 4.3.0
Run on Meta Quest 3
Question
Hi,
i successfully implemented (optical) hand-tracking in my project using the Meta Quest 3. 
But I’m still have a hard time understanding the OpenXR Action Map, its Action Sets and the mapping to Godot events (?).
Currently i’m using the default “Hand interaction” Action Set.
In order to detect the user grasping an object, i check the following (which i found in one of the demo projects, i think):
var pickup_pressed = false
var pickup_value : float = get_float("grip")
var threshold : float = 0.9 if was_pickup_pressed else 0.99
pickup_pressed = pickup_value > threshold
if was_pickup_pressed and not pickup_pressed:
print("Release object")
if not was_pickup_pressed and pickup_pressed:
print("Pickup object")
was_pickup_pressed = pickup_pressed # Added after comment by mux213
The threshold of 0.99 is triggered relatively fast, even if the user has his hand only half closed.
Is it possible to detect if the user is making a fully closed fist?
Ok, so if you use optical hand tracking, you have to make sure that the action map has the correct interaction profiles setup.
I highly recommend trying out: godot-demo-projects/xr/openxr_hand_tracking_demo at master · godotengine/godot-demo-projects · GitHub
This demo shows what interaction profile gets selected. Today Quest support the hand interaction profile so that should be setup in your action map with the grasp input bound to your grip action and that your grip action is a floating point type. The current default action map should have this included.
Your code snippit looks good and should work, the only thing that is missing is that you’re not assigning was_pickup_pressed with the new value at the end. This means the threshold won’t switch down to 0.9 when appropriate.
Sorry, the missing was_pickup_pressed-assignment is a copy&paste error. My problem is, that 0.99 is reached too soon, before the hand is fully closed. But i can find a workaround for my specific problem, just thought there might be a more elegant way to handle this. 
I will further look into the demo projects to get a better understanding for the action sets and mappings. Thanks for the hint! 