Alright laddies, I've got a riddle for ya to solve ya hear? It goes a bit like this mateys...
I have this HUGE script that gives a doge hat the the player when touched:
local RS = game:GetService("ReplicatedStorage")
local DogeHeadsFolder = RS:FindFirstChild("DogeHeads")
local h = Instance.new("Accessory")
local p = Instance.new("Part")
local DogeMesh =DogeHeadsFolder:FindFirstChild("NormalDoge") -- Change to mesh needed
h.Name = "NormalDoge"
p.Parent = h
p.Position = Player.Character:FindFirstChild("Head").Position
p.Name = "Handle"
p.formFactor = 0
p.Size = Vector3.new(2, 1.5, 2)
p.BottomSurface = 0
p.TopSurface = 0
p.Locked = true
DogeMesh:Clone().Parent = p
h.Parent = Player.Character
h.AttachmentForward = Vector3.new(-0, -0, -1)
h.AttachmentPos = Vector3.new(0, 0.35, 0.3)
h.AttachmentRight = Vector3.new(1, 0, -0)
h.AttachmentUp = Vector3.new(0, 1, 0)
Now if you test this, it will clone the mesh and clone it to the head, BUT it wont weld to it.
EXPLANATION.. THANKS

2 comments
this is in a server script yus
think you might need to use this https://www.robloxdev.com/api-reference/function/Humanoid/AddAccessory