diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 336e7aba3d4..03f3c32b940 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -142,6 +142,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
+ new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\
new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \
diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm
index 104b86bc061..c9ff698411d 100644
--- a/code/game/objects/structures/dresser.dm
+++ b/code/game/objects/structures/dresser.dm
@@ -6,6 +6,18 @@
density = 1
anchored = 1
+/obj/structure/dresser/attackby(obj/item/P, mob/user, params)
+ if(istype(P, /obj/item/weapon/wrench))
+ to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].")
+ playsound(src, P.usesound, 50, 1)
+ if(do_after(user, 20, target = src))
+ to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].")
+ anchored = !anchored
+
+/obj/structure/dresser/deconstruct(disassembled = TRUE)
+ new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10)
+ qdel(src)
+
/obj/structure/dresser/attack_hand(mob/user)
if(!Adjacent(user))//no tele-grooming
return