Forced shiftlock script

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 :wink:

1 Like