Skip to content

accept nonstandard "grab" input slot in button mode (fixes #266) - #399

Open
skryvel wants to merge 1 commit into
Supreeeme:mainfrom
skryvel:grab-binding-slot
Open

accept nonstandard "grab" input slot in button mode (fixes #266)#399
skryvel wants to merge 1 commit into
Supreeeme:mainfrom
skryvel:grab-binding-slot

Conversation

@skryvel

@skryvel skryvel commented Aug 8, 2026

Copy link
Copy Markdown

Split out of #397 as its own change.

Half-Life 2: VR binds grip grabbing with "mode": "button" but puts the output under a "grab" input slot rather than "click":

{
  "mode": "button",
  "path": "/user/hand/left/input/grip",
  "inputs": { "grab": { "output": "/actions/interact/in/grab" } },
  "parameters": { "click_activate_threshold": "0.8", "click_deactivate_threshold": "0.8" }
}

ButtonInput only knew touch, click and double, so the slot was dropped during deserialization and the action was left unbound. SteamVR accepts it, which is why the game ships bindings written this way.

Before: grabbing does nothing — objects cannot be picked up at all, and the game's own tutorial hints report the action as unbound.
After: the grab slot is translated like click, which on force-less controllers such as Oculus Touch resolves to squeeze value with the thresholds from the binding file. Picking things up works.

Covered by grab_slot_in_button_mode_oculus, with binding files matching the shape the game ships. Tested with Half-Life 2: VR on a Quest 3 over WiVRn.

Grabbing with right hand.
image

Some games (e.g. Half-Life 2: VR) bind grip grab with mode "button" and
a "grab" input slot instead of "click". SteamVR treats it like click, so
translate it the same way, which on force-less controllers like Oculus
Touch resolves to squeeze value with the click thresholds.

Fixes Supreeeme#266
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant