diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
index 33f1a307cb..481c4d46b5 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
@@ -14,8 +14,7 @@
if(T.density)//Don't want them shooting nets through walls. It's kind of cheesy.
to_chat(H, "You may not use an energy net through solid obstacles!")
return
- spawn(0)
- H.Beam(C,"n_beam",time=15)
+ H.Beam(C,"n_beam",time=15)
H.say("Get over here!")
var/obj/structure/energy_net/E = new /obj/structure/energy_net(C.loc)
H.visible_message("[H] caught [C] with an energy net!","You caught [C] with an energy net!")
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index e2ebe14cfc..1a58538c8e 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -28,11 +28,9 @@
var/dirs = 0
-/obj/machinery/am_shielding/New(loc)
- ..(loc)
- spawn(10)
- controllerscan()
- return
+/obj/machinery/am_shielding/Initialize()
+ . = ..()
+ addtimer(CALLBACK(src, .proc/controllerscan), 10)
/obj/machinery/am_shielding/proc/controllerscan(priorscan = 0)
@@ -59,11 +57,9 @@
if(!control_unit)
if(!priorscan)
- spawn(20)
- controllerscan(1)//Last chance
+ addtimer(CALLBACK(src, .proc/controllerscan, 1), 20)
return
qdel(src)
- return
/obj/machinery/am_shielding/Destroy()
diff --git a/code/modules/procedural_mapping/mapGenerator.dm b/code/modules/procedural_mapping/mapGenerator.dm
index 0de4a45dcb..5653e80422 100644
--- a/code/modules/procedural_mapping/mapGenerator.dm
+++ b/code/modules/procedural_mapping/mapGenerator.dm
@@ -107,8 +107,7 @@
if(!modules || !modules.len)
return
for(var/datum/mapGeneratorModule/mod in modules)
- spawn(0)
- mod.generate()
+ INVOKE_ASYNC(mod, /datum/mapGeneratorModule.proc/generate)
//Requests the mapGeneratorModule(s) to (re)generate this one turf
@@ -119,8 +118,7 @@
if(!modules || !modules.len)
return
for(var/datum/mapGeneratorModule/mod in modules)
- spawn(0)
- mod.place(T)
+ INVOKE_ASYNC(mod, /datum/mapGeneratorModule.proc/place, T)
//Replaces all paths in the module list with actual module datums
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 8b889a7080..f69d4cc23f 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -175,8 +175,7 @@
else if(G.can_trigger_gun(user))
bonus_spread += 24 * G.weapon_weight
loop_counter++
- spawn(loop_counter)
- G.process_fire(target,user,1,params, null, bonus_spread)
+ addtimer(CALLBACK(G, /obj/item/weapon/gun.proc/process_fire, target, user, 1, params, null, bonus_spread), loop_counter)
process_fire(target,user,1,params, null, bonus_spread)
diff --git a/code/modules/spells/spell_types/area_teleport.dm b/code/modules/spells/spell_types/area_teleport.dm
index 3e34a54eb8..d9702cd0b7 100644
--- a/code/modules/spells/spell_types/area_teleport.dm
+++ b/code/modules/spells/spell_types/area_teleport.dm
@@ -14,9 +14,8 @@
revert_cast()
return
invocation(thearea,user)
- spawn(0)
- if(charge_type == "recharge" && recharge)
- start_recharge()
+ if(charge_type == "recharge" && recharge)
+ INVOKE_ASYNC(src, .proc/start_recharge)
cast(targets,thearea,user)
after_cast(targets)