Why Does my Camera Spin When Scope

I tried to make a scope system by detecting if it is scoping every renderstepped, and setting the cameras CFrame to the scope CFrame. The only problem is that my camera freaks out and spins very fast instead of just snapping to the CFrame. (its not even correctly on the position

Video of error:

Server:

Code in renderstepped:

if Scopeable == true and ScopeCam == true then
	Camera.CFrame = (Parent:WaitForChild("ScopePos").Position)
end

Attempted Solutions

Disabling recoil
Disabling camera bobbing

Also, this is scope part.

Do you have shift-lock mode on, or some other script that is aligning your avatar to the face the direction the camera is pointed? If so, that’s going to make a feedback loop, because moving the camera will move the scope, and moving the scope moves the camera…

No, but its locked in first person, which now that you say it I do realise it’s because of that. Not sure how to fix it, or make a gun scope at the center of the screen.

First-person shooters normally have a client-only model of the gun that is positioned (by setting its CFrame) relative to the camera CFrame every renderstep. If your game supports switching between first and third person, when you go into first person you can get the CFrame of the scope in world one time, and use that to do a one-time repositioning of the camera, but the camera control should continue to be based only on direct user input, it should not try to track the scope part every frame.

I know most first-person shooters do that, yet I do not want a system like that as it would result in probably creating two animations for each action and it’s complicated.