I'm trying to make it so when you click on a GUI thing a hat comes on. When I do this the pin badge on the hat goes miles away from the head where the main hat is. I will show you my script and an image to help you picture this.
game.ReplicatedStorage.hat.OnServerEvent:Connect(function(player,name) local d = game.Workspace[player.Name]:GetChildren() -- start of hat remover for i=1, #d do if (d[i].className == "Accessory") then d[i]:remove() end end local g = game.ServerStorage.Hats[name].Face:Clone() g.Parent = game.Workspace[player.Name].Head local C = g:GetChildren() for i=1, #C do if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "MeshPart" then local W = Instance.new("Weld") W.Part0 = g.Middle W.Part1 = C[i] local CJ = CFrame.new(g.Middle.Position) local C0 = g.Middle.CFrame:inverse()*CJ local C1 = C[i].CFrame:inverse()*CJ W.C0 = C0 W.C1 = C1 W.Parent = g.Middle g.Middle.Transparency = 1 C[i].Parent = g end local Y = Instance.new("Weld") Y.Part0 = game.Workspace[player.Name].Head Y.Part1 = g.Middle Y.C0 = CFrame.new(0, 0, 0) Y.Parent = Y.Part0 local h = g:GetChildren() for i = 1, # h do h[i].Anchored = false h[i].CanCollide = false end end end)