The previous function doesn't work, but the next function does. Once a player dies, most of this stop functioning correctly without errors. This spectate is suppose to view online "Alive" players.
PreviousSpectator.MouseButton1Down:connect(function() local ActivePlayersTable = {} local Amount = Gather() for _, Player in pairs(game.Players:GetPlayers()) do if Player:FindFirstChild("Playing") and Player.Playing.Value == true then table.insert(ActivePlayersTable, Player) end end if not pcall(function() if ActivePlayersTable[1] and ActivePlayersTable[1].Character then Camera.CameraSubject = ActivePlayersTable[Amount-1].Character:FindFirstChild("Humanoid") SpectateName.Text = ActivePlayersTable[Amount-1].Name end end) then if ActivePlayersTable[1] and ActivePlayersTable[1].Character then Camera.CameraSubject = ActivePlayersTable[#ActivePlayersTable].Character:FindFirstChild("Humanoid") SpectateName.Text = ActivePlayersTable[#ActivePlayersTable].Name end end pcall(function() SpectateName.Text = game.Players:GetPlayerFromCharacter(Camera.CameraSubject.Parent).Name end) end) NextSpectator.MouseButton1Down:connect(function() local ActivePlayersTable = {} local Amount = Gather() for _, Player in pairs(game.Players:GetPlayers()) do if Player:FindFirstChild("Playing") and Player.Playing.Value == true then table.insert(ActivePlayersTable, Player) end end if not pcall(function() if ActivePlayersTable[1] and ActivePlayersTable[1].Character then Camera.CameraSubject = ActivePlayersTable[Amount+1].Character:FindFirstChild("Humanoid") SpectateName.Text = ActivePlayersTable[Amount+1].Name end end) then if ActivePlayersTable[1] and ActivePlayersTable[1].Character then Camera.CameraSubject = ActivePlayersTable[1].Character:FindFirstChild("Humanoid") SpectateName.Text = ActivePlayersTable[1].Name end end pcall(function() SpectateName.Text = game.Players:GetPlayerFromCharacter(Camera.CameraSubject.Parent).Name end) end)