I want a block to have the same vertical rotation as the camera. The problem is, vertical rotation isn't straightforward.

Example: If the camera faces north, it is zero. If it faces east, it is 360(camera rotations are actually in radians but that doesn't matter too much) If it faces south, again it is zero. if it's facing west, it's -360.

Applying the direct CFrame wouldn't work since the part would have to flip over. How could I have the part have the same vertical rotation?

My current script (the part act's really weirdly):

wait(1)--ignore this
while true do
	local rot = workspace.CurrentCamera.CoordinateFrame.lookVector.X
	if rot < 0 then
		rot = -rot * 2
	end
	script.Parent.BodyGyro.CFrame = CFrame.Angles(0,rot*360,0)
	print(workspace.CurrentCamera.CoordinateFrame.lookVector * 360)--ignore this too
	wait(0.1)
end