Needed help with basic FPS movement

Hi!Recently, i’ve picked up UE and decided to make an FPS just for education.I’ve made my character move, look around, double jump and sprint, but before adding more elements i want to finish the movement, with which i need help.
1.I want to prevent sprinting when mid-air and crouched(i’ll add crouching when i’ll figure out how to do it).I also want sprint to be allowed only when character is moving forward with allowance of slight movement to the sides.
2.Is there a way to calculate how high my character can jump in-game, because adding Z velocity doesn’t tell me much.
3.Lastly i want to know, if there is a way to make my blueprints better or shorter.

Thank you and sorry for bad english.