How to Avoid/Recover From Flinging?

I’m trying to do a dash script which works fine, except for flinging.
I was trying to use bodyVelocity, bodyPosition, and maybe some other body forces but all cause flinging when the player collides with another object. It happens severely when the max force is high but also when it’s like 1000 at each axis. I guess the solution is not to lower the max force because this way you cant get enough speed at a short time like dash requires to, so I’ve been trying to find another solution.
In some games, I’ve noticed that when the player collide with another object he sometimes fling for a very short period of time and then just recover from it, and in some other games u just being stopped when you collide but not fling. Is there any way to overcome the flinging issue?

1 Like

Don’t use body velocity, instead do lookVector * 150 or how much you want him to go, 150 is the one i recommend

Example: player.Character.HumanoidRootPart.CFrame.lookVector * 150

so what are you suggesting? lookVector * 150 what? body position? or just manually increment the root part position? rn thats the exact velocity I used for the body velocity object that I’m parenting to the root part.

It moves the player further, you would do this if you wanted to use velocity

local player = local player = game.Players.LocalPlayer

player.Character.HumanoidRootPart.Velocity = player.Character.HumanoidRootPart.CFrame.lookVector * 100

If you script it right, this is how it should work

https://gyazo.com/249fcf34c0653c4aa1bf9cd965cba26a

Force the Humanoid to the GettingUp state via ChangeState. You will need to find a way to determine when to use it though, such as if the Humanoid’s state changes to a falling one. That, or you can just change your dash body movers so that the Humanoid is not flinging itself into walls at high velocity (i.e. stopping them beforehand).

3 Likes