Problem with Rolling Template: Diagonal directions give almost twice the power?

I know what’s causing the problem, but I don’t know how to work around it. Let me explain how it works:

Pushing the gamepad analog stick straight up gives a value of 1.0 on y. (Pushing down gives -1.0.) Pushing straight to the right gives 1.0 on x. However, if you push diagonal up right, it gives a value of 0.85 on y and 0.85 on x at the same time, which is just a little below the max values. (Well, actually, in this template the values are doubled. However, this can easily be fixed, and isn’t the problem I’m talking about. (It’s because under “input” in “project settings” both analog axis values and directions are listed at the same time.))

If you look at the blueprint for movement, the amount of roll torque added is multiplied by the axis values of both y and x. This means that when pushing diagonal directions, almost twice the amount of roll torque is added to the ball! So you’re able to go faster diagonally. What can I do to fix this?

(A couple more things I feel like I should mention: The difference it makes is a little hard to notice with the default physics settings, but after tweaking them a little, the difference was more apparent. Also, if I remove the top cover on my gamepad, (not a normal thing to do, lol) then I am able to get values of 1.0 on both x and y at the same time! A player could use this to cheat…)

Is this a template put out by Epic? I’d take a look but I can’t find it

Indeed it is. However, the problem is hard to notice with the default physics settings. I changed the linear damping for the ball to 4.0 and the mass scale to 2.0 and for the physics material used by the ball, I set the friction to 100. this makes the problem easier to see.

I set up a ramp in the level that is impossible to climb when moving straight forward, but it can be climbed when moving diagonally.

Still waiting for an answer here…

There’s a popular ball rolling game called marble blast, and I just heard it has this same problem! Speed runners will remove the top cover on their controller to give the analog stick much more leaning room in diagonal directions allowing them to move twice as fast diagonally!

There has to be a way to fix this! I’ve played other ball rolling games that don’t seem to have this problem, so I know it can be done.

Yes! I got it! (The answer came to me in my sleep!) Now, no more than the max power can be added, no matter which direction you push.
I had to completely replace the original blueprint. As you can see, it now uses a tick event to trigger movement.

(Note: As you could probably tell, my game has a rotate-able camera, and that’s the only reason why we rotate the direction vector by ControlRotation.)

One of my gamepad analog sticks seems to be pretty stiff. (A new controller I just bought too!) With it, it is hard to reach a value of 1 even when pushing straight forward of backwards. Because of this, I find it better to set the max axis value to .9 or .95 instead of 1.