diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index dd662e40c0..99190c6071 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -212,29 +212,6 @@
flags = FPRINT | TABLEPASS| CONDUCT
matter = list("metal" = 3750)
-/obj/item/weapon/shard
- name = "shard"
- icon = 'icons/obj/shards.dmi'
- icon_state = "large"
- sharp = 1
- edge = 1
- desc = "Could probably be used as ... a throwing weapon?"
- w_class = 2.0
- force = 5.0
- throwforce = 8.0
- item_state = "shard-glass"
- matter = list("glass" = 3750)
- attack_verb = list("stabbed", "slashed", "sliced", "cut")
-
- suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.")
- return (BRUTELOSS)
-
-/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
- playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
- return ..()
-
/*/obj/item/weapon/syndicate_uplink
name = "station bounced radio"
desc = "Remain silent about this..."
@@ -254,28 +231,6 @@
matter = list("metal" = 100
origin_tech = "magnets=2;syndicate=3"*/
-/obj/item/weapon/shard/shrapnel
- name = "shrapnel"
- icon = 'icons/obj/shards.dmi'
- icon_state = "shrapnellarge"
- desc = "A bunch of tiny bits of shattered metal."
-
-/obj/item/weapon/shard/shrapnel/New()
-
- src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall")
- switch(src.icon_state)
- if("shrapnelsmall")
- src.pixel_x = rand(-12, 12)
- src.pixel_y = rand(-12, 12)
- if("shrapnelmedium")
- src.pixel_x = rand(-8, 8)
- src.pixel_y = rand(-8, 8)
- if("shrapnellarge")
- src.pixel_x = rand(-5, 5)
- src.pixel_y = rand(-5, 5)
- else
- return
-
/obj/item/weapon/SWF_uplink
name = "station-bounced radio"
desc = "used to comunicate it appears."
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 43ca384129..622390c363 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -236,77 +236,6 @@
return 0
-/*
- * Glass shards - TODO: Move this into code/game/object/item/weapons
- */
-/obj/item/weapon/shard/Bump()
-
- spawn( 0 )
- if (prob(20))
- src.force = 15
- else
- src.force = 4
- ..()
- return
- return
-
-/obj/item/weapon/shard/New()
-
- src.icon_state = pick("large", "medium", "small")
- switch(src.icon_state)
- if("small")
- src.pixel_x = rand(-12, 12)
- src.pixel_y = rand(-12, 12)
- if("medium")
- src.pixel_x = rand(-8, 8)
- src.pixel_y = rand(-8, 8)
- if("large")
- src.pixel_x = rand(-5, 5)
- src.pixel_y = rand(-5, 5)
- else
- return
-
-/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
- ..()
- if ( istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
- if(WT.remove_fuel(0, user))
- var/obj/item/stack/sheet/glass/NG = new (user.loc)
- for (var/obj/item/stack/sheet/glass/G in user.loc)
- if(G==NG)
- continue
- if(G.amount>=G.max_amount)
- continue
- G.attackby(NG, user)
- usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets."
- //SN src = null
- del(src)
- return
- return ..()
-
-/obj/item/weapon/shard/HasEntered(AM as mob|obj)
- if(ismob(AM))
- var/mob/M = AM
- M << "\red You step in the broken glass!"
- playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
-
- if(H.species.flags & IS_SYNTHETIC)
- return
-
- if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )
- var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
- if(affecting.status & ORGAN_ROBOT)
- return
- H.Weaken(3)
- if(affecting.take_damage(5, 0))
- H.UpdateDamageIcon()
- H.updatehealth()
- ..()
-
-
-
/*
* Phoron Glass sheets
diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm
new file mode 100644
index 0000000000..afae5faf57
--- /dev/null
+++ b/code/game/objects/items/weapons/shards.dm
@@ -0,0 +1,114 @@
+// Glass shards
+
+/obj/item/weapon/shard
+ name = "glass shard"
+ icon = 'icons/obj/shards.dmi'
+ icon_state = "large"
+ sharp = 1
+ edge = 1
+ desc = "Could probably be used as ... a throwing weapon?"
+ w_class = 2.0
+ force = 5.0
+ throwforce = 8.0
+ item_state = "shard-glass"
+ matter = list("glass" = 3750)
+ attack_verb = list("stabbed", "slashed", "sliced", "cut")
+
+ suicide_act(mob/user)
+ viewers(user) << pick("\red [user] is slitting \his wrists with the [src]! It looks like \he's trying to commit suicide.", \
+ "\red [user] is slitting \his throat with the [src]! It looks like \he's trying to commit suicide.")
+ return (BRUTELOSS)
+
+/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
+ return ..()
+
+/obj/item/weapon/shard/Bump()
+
+ spawn( 0 )
+ if (prob(20))
+ src.force = 15
+ else
+ src.force = 4
+ ..()
+ return
+ return
+
+/obj/item/weapon/shard/New()
+
+ src.icon_state = pick("large", "medium", "small")
+ switch(src.icon_state)
+ if("small")
+ src.pixel_x = rand(-12, 12)
+ src.pixel_y = rand(-12, 12)
+ if("medium")
+ src.pixel_x = rand(-8, 8)
+ src.pixel_y = rand(-8, 8)
+ if("large")
+ src.pixel_x = rand(-5, 5)
+ src.pixel_y = rand(-5, 5)
+ else
+ return
+
+/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ if ( istype(W, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/WT = W
+ if(WT.remove_fuel(0, user))
+ var/obj/item/stack/sheet/glass/NG = new (user.loc)
+ for (var/obj/item/stack/sheet/glass/G in user.loc)
+ if(G==NG)
+ continue
+ if(G.amount>=G.max_amount)
+ continue
+ G.attackby(NG, user)
+ usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets."
+ //SN src = null
+ del(src)
+ return
+ return ..()
+
+/obj/item/weapon/shard/HasEntered(AM as mob|obj)
+ if(ismob(AM))
+ var/mob/M = AM
+ M << "\red You step on the [src]!"
+ playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+
+ if(H.species.flags & IS_SYNTHETIC)
+ return
+
+ if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )
+ var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
+ if(affecting.status & ORGAN_ROBOT)
+ return
+ H.Weaken(3)
+ if(affecting.take_damage(5, 0))
+ H.UpdateDamageIcon()
+ H.updatehealth()
+ ..()
+
+// Shrapnel
+
+/obj/item/weapon/shard/shrapnel
+ name = "shrapnel"
+ icon = 'icons/obj/shards.dmi'
+ icon_state = "shrapnellarge"
+ desc = "A bunch of tiny bits of shattered metal."
+
+/obj/item/weapon/shard/shrapnel/New()
+
+ src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall")
+ switch(src.icon_state)
+ if("shrapnelsmall")
+ src.pixel_x = rand(-12, 12)
+ src.pixel_y = rand(-12, 12)
+ if("shrapnelmedium")
+ src.pixel_x = rand(-8, 8)
+ src.pixel_y = rand(-8, 8)
+ if("shrapnellarge")
+ src.pixel_x = rand(-5, 5)
+ src.pixel_y = rand(-5, 5)
+ else
+ return
\ No newline at end of file