The player floating issue can be countered by setting the BodyVelocity’s MaxForce Y axis to 0.
I’m starting work on the quick prototype of “movement-lunging”.
I don’t expect it take too long, like 1-2 hours.
Regarding the player going too far if not grounded is a somewhat easy fix, just apply air resistance to the HumanoidRootPart during the action. Welds and alignment constraints are unnecessary and isn’t the best fit for this case.
So I’ve achieved a somewhat similar lunge as DahNoob had, without all the fancy effects and animations.
Essentially it’s just a simple movement lunge.
I’ve uncopylocked the game so you can check out the code, sorry about the code being slightly messy.
The way I went with this was to have a BodyVelocity, and set the Humanoid.AutoRotate to false and not let the player move at all. I also made the lunge length pretty low, and pretty fast.