Im working on a recoil recovery system, but the problem is that it keeps overshooting my original camera angle even though it should be clamped.
function onRenderStepped(deltaTime: number)
local x, y, z = currentCamera.CFrame:ToEulerAnglesXYZ()
local spreadRange = currentStats:GetAttribute("SpreadRange")
spread = math.clamp(spread - currentStats:GetAttribute("SpreadDecrease"), spreadRange.Min, spreadRange.Max)
if spread <= spreadRange.Min then
lastCameraAngleVector = Vector3.new(x, y, z)
else
currentCamera.CFrame = currentCamera.CFrame:Lerp(
currentCamera.CFrame * CFrame.Angles(math.clamp(math.rad(lastCameraAngleVector.X), math.rad(lastCameraAngleVector.X), math.huge), 0, 0),
x/lastCameraAngleVector.X
)
end
end