So, I made a spectator script. It works fine every odd time it clicked. However, when I click on it an even time, it only shows me the first person on the list, and when I click on the right and left arrow, it isn't going to the next person. Usually, when its clicked on an odd time, it works fine though. Why is it that the spectator script isn't working properly every EVEN time it is clicked?
Local Script:
camera = workspace.CurrentCamera
getPlayerInfo = game.ReplicatedStorage.Remotes.GetPlayerRole
gameLobby = script.Parent.Parent.GameLobby
components = script.Parent.Parent.SpectateComponents
getPlayers = game.ReplicatedStorage.Remotes.GetPlayers
local index
function createSpectateList()
local players = getPlayers:InvokeServer()
local spectateList = {}
for _, plr in pairs(players) do
if getPlayerInfo:InvokeServer(plr) ~= "" and plr.Name ~= game.Players.LocalPlayer.Name then
table.insert(spectateList, plr.Name)
end
end
return spectateList
end
script.Parent.MouseButton1Click:Connect(function()
index = 1
local players = createSpectateList()
components.SpectateUser.Visible = true
components.Right.Visible = true
components.Left.Visible = true
script.Parent.Parent.LeaveSpectate.Visible = true
gameLobby.Visible = false
script.Parent.Visible = false
components.SpectateUser.Text = players[index]
camera.CameraSubject = game.Players:FindFirstChild(players[index]).Character:WaitForChild("Humanoid")
components.Right.MouseButton1Click:Connect(function()
if index ~= #players then index = index + 1 else index = 1 end
camera.CameraSubject = game.Players:FindFirstChild(players[index]).Character:WaitForChild("Humanoid")
components.SpectateUser.Text = players[index]
end)
components.Left.MouseButton1Click:Connect(function()
if index ~= 1 then index = index - 1 else index = #players end
camera.CameraSubject = game.Players:FindFirstChild(players[index]).Character:WaitForChild("Humanoid")
components.SpectateUser.Text = players[index]
end)
script.Parent.Parent.LeaveSpectate.MouseButton1Click:Connect(function()
index = 1
camera.CameraSubject = game.Players.LocalPlayer.Character:WaitForChild("Humanoid")
components.SpectateUser.Visible = false
components.Right.Visible = false
components.Left.Visible = false
script.Parent.Parent.LeaveSpectate.Visible = false
script.Parent.Parent.GameLobby.Visible = true
script.Parent.Visible = true
end)
end)
