Hello, everyone! I have added an overhead rank script along time ago to my game, and it worked perfectly. But, a few months ago, I noticed the rank didn't update on resetting or refreshing. Could someone please help? Thanks!
--DonutsIndeed
function Create(ClassName)
return function(Properties)
local Obj = Instance.new(ClassName)
for i, v in pairs(Properties) do
if type(i) == "number" then
v.Parent = Obj
else
Obj[i] = v
end
end
return Obj
end
end
function HandleCharacter(Player, Character)
local Custom = Character:WaitForChild("Head"):clone()
Custom.Name = "ParadiseOverhead"
Custom.Parent = Character
Custom.face:Destroy()
Character.Head.Transparency = 1
Create("Weld") {
Name = "CustomWeld",
Parent = Custom,
Part0 = Character.Head,
Part1 = Custom
}
Create("BillboardGui") {
Name = "Nametag",
Parent = Custom,
Size = UDim2.new(5, 0, 0.5, 0),
StudsOffset = Vector3.new(0, 2, 0),
Create("TextLabel") {
Name = "NameLabel",
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Position = UDim2.new(0, 0, -0.8, 0),
Font = "SourceSansBold",
Text = Character.Name,
TextColor3 = Color3.new(1, 1, 1),
TextScaled = true,
TextStrokeTransparency = 1,
},
Create("TextLabel") {
Name = "RankLabel",
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 0.92, 0),
Position = UDim2.new(0, 0, 0.2, 0),
TextTransparency = .1,
Font = "SourceSans",
FontSize = Enum.FontSize.Size12,
Text = Player:GetRoleInGroup(3538954),
TextColor3 = Color3.new(1, 1, 1),
TextScaled = true,
TextStrokeTransparency = 1
},
}
Custom.BrickColor = Character.Head.BrickColor
Character.Head.Changed:connect(function()
Character.Head.Transparency = 1
Custom.BrickColor = Character.Head.BrickColor
end)
Character.Head.Mesh.Changed:connect(function()
Custom:WaitForChild("Mesh").MeshId = Character.Head:WaitForChild("Mesh").MeshId
end)
end
local rainbow = function(callback)
local frequency = 0.1
local i = 0
while true do
wait()
local red = math.sin(frequency * i + 0) * 127 + 128
local green = math.sin(frequency * i + 2 * math.pi / 3) * 127 + 128
local blue = math.sin(frequency * i + 4 * math.pi / 3) * 127 + 128
callback(Color3.new(red / 255, green / 255, blue / 255))
i = i + 1
end
end
function HandlePlayer(Player)
if Player.Character then
HandleCharacter(Player, Player.Character)
end
Player.CharacterAdded:connect(function(Character)
HandleCharacter(Player, Character)
end)
if Player:GetRankInGroup(3538954) == 255 then
Player.CharacterAdded:connect(function(char)
local label = char:WaitForChild("ParadiseOverhead")
coroutine.resume(coroutine.create(rainbow), function(color)
label.Nametag.RankLabel.TextColor3 = Color3.new(color.r, color.g, color.b)
end)
end)
end
end
game.Players.PlayerAdded:connect(function(b)
HandlePlayer(b)
end)
for i, wv in pairs(game.Players:GetPlayers()) do
HandlePlayer(v)
end

3 comments
By rank updating do you mean that the GUI still shows, but not the correct rank, or the GUI doesn't show at all?
What a Error you've getting in Output?
You accidently put a w in for i, wv in pairs(game.Players:GetPlayers()) do