(LocalScript) Code:

local playersVar = game.Players:GetPlayers()
local me = game.Players.LocalPlayer
local currentPlayer = 0
for index, value in ipairs(playersVar) do
    if value.name == me.name then
        currentPlayer = index
        me = index
    end
end
script.Parent.Left.MouseButton1Click:Connect(function()
    currentPlayer = currentPlayer - 1
    playersVar = game.Players:GetPlayers()
    script.Parent.TextLabel.Text = playersVar[currentPlayer].name
    game.Workspace.Camera.CameraSubject = playersVar[currentPlayer].Character
    print(currentPlayer)
end)
script.Parent.Right.MouseButton1Click:Connect(function()
    currentPlayer = currentPlayer + 1
    playersVar = game.Players:GetPlayers()
    script.Parent.TextLabel.Text = playersVar[currentPlayer].name
    game.Workspace.Camera.CameraSubject = playersVar[currentPlayer].Character
    print(currentPlayer)
end)
script.Parent.Parent.Controls.Spectate.MouseButton1Click:Connect(function()
    currentPlayer = me
    playersVar = game.Players:GetPlayers()
    script.Parent.TextLabel.Text = playersVar[currentPlayer].name
    game.Workspace.Camera.CameraSubject = playersVar[currentPlayer].Character
    print(currentPlayer)
end)

4 comments

0

Consider replacing all variables as local.

1

aren't they already local?

0

do you get any errors in the console

0

nope