LinearVelocity Flinging Upward

When using LinearVelocity against ramps, walls, or edges, characters will fling upwards into the air extremely high, depending on the velocity. The video below is the most extreme example.

Here is the code for the Mover:

-- HRP is HumanoidRootPart
-- direction is RootPart's LookVector
local Lv = Instance.new("LinearVelocity")
Lv.Name = "Dash"
Lv.MaxForce = math.huge
Lv.ForceLimitsEnabled = true
Lv.PlaneVelocity = Vector2.new(direction.X, direction.Z).Unit* speed
Lv.VelocityConstraintMode = Enum.VelocityConstraintMode.Plane
Lv.PrimaryTangentAxis = Vector3.new(1,0,0)
Lv.SecondaryTangentAxis = Vector3.new(0,0,1)
Lv.Attachment0 = HRP:WaitForChild("RootAttachment")
Lv.Parent = HRP

Is there anyway to prevent the extreme upward flinging? I have searched the forum, but found no solutions that worked for me.

Try setting the Primary Axis to HRP.CFrame.LookVector and the Secondary Axis to HRP.CFrame.RightVector. I have it set to those for my own dash

and try lowering the max force to something like 10000

1 Like

If you want a completely straight dash that’s unaffected by gravity, you could also try setting the primary axis to the HRP lookvector and the secondary axis to the HRP upvector and completely prevent upwards and downwards motion by setting the plane velocity to Vector2.new(speed, 0)

1 Like

i played around with the suggestions you made and making the upvector/y axis speed set to 0 helped fixed the upward flinging i believe, ill have to test that more, however it messed up with the directions of the dash, in which i might switch to vector velocity instead. ill update my possible solutions here later