Script not changing camera on join

Not sure whats wrong here but im trying to have it so when a player joins their camera is locked onto a part’s cframe but its not changing the camera to scriptable

repeat S = pcall(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", false) end) task.wait(0.1) until S 

-- Varibles
local Player = game:GetService("Players").LocalPlayer
local Players = game:GetService('Players')
local Camera = game.Workspace.CurrentCamera
local LobbyCam = game.Workspace.LobbyCam 
local MenuCam = game.Workspace.MenuCam

-- Functions
local function ChangeCam(Cam)
	print("1")
	if Cam == "Menu" then
		Camera.CFrame = MenuCam.CFrame
	end
	
	if Cam == "Lobby" then
		Camera.CFrame = LobbyCam.CFrame
	end
	
	if Cam == "Extras" then
		-- Soon(tm)
	end
end

-- Main
local Character = Player.Character or Player.CharacterAdded:Wait()
repeat Camera.CameraType = Enum.CameraType.Scriptable until Camera.CameraType == Enum.CameraType.Scriptable and game:IsLoaded()
ChangeCam("Menu")

And even with

repeat Camera.CameraType = Enum.CameraType.Scriptable until Camera.CameraType == Enum.CameraType.Scriptable and game:IsLoaded()

it still doesnt set it to scriptable

2 Likes

Are there any errors? And are you sure that game.Workspace.MenuCam is a thing/the right name?

1 Like

nope, no errors, and every part works

i got it to work once out of 50 trys, but idk how every other attempt before and after still doesnt work

2 Likes
repeat S = pcall(function() game:GetService("StarterGui"):SetCore("ResetButtonCallback", false) end) task.wait(0.1) until S 

-- Varibles
local Player = game:GetService("Players").LocalPlayer
local Players = game:GetService('Players')
local Camera = game.Workspace.CurrentCamera
local LobbyCam = game.Workspace.LobbyCam 
local MenuCam = game.Workspace.MenuCam

-- Functions
local function ChangeCam(Cam)
	print("1")
	if Cam == "Menu" then
		Camera.CFrame = MenuCam.CFrame
	end
	
	if Cam == "Lobby" then
		Camera.CFrame = LobbyCam.CFrame
	end
	
	if Cam == "Extras" then
		-- Soon(tm)
	end
end

-- Main
local Character = Player.Character or Player.CharacterAdded:Wait()
repeat Camera.CameraType = Enum.CameraType.Scriptable wait(0.1) until Camera.CameraType == Enum.CameraType.Scriptable and game:IsLoaded()
ChangeCam("Menu")

Try this.

1 Like

guess not having a delay was all that was breaking it
it works now :smiley: :+1:

2 Likes

Your Welcome, Have a good day! :slight_smile: