What I would do personally with this, is to have a function to actually create the nametag and use the character, e.g function createTag(character), and then proceed as you usually would. Then once they’ve entered the game, have the over head gui in a CharacterAdded function, an example would be below:
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
createTag(character)
end)
if player.Character then -- sometimes player.CharacterAdded doesn't load when a player first joins
createTag(player.Character)
end
end)