Making player skid?

Hey there! currently working on my fast paced shooter Spectable!

I’ve been trying to figure out how I could implement a custom movement system into the game, although for the longest time I haven’t been able to figure it out, The reason why I would like to use a custom movement system is mostly because roblox’s movement can change on a dime.


(As seen here)

While i’m going for more of a “icy” approach as seen in Boost Vector

Any Idea on how I could achieve this? I don’t want to change the friction weight as I feel there is a much better solution.

1 Like

I also recommend looking at Platfomer character controller. It transforms the character into a sphere which is a good for slopes and sliding collision detection which I didn’t find out until later.

2 Likes

Wow! Your physicCharacterController seems to be what i’m looking for! I won’t mark this as the solution just yet, but I’ll defo be checking it out.

Hmm, this doesn’t seem to be what i’m after. I’m more looking for speeding up and when you stop the character will either skid to a stopping point of 0 velocity or start speeding up the other direction, which your module does do, I’m just having trouble figuring out how, haha.

Bump! Just trying to figure out a solution.

-- put in StarterPlayer > StarterCharacterScripts
local plr = game.Players.LocalPlayer 
local Character = plr.Character or plr.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local userinputservice = game:GetService("UserInputService")
local hello = true 
local Skid_Anim = Humanoid:LoadAnimation(script:WaitForChild("Skid")) 
Skid_Anim.Looped = true


userinputservice.InputBegan:Connect(function(input,gameprocessed)
	if gameprocessed then return end
	if hello == false then return end

	if input.KeyCode == Enum.KeyCode.E then
		hello = false

		Skid_Anim:Play()
		Character.Humanoid.JumpHeight = 0
		local Skid = Instance.new("BodyVelocity", Character.HumanoidRootPart)
		Skid.MaxForce = Vector3.new(1,0,1) * 30000
		Skid.Velocity = Character.HumanoidRootPart.CFrame.lookVector * 100 
		
		for count = 1, 5 do 
			wait(0.1)
			Skid.Velocity*= 0.7
		end

		wait(.5)
		Character.Humanoid.JumpHeight = 7.2
		Skid_Anim:Stop()
		Skid:Destroy()
		
		hello = true
	end
end)