You should put it in a LocalScript in StarterPlayerScripts which would be under the StarterPlayer Service.
This will put it in every player that joins, so you dont need that PlayerAdded event. Instead you could reference the player with game.Players.LocalPlayer
Use a LocalScript, then put it in StarterPlayerScripts, then write:
local Players = game:GetService("Players")
local Camera = workspace.CurrentCamera
local OpeningPart = workspace.OpeningSceneCamera
Players.PlayerAdded:Connect(function()
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CFrame = OpeningPart.CFrame
end)
This… should work, haven’t tried it. Let me know if you’re experiencing any issues.
It could also be the LookVector of your camera, it might be facing the sky. Try setting the camera’s CFrame to CFrame.new(OpeningPart.Position, Vector3.new(0,-1,0)) unless it isnt broken. Then adjust it so it looks the proper direction.
If you want it to work on the server aswell then use the same script except clone it to the server instead, and make it just a normal “Script” instance.
Yeah I tested it and it seems you can move while the camera is being manipulated on the server, I dont think there is anything you can do unless you can adjust the camera moving.