local L=script.Parent L.PrimaryPart=L:WaitForChild("\072\101\097\100")function weldParts(L,A)local g=Instance.new("\087\101\108\100")g.Part0=L g.Part1=A g.C0=CFrame.new()g.C1=A.CFrame:toObjectSpace(L.CFrame)g.Parent=L end L.Head.Touched:connect(function(A)if A.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")and not A.Parent:FindFirstChild("\069\097\114\108\'\115 \067\111\114\111\110\101\116")then else return end local g=A.Parent:FindFirstChild("\072\101\097\100")local E=L:Clone();(E:FindFirstChild("\072\097\116\083\099\114\105\112\116")):Destroy()E:SetPrimaryPartCFrame(g.CFrame)E.PrimaryPart:Destroy()for L,A in pairs(E:GetChildren())do if A:IsA("\066\097\115\101\080\097\114\116")then weldParts(g,A)A.CanCollide=false A.Anchored=false end end E.Parent=A.Parent end)
-- SirNoobly

local hat = script.Parent
hat.PrimaryPart = hat:WaitForChild("Head") -- Make sure the Head is the same size as a normal Head.

function weldParts(part0, part1) -- welds the 2 parts based on their position
	local newWeld = Instance.new("Weld")
	newWeld.Part0 = part0
	newWeld.Part1 = part1
	newWeld.C0 = CFrame.new()
	newWeld.C1 = part1.CFrame:toObjectSpace(part0.CFrame)
	newWeld.Parent = part0
end

hat.Head.Touched:connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") and not hit.Parent:FindFirstChild("Earl's Coronet") then
	else
		return
	end

	local head = hit.Parent:FindFirstChild("Head")
	local newHat = hat:Clone()
	newHat:FindFirstChild("HatScript"):Destroy()
	newHat:SetPrimaryPartCFrame(head.CFrame) -- puts the head into the head
	newHat.PrimaryPart:Destroy()
	for _, part in pairs(newHat:GetChildren()) do
		if part:IsA("BasePart") then
			weldParts(head, part)
			part.CanCollide = false
			part.Anchored = false
		end
	end
	newHat.Parent = hit.Parent
end)
