(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
Consider replacing all variables as local.
aren't they already local?
do you get any errors in the console
nope