Scripted Camera overriding to Custom on "Start Server" tests

Here’s a repro:

This has two lines of code that change the CameraType to “Scriptable” and the CoordinateFrame to CFrame.new(0, 1, 0).

When you run this in “Play Solo” or upload it and run it online, it works just fine. However when you start a server with players, the client will override the camera and change it to “Custom”.

This is because the time taken to load the player scripts varies, sometimes happening before the character is setup sometimes after. I don’t think we can guarantee consistent behavior in this case.

function characterAdded(char)
	game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
end
game.Players.LocalPlayer.CharacterAdded:connect(characterAdded)
if game.Players.LocalPlayer.Character then
	characterAdded(game.Players.LocalPlayer.Character)
end

I thought this would produce consistent behavior but it still doesn’t as the humanoid can be set up sometimes before the character added event and sometimes after.