diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 5d8372607d8..c75ca58140e 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -104,13 +104,18 @@
/obj/item/weapon/disk/data
name = "Cloning Data Disk"
icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk.
- var/datum/dna2/record/buf=null
+ var/datum/dna2/record/buf = null
var/read_only = 0 //Well,it's still a floppy disk
/obj/item/weapon/disk/data/proc/Initialize()
buf = new
buf.dna=new
+/obj/item/weapon/disk/data/Destroy()
+ if(buf)
+ QDEL_NULL(buf)
+ return ..()
+
/obj/item/weapon/disk/data/demo
name = "data disk - 'God Emperor of Mankind'"
read_only = 1
diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm
index 434fec620b8..e0a6e59da14 100644
--- a/code/game/objects/effects/anomalies.dm
+++ b/code/game/objects/effects/anomalies.dm
@@ -19,8 +19,10 @@
var/new_frequency = sanitize_frequency(rand(PUBLIC_LOW_FREQ, PUBLIC_HIGH_FREQ))
aSignal.set_frequency(new_frequency)
poi_list |= src
-
+
/obj/effect/anomaly/Destroy()
+ if(aSignal)
+ QDEL_NULL(aSignal)
poi_list.Remove(src)
return ..()
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 8ed8d045de4..0a9f49cd2d0 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -6,6 +6,11 @@
anchored = 1
density = 0
var/health = 15
+ var/master_commander = null
+
+/obj/structure/spider/Destroy()
+ master_commander = null
+ return ..()
//similar to weeds, but only barfed out by nurses manually
/obj/structure/spider/ex_act(severity)
@@ -78,7 +83,6 @@
var/amount_grown = 0
var/player_spiders = 0
var/faction = list()
- var/master_commander = null
/obj/structure/spider/eggcluster/New()
pixel_x = rand(3,-3)
@@ -110,7 +114,6 @@
var/travelling_in_vent = 0
var/player_spiders = 0
var/faction = list()
- var/master_commander = null
var/selecting_player = 0
/obj/structure/spider/spiderling/New()
@@ -118,6 +121,10 @@
pixel_y = rand(6,-6)
processing_objects.Add(src)
+/obj/structure/spider/spiderling/Destroy()
+ entry_vent = null
+ return ..()
+
/obj/structure/spider/spiderling/Bump(atom/user)
if(istype(user, /obj/structure/table))
src.loc = user.loc
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 429ef47970a..c4fedf48255 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -271,7 +271,7 @@ var/global/list/default_medbay_channels = list(
/mob/living/automatedannouncer/Destroy()
if(lifetime_timer)
deltimer(lifetime_timer)
- ..()
+ return ..()
/mob/living/automatedannouncer/proc/autocleanup()
log_runtime(EXCEPTION("An announcer somehow managed to outlive the radio! Deleting!"), src, list("Message: '[message]'"))
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index edf3c737787..86ed5f84974 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -5,7 +5,7 @@
icon_state = "dnainjector"
item_state = "dnainjector"
var/block = 0
- var/datum/dna2/record/buf=null
+ var/datum/dna2/record/buf = null
throw_speed = 3
throw_range = 5
w_class = 1
@@ -26,6 +26,11 @@
buf.dna.ResetSE()
SetValue(value)
+/obj/item/weapon/dnainjector/Destroy()
+ if(buf)
+ QDEL_NULL(buf)
+ return ..()
+
/obj/item/weapon/dnainjector/proc/GetRealBlock(var/selblock)
if(selblock==0)
return block
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index d6148b429e0..3a079e99da4 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -1218,28 +1218,19 @@
var/monkey_type = "Monkey"
list_reagents = list("nutriment" = 2)
-/obj/item/weapon/reagent_containers/food/snacks/monkeycube/afterattack(obj/O, mob/user, proximity)
- if(!proximity)
- return
- if(istype(O, /obj/structure/sink))
- to_chat(user, "You place [src] under a stream of water...")
- user.drop_item()
- forceMove(get_turf(O))
- return Expand()
- ..()
-
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/water_act(volume, temperature)
if(volume >= 5)
return Expand()
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wash(mob/user, atom/source)
- if(do_after(user, 40, target = source))
- return 1
+ user.drop_item()
+ forceMove(get_turf(source))
+ return 1
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Expand()
if(isnull(gcDestroyed))
visible_message("[src] expands!")
- new/mob/living/carbon/human(get_turf(src),monkey_type)
+ new/mob/living/carbon/human(get_turf(src), monkey_type)
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index aec9d2d0c95..7c951cebbc9 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -96,6 +96,7 @@
if(collar)
collar.forceMove(loc)
collar = null
+ master_commander = null
simple_animal_list -= src
return ..()
@@ -303,7 +304,7 @@
/mob/living/simple_animal/proc/attacked_by(obj/item/I, mob/living/user) // Handled in _onclick/click.dm
return
-
+
/mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
if(!Proj)
return
@@ -662,15 +663,15 @@
. = ..()
/mob/living/simple_animal/can_equip(obj/item/I, slot, disable_warning = 0)
- // . = ..() // Do not call parent. We do not want animals using their hand slots.
- switch(slot)
- if(slot_collar)
- if(collar)
- return 0
- if(!can_collar)
- return 0
- if(!istype(I, /obj/item/clothing/accessory/petcollar))
- return 0
+ // . = ..() // Do not call parent. We do not want animals using their hand slots.
+ switch(slot)
+ if(slot_collar)
+ if(collar)
+ return 0
+ if(!can_collar)
+ return 0
+ if(!istype(I, /obj/item/clothing/accessory/petcollar))
+ return 0
return 1
/mob/living/simple_animal/equip_to_slot(obj/item/W, slot)
@@ -692,13 +693,13 @@
name = collar.tagname
real_name = collar.tagname
regenerate_icons()
-
-/mob/living/simple_animal/unEquip(obj/item/I, force)
- . = ..()
- if(!. || !I)
- return
-
- if(I == collar)
+
+/mob/living/simple_animal/unEquip(obj/item/I, force)
+ . = ..()
+ if(!. || !I)
+ return
+
+ if(I == collar)
collar = null
regenerate_icons()
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index dd3856afcc4..a3f038a507a 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -500,7 +500,8 @@
var/hasmob = 0 //If it contains a mob
Destroy()
- qdel(gas)
+ if(gas)
+ QDEL_NULL(gas)
active = 0
return ..()