local players = game:GetService("Players")
local me = players.colbert2677
local desc = players:GetHumanoidDescriptionFromUserId(players:GetUserIdFromNameAsync("ch0c0lAte98"))
me:LoadCharacterWithHumanoidDescription(desc)
Oh, I see. I guess it was my code that makes it glitched. Thanks for your help!
I had this same issue, where the Name GUI would not appear over the personās head if they had a custom head, like the Woman Head for instance. If anyone has a similar issue, I fixed this by using the CharacterAppearanceLoaded method instead of the CharacterAdded method.
Or you can use humanoidrootpart like a normal person???
I used to have this issue.
Instead of getting the character like this:
player.Character
or player.CharacterAdded:Connect(function(character)
Try getting the character from workspace like this:
game.Workspace[player.Name]
Thatās horrible advice. This runs the risk of indexing the wrong instance if a player is named the same as an instance in the current session and can introduce a number of unexpected errors. Never get the player by searching them with a name in the Workspace. You already get a reference to the character instance through the playerās Character property or passed as an argument to CharacterAdded.
I remember having the same problem and I fixed it like this:
function CharacterAdded(Character)
task.wait(1)
--Insert the code that puts the GUI in the head here
end
game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(CharacterAdded)
if Player.Character then CharacterAdded(Player.Character) end
end
Try this and let me know if it works
This is an old topic but I have a few things to add:
First thing, donāt know why but I ran into this issue as well. Did what you said to do and debugged turns out for whatever reason, the first head that is added to the character is destroyed, then a second head is added then the first head is disposed of which caused my billboard guis to be adorned to a destroyed instance:
^ first print is the overheadās parent (irrelevant), second is inside of the childadded connection later in the post, third is the old headās class name but again not relevant.
We have a custom respawn handler so CharacterAutoLoads is false but unsure as to whether or not this is a contributor to the issue. However disabling workspace.MeshPartHeadsAndAccessories actually seems to cause it not to happen so donāt really know. Tried printing the first headās class name and itās still a mesh , so two mesh parts are still made for whatever reason but the first one is discarded.
Anyway, my fix to this was to implement the following (the character is actually being destroyed by custom respawn handler so it isnāt a memory leak, so if youāre implementing this solution ensure you disconnect your connections when a new char is added), to re-adorn the overhead to the new head (sorry for indenting, copied and pasted it here) which caused the issue to subside.
character.ChildAdded:Connect(function(child)
if child.Name == 'Head' then
newOverhead.Adornee = child
end
end)
But on a sidenote doing this for whatever reason causes the overhead to update super weirdly and sporadically so I donāt know but it seems either Iām doing something wrong, or billboards donāt like mesh parts so Iāll be disabling the mesh part heads and accessories:
For reference this is how it looks when adorned to the head with meshpart heads and accessories disabled:
Difference probably isnāt super noticeable given how low quality gyazo records gifs but I think there is still is a difference. Anyway, Iām going off-topic and I donāt know how to conclude things so Iāll end it here