There is no errors in the output but when I type in the name and click set it doesn't change above their head. If you need more information like the other parts feel free to ask.
local guibase = script.Parent:Clone()
--Detect when a player is added.
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:connect(function()
repeat wait() until player.Character
local char = player.Character
--Insert gui into player.
local gui = guibase:Clone()
gui.Parent = player.PlayerGui
--Setup name.
local mod = Instance.new("Model")
local hum = Instance.new("Humanoid")
local head = Instance.new("Part")
--Insert humanoid into model.
hum.Parent = mod
--Set initial name to be blank.
mod.Name = ""
--Set head properties.
head.Size = Vector3.new(1,1,1)
head.CanCollide = false
head.Transparency = 0.99
head.Name = "Head"
head.Parent = mod
--Finish model setup.
mod.PrimaryPart = head
mod.Parent = char
mod:SetPrimaryPartCFrame(char.Head.CFrame+Vector3.new(0,0.5,0))
--Weld part to character.
local w = Instance.new("Weld")
w.Name = ("Weld")
w.Part0,w.Part1 = head,char.Head
w.C0 = head.CFrame:inverse()
w.C1 = char.Head.CFrame:inverse()
w.Parent = head
--Add server side handling to model.
local svh = gui.ServerHandler
svh.Parent = mod
svh.ServerHandler.Disabled = false
gui.HandlerPointer.Value = svh
--Enable local handler to finish setup.
gui.LocalHandler.Disabled = false
end)
end)
