# Cannot bind Touch Controller joystick axis!

**URL:** <https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514>\
**Category:** XR Development\
**Tags:** Input, axis, binding, unreal-engine, touch, question\
**Created:** [April 7, 2021, 12:04am UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514 "2021-04-07T00:04:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 12:04am UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/1 "2021-04-07T00:04:12Z")

</div>

So I originally was running my project in 4.19, but I switched versions in the process as I shall explain. I use a Quest 2 linked to PC with virtual desktop.

I’m taking a VR Unreal course and I’m following along trying to get a good base to start making my game ideas. Everything was going really well until I ran into problems mapping input to the Touch Controllers. I was able to get the axis mapping for the touch controllers working fine by adding the \_Y or \_X to the input mapping names in the editor, I had my character walking around and the joysticks worked great. I was using the Motion Controller input options.

All was good until I tried adding actions with the Motion Controller FaceButtons. None of the face buttons were responding to any of the input from the Touch controllers. The Joysticks worked, the triggers worked, the grab buttons worked, but the face buttons, no matter what, would not work. I tried every possible input option Unreal had, and nothing was working. I eventually found that Motion Controller (L/R) Shoulder made one of the face buttons work, but this still wasn’t acceptable.

Looking around online I thought my best bet would be to upgrade versions so I installed 4.26, and lo and behold, the problems **flipped**. Now I could ONLY get action mapping to work. I could only get the triggers, face buttons, and grip buttons to work, and when trying to set up an axis from Oculus Touch (L) Thumbstick Y or X I get nothing. I can map an _action_ event to Oculus Touch (L) Thumbstick Up, but that is silly and not a real way to make movement a viable option. I cannot get a any sort of axis input from these joysticks and it’s driving me nuts!

I have since tried going back to 4.19, tried 4.23 (I think), and now I am currently messing around with 4.25 to no avail. This is a really frustrating roadblock, i’ve read anything and everything that should help and none of it has. The information on using SteamVR Input is very unclear. I am currently doing everything with C++ but I may have to look into blueprints soon.

_ **ANY HELP WOULD BE SO APPRECIATED** _

---

<div class="post-metadata">

**Author:** ![Rectus\_SA](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Rectus\_SA](https://forums.unrealengine.com/u/Rectus_SA)\
**Post date:** [April 7, 2021, 4:16pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/2 "2021-04-07T16:16:12Z")

</div>

It might be a good idea to go through the Use part SteamVR Input Quickstart guide to make sure everything is properly set up:

> **[Quickstart · ValveSoftware/steamvr\_unreal\_plugin Wiki](https://github.com/ValveSoftware/steamvr_unreal_plugin/wiki/Quickstart#use)**
>
> SteamVR Input Unreal Plugin - Documentation at: https://github.com/ValveSoftware/steamvr\_unreal\_plugin/wiki Sample project (UE4.15-4.23): https://github.com/ValveSoftware/steamvr\_unreal\_pl...

Do the axis actions show up in the SteamVR binding interface at all? If not, do they show up in `<Project>\Config\SteamVRBindings\steamvr_manifest.json`?

---

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 5:39pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/3 "2021-04-07T17:39:53Z")

</div>

Yes the axis and the actions show up in the .json files

While this is a webpage I haven’t seen before, it’s only for versions 4.23 and before. If I end up giving up on 4.25 i’ll give this page a shot.

EDIT: I have given up on 4.25 and I am reinstalling 4.23. I am now facing an issue where I cannot get my HMD to load the UE4 editor. UE4 is getting the input from the headset/controllers, but when I put on the HMD I just see the SteamVR Environment and it says UE4 Editor Waiting… Tried disabling the Oculus Splash screen like was suggested online but no avail.

---

<div class="post-metadata">

**Author:** ![Rectus\_SA](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Rectus\_SA](https://forums.unrealengine.com/u/Rectus_SA)\
**Post date:** [April 7, 2021, 5:59pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/4 "2021-04-07T17:59:51Z")

</div>

The plugin should work just the same for 4.24 and above, apart from that it is now included in the engine and doesn’t have to be installed separately.

---

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 7:43pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/5 "2021-04-07T19:43:45Z")

</div>

I have moved back down to 4.23 because 4.25 was no longer allowing me to use SteamVR, it kept getting stuck at “UE4 Editor Waiting…”

4.23 is letting me play in VR mode at least. Using the SteamVR Input Plugin I am able to map all the buttons except the axis still. I launched their sample project and I am able to get axis input from the controllers working in their sample porject. They have made their input mappings in Blueprint though, so it isn’t really helping me. Very frustrating that there is practically no help for the C++ user.

I am including a picture of my action mapping below so I can explain my issue more.  
It is not super easy to see in the picture, but under “MoveForward\_Y” I have mapped:

Gamepad Left Thumbstick Y-Axis  
MotionController (L) Thumbstick Y  
[STEAMVR INTERNAL] Temporary Action 5 (This is created automatically and I cannot delete it)  
SteamVR Oculus Touch (L) Joystick Y

The Gamepad Left Thumbstick Y-Axis works 100% correctly, so I really cannot figure out why SteamVR Oculus Touch (L) Joystick Y would not be working. In the sample project they name the axis the same thing and use the same mappings and it works, the only difference being they are handling the axis in a blueprint. I’ve been dealing with this issue for WEEKS NOW! I’m losing my mind. Every controller binding works except the Joystick X and Y.

![335118-screenshot-2021-04-07-153911.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/6/0/a60f686d31c082ccc6079c7e32c095e71bb38771.png)

---

<div class="post-metadata">

**Author:** ![Rectus\_SA](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Rectus\_SA](https://forums.unrealengine.com/u/Rectus_SA)\
**Post date:** [April 7, 2021, 7:50pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/6 "2021-04-07T19:50:37Z")

</div>

Does the action appear in the SteamVR binding interface at all?

---

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 8:21pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/7 "2021-04-07T20:21:22Z")

</div>

I just opened the SteamVR Binding interface and I think we could be on the right track now.  
Here is what I found:

 ![335119-screenshot-2021-04-07-161312.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/7/a/27a329c86f622d00e72503dc959ffa91cc6772a9.png)

As you can see all the boolean actions (Teleport, ShowTeleportMarker, HideTeleportMarker) were put in automatically and they are working. As you can see the Left Joystick (the axis I am trying to bind) is unbound. When I go to edit it and click on Position, I see the following:

 ![335120-screenshot-2021-04-07-161634.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/8/9/389a08de7d485c98069e10b9cd304c9a228299b9.png)

I see no listed “Vector2” actions. If I click on Touch or Click I see the following:

 ![335121-screenshot-2021-04-07-161816.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/4/8/a48df9f03a0dfea47cc4398604f0b3eb6fe868b8.png)

So it appears that my MoveForward\_Y is a Vector1 action. I will note that at the bottom of the GitHub getting started page it says the following:

“Vector2 Actions - As Unreal doesn’t have a concept of a Vector2 action we auto group two vector1 actions with names that end with \_X and \_Y. For example, to create a mapping for MoveLeft you will need a MoveLeft\_X and a MoveLeft\_Y that you bind to their corresponding controller axis. See the sample inputs for an example. (SteamVR Input Menu - Add Sample Inputs)”

So I think this is the right vein to follow. I am going to continue messing around with this and comparing to the same Steam Input screen for the example project. Thank you kindly for your help so far!!

---

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 8:53pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/8 "2021-04-07T20:53:28Z")

</div>

**THE PROBLEM HAS BEEN FIXED!!!**

I really cannot describe how overjoyed I am right now.  
So the final fix was achieved using the following steps:

1. In the Unreal Input Settings, set up your Axis like this:

![335127-screenshot-2021-04-07-163440.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/8/7/a876a9cb784186c3925f851bd2706ac0d7a9679d.png)

Essentially you are picking a name for the joystick, in this case MoveLeft, and then creating two axis for the joystick MoveLeft\_Y, and MoveLeft\_X. This is something I had done before but had missed a crucial step.

2.Open the SteamVR Input menu, and go ahead and click down each button in order, “Regen Action”, “Regen Controller”, “Reload Action”, and then finally, open the SteamVR Binding Dashboard.

![335126-screenshot-2021-04-07-163721.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/e/b/2/eb28141ec409231e0c882b716f7d62142a9e69cc.png)

Click on “Edit” next to “Current Binding” and it will bring up the binding menu. In my case I was trying to assign the Left Joystick, so I click on the little edit pencil, and then click on “None” lined up with Position. You should now see “MoveLeft” (or whatever you “named your joystick” like I had called it) as a listed Vector2 action. Congrats! You’re so close!

 ![335128-screenshot-2021-04-07-164403.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/a/6/7a62c742118718b7df16fd6a2abc715eb1513431.png)

Then finally you just need to map your inputs in your C++ file. I will show my setup:

 ![335129-screenshot-2021-04-07-164844.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/4/5/d/45d93948c3e5d9f9b4e6c3df93ef4da213af3cb1.png)

As you can see, HERE is where you will be using \_X and \_Y again. The Vector2 “MoveLeft” only exists for the sake of SteamVR. Unreal only has Vector1, so steam is essentially sending two Vector1 values that get split up by Unreal. So now just use these axis as you would with any other controller.

I really hope this helps someone else, because this is a problem I have been dealing with for far far too long. Thank you so much to everyone who helped get me here. **I am overjoyed.**

---

<div class="post-metadata">

**Author:** ![DrLoafPincher](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@DrLoafPincher](https://forums.unrealengine.com/u/DrLoafPincher)\
**Post date:** [April 7, 2021, 8:54pm UTC](https://forums.unrealengine.com/t/cannot-bind-touch-controller-joystick-axis/481514/9 "2021-04-07T20:54:17Z")

</div>

Rectus you are the MF MAN!!!
