Hello, please help me fix this script. I don't understand why it doesn't work. The output gives no information.

local group1 = 15108164; -- GroupId
local group2 = 2; -- Same here
local group3 = 3; -- Ok bye
local group4 = 4;
local group5 = 5;
local group6 = 6;
local redacted = 666;
local vipgroup = 15108164;
local x = nil -- change nil to RankID for VIP tag. Add "and (GetRankInGroup(player, group1))) >= x" if you want that only specific rank above x can be VIP at line 34

local VipRank = script:WaitForChild("VipRank");
local RankTagging = script:WaitForChild("RankTag");
local RedactedTag = script:WaitForChild("Redacted");

function GetRankInGroup(RedactedTag, i)
	return RedactedTag:GetRankInGroup(i)
end

function GetRoleInGroup(RedactedTag, i)
	return RedactedTag:GetRoleInGroup(i);
end

function IsInGroup(RedactedTag, i)
	return RedactedTag:IsInGroup(i)
end

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		spawn(function()
			local teams = game:GetService("Teams");
			
			
			-- (VIP)
			if (IsInGroup(player, vipgroup)) and (player.Team == teams["Team"]) then -- and (GetRankInGroup(player, group1))) >= x and (player.Team == teams["TeamName"]))) then
				local SpecialVIPtag = VipRank:Clone();
				SpecialVIPtag.Adornee = character:WaitForChild("Head");
				SpecialVIPtag.Frame.Division.Text = "Hey";   -- You can change the VIP's team name here, I don't suggest changing it
				SpecialVIPtag.Frame.Division.TextColor3 = Color3.new(1, 0.905882, 0.164706);
				SpecialVIPtag.Frame.Rank.Text = "VIP personnel"; -- you can change it here also to a group rank, like: GetRoleInGroup(player, group1)
				SpecialVIPtag.Enabled = true;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
				
			end
			
			-- group 1 
			
			if (IsInGroup(player, group1)) and (player.Team == teams["Team"]) then
				local TagName = RankTagging:Clone();
				TagName.Adornee = character:WaitForChild("Head");
				TagName.Frame.Division.Text = "GSCFDC"; -- Team name of the group 1
				TagName.Frame.Division.TextColor3 = player.TeamColor.Color;
				TagName.Frame.Rank.Text = GetRoleInGroup(player, group1);
				TagName.Enabled = true;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
				
			end
			
			-- group 2
			if (IsInGroup(player, group2)) and (player.Team == teams["TeamName2"]) then
				local TagName = RankTagging:Clone();
				TagName.Adornee = character:WaitForChild("Head");
				TagName.Frame.Division.Text = player.Team.Name;
				TagName.Division.TextColor3 = player.TeamColor.Color;
				TagName.Frame.Rank.Text = GetRoleInGroup(player, group2);
				TagName.Enabled = true;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
				
			end
			
			-- group 3 
			if (IsInGroup(player, group3)) and (player.Team == teams["TeamName3"]) then
				local TagName = RankTagging:Clone();
				TagName.Adornee = character:WaitForChild("Head");
				TagName.Frame.Division.Text = player.Team.Name;
				TagName.Division.TextColor3 = player.TeamColor.Color;
				TagName.Frame.Rank.Text = GetRoleInGroup(player, group3);
				TagName.Enabled = true;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
				
			end
			
			if (IsInGroup(player, group3)) and (player.Team == teams["Immigrant"]) then
				local TagName = RankTagging:Clone();
				TagName.Adornee = character:WaitForChild("Head");
				TagName.Frame.Division.Text = "Immigrant";
				TagName.Division.TextColor3 = player.TeamColor.Color;
				TagName.Frame.Rank.Text = "N/A";
				TagName.Enabled = true;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
				
			end
			
			-- and so, you go on, if (IsInGroup(player, group5)) and etc.....
			
			
			-- Redacted
			if (IsInGroup(player, redacted)) and (player.Team == teams["RedactedTeam"]) then
				local Tag = RedactedTag:Clone();
				Tag.Adornee = character:WaitForChild("Head");
				Tag.Enabled = true;
				Tag.Parent = character;
				character:WaitForChild('Humanoid').NameOcclusion = Enum.NameOcclusion.OccludeAll;
			end
		end)
	end)
end)