local Goal = CFrame.Angles(math.rad(VRecoil.Value), math.rad(math.random(-HRecoil.Value, HRecoil.Value)), math.rad(0))
for i = 1, 100, 10 do
cam.CFrame:Lerp(Goal, i)
task.wait(FireRate/10)
end

I printed in the loop so I know it runs, but the camera doesn’t move at all and there’s no errors

It’s for gun recoil, so the part would have to follow the player’s head wherever they move. It’s not a set position or else I would be using tween service

So like my script works but i think you need to change up something because it’s goes crazy for some reason.

local Goal = CFrame.Angles(math.rad(1), math.rad(math.random(-1,1)), math.rad(0))
local cam = game.Workspace.CurrentCamera
task.wait(5)
for i = 1, 100, 1 do
cam.CFrame = cam.CFrame:Lerp(Goal, i)
task.wait()
end