I don’t know how you scripted you character, but you shouldn’t start at the actor location or the skeletal mesh component of the actor?
If i used something like first person or third person template, i would get the world location of the PlayerSkeletalMesh as a start
And for the End use the Start Vector + Your Desired distance in Z
Loop is a bit expensive, even more in blueprints. You really need that the player uncrouch automatically? If not, i’d say that make the player press the button and try to uncrouch, otherwise, a better option would be “Set Timer by Event” and mark the loop option. You can assign a ticking time (you could use 0.2 seconds for example and make that check five times per second, if you need a faster response use a lower value for that time).
Edit: I had to come here because i forgot to tell something very important.
When you Set Timer by Event, there’s a return value (blue). You need to use it (Usually promove to a variable for easy reference) to “Clear and Invalidate Timer by Handle” otherwise there’s nothing stoping this loop. So even when you are uncrouched, the loop will still be running.
An easy way to think about it. It’s just like a While loop
You start this loop and While it’s not Cleared and invalidated, this will keep running.