Movement/Walkspeed friction when falling?

Hi. Ive been attempting to make a little skydiving feature and ive ran into a problem. To make sure my character is falling at a stable rate, I lower the characters position using a linearvelocity.

lv = Instance.new("LinearVelocity")
lv.LineDirection = Vector3.new(0, 1, 0)
lv.LineVelocity = -65
lv.VelocityConstraintMode = Enum.VelocityConstraintMode.Line
lv.MaxForce = 10^4
lv.Attachment0 = Character.PrimaryPart.RootRigAttachment
lv.Parent = Character.PrimaryPart
lv.Enabled = true

The problem I have ran into is that while the character is skydiving (falling), there seems to be some sort of friction when I try to move horizontally, and I cant immediately change directions. When I stop holding D and switch to A, it sort of slows down the characters movement and slowly picks up momentum to travel in that direction. Is there any way to stop this sort of movement friction when falling, and make it so when I change directions (using WASD) I immediately start going full speed in the new direction? I’ve attached a visual example as to what I mean

I would recommend you to use a force object along with the drag equation from Drag (physics) - Wikipedia.

In most of the humanoid states, the game will be trying to bring your horizontal speed towards your walkspeed, or 0 if no input is pressed. Simply change the walkspeed to the horizontal speed you want while diving, or set the humanoid state to something like physics or flying (I forget if this was the other one that has drag turned off), but you may have to do some more work.

I noticed for your linear velocity is it relative to World? If not it might be creating a drag force in the XZ axis and not just the y axis.

lv.RelativeTo = Enum.ActuatorRelativeTo.World

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.