Team Change Script Not Working

  1. What do you want to achieve?
    I want the script to change the players team based off the rank in a group, the teams are in the Teams folder.

  2. What is the issue?
    The issue is that it wont change the players team, it isn’t throwing out any errors either.

My Script in ServerScriptService

--// VARIABLES \\--

local Players = game:GetService("Players")
local GroupIDVar = 5910800 -- Group ID

--// FUNCTIONS \\--

Players.PlayerAdded:Connect(function(player)
	
	player.CharacterAdded:Connect(function(char)
		
		
		--// BASICS \\--
		
		local PlayerOverHeadGui = script.PlayerOverheadGui:Clone() -- Clones the GUI
		PlayerOverHeadGui.Parent = char.Head -- Puts the GUI in the characters Head
		PlayerOverHeadGui.NameFrame.NameLabel.Text = player.Name -- Sets the players name
		PlayerOverHeadGui.RankFrame.RankLabel.Text = player:GetRoleInGroup(GroupIDVar) -- Sets the players rank
		
		
		--// RANK COLOR CHANGE \\--
		
		if player:GetRankInGroup(GroupIDVar) == 0 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(76, 104, 118)
			
		elseif player:GetRankInGroup(GroupIDVar) == 1 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(128, 128, 128)
			
		elseif player:GetRankInGroup(GroupIDVar) == 3 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(76, 104, 118)
			
		elseif player:GetRankInGroup(GroupIDVar) == 5 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(204, 204, 024)
			
		elseif player:GetRankInGroup(GroupIDVar) == 6 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(147, 196, 125)
			
		elseif player:GetRankInGroup(GroupIDVar) == 7 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(106, 168, 79)
			
		elseif player:GetRankInGroup(GroupIDVar) == 8 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(56, 118, 29)
			
		elseif player:GetRankInGroup(GroupIDVar) == 9 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(69, 129, 142)
			
		elseif player:GetRankInGroup(GroupIDVar) == 10 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(11, 83, 148)
			
		elseif player:GetRankInGroup(GroupIDVar) == 253 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(83, 83, 83)
			
		elseif player:GetRankInGroup(GroupIDVar) == 254 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(3, 3, 3)
			
		elseif player:GetRankInGroup(GroupIDVar) == 255 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(46, 46, 46)
			
			
			--// DIVISON CHANGES \\--
			
		elseif player:GetRankInGroup(12152626) then -- Executive Security
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(61, 59, 59)
			
		elseif player:GetRankInGroup(6200143) then -- Office of Intelligence
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
			
			
			--// TEAM CHANGES \\--
			
		elseif player:GetRankInGroup(GroupIDVar) <= 7 then
			
			player.Team = game.Teams["Conference Member"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 8 or player:GetRankInGroup(GroupIDVar) == 9 or player:GetRankInGroup(GroupIDVar) == 10 then
			
			player.Team = game.Teams["Corporate Command"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 253 or player:GetRankInGroup(GroupIDVar) == 254 then
			
			player.Team = game.Teams["Corporate Oversight"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 255 then
			
			player.Team  =game.Teams["Corporate Chairman"]
			
		end
		
	end)
	
end)
1 Like

Make a separate if statement for changing the teams. Maybe that is problem, because you are making elseif statements for the team change, which is still connected to the first if statement for changing the text color, and because of that, the code wont run again for the player who joined if one of the elseif statement is true (hope this makes sense).

Use this code for your script:

--// VARIABLES \\--

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local GroupIDVar = 5910800 -- Group ID

--// FUNCTIONS \\--

Players.PlayerAdded:Connect(function(player)
	
	player.CharacterAdded:Connect(function(char)
		
		
		--// BASICS \\--
		
		local PlayerOverHeadGui = script.PlayerOverheadGui:Clone() -- Clones the GUI
		PlayerOverHeadGui.Parent = char.Head -- Puts the GUI in the characters Head
		PlayerOverHeadGui.NameFrame.NameLabel.Text = player.Name -- Sets the players name
		PlayerOverHeadGui.RankFrame.RankLabel.Text = player:GetRoleInGroup(GroupIDVar) -- Sets the players rank
		
		
		--// RANK COLOR CHANGE \\--
		
		if player:GetRankInGroup(GroupIDVar) == 0 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(76, 104, 118)
			
		elseif player:GetRankInGroup(GroupIDVar) == 1 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(128, 128, 128)
			
		elseif player:GetRankInGroup(GroupIDVar) == 3 then
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(76, 104, 118)
			
		elseif player:GetRankInGroup(GroupIDVar) == 5 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(204, 204, 024)
			
		elseif player:GetRankInGroup(GroupIDVar) == 6 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(147, 196, 125)
			
		elseif player:GetRankInGroup(GroupIDVar) == 7 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(106, 168, 79)
			
		elseif player:GetRankInGroup(GroupIDVar) == 8 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(56, 118, 29)
			
		elseif player:GetRankInGroup(GroupIDVar) == 9 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(69, 129, 142)
			
		elseif player:GetRankInGroup(GroupIDVar) == 10 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(11, 83, 148)
			
		elseif player:GetRankInGroup(GroupIDVar) == 253 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(83, 83, 83)
			
		elseif player:GetRankInGroup(GroupIDVar) == 254 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(3, 3, 3)
			
		elseif player:GetRankInGroup(GroupIDVar) == 255 then

			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(46, 46, 46)
			
			
			--// DIVISON CHANGES \\--
			
		elseif player:GetRankInGroup(12152626) then -- Executive Security
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(61, 59, 59)
			
		elseif player:GetRankInGroup(6200143) then -- Office of Intelligence
			
			PlayerOverHeadGui.RankFrame.RankLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
			
		end
			--// TEAM CHANGES \\--
			
		if player:GetRankInGroup(GroupIDVar) <= 7 then
			
			player.Team = Teams["Conference Member"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 8 or player:GetRankInGroup(GroupIDVar) == 9 or player:GetRankInGroup(GroupIDVar) == 10 then
			
			player.Team = Teams["Corporate Command"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 253 or player:GetRankInGroup(GroupIDVar) == 254 then
			
			player.Team = Teams["Corporate Oversight"]
			
		elseif player:GetRankInGroup(GroupIDVar) == 255 then
			
			player.Team = Teams["Corporate Chairman"]
			
		end
	end)
end)
3 Likes

Thank you so much, I had not clue that happens.

1 Like