I need a system for my game where the player is in first person but they can't control their camera and instead it just follows their head. I couldn't find any camera types that let me do that, so I scripted my own system.
My system tweens the camera to the head's position every frame by using RenderStepped. Everything works fine apart from the second CFrame argument, the one where I have to put in where the camera should be looking.
CFrame = CFrame.new(char.Head.CFrame.Position, char.Head.CFrame.lookVector)
The first argument works great and as expected, but the second argument makes the camera constantly look at (0, 0, 0), and when I print out the lookVector of the head, it prints out seemingly random numbers that decrease as I get closer to (0, 0, 0).
I'm not sure if I'm understanding lookVector correctly or if I'm doing it completely wrong, but some guidance would be appreciated.

8 comments
is it on the client or server?
You could use raycasting
It's on the client because the camera doesn't exist on the server so it would just error.
I'll look into ray casting as a last resort but I want to see if there is a way to do it without it first.
It doesn't notify you when I post additional comments to my answer, so I'm putting a comment here so you see
I did see, it was just really late so I didn't reply.
Just letting you know there's new replies
@thecelestialcube I added a new reply to your answer