Position gets Jumpy when reaching the limit of the Freelook

  1. What do you want to achieve?
    I’ve been having this issue for awhile and I’ve tried the best to fix it, but I couldn’t unfortunately

  2. What is the issue?

  3. What solutions have you tried so far?
    I’ve tried everything I know of, such as trying to use attachments which did work however it couldn’t be affected by the Humanoid Camera Offset

runService:BindToRenderStep("alt" , Enum.RenderPriority.Camera.Value+1, function(dt)
	local cameraCFrame = root.CFrame:ToObjectSpace(camera.CFrame)
	local x, y, z = cameraCFrame:ToOrientation()

	local ylimit = math.rad(math.clamp(math.deg(y), -limit, limit))

	local targetCFrame = root.CFrame:ToWorldSpace(CFrame.fromOrientation(x, ylimit, z))
	targetCFrame = CFrame.new(camera.CFrame.Position) * targetCFrame.Rotation
			
	camera.CFrame = targetCFrame
end)

I hope you can guys help me with this annoying bug, But anyways, Cheers!

You may use RunService.Heartbeat:Connect to fix this issue
Not RunService:BindToRenderStep

I dont get what you are doing here, can you explain more to me so I can figure it out?

So what I’m trying to do here is to create a Freelooking system similar to Tarkov, Arma or RoN
the Script does work, However, when I continue push my mouse to left/right when the camera had reached the limit, the Camera Position will get Jumpy, I Apologize if you didn’t understand, I’m not very good at Explaining things

Anyways here’s a video of what system I’m trying to achieve

I Tested this and it would mess with the Rotation.

You could run it on client-side, because you can use an event called RunService.RenderStepped

It runs every on every render so it won’t have a jumpy effect.

Unfortunately it’s still jumpy (and i think it made it even more jumpier but i’m not sure if it’s just me(