diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 20b59b678e..918cf5886c 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -26,6 +26,7 @@ would spawn and follow the beaker, even if it is carried or thrown. var/atom/holder var/effect_type var/total_effects = 0 + var/autocleanup = FALSE //will delete itself after use /datum/effect_system/Destroy() holder = null @@ -69,3 +70,5 @@ would spawn and follow the beaker, even if it is carried or thrown. /datum/effect_system/proc/decrement_total_effect() total_effects-- + if(autocleanup && total_effects <= 0) + qdel(src) diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index b552ee0808..695c835a89 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -12,8 +12,8 @@ var/datum/effect_system/spark_spread/sparks = new sparks.set_up(n, c, source) + sparks.autocleanup = TRUE sparks.start() - qdel(sparks) /obj/effect/particle_effect/sparks