Nametag not appearing when membership is correct

Hello there!

I am currently creating a nametag with multiple tags.

My issue is that I am premium, however it is not awarding the tag but I am also in the group but it is awarding that tag. No errors are appearing and print statements do not run the code.

-- Script
local MarketPlaceService = game:GetService("MarketplaceService")
local GamepassID = 14713223

local NametagVariantsModule = require(script.NametagVariants)

game.Players.PlayerAdded:Connect(function(Player)
	if Player:IsInGroup(7581138) then
		NametagVariantsModule.FanNametagFunc(Player)
		print("1")
	end
	
	if Player.MembershipType == Enum.MembershipType.Premium then
		NametagVariantsModule.PremiumNametagFunc(Player)
		print("2")
	end
	
	if Player:IsInGroup(4199740) then
		NametagVariantsModule.StarNametagFunc(Player)
		print("3")
	end
	
	if MarketPlaceService:UserOwnsGamePassAsync(Player.UserId, GamepassID) then
		NametagVariantsModule.VIPNametagFunc(Player)
		print("5")
	end
end)

-- Module
local ServerStorage = game:GetService("ServerStorage")
local NametagsFolder = ServerStorage:WaitForChild("Nametags")

local FanNametag = NametagsFolder:WaitForChild("FanNametag")
local PremiumNametag = NametagsFolder:WaitForChild("PremiumNametag")
local StarNametag = NametagsFolder:WaitForChild("StarNametag")
local VIPNametag = NametagsFolder:WaitForChild("VIPNametag")

local Nametag = {}

function Nametag.FanNametagFunc(Player)
	print("Player is in group, awarding fan nametag...")
	
	local Character = Player.CharacterAdded:Wait()
	FanNametag.Parent = Character.Head
	print("6")
end

function Nametag.PremiumNametagFunc(Player)
	print("Player is premium, awarding premium nametag...")
	
	local Character = Player.CharacterAdded:Wait()
	PremiumNametag.Parent = Character.Head
	print("10")
end

function Nametag.StarNametagFunc(Player)
	print("Player is in the star program, awarding star program nametag...")
	
	local Character = Player.CharacterAdded:Wait()
	StarNametag.Parent = Character.Head
	print("a")
end

function Nametag.VIPNametagFunc(Player)
	print("Player is VIP, awarding VIP nametag...")
	
	local Character = Player.CharacterAdded:Wait()
	VIPNametag.Parent = Character.Head
	print("toaster")
end

return Nametag

If you have a solution, please reply!

The reason why is because the script is waiting for the player’s character to be added again.

Do this:

function Nametag.FanNametagFunc(Player)
	print("Player is in group, awarding fan nametag...")
	
	local Character = Player.Character or Player.CharacterAdded:Wait()
	FanNametag.Parent = Character.Head
	print("6")
end

function Nametag.PremiumNametagFunc(Player)
	print("Player is premium, awarding premium nametag...")
	
	local Character = Player.Character or Player.CharacterAdded:Wait()
	PremiumNametag.Parent = Character.Head
	print("10")
end

function Nametag.StarNametagFunc(Player)
	print("Player is in the star program, awarding star program nametag...")
	
	local Character = Player.Character or Player.CharacterAdded:Wait()
	StarNametag.Parent = Character.Head
	print("a")
end

function Nametag.VIPNametagFunc(Player)
	print("Player is VIP, awarding VIP nametag...")
	
	local Character = Player.Character or Player.CharacterAdded:Wait()
	VIPNametag.Parent = Character.Head
	print("toaster")
end

Ah, alright I will try that…