local world = require("world") world:filteredSystem("decay", { decayAfterSeconds = T.number }, function(e, dt, system) e.decayAfterSeconds = e.decayAfterSeconds - dt if e.decayAfterSeconds <= 0 then system.world:removeEntity(e) end end) LiveForNFrames = world:filteredSystem("liveForNFrames", { liveForNFrames = T.number }, function(e, _, system) e.liveForNFrames = e.liveForNFrames - 1 if e.liveForNFrames <= 0 then system.world:removeEntity(e) end end) LiveForNFrames.deferToEnd = true