I'm trying to replicate the movement parameters of Abe from the Oddworld Series, starting with with his basic walking

I’ve taken a couple of cracks at it myself, but haven’t come up at what I need.
If you’ve seen Abe play in his PS1 days, he and his levels are set up according to an invisible square grid. You can actually see how the grid has determined the level layouts if you look closely enough.

I’m using the Unreal Man in the SideScroller example as a base to build on, and I’ve changed his movement input to an Input Action, rather than Input Axis, in order to better distinguish right and left. AT the moment he moves completely freely in the Y and Z, but I want to adjust that so that whenever I press the corresponding button he’ll move within these imaginary grid settings. The grid in this case being 100 x 100 = one square, and Abe is the equivalent of 100 x 300.

Say Abe is facing right and I quickly press the right button. I want Abe to move a set distance of 100 in Y, no more and no less, and if I hold it down and release it whilst he’s moving between grid spaces he will keep going until he’s moved into alignment with this imaginary grid. If not if throws him out of distance with other objects in the scene, and the game requires precise platforming.

Also if he’s facing left and I were to tap right he would do a 180 degree turn in Z, without any change to transformation instead of moving. Only if I kept it pressed would he then start moving.

If someone can provide me with an idea of how to set this up I would be extremely grateful, as I’m trying to set this up for a piece of work, whilst learning the blueprinting side of the engine at the same time. If you want to see my apparently messy blueprint for what I currently have set up do tell, and I’ll put it up on here.