Problems with making a custom Movement System

I’m trying to make a custom movement system for an FPS game, one that includes sprinting, jumping, crouching, sliding, and b-hopping. My current script adds a LinearVelocity to the HumanoidRootPart and moves it relative to the RootAttachment.

One problem is that the player gets pushed into the ground because for some reason when you move forward the HumanoidRootPart is the only thing that collides with the ground. (This has been keeping me stumped for 2 days now)

One thing I’m trying to achieve is the ability to B-Hop and getting onto a platform when you landed on its edge with momentum.

I have literally no idea on how to make them, does anyone have an idea/concept on how it might work, or even a code example?

I can send the current Movement System code if anyone wants to see it,

Thanks in advance!

Have you taken a look at the Humanoid HipHeight? Adjusting that might help prevent your player from getting pushed to the ground.

Tried increasing and decreasing it but the player still gets pushed into the ground up to the HumanoidRootPart.