I deleted the code where I tried CFraming the camera already, and this is what I have now:
local camera = workspace.CurrentCamera
camera.CameraType = Fixed
camera.CameraSubject = game.workspace.cameraLookAt
cameraLookAt is a part in the workspace. This is in a Localscript under StarterPlayerScripts. When I run the game, the camera’s subject is still the humanoid, and type is still fixed
Make sure you are setting the CameraType using an Enum. CameraSubject does not have any effect on scriptable cameras. You will have to set the CFrame yourself.
Although you marked a solution already, it is likely not your desired solution as the camera will be fixed around the center of the workspace.
Your original issue as described stems from the CurrentCamera properties being overridden by the built-in camera controller on startup. Adding a simple wait to the beginning of your code fixes the issue and gives the intended result.
repeat wait() until workspace.CurrentCamera
local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = (workspace.cameraLookAt.CFrame + Vector3.new(0, 0, 10))