Why isn't the BillboardGUI showing?

Hi Guys, so I tried to make a script that clones a BillboardGUI that shows the rank of the player (Developer, Owner etc.), and it clones properly, but for some reason it doesn’t show and not even there inside the Head but it prints the name.

Script -

local tags = {
	["Owner"] = game.CreatorId,
	["Developers"] = {
		"3012757578",
	}
}

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(char)
		if player.UserId == game.CreatorId then
			local rank_gui = game.ServerStorage.HeadRank:Clone()
			local head = char:FindFirstChild("Head")
			rank_gui.Rank.Text = "Owner"
			rank_gui.Parent = head
		end
		if table.find(tags.Developers, tostring(player.UserId)) then
			local rank_gui = game.ServerStorage.HeadRank:Clone()
			local head = char.Head
			rank_gui.Rank.Text = "Developer"
			rank_gui.Parent = head
			print(head.HeadRank.Rank.Text)
		end
	end)
end)

Any help is appreciated, thanks! :slight_smile:

1 Like

You could waitForChild() again.

Are there any errors?

Not any errors yet, it just works fine.

1 Like

As you said it clones but doesn’t appear. Could it be that the gui is small or is not enabled/Visible = true?

I recently made something similar but… I’ll check.

2 Likes

i dont see any line with Adornee property set anyway so im assuming you forgot to set it’s Adornee, other than that the code looks fine except missing what i expected

Billboards dont automatically appear nor assign it when parented, BillboardGui displays if you set it’s Adornee to somewhere you want

2 Likes

I tested the gui on a part, it’s perfectly fine though and I have set the visible property to true.

This is what i used for my game.

	local NewTagCopy = PlayerTag:Clone() 
	local character = player.Character or player.CharacterAdded:Wait()
	local humanoid = character:WaitForChild("Humanoid")

	NewTagCopy.Frame.Rank.Text = player.Team.Name
	NewTagCopy.Frame.PlayerName.Text = "@" .. player.Name
	NewTagCopy.Parent = character

I just made to the GUI is a bit higher.

1 Like

I tried setting the Adornee as well, but still there’s a problem.

Won’t it be better to put the second if statement in a elseif? As you would have 2 Guis if you are the owner and the dev.

1 Like

Perhaps it looks like some checking CreatorId???, If the game is under a group, it will get the group id returned in 6 digits, if its owned by a user it will be the same as UserId

It isnt a group game though, its a game owned by a player, and it prints “Developer” when I join, but it doesnt show inside the head.

Is it parented to it? (char 30)

Yes, that’s why it’s able to print the Text.

then i suggest trying to put another if statement inside the first one like what the guy said, normally when checking stuff, we have the elseif statement to let it check the condition

local tags = {
	["Owner"] = game.CreatorId,
	["Developers"] = {
		"3012757578",
	}
}

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(char)
		if player.UserId == game.CreatorId then
			local rank_gui = game.ServerStorage.HeadRank:Clone()
			local head = char:FindFirstChild("Head")
			rank_gui.Rank.Text = "Owner"
			rank_gui.Parent = head
        elseif table.find(tags.Developers, tostring(player.UserId)) then
			local rank_gui = game.ServerStorage.HeadRank:Clone()
			local head = char.Head
			rank_gui.Rank.Text = "Developer"
			rank_gui.Parent = head
			print(head.HeadRank.Rank.Text)
		end
	end)
end)
1 Like

I added it though but still no change.

well then its either the visible/enabled/adornee OR that its offset is changed etc.

Other wise i have no ideas.

Always on Top? (char limit)

1 Like

Yes that’s also set to true. I have no clue now.

My only guess now that it could be this.

local character = player.Character or player.CharacterAdded:Wait()

This also i hope you have done this in the second if statement.

1 Like

I tested your script, and it works, no clue why isn’t working for you

1 Like