Making a magical jump system

hello, its been some years since the last time I used ue4, and since i had some free time i wanted to make something whit blue prints, but right now i feel to rusty to make something without some kind of guidence

the general idea is to make a jumping system that let you make as many jumps as you want but at the cost of some MP, if the jump dosent start at the floor

i broke this idea into general objectives:

  1. make a more realistic jump (the default jump in the third person character blueprint seems to floaty)
    for this part I just changed the gravity scale of the character to 2.5 and played with the values of the jump Z velocity, which I assume is the magnitude of the initial velocity vector that one would use in a physic problem, for a short jump I found that 400 is a good value and 900 is a good value for a long jump (trying to make it as if an over the average human is jumping)

  2. holding the space bar will activate a time counter that will change the value of the jump Z velocity, so for example if I hold it 1 sec then the character will jump with a 900 jump Z value, not holding will do the jump at 400, and any value in between will be a scale of those, like .5 sec would give 650 as a jump Z vector

  3. get somehow the instant speed in the Z axis of the character, so the character can only jump when that value is equal or lower than a set point, that way even if its a double jump the character will have to make the second jump when its near the highest point of the first jump, if the second jump is done to early it will not have any effect (maybe just MP consumption), and if its attepmted to late it will slow down the fall of the character