for i, item in pairs(Part.Parent:GetChildren()) do
if item.className == "UnionOperation" then
item.Anchored = false
task.wait(5)
local Clone = Part.Parent.Script.Trapdoor
Clone.Parent = Part.Parent.Parent
Part.Parent:Destroy()
end
end
Could be because you are yielding the script, so it only unanchores 1 union every 5 seconds. Also you are literally deleting the parent of those unions after 5 seconds so there are no unions to loop through!