I have a script in my game (in ServerScriptStorage) that gives workers their name and rank above their head.
The problem is that if the player's rank had been changed while the game was running, the rank will only update on new servers.
Here is the script:
local gui = game:GetService("ServerStorage"):WaitForChild("RankGUI")
local groupId = 3603734
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local clone = gui:Clone()
clone.TextLabel.Text = (""..player.Name.." | "..player:GetRoleInGroup(groupId).. "")
clone.Parent = game.Workspace:WaitForChild(player.Name).Head
end)
end)
If you have any questions, just comment below!
Thanks!

2 comments
Oh no it didnt include the top two lines. Just copy this and put it before everything else function onTouched(player) local playClone = game.ServerStorage["RankGUI"]:Clone() local gui = game:GetService("ServerStorage"):WaitForChild("RankGUI") local groupId = 3603734
So when a player touches the spawn plate, they will get the rank? I tried that right before I asked this question Lol.