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)
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)