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

How do I make this function only delete bricks that touched it?

I have a function which is suppose to delete a specific named brick if it touches the brick which contains the script, But it deletes all bricks containing that name in the workspace and I just need the function to delete the one brick that touched it. Please help!

Here's the script:

function onTouched() 
c = game.Workspace:GetChildren() 
for i = 1, #c do 
if c[i].Name == "BuildingBrick" then c[i].Parent = nil end -- How can I make it so it will only delete the brick that touched it and not all bricks named "BuildingBrick"
end 
end 
script.Parent.Touched:connect(onTouched) 

1 answer

✓ Accepted answer

2 things:

Setting parent to nil is the equivelant of the Remove method from alot earlier and it's very unstable. Use :Destroy() for removing things instead.

function onTouched(name) <-- The ''name'' variable for Touched functions is a reference to the part that touched the brick and thus triggered the function. You can also use this to make the code more compact.

function onTouched(hit) 
if hit.Name == 'BuildingBrick' then
hit:Destroy()
end
end
script.Parent.Touched:connect(onTouched) 

1 comment

0

Thanks!

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