Having trouble with implementing a roll/dodge in my game

I’ve been having a fair bit of trouble implementing a roll/dodge in my game. The issue is with the movement. I’ve tried a few things like bodyvelocity, linearvelocity, changing the CFrame of the HRP with a for loop, but I haven’t been able to find a solution that feels good. It feels like something so simple shouldn’t be giving me so much trouble but the biggest issues I’ve run into are as follows:

  1. BodyVel and LinearVelocity when parented to the Player Character suspends the character in midair for the time it is active, which makes it feel unnatural (and generally makes the player go further in the air than on the ground, which I would prefer to not be the case)

  2. Collisions with parts either fling the character a ton or the character simply goes through the part (with cframe specifically).

Ideally I just want a very very basic impulse in the direction the player is moving that keeps the vertical velocity (falling, jumping, etc) consistent. I will attach an example below:

I don’t need a script made for me, just a point in the right direction. Any Ideas, alternatives, or help on making something that looks like this would be greatly appreciated, and I thank any response in advance.

1 Like

I smell deepwoken yum yum. For body velocity, try setting the y force very low. It seems to work well for me

2 Likes

So how do you solve the issue with collisions?

1 Like

limit the max force to 100,000 worked for me. I used to get flung a lot until I lowered that. Don’t use math.huge for the max force.

2 Likes

Thank you, I’ll try it out when I get home

This fixed it, thank you so much

1 Like