diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index 3032db0956..25d86db461 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -1256,6 +1256,20 @@
g_amt = 0
m_amt = 0
+/obj/item/stack/sheet/cloth
+ name = "cloth"
+ desc = "This roll of cloth is made from only the finest chemicals and bunny rabbits."
+ singular_name = "cloth roll"
+ icon_state = "sheet-cloth"
+ origin_tech = "materials=2"
+
+/obj/item/stack/sheet/leather
+ name = "leather"
+ desc = "The by-product of monkey farming."
+ singular_name = "leather piece"
+ icon_state = "sheet-leather"
+ origin_tech = "materials=2"
+
/obj/item/stack/sheet/metal
name = "metal"
diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm
index 8a76e49b8b..297f0e2647 100644
--- a/code/modules/mining/machine_stacking.dm
+++ b/code/modules/mining/machine_stacking.dm
@@ -42,6 +42,14 @@
dat += text("Uranium: [machine.ore_uranium] Release
")
if(machine.ore_diamond)
dat += text("Diamond: [machine.ore_diamond] Release
")
+ if(machine.ore_wood)
+ dat += text("Wood: [machine.ore_wood] Release
")
+ if(machine.ore_cardboard)
+ dat += text("Cardboard: [machine.ore_cardboard] Release
")
+ if(machine.ore_cloth)
+ dat += text("Cloth: [machine.ore_cloth] Release
")
+ if(machine.ore_leather)
+ dat += text("Leather: [machine.ore_leather] Release
")
if(machine.ore_clown)
dat += text("Bananium: [machine.ore_clown] Release
")
if(machine.ore_adamantine)
@@ -114,6 +122,30 @@
G.amount = machine.ore_plasteel
G.loc = machine.output.loc
machine.ore_plasteel = 0
+ if ("wood")
+ if (machine.ore_wood > 0)
+ var/obj/item/stack/sheet/wood/G = new /obj/item/stack/sheet/wood
+ G.amount = machine.ore_wood
+ G.loc = machine.output.loc
+ machine.ore_wood = 0
+ if ("cardboard")
+ if (machine.ore_cardboard > 0)
+ var/obj/item/stack/sheet/cardboard/G = new /obj/item/stack/sheet/cardboard
+ G.amount = machine.ore_cardboard
+ G.loc = machine.output.loc
+ machine.ore_cardboard = 0
+ if ("cloth")
+ if (machine.ore_cloth > 0)
+ var/obj/item/stack/sheet/cloth/G = new /obj/item/stack/sheet/cloth
+ G.amount = machine.ore_cloth
+ G.loc = machine.output.loc
+ machine.ore_cloth = 0
+ if ("leather")
+ if (machine.ore_leather > 0)
+ var/obj/item/stack/sheet/leather/G = new /obj/item/stack/sheet/leather
+ G.amount = machine.ore_diamond
+ G.loc = machine.output.loc
+ machine.ore_leather = 0
if ("clown")
if (machine.ore_clown > 0)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown
@@ -160,6 +192,10 @@
var/ore_glass = 0;
var/ore_rglass = 0;
var/ore_plasteel = 0;
+ var/ore_wood = 0
+ var/ore_cardboard = 0
+ var/ore_cloth = 0;
+ var/ore_leather = 0;
var/ore_adamantine = 0;
var/ore_mythril = 0;
var/stack_amt = 50; //ammount to stack before releassing
@@ -230,6 +266,22 @@
ore_mythril+= O:amount
del(O)
continue
+ if (istype(O,/obj/item/stack/sheet/cardboard))
+ ore_cardboard+= O:amount
+ del(O)
+ continue
+ if (istype(O,/obj/item/stack/sheet/wood))
+ ore_wood+= O:amount
+ del(O)
+ continue
+ if (istype(O,/obj/item/stack/sheet/cloth))
+ ore_cloth+= O:amount
+ del(O)
+ continue
+ if (istype(O,/obj/item/stack/sheet/leather))
+ ore_leather+= O:amount
+ del(O)
+ continue
if (istype(O,/obj/item/weapon/ore/slag))
del(O)
continue
@@ -294,6 +346,30 @@
G.loc = output.loc
ore_plasteel -= stack_amt
return
+ if (ore_wood >= stack_amt)
+ var/obj/item/stack/sheet/wood/G = new /obj/item/stack/sheet/wood
+ G.amount = stack_amt
+ G.loc = output.loc
+ ore_wood -= stack_amt
+ return
+ if (ore_cardboard >= stack_amt)
+ var/obj/item/stack/sheet/cardboard/G = new /obj/item/stack/sheet/cardboard
+ G.amount = stack_amt
+ G.loc = output.loc
+ ore_cardboard -= stack_amt
+ return
+ if (ore_cloth >= stack_amt)
+ var/obj/item/stack/sheet/cloth/G = new /obj/item/stack/sheet/cloth
+ G.amount = stack_amt
+ G.loc = output.loc
+ ore_cloth -= stack_amt
+ return
+ if (ore_leather >= stack_amt)
+ var/obj/item/stack/sheet/leather/G = new /obj/item/stack/sheet/leather
+ G.amount = stack_amt
+ G.loc = output.loc
+ ore_leather -= stack_amt
+ return
if (ore_adamantine >= stack_amt)
var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine
G.amount = stack_amt
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 426df3053f..7b28bb4d2e 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ