Camera SlowRotation

how to prevent this slow rotation/drift from happening…?

Your method of calculating rotation is invalid.

You are subtracting the position from the CFrame, instead you could just use fakeCam.CFrame.Rotation like this:

local fakeCam = CurrentViewmodel:FindFirstChild("FakeCamera", true)
if fakeCam and fakeCam:IsA("BasePart") then
    local pos = Camera.CFrame.Position
    local rot = fakeCam.CFrame.Rotation
    Camera.CFrame = CFrame.new(pos) * rot
end

Let me know if that fixes anything.

If it does fix it, here’s why (for future reference):

  • By deducting the position from the CFrame you are creating an invalid CFrame that has a position of 0, 0, 0 and has incorrect orientation relative to the origin which leads to imprecision.