I made a hat that instead of having to touch the hat you have to click it, so i changed the script from an onTouch to an onClicked. But whenever i click on the hat i get the error "Bad Cast". Can anyone help me resolve this?
function onClicked(player)
if player.Character:FindFirstChild("Humanoid") ~= nil and player.Character:FindFirstChild("Helmet") == nil then
local g = script.Parent.Parent.Helm:clone()
g.Parent = player.Character
local C = g:GetChildren()
for i=1, #C do
if C[i].className == "Part" or "Union" 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
end
local Y = Instance.new("Weld")
Y.Part0 = player.Character.Head
Y.Part1 = g.Middle
Y.C0 = CFrame.new(0, 0, 0)
Y.Parent = Y.Part0
end
local h = g:GetChildren()
for i = 1, # h do
h[i].Anchored = false
h[i].CanCollide = false
end
end
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)

1 comment
Check out the response on my answer.