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)

The problem photo

11 comments

0

any errors in output?

0

No

0

Is it just one part with a mesh or is it multiple parts as a model?

0

Multiple parts as a model

0

I think I have a solution. I'll write it as an answer, you test it, tell me if it works.

0

Ok

0

Can't you use Humanoid:AddAccessory to add the hat? I can't tell what you're trying to achieve.

0

Im trying to put the hat on like it is on the workspace

0

Instead of using welds, have you considered using WeldConstraints? Those are much cleaner and easier to work with. Just set the hat's CFrame to the head's CFrame, and then create a WeldConstraint connecting the two parts together.

0

the problem is the bit that comes off has more than 1 part

0

The script that I made a while back was outdated.