diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 9da42756354..fe5cc7a9bac 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -502,6 +502,110 @@
icon_state = "wood_table"
parts = /obj/item/weapon/table_parts/wood
health = 50
+
+/obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob)
+
+ if (istype(I, /obj/item/stack/tile/grass))
+ del(I)
+ new /obj/structure/table/woodentable/poker( src.loc )
+ del(src)
+ visible_message("[user] adds the grass to the wooden table")
+
+
+ if (istype(I, /obj/item/weapon/grab))
+ var/obj/item/weapon/grab/G = I
+ if(G.affecting.buckled)
+ user << "[G.affecting] is buckled to [G.affecting.buckled]!"
+ return
+ if(G.state < GRAB_AGGRESSIVE)
+ user << "You need a better grip to do that!"
+ return
+ if(!G.confirm())
+ return
+ G.affecting.loc = src.loc
+ G.affecting.Weaken(5)
+ visible_message("\red [G.assailant] puts [G.affecting] on the table.")
+ del(I)
+ return
+ if (istype(I, /obj/item/weapon/wrench))
+ user << "\blue Now disassembling the wooden table"
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ sleep(50)
+ new /obj/item/weapon/table_parts/wood( src.loc )
+ playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ del(src)
+ return
+
+ if(isrobot(user))
+ return
+ if(istype(I, /obj/item/weapon/melee/energy/blade))
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src.loc)
+ spark_system.start()
+ playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
+ playsound(src.loc, "sparks", 50, 1)
+ for(var/mob/O in viewers(user, 4))
+ O.show_message("\blue The wooden table was sliced apart by [user]!", 1, "\red You hear wood coming apart.", 2)
+ new /obj/item/weapon/table_parts/wood( src.loc )
+ del(src)
+ return
+
+ user.drop_item(src)
+ //if(W && W.loc) W.loc = src.loc
+ return 1
+
+/obj/structure/table/woodentable/poker //No specialties, Just a mapping object.
+ name = "gambling table"
+ desc = "A seedy table for seedy dealings in seedy places."
+ icon_state = "pokertable"
+
+
+/obj/structure/table/woodentable/poker/attackby(obj/item/weapon/W as obj, mob/user as mob)
+
+ if (istype(W, /obj/item/weapon/grab))
+ var/obj/item/weapon/grab/G = W
+ if(G.affecting.buckled)
+ user << "[G.affecting] is buckled to [G.affecting.buckled]!"
+ return
+ if(G.state < GRAB_AGGRESSIVE)
+ user << "You need a better grip to do that!"
+ return
+ if(!G.confirm())
+ return
+ G.affecting.loc = src.loc
+ G.affecting.Weaken(5)
+ visible_message("\red [G.assailant] puts [G.affecting] on the table.")
+ del(W)
+ return
+ if (istype(W, /obj/item/weapon/wrench))
+ user << "\blue Now disassembling the wooden table"
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ sleep(50)
+ new /obj/item/weapon/table_parts/wood( src.loc )
+ new /obj/item/stack/tile/grass( src.loc)
+ playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ del(src)
+ return
+
+ if(isrobot(user))
+ return
+ if(istype(W, /obj/item/weapon/melee/energy/blade))
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src.loc)
+ spark_system.start()
+ playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
+ playsound(src.loc, "sparks", 50, 1)
+ for(var/mob/O in viewers(user, 4))
+ O.show_message("\blue The wooden table was sliced apart by [user]!", 1, "\red You hear wood coming apart.", 2)
+ new /obj/item/weapon/table_parts/wood( src.loc )
+ new /obj/item/stack/tile/grass( src.loc)
+ del(src)
+ return
+
+ user.drop_item(src)
+ return 1
+
+
/*
* Reinforced tables
*/
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 804594b78f2..252167cd836 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ