BodyVelocity Acts Stronger When You're Going Off An Edge Or High Grounds

So this has been a problem for a while, I used be seeing topics about this, but somehow when I needed it I can’t find them. The problem is as the topic has described so, your character flings off edges for a longer distance than it does on a platform. Example:

https://gyazo.com/76ecc3d947e2a78c1a7dc3711aa88b54

In this gif I was using the exact same body velocity to move the character but you can clearly tell the second one pushes the character for a further distance.

I used to work around this just by putting a decently large number on the Y axis of the Max Force, so the character gets push down to another platform once it leaves one, but it doesn’t quite fit what I’m looking for though, I want the character simply always moves the same distance no matter in what circumstances, anyone knows how fix this?
Also, I know this probably can be fixed by using BodyPosition, but the problem with it is if the target position is inside a mesh, then I will have make a calculation for it, and it just seems so complicated to work around it, but if you got a good method hope you can still let me know :slight_smile:

It looks like a friction difference. On the ground the friction of the ground slows the player down, but in the air there isn’t that resistance.
Have you tried using a BodyForce momentarily on the player instead? Either that or use a LookVector for direction and use BodyPosition as your destination Position. A BodyPosition is a physical force, so even if something was in the way your avatar shouldn’t travel inside of it. If you used it while standing in front of a Part or a MeshPart then you wouldn’t go through the item unless your Forces were really huge.

In the real world the physics of the situation in your video would be the same. If you threw a rock horizontally then it would travel a greater distance horizontally if you were higher up.

1 Like

Interesting, I’ll definitely try those out, thanks a lot for the reply

I tried using BodyForce and it turned out perfectly, just I wanted thank you so much for the help but still got one question though, I tried making a normal Block Rig Dummy go anti gravity but it’s acting weird all the parts besides HumanoidRootPart are Massless, but the Humanoid would go sinking when everything starts, after I drag him back up he works normal, anti gravity, any solution about this? Am I doing something wrong or I missed something?

Dummy Problem:
https://gyazo.com/09776aecdc5043dd3ed77ab0f4bc2683

Here’s the script for the dummy:

local root = script.Parent:FindFirstChild("HumanoidRootPart")

local bf = Instance.new("BodyForce",root)

bf.Force = Vector3.new(0, root:GetMass() * workspace.Gravity , 0)

print(bf.Force.Y)

My Game Got Fixed:
https://gyazo.com/a38412f634260e9b3a527d4cd0ad97c5