Motion Controller buttons aren't working but hand tracking is (VR) (Valve Index)

Hey everyone, I have a VR project which works just fine, but to clean up the assets I migrated to a blank project (to reduce file size). Everything seems to be in place, even the inputs and game mode/playercontroller. For some reason, the keyboard inputs work on my VR teleport but the actual motion controller buttons aren’t firing or being recognised.

I know there are a few posts similar to this but all the solutions presented haven’t worked so far.

HMD: Valve Index
MotionController: Valve Index Controller 2 (we can use v1 as well if need be).

We are pretty much using a slightly modified version of the VR template too.

Okay, after much research I’ve discovered the cause of the issue!

Pay attention if you use source control as this is what screwed me up most of all :stuck_out_tongue:

Sanity Checks

  1. Make sure Steam VR is in you config variables ini.
    Goto your engines install folder eg “D:\Programs\Epic Games\UE_4.26\Engine\Config” or wherever you have your version installed and open up your ConsoleVariables file in a text editor and add the following: [Startup] vr.SteamVR.EnableVR‌Input=1
    This is mentioned in the Epic VR docs.
  2. Make Sure you have SteamVR AND Steam Controller Plugins enabled (especially if you use Valve Index)
    This will be found in Plugins, just enable and restart your engine.
  3. If you use source control like GIT/Perforce/SVN and you DIDN’T create the project, you need to check some ini files
    In your projects config folder you’ll see steamvr_ue_editor_app.json. Open that in a text editor and make sure the “action_manifest_path”: points to your SteamVRBindings folder and to your steamvr_manifest. Sometimes this file is pulled down with the project creators path which will cause the engine and SteamVR to be unable to communicate.
  4. Still no inputs? Have no fear. I got you fam.
    If you’re still not getting inputs, boot up your engine and let SteamVR run (will startup with the engine cos of step 1). Now, to save yourself some time in future, go to Project Settings>Plugins>SteamVR and enable the “Show Steam VR input toolbar button”. Now go and copy to desktop and DELETE your steamvr_manifest from the SteamVRBindings Folder. Now with your new shiny SteamVR input button, go through and Regenerate Action Manifest, Regenerate Controller Bindings, Reload Action Manifest. This will create the manifest from scratch and read your Axis and Action Inputs.
  5. Open your SteamVR’s settings and edit the bindings for your motion controller
    You can do this via SteamVR or use that SteamVR button we enabled to access it. You should have your main game actions ready to bind. Go and hook those up, but remember Steam MUST be open to be able to map a controller.. Every time you edit the bindings you’ll need to Regen, Refresh and Reload your action manifest (no need to delete it this time).
  6. Whilst testing your mappings, make sure Steam and Steam VR are open. I make sure Steam and Steam VR are open as I open the project.

And there we have it folks. I’ve somewhat mastered this setup process now and have some low key PTSD from it xD

Really hope this helps fellow devs in the future :slight_smile:

3 Likes

I just wanted to say that you’re the man. Thanks for this.

1 Like

Oh man, thanks a lot, been trying to figure this out for a few weeks now… Thank you!

2 Likes

Really, really good :smiley: - really helped. Thank you sooo much! Now the only thing that i am struggling is the “clicked” event with buttons - any experience with this?

1 Like

I have to come back to this every engine version update. Thank you much!

1 Like