diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 0f8963012f..1f2e7b2190 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -342,25 +342,21 @@
. = TRUE
if(opened)
if(istype(W, cutting_tool))
+ var/welder = FALSE
if(istype(W, /obj/item/weldingtool))
if(!W.tool_start_check(user, amount=0))
return
-
- to_chat(user, "You begin cutting \the [src] apart...")
- if(W.use_tool(src, user, 40, volume=50))
- if(eigen_teleport)
- to_chat(user, "The unstable nature of \the [src] makes it impossible to cut!")
- return
- if(!opened)
- return
- user.visible_message("[user] slices apart \the [src].",
- "You cut \the [src] apart with \the [W].",
- "You hear welding.")
- deconstruct(TRUE)
- return
- else // for example cardboard box is cut with wirecutters
- user.visible_message("[user] cut apart \the [src].", \
- "You cut \the [src] apart with \the [W].")
+ to_chat(user, "You begin [welder ? "slicing" : "deconstructing"] \the [src] apart...")
+ welder = TRUE
+ if(W.use_tool(src, user, 40, volume=50))
+ if(eigen_teleport)
+ to_chat(user, "The unstable nature of \the [src] makes it impossible to [welder ? "slice" : "deconstruct"]!")
+ return
+ if(!opened)
+ return
+ user.visible_message("[user] [welder ? "slice" : "deconstruct"]s apart \the [src].",
+ "You [welder ? "slice" : "deconstruct"] \the [src] apart with \the [W].",
+ "You hear [welder ? "welding" : "rustling of screws and metal"].")
deconstruct(TRUE)
return
if(user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index c9a2ad54ff..6548ec737c 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -4,6 +4,8 @@
icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
+ material_drop = /obj/item/stack/sheet/mineral/wood
+ cutting_tool = /obj/item/screwdriver
/obj/structure/closet/acloset
name = "strange closet"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
index f0c1495281..bfcb00f285 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
@@ -4,6 +4,8 @@
icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
+ material_drop = /obj/item/stack/sheet/mineral/wood
+ cutting_tool = /obj/item/screwdriver
/obj/structure/closet/secure_closet/bar/PopulateContents()
..()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 9ee34b084a..aecb037bb2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -44,6 +44,8 @@
icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
+ material_drop = /obj/item/stack/sheet/mineral/wood
+ cutting_tool = /obj/item/screwdriver
/obj/structure/closet/secure_closet/personal/cabinet/PopulateContents()
new /obj/item/storage/backpack/satchel/leather/withwallet( src )
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index a50ee6988c..835be8d2fc 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -161,12 +161,16 @@
..()
new /obj/item/clothing/accessory/armband/medblue(src)
new /obj/item/encryptionkey/headset_med(src)
+
/obj/structure/closet/secure_closet/detective
name = "\improper detective's cabinet"
req_access = list(ACCESS_FORENSICS_LOCKERS)
icon_state = "cabinet"
resistance_flags = FLAMMABLE
max_integrity = 70
+ material_drop = /obj/item/stack/sheet/mineral/wood
+ cutting_tool = /obj/item/screwdriver
+
/obj/structure/closet/secure_closet/detective/PopulateContents()
..()
new /obj/item/clothing/under/rank/det(src)