local gui = game.ReplicatedStorage.guis.inviteplr for i,v in pairs(game.Teams.Spectators:GetPlayers()) do print("script ran") local clone = gui:Clone() clone.Player.Value = v.Name clone.Parent = script.Parent end game.Players.PlayerAdded:Connect(function(player) local clone = gui:Clone() clone.Player.Value = player.Name clone.Parent = script.Parent player:GetPropertyChangedSignal("TeamColor"):Connect(function() if player.TeamColor ~= BrickColor.new("Dark stone grey") then for i,v in pairs(script.Parent:GetChildren()) do if v:FindFirstChild("Player") then if v.Player.Value == player.Name then print("player not in team, destroying ("..player.Name..")") v:Destroy() end end end else print("player in team, adding") local clone = gui:Clone() clone.Player.Value = player.Name clone.Parent = script.Parent end end) end) game.Players.PlayerRemoving:Connect(function(player) for i,v in pairs(script.Parent:GetChildren()) do if player.Name == v.Player.Value then print("player leaving, destroying") v:Destroy() end end end)
the script is supposed to function when a player joins and when the value changes. the value is a string value which contains a player's username.
right now, the script is only able to detect when players that joined after the local player changes teams, but i need it so that it is every player on the server.