diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm
index ebb97ab7ba7..e47bcc572aa 100644
--- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm
+++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm
@@ -46,14 +46,22 @@
density = TRUE
/obj/structure/cursed_money/New()
- spawn(600)
- if(src)
- visible_message("[src] falls in on itself, canvas rotting away and contents vanishing.")
- qdel(src)
+ . = ..()
+ addtimer(src, "collapse", 600)
+
+/obj/structure/cursed_money/proc/collapse()
+ visible_message("[src] falls in on itself, \
+ canvas rotting away and contents vanishing.")
+ qdel(src)
/obj/structure/cursed_money/attack_hand(mob/living/user)
- user.visible_message("You open the bag...!\nAnd see a bag full of dice. Confused, you take one... and the bag vanishes.")
- var/obj/item/weapon/dice/d20/fate/one_use/critical_fail = new(get_turf(user))
+ user.visible_message("[user] opens the bag and \
+ and removes a die. The bag then vanishes.",
+ "You open the bag...!\n\
+ And see a bag full of dice. Confused, \
+ you take one... and the bag vanishes.")
+ var/turf/T = get_turf(user)
+ var/obj/item/weapon/dice/d20/fate/one_use/critical_fail = new(T)
user.put_in_hands(critical_fail)
qdel(src)
diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm
index f5b142dc4ed..9fc15356a9c 100644
--- a/code/modules/shuttle/ferry.dm
+++ b/code/modules/shuttle/ferry.dm
@@ -20,5 +20,7 @@
cooldown = 1
usr << "Your request has been recieved by Centcom."
admins << "FERRY: [key_name_admin(usr)] (?) (FLW) (Move Ferry) is requesting to move the transport ferry to Centcom."
- spawn(600) //One minute cooldown
- cooldown = 0
\ No newline at end of file
+ addtimer(src, "reset_cooldown", 600)
+
+/obj/machinery/computer/shuttle/ferry/request/proc/reset_cooldown()
+ cooldown = FALSE
diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm
index 647c6a5d7f7..f9afdaf0144 100644
--- a/code/modules/spells/spell_types/knock.dm
+++ b/code/modules/spells/spell_types/knock.dm
@@ -16,13 +16,16 @@
user << sound("sound/magic/Knock.ogg")
for(var/turf/T in targets)
for(var/obj/machinery/door/door in T.contents)
- spawn(1)
- if(istype(door,/obj/machinery/door/airlock))
- door:locked = 0
- door.open()
+ addtimer(src, "open_door", 1, FALSE, door)
for(var/obj/structure/closet/C in T.contents)
- spawn(1)
- C.locked = 0
- C.open()
+ addtimer(src, "open_closet", 1, FALSE, C)
- return
\ No newline at end of file
+/obj/effect/proc_holder/spell/aoe_turf/knock/proc/open_door(var/obj/machinery/door/door)
+ if(istype(door, /obj/machinery/door/airlock))
+ var/obj/machinery/door/airlock/A = door
+ A.locked = FALSE
+ door.open()
+
+/obj/effect/proc_holder/spell/aoe_turf/knock/proc/open_closet(var/obj/structure/closet/C)
+ C.locked = FALSE
+ C.open()