diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm
deleted file mode 100644
index ed0ba33b66..0000000000
--- a/code/modules/detectivework/footprints_and_rag.dm
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/mob
- var/bloody_hands = 0
- var/bloody_feet = 0
- var/last_bloodtype = ""//used to track the last bloodtype to have graced this filthy spaceman; makes for better performing footprint shenanigans
- var/last_blood_DNA = ""//same as last one
-
-/obj/item/clothing/gloves
- var/transfer_blood = 0
-
-/obj/item/clothing/shoes
- var/transfer_blood = 0
-
-
-/obj/item/reagent_containers/glass/rag
- name = "damp rag"
- desc = "For cleaning up messes, you suppose."
- w_class = WEIGHT_CLASS_TINY
- icon = 'icons/obj/toy.dmi'
- icon_state = "rag"
- item_flags = NOBLUDGEON
- container_type = OPENCONTAINER
- amount_per_transfer_from_this = 5
- possible_transfer_amounts = list()
- volume = 5
- spillable = FALSE
-
-/obj/item/reagent_containers/glass/rag/suicide_act(mob/user)
- user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
- return (OXYLOSS)
-
-/obj/item/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity)
- . = ..()
- if(!proximity)
- return
- if(iscarbon(A) && A.reagents && reagents.total_volume)
- var/mob/living/carbon/C = A
- var/reagentlist = pretty_string_from_reagent_list(reagents)
- var/log_object = "a damp rag containing [reagentlist]"
- if(user.a_intent == INTENT_HARM && !C.is_mouth_covered())
- reagents.reaction(C, INGEST)
- reagents.trans_to(C, reagents.total_volume)
- C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and muffled cries of surprise.")
- log_combat(user, C, "smothered", log_object)
- else
- reagents.reaction(C, TOUCH)
- reagents.clear_reagents()
- C.visible_message("[user] has touched \the [C] with \the [src].")
- log_combat(user, C, "touched", log_object)
-
- else if(istype(A) && src in user)
- user.visible_message("[user] starts to wipe down [A] with [src]!", "You start to wipe down [A] with [src]...")
- if(do_after(user,30, target = A))
- user.visible_message("[user] finishes wiping off [A]!", "You finish wiping off [A].")
- A.clean_blood()
- A.wash_cream()
- return