Camera manipulation flipping character around

Im making a third person camera and whenever its activated it should point in the direction the player is already facing in

But instead it always flips the player to be facing in this direction (its always this same direction no matter where you were looking)
ezgif-2-f26e6885a6

The camera script Im using is the one on robloxs api reference for Camera Manipulation but with a lot of edits

heres some of the script

local CameraOffset = Vector3.new(1.25, 3, 9)

ConActSer:BindAction("PlayerInput", function(ActionName, InputState, InputObject)
	if InputState == Enum.UserInputState.Change then
	   CameraAngleX -= InputObject.Delta.X * 0.4
       CameraAngleY = math.clamp(CameraAngleY - InputObject.Delta.Y * 0.4, -75, 75)
	end
end, false, Enum.UserInputType.MouseMovement, Enum.UserInputType.Touch)

RunSer:BindToRenderStep("CameraUpdate", Enum.RenderPriority.Camera.Value, function()
	local StartCFrame = CFrame.new(RootPart.CFrame.Position) * CFrame.Angles(0, math.rad(CameraAngleX), 0) * CFrame.Angles(math.rad(CameraAngleY), 0, 0)
	local CameraCFrame = StartCFrame:PointToWorldSpace(CameraOffset)
    local CameraFocus = StartCFrame:PointToWorldSpace(Vector3.new(CameraOffset.X, CameraOffset.Y, -100000000))
				
	Camera.CFrame = CFrame.lookAt(CameraCFrame, CameraFocus)

Im sure the issue is coming from the PointToWorldSpace but i dont know what else I could use.

So what im trying to figure out is how to have the players camera point to the same directions its been pointing in but still have the offset

Are you sure it isn’t a problem with the tool?

Im sure. The tool doesnt control the camera. This script only checks if the player has one equipped