Hey, the issue you’re facing is probably because you’re rotating the character directly with CFrame, which instantly snaps it to the new rotation. If you want smoother, more natural motion, you should try using CFrame:Lerp
local lerpSpeed = 0.15
RunService:BindToRenderStep("SmoothRotation", Enum.RenderPriority.Character.Value, function()
local _, y = workspace.CurrentCamera.CFrame.Rotation:ToEulerAnglesYXZ()
local targetCFrame = CFrame.new(root.Position) * CFrame.Angles(0, y, 0)
root.CFrame = root.CFrame:Lerp(targetCFrame, lerpSpeed)
end)
try this ![]()