So basically, I'm trying to make a smooth slope moving system like Speed Run 4: https://web.roblox.com/games/183364845/Speed-Run-4
I tried it myself, but there's an issue.
The Code:
wait() local plr = game.Players.LocalPlayer local char = plr.Character local human = char.Humanoid local root = char.HumanoidRootPart local bv = Instance.new("BodyVelocity",root) local speed = 100 while wait() do local moveDir = human.MoveDirection if moveDir.Magnitude > 0 then local mass = 0 for i,v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then mass += v:GetMass() end end local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {char} rayParams.FilterType = Enum.RaycastFilterType.Blacklist local ray = workspace:Raycast(root.Position,Vector3.new(0,-4,0),rayParams) if ray then print("a") bv.Velocity = (moveDir * speed) * ray.Normal else bv.Velocity = moveDir * speed end bv.MaxForce = Vector3.new(100000,0,100000) else bv.Velocity = Vector3.new(0,0,0) bv.MaxForce = Vector3.new(0,0,0) end end
What happens: https://gyazo.com/ad078f271d2407b4909cc9264809fd69
The problem: I'm not experienced with raycast normals and other things like cross and dot. What's happening is when I try to move, I just seem to be going downward when on the ground.
Be free to ask for more information, I really need help with this and I'd be very happy to get an answer. Thank you!