Sort of like an undroppable gear.
You can take the Handle out of the hat, and then weld it on to your head I guess.
This is a lazy method, it just return the hat to character, so its placed back. (place the script in the character)
script.Parent.ChildRemoved:connect(function(child) -- triggered when a child is removed if child:IsA("Hat") then -- check if it's a hat wait() -- a little wait to prevent errors child.Parent = script.Parent -- return it to the character end end)
The problem is that the hat still jumps forward and other person can catch it. I tried to weld it to the head, but still the same.
Just change your heads mesh to the specified id that you want =D hope this helped!