Add Movement Input Unexpectedly adds rotation to Character Mesh

Hey There! I’m new to Unreal Engine.
I’m trying to make a climbing system, I’ve succeeded in making the character go up and down on a large BSP box.

The problem is: When Going up some of the tower’s faces, the character changes his orientation unexpectedly after adding z-axis movement with an AddMovementInput node (The last node). I’ve debugged the Blueprint, and removing this last node ends up in the character going up the z-axis after jumping, and staying at a fixed location in mid-air, with no orientation change. Since he turns, he falls, because I’m casting a ray to determine if he’s still climbing

Here’s a screenshot of the Blueprint and of working and failing scenarios on the climbable tower.

Blueprint:

Successful Climb:

Failed Climb on Another Tower’s Face:

[UPDATE]

Climbing is triggered by jumping (hitting space), so what I normally do is I run against the face of the tower pressing w and then press space without letting w go. I tried just pressing space, and he starts climbing anda doesn’t turn. He jsut turns when I hit the W key

What happens if you add an isClimbing branch between you InputAxis MoveRight and its AddMovementInput node? Maybe it’s turning because of that and we can stop it when climbing.

Just tried. Still the same is happening :frowning: I’ll attach a picture of the modification I did to the Blueprint. And thank you very much for answering!!

alt text

Just discovered something new: Climbing is triggered by jumping (hitting space), so what I normally do is I run against the face of the tower pressing w and then press space without letting w go. I tried just pressing space, and he starts climbing and doesn’t turn. He just turns when I hit the W key

Does the character always rotate toward the same world direction when doing the unwanted rotation, or is it different every time on the same wall?
Maybe one wall he is already facing toward some neutral direction but the others he isn’t.
I wonder what will happen if you use [X: ForwardVector X, Y: ForwardVector Y, Z: 1] into the Add Movement Input instead of just [x:0.y:0.z:1]. Maybe that will fix it? It’s a wild guess. I have no idea. I have similar problems when I’m working on my spline-based movement setup.