When the part is touched, the block attachs to a piece of the body that hit it, so why does it only attach to the body!




function onTouched(part) 
if part.Name=="Catch" or "Right Leg" then
local piece = Instance.new("Part")
piece.Parent = part.Parent
piece.Transparency = script.Parent.Transparency
piece.Shape = script.Parent.Shape
piece.Size = script.Parent.Size
piece.BrickColor = script.Parent.BrickColor
piece.Position = part.Position
piece.Name = "Catch"
piece.CanCollide = false
if math.random(7) == 1 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Right Leg"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 2 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Left Leg"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 3 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Left Arm"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 4 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Right Arm"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 5 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Head"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 6 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Torso"]
weld.Part1 = piece
script.Parent:Remove()
else if math.random(7) == 7 then
local weld = Instance.new("Weld")
weld.Parent = part
weld.Part0 = part.Parent["Catch"]
weld.Part1 = piece
script.Parent:Remove()
end
end
end 
end
end
end
end
end
end

script.Parent.Touched:connect(onTouched)

Please Help!!! Thank You!!!