whenever the character ranks up, the previous rank's billboardgui is supposed to dissapear.
but it doesn't
when someone ranks up, it actually ranks up but leaves the "novice" tag in the background even after you rank up AGAIN.
what am i doing wrong?
here's my script:
game.Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(char) local leaderstats = player:WaitForChild("leaderstats") local CheckValue = leaderstats:WaitForChild(script:WaitForChild("leaderstats").Value)
if CheckValue.Value >= 0 and CheckValue.Value < 5 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Novice"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 5 and CheckValue.Value < 10 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Apprentice"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 10 and CheckValue.Value < 15 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Initiate"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 15 and CheckValue.Value < 20 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Journeyman"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 20 and CheckValue.Value < 25 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Adept"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 25 and CheckValue.Value < 30 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Expert"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 30 and CheckValue.Value < 40 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Master"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 40 and CheckValue.Value < 50 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Grandmaster"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 50 and CheckValue.Value < 60 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Legendary"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
end
CheckValue.Changed:Connect(function() if CheckValue.Value >= 0 and CheckValue.Value < 5 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Novice"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 5 and CheckValue.Value < 10 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Apprentice"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 10 and CheckValue.Value < 15 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Initiate"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 15 and CheckValue.Value < 20 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Journeyman"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 20 and CheckValue.Value < 25 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Adept"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 25 and CheckValue.Value < 30 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Expert"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 30 and CheckValue.Value < 40 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Master"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 40 and CheckValue.Value < 50 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Grandmaster"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
elseif CheckValue.Value >= 50 and CheckValue.Value < 60 then
if char:WaitForChild("Head"):FindFirstChild("Rank") then
wait(3)
char:WaitForChild("Head"):WaitForChild("Rank"):Destroy()
end
if not char:WaitForChild("Head"):FindFirstChild("Rank") then
local b = game.ServerStorage:WaitForChild("Ranks"):WaitForChild("Legendary"):Clone()
b.Name = "Rank"
b.Parent = char:WaitForChild("Head")
end
end
end)
end)
end)

1 comment
please keep all the code within the code tags. this post is hard to read in its current state