Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Why doesnt this work?



function onTouched(hit) -- function
local torso = hit:FindFirstChild('Torso')
local rightleg = hit:FindFirstChild('RightLeg')
local rightArm = hit:FindFirstChild('RightArm')
local leftLeg = hit:FindFirstChild('LeftLeg')
local leftArm = hit:FindFirstChild('LeftArm')
local headfoil = hit:FindFirstChild('Head')
torso.Transparency = 1
rightArm.Transparency = 1
rightleg.Transparency = 1
leftArm.Transparency = 1
leftLeg.Transparency = 1
headfoil.Transparency = 1
hit.Transparency = 1
end 

script.Parent.Touched:connect (onTouched) --listener

1 answer

✓ Accepted answer

The touched event returns the part that touched the object in question. So if your leg touches a part, for example, your leg will be what the listener returns. If that's the case, when you touch a part and your function is run, your code is looking for the first child of the limb, not the player. To fix this you would change the code to

local torso = hit.Parent:FindFirstChild('Torso')
local rightleg = hit.Parent:FindFirstChild('RightLeg')
local rightArm = hit.Parent:FindFirstChild('RightArm')
local leftLeg = hit.Parent:FindFirstChild('LeftLeg')
local leftArm = hit.Parent:FindFirstChild('LeftArm')
local headfoil = hit.Parent:FindFirstChild('Head')

Also, the space between "connect" and the function in your listener seems unnecessary, but that could just be styling. Hope this helps!

This discussion is preserved as it was. New answers, comments, and votes are closed.