Something's limiting arms movement

So I have some arms, and you can see, at the gif, sometimes when aiming tooo up, or too down, it doesn’t allows me, and it’s set’s like a limit
Here you can see gif:

This is code:

if IsFirstPerson() and not Aiming then
	local rotWithCam = cameraOffset * CFrame.Angles(Mouse.Origin.lookVector.y, 0, 0) * cameraOffset:inverse()
					local RightShoulder = Character:WaitForChild('Humanoid').Health > 0 and Character:WaitForChild('Torso')['Right Shoulder']
		local LeftShoulder = Character:WaitForChild('Humanoid').Health > 0 and Character:WaitForChild('Torso')['Left Shoulder']

		game:GetService('TweenService'):Create(LeftShoulder,, {C0 = rotWithCam * LeftC0 }):Play()
		game:GetService('TweenService'):Create(RightShoulder,, {C0 = rotWithCam * RightC0}):Play()
			if (tick()- LastT) > 0.1 then
				LastT = tick()
			game.ReplicatedStorage.WeaponSystem.Events.ReplicateArms:FireServer(RightShoulder,rotWithCam * RightC0, LeftShoulder,rotWithCam * LeftC0 )

I’m using mouse origin (lookvector) y

I was thinking on using camera, but don’t know how

Is there a way to make it for when I aim down, it goes down?

If you want to use the camera LookVector, you should probably use CurrentCamera.CFrame.LookVector, or, if you want an origin ray, shoot a raycast straight forward (i.e, 0, -10)) and get the Origin point from that.