Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

How do I check to see if the parent of an object is nil?

Asked by
P100D 590 Moderation Voter
10 years ago

I forgot how to do it. I need my script to not act if the parent of the hit object is nil, because otherwise it returns an error.

Here's my script.

01function onTouched(hit)
02    if hit.Parent.Name == "Monorail" then
03        local explosion = Instance.new("Explosion")
04        explosion.Parent = hit
05        explosion.Position = hit.Position
06        wait(0.5)
07        hit:remove()
08        wait(5)
09        hit.Parent:remove()
10    end
11end
12 
13script.Parent.Touched:connect(onTouched)

1 answer

Log in to vote
1
Answered by
Mystdar 352 Moderation Voter
10 years ago

I don't think the lack of parent is the problem, it is because hit is removed, so it no longer has a parent, because it no longer exists, because you removed it. To fix this make a variable of the parent before hit is removed.

01function onTouched(hit)
02    if hit.Parent.Name == "Monorail" then
03        local explosion = Instance.new("Explosion")
04        explosion.Parent = hit
05        explosion.Position = hit.Position
06        wait(0.5)
07        local parent = hit.Parent -- This should do it
08        hit:remove()
09        wait(5)
10        parent:remove()
11    end
12end
13 
14script.Parent.Touched:connect(onTouched)
0
For bullets, `hit.Parent` *can* be `nil`, so it is good for your health to check for `hit.Parent` before using it in an onTouched script.  BlueTaslem 18071 — 10y
0
Also, USE A LOCAL VARIABLE! Or else this script won't be very useful! BlueTaslem 18071 — 10y
Ad

Answer this question