diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 5e8b75b987a..5f1e514cde7 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -10,15 +10,16 @@
icon_state = "elecarm"
var/charge_cost = 30
-/obj/item/borg/stun/attack(mob/living/M, mob/living/silicon/robot/user)
+/obj/item/borg/stun/attack(mob/living/M, mob/living/user)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.check_shields(0, "[M]'s [name]", src, MELEE_ATTACK))
playsound(M, 'sound/weapons/Genhit.ogg', 50, 1)
return 0
-
- if(!user.cell.use(charge_cost))
- return
+ if(isrobot(user))
+ var/mob/living/silicon/robot/R = user
+ if(!R.cell.use(charge_cost))
+ return
user.do_attack_animation(M)
M.Weaken(5)
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index 9f93c93eca3..b9d3a17e023 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -238,7 +238,6 @@
/obj/item/weapon/melee/energy/blade/dropped()
..()
- qdel(src)
/obj/item/weapon/melee/energy/blade/attack_self(mob/user)
return
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 27b859bd10c..f174129c534 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -190,3 +190,32 @@
item_state = "nullrod"
/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes
+
+/obj/item/device/assembly/flash/armimplant
+ name = "photon projector"
+ desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out."
+ var/flashcd = 20
+ var/overheat = 0
+ var/obj/item/organ/cyberimp/arm/flash/I = null
+
+/obj/item/device/assembly/flash/armimplant/burn_out()
+ if(I && I.owner)
+ I.owner << "Your photon projector implant overheats and deactivates!"
+ I.Retract()
+ overheat = FALSE
+ addtimer(src, "cooldown", flashcd * 2)
+
+/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null)
+ if(overheat)
+ if(I && I.owner)
+ I.owner << "Your photon projector is running too hot to be used again so quickly!"
+ return FALSE
+ overheat = TRUE
+ addtimer(src, "cooldown", flashcd)
+ playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
+ update_icon(1)
+ return TRUE
+
+
+/obj/item/device/assembly/flash/armimplant/proc/cooldown()
+ overheat = FALSE
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 34017a7c64e..7658a71c484 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -402,4 +402,4 @@
/datum/robot_energy_storage/medical
max_energy = 2500
recharge_rate = 250
- name = "Medical Synthesizer"
+ name = "Medical Synthesizer"
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 76220ef9ddc..9cfed984f4c 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -68,6 +68,10 @@
"[holder] snaps back into your [zone == "r_arm" ? "right" : "left"] arm.",
"You hear a short mechanical noise.")
+ if(istype(holder, /obj/item/device/assembly/flash/armimplant))
+ var/obj/item/device/assembly/flash/F = holder
+ F.SetLuminosity(0)
+
owner.unEquip(holder, 1)
holder.loc = src
holder = null
@@ -85,6 +89,10 @@
holder.w_class = 5
holder.materials = null
+ if(istype(holder, /obj/item/device/assembly/flash/armimplant))
+ var/obj/item/device/assembly/flash/F = holder
+ F.SetLuminosity(7)
+
var/obj/item/arm_item = owner.get_active_held_item()
if(arm_item)
@@ -178,3 +186,45 @@
items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src)
return 1
return 0
+
+/obj/item/organ/cyberimp/arm/esword
+ name = "arm-mounted energy blade"
+ desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated enregy."
+ contents = newlist(/obj/item/weapon/melee/energy/blade)
+
+/obj/item/organ/cyberimp/arm/medibeam
+ name = "integrated medical beamgun"
+ desc = "A cybernetic implant that allows the user to project a healing beam from their hand."
+ contents = newlist(/obj/item/weapon/gun/medbeam)
+
+/obj/item/organ/cyberimp/arm/flash
+ name = "integrated high-intensity photon projector" //Why not
+ desc = "An integrated projector mounted onto a user's arm, that is able to be used as a powerful flash."
+ contents = newlist(/obj/item/device/assembly/flash/armimplant)
+
+/obj/item/organ/cyberimp/arm/flash/New()
+ ..()
+ if(locate(/obj/item/device/assembly/flash/armimplant) in items_list)
+ var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list
+ F.I = src
+
+/obj/item/organ/cyberimp/arm/baton
+ name = "arm electrification implant"
+ desc = "An illegal combat implant that allows the user to administer disabling shocks from their arm."
+ contents = newlist(/obj/item/borg/stun)
+
+/obj/item/organ/cyberimp/arm/combat
+ name = "combat cybernetics implant"
+ desc = "A powerful cybernetic implant that contains combat modules built into the user's arm"
+ contents = newlist(/obj/item/weapon/melee/energy/blade, /obj/item/weapon/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant)
+
+/obj/item/organ/cyberimp/arm/combat/New()
+ ..()
+ if(locate(/obj/item/device/assembly/flash/armimplant) in items_list)
+ var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list
+ F.I = src
+
+/obj/item/organ/cyberimp/arm/surgery
+ name = "surgical toolset implant"
+ desc = "A set of surgical tools hidden behind a concealed panel on the user's arm"
+ contents = newlist(/obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, /obj/item/weapon/scalpel, /obj/item/weapon/circular_saw, /obj/item/weapon/surgical_drapes)
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index b977b039dff..5121e955a1b 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -197,3 +197,4 @@
toggle(silent=1)
return 0
+