Friction cancels a lot of velocity when on ground

hey, as it’s pretty self explanatory in the title, the friction on the floor makes my character go WAYY shorter than it should be. I’m making a roll move where it gives you some velocity when you roll, however it’s not going as far as I intend it to.

this is when I roll without jumping

this is when I roll with jumping

and no, I don’t want to set the floor’s friction to 0, I tried setting the custom properties locally and it doesn’t seem to work

if you have a solution, please help me out! thanks :))

2 Likes

bumping this topic, please I’m desperate

1 Like

How are you handling the roll velocity? Do you ApplyImpulse()?
I believe it may be because of the character collision affecting the maximum distance. Could you try to set all Humanoid’s parts to not collide and let me know the result?

I’m using the AssemblyLinearVelocity property to handle it, and my character fell thru the floor lol

when the player rolls, turn them into an invisible sphere

interesting answer but I don’t know how that’d work lol

I don’t know if turning into a sphere is a good option but you can create a sphere at the center of the character weld it to the character and move it then make all the other parts collisionless, then play the roll animation

1 Like

if youre making a dash like movement and dont want it to affect the y axis I used linear velocity and had it to plane, also I see people using peraxis. God bless.

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local uips = game:GetService("UserInputService")



uips.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.T then
		
		local linearvelocity = Instance.new("LinearVelocity")
		local attachment = Instance.new("Attachment")
		
		linearvelocity.VelocityConstraintMode = Enum.VelocityConstraintMode.Plane
		linearvelocity.RelativeTo = Enum.ActuatorRelativeTo.World
		linearvelocity.PrimaryTangentAxis = Vector3.new(1,0,0)
		linearvelocity.SecondaryTangentAxis = Vector3.new(0,0,1)
		
		local direction = character.HumanoidRootPart.CFrame.LookVector
		linearvelocity.PlaneVelocity = Vector2.new(direction.X, direction.Z) * 50
		linearvelocity.Attachment0 = attachment
		linearvelocity.MaxForce = 25000
		
		attachment.Parent = character.HumanoidRootPart
		linearvelocity.Parent = attachment
		
		game.Debris:AddItem(attachment, 1)
	end
end)
1 Like

Hey, did you ever solve this problem? I’m having the same issue, and I’m considering just using linear velocity to overpower the friction.

Just give more juice with your velocity until you’re happy with the outcome.

1 Like