How do I make the overhead gui appear depending on the players currency

what I want to happen is that when a player reaches a certain amount of coins then the overhead gui changes accordingly. Right now the gui is there but i want want the gui to change based on the players coins or currency can anyone help me?

here is the script for the ranks: im pretty sure im not even close to even getting this right which is why I could use some help.

Here is the image for the billboard gui:

1 Like

You didn’t set its adornee do this

game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(character)
        local _b = billboardgui:Clone()
        _b.Parent = character.Head -- //Because you already waited for the character to be added
        _b.Adornee = character.Head
        -- etc.
    end)
end)

Hope this helped! Tell me if anymore errors.

yes I have a problem with the last nametag resetting after the character dies. All of the other overhead gui’s respawns after death but for the last overhead gui specifically named “CANNOT CACULATE”, it dissapears after a player dies.

Here is the script, and it looks fine but I cannot find the problem with the last overhead gui and it keeps dissapearing after the character dies

game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(character)
local leaderstats = Player:WaitForChild(“leaderstats”)
local CoinValue = leaderstats:WaitForChild(script:WaitForChild(“leaderstats”).Value)

if CoinValue.Value >= 0 and CoinValue.Value < 1000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
		
		 if not character:WaitForChild("Head"):FindFirstChild("Rank") then
			local a = game.StarterGui:WaitForChild("Ranks"):WaitForChild("NOOB"):Clone()
			a.Name = "Rank"
			a.Parent = character:WaitForChild("Head")
		end
		
elseif CoinValue.Value >= 1000 and CoinValue.Value < 2000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("AMATUER"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

elseif CoinValue.Value >= 2000 and CoinValue.Value < 3000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("RICH"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

elseif CoinValue.Value >= 3000 and CoinValue.Value < 4000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("MILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


    elseif CoinValue.Value >= 4000 and CoinValue.Value < 5000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("INSANE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


   elseif CoinValue.Value >= 5000 and CoinValue.Value < 6000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("BILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


       elseif CoinValue.Value >= 6000 and CoinValue.Value < 7000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("BILLGATES"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


       elseif CoinValue.Value >= 7000 and CoinValue.Value < 8000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("CANNOT CACULATE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
            game:GetService("StarterGui").Ranks.CANNOTCACULATE.ResetPlayerGuiOnSpawn = false
		end

end

CoinValue.Changed:Connect(function()
if CoinValue.Value >= 0 and CoinValue.Value < 1000 then

					if character:WaitForChild("Head"):FindFirstChild("Rank") then
						wait(0.1)	
						character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
					end	
					
					if not character:WaitForChild("Head"):FindFirstChild("Rank") then
						local a = game.StarterGui:WaitForChild("Ranks"):WaitForChild("NOOB"):Clone()
						a.Name = "Rank"
						a.Parent = character:WaitForChild("Head")
					end
					
				elseif CoinValue.Value >= 1000 and CoinValue.Value < 2000 then
					
					if character:WaitForChild("Head"):FindFirstChild("Rank") then
						wait(0.1)	
						character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
					end	
								 
					if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
						local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("AMATUER"):Clone()
						b.Name = "Rank"
						b.Parent = character:WaitForChild("Head")
					end

                 elseif CoinValue.Value >= 2000 and CoinValue.Value < 3000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("RICH"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		    end
					
      elseif CoinValue.Value >= 3000 and CoinValue.Value < 4000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("MILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


        elseif CoinValue.Value >= 4000 and CoinValue.Value < 5000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("INSANE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


          elseif CoinValue.Value >= 5000 and CoinValue.Value < 6000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("BILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


        elseif CoinValue.Value >= 6000 and CoinValue.Value < 7000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("BILLGATES"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

 elseif CoinValue.Value >= 7000 and CoinValue.Value < 8000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.StarterGui:WaitForChild("Ranks"):WaitForChild("CANNOTCACULATE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
         game:GetService("StarterGui").Ranks.CANNOTCACULATE.ResetPlayerGuiOnSpawn = false
		   end

       end
  end)

end)
end)

Ok turn off ResetOnSpawn in the properties

@dontjudgeme2026 read above please

they are all turned off in each individual rank or billboardgui but the same problem occurs

Ok litsen do not put the parent in the characters head put it in starter gui and then it will be in their playergui then set the Adornee

Tell me if it has worked :slight_smile:

so would I just say for each rank

character : WaitForChild = (“Head”)

No do this

bill.Parent = player:WaitForChild(“PlayerGui”)
or
Do this hold on lemme get on my PC on this acc I am on phone rn

Ok I am on my PC now :slight_smile:

Put the billboardgui in ReplicatedStorage then when a player joins call this @dontjudgeme2026

game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(character)
        local bill = game.ReplicatedStorage:FindFirstChild("InstanceName")
        bill.Parent = workspace
        bill.Adornee = character.Head

        -- //Rest of your code
    end)
end)

when I appllied this to my script then the overhead gui’s stopped showing overall.

But I do also have a folder named “Ranks” so I dont know if I did something wrong with that.

I placed the “Ranks” folder in ReplicatedStorage and changed the script to this:

game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(character)
local Ranks = game.ReplicatedStorage:FindFirstChild(“Ranks”)
Ranks.Parent = workspace
Ranks.Adornee = character.Head

local leaderstats = Player:WaitForChild(“leaderstats”)
local CoinValue = leaderstats:WaitForChild(script:WaitForChild(“leaderstats”).Value)

if CoinValue.Value >= 0 and CoinValue.Value < 1000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
		
		 if not character:WaitForChild("Head"):FindFirstChild("Rank") then
			local a = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("NOOB"):Clone()
			a.Name = "Rank"
			a.Parent = character:WaitForChild("Head")
		end
		
elseif CoinValue.Value >= 1000 and CoinValue.Value < 2000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("AMATUER"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

elseif CoinValue.Value >= 2000 and CoinValue.Value < 3000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("RICH"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

elseif CoinValue.Value >= 3000 and CoinValue.Value < 4000 then

		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("MILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


    elseif CoinValue.Value >= 4000 and CoinValue.Value < 5000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("INSANE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


   elseif CoinValue.Value >= 5000 and CoinValue.Value < 6000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("BILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


       elseif CoinValue.Value >= 6000 and CoinValue.Value < 7000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("BILLGATES"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


       elseif CoinValue.Value >= 7000 and CoinValue.Value < 8000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("CANNOT CACULATE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
            game:GetService("StarterGui").Ranks.CANNOTCACULATE.ResetPlayerGuiOnSpawn = false
		end

end

CoinValue.Changed:Connect(function()
if CoinValue.Value >= 0 and CoinValue.Value < 1000 then

					if character:WaitForChild("Head"):FindFirstChild("Rank") then
						wait(0.1)	
						character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
					end	
					
					if not character:WaitForChild("Head"):FindFirstChild("Rank") then
						local a = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("NOOB"):Clone()
						a.Name = "Rank"
						a.Parent = character:WaitForChild("Head")
					end
					
				elseif CoinValue.Value >= 1000 and CoinValue.Value < 2000 then
					
					if character:WaitForChild("Head"):FindFirstChild("Rank") then
						wait(0.1)	
						character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
					end	
								 
					if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
						local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("AMATUER"):Clone()
						b.Name = "Rank"
						b.Parent = character:WaitForChild("Head")
					end

                 elseif CoinValue.Value >= 2000 and CoinValue.Value < 3000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("RICH"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		    end
					
      elseif CoinValue.Value >= 3000 and CoinValue.Value < 4000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("MILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


        elseif CoinValue.Value >= 4000 and CoinValue.Value < 5000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("INSANE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


          elseif CoinValue.Value >= 5000 and CoinValue.Value < 6000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("BILLIONAIRE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end


        elseif CoinValue.Value >= 6000 and CoinValue.Value < 7000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("BILLGATES"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
		end

 elseif CoinValue.Value >= 7000 and CoinValue.Value < 8000 then
	
		if character:WaitForChild("Head"):FindFirstChild("Rank") then
			wait(0.1)	
			character:WaitForChild("Head"):WaitForChild("Rank"):Destroy()	
		end	
					 
		if not character:WaitForChild("Head"):FindFirstChild("Rank") then				
			local b = game.ReplicatedStorage:WaitForChild("Ranks"):WaitForChild("CANNOTCACULATE"):Clone()
			b.Name = "Rank"
			b.Parent = character:WaitForChild("Head")
         game:GetService("StarterGui").Ranks.CANNOTCACULATE.ResetPlayerGuiOnSpawn = false
		   end

       end
  end)

end)
end)

Becuase you made the folder parented in workspace you set the billboardgui inside the folder parented to workspace you can only adornee a billboardgui or surfacegui

Like this:

local Ranks = game.ReplicatedStorage:FindFirstChild("Ranks")
local Rank = Ranks:FindFirstChild("Rank")
local RankClone = Rank:Clone()
RankClone.Parent = workspace
RankClone.Adornee = character.Head

-- //Example
if player.["WhatEverTheThingCalled"].["your value"].Value == [yournumber] then
    RankClone.[YourLabel].Text = "YOurText"
end

I forgot the clone part in the code

what would I put in replacement for the yournumber section

would it be the rank number or currency value number

To check if their value is that then it will change their rank that is an example