diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 22a8d2c92a..5f3524d1c3 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -138,6 +138,12 @@
throwforce = 15
custom_materials = null
+/obj/item/kitchen/knife/combat/bone/plastic
+ name = "plastic knife"
+ desc = "A plastic knife. Rather harmless to anything."
+ force = 1
+ bayonet = FALSE
+
/obj/item/kitchen/knife/combat/cyborg
name = "cyborg knife"
icon = 'icons/obj/items_cyborg.dmi'
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index 4f5f264c0e..07f4cb4e40 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -237,3 +237,19 @@
w_class = WEIGHT_CLASS_HUGE
item_flags = SLOWS_WHILE_IN_HAND
transparent = FALSE
+
+/obj/item/shield/riot/implant
+ name = "riot tower shield"
+ desc = "A massive shield that can block a lot of attacks and can take a lot of abuse before breaking." //It cant break unless it is removed from the implant
+ item_state = "metal"
+ icon_state = "metal"
+ icon = 'icons/obj/items_and_weapons.dmi'
+ block_chance = 30 //May be big but hard to move around to block.
+ slowdown = 1
+ transparent = FALSE
+ item_flags = SLOWS_WHILE_IN_HAND
+
+/obj/item/shield/riot/implant/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
+ if(attack_type == PROJECTILE_ATTACK)
+ final_block_chance = 60 //Massive shield
+ return ..()
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index af80aa6671..c0d48301e1 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -369,6 +369,39 @@
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+/datum/design/cyberimp_shield
+ name = "Riot Shield Arm Implant"
+ desc = "An implanted riot shield, designed to be installed on subject's arm."
+ id = "ci-shield"
+ build_type = PROTOLATHE
+ materials = list (/datum/material/iron = 8500, /datum/material/glass = 8500, /datum/material/silver = 1800, /datum/material/titanium = 600)
+ construction_time = 200
+ build_path = /obj/item/organ/cyberimp/arm/shield
+ category = list("Misc", "Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/cyberimp_janitor
+ name = "Janitor Arm Implant"
+ desc = "A set of janitor tools fitted into an arm implant, designed to be installed on subject's arm."
+ id = "ci-janitor"
+ build_type = PROTOLATHE | MECHFAB
+ materials = list (/datum/material/iron = 3500, /datum/material/glass = 1500, /datum/material/silver = 1500)
+ construction_time = 200
+ build_path = /obj/item/organ/cyberimp/arm/janitor
+ category = list("Misc", "Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+
+/datum/design/cyberimp_service
+ name = "Service Arm Implant"
+ desc = "Everything a cook or barkeep needs in an arm implant, designed to be installed on subject's arm."
+ id = "ci-service"
+ build_type = PROTOLATHE | MECHFAB
+ materials = list (/datum/material/iron = 3500, /datum/material/glass = 1500, /datum/material/silver = 1500)
+ construction_time = 200
+ build_path = /obj/item/organ/cyberimp/arm/service
+ category = list("Misc", "Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+
/datum/design/cyberimp_medical_hud
name = "Medical HUD Implant"
desc = "These cybernetic eyes will display a medical HUD over everything you see. Wiggle eyes to control."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 69ad026f63..5c7b6b57d1 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -521,7 +521,7 @@
display_name = "Cybernetic Implants"
description = "Electronic implants that improve humans."
prereq_ids = list("adv_biotech", "adv_datatheory")
- design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud")
+ design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-service")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/adv_cyber_implants
@@ -570,7 +570,7 @@
display_name = "Advanced Sanitation Technology"
description = "Clean things better, faster, stronger, and harder!"
prereq_ids = list("adv_engi")
- design_ids = list("advmop", "buffer", "light_replacer", "spraybottle", "beartrap")
+ design_ids = list("advmop", "buffer", "light_replacer", "spraybottle", "beartrap", "ci-janitor")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag
/datum/techweb_node/botany
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 7371afd40f..37ee253d4b 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -140,6 +140,88 @@
else
Retract()
+/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/gun/medbeam)
+
+///////////////
+//Tools Arms//
+///////////////
+
+/obj/item/organ/cyberimp/arm/toolset
+ name = "integrated toolset implant"
+ desc = "A stripped-down version of the engineering cyborg toolset, designed to be installed on subject's arm. Contains all necessary tools."
+ contents = newlist(/obj/item/screwdriver/cyborg, /obj/item/wrench/cyborg, /obj/item/weldingtool/largetank/cyborg,
+ /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/multitool/cyborg)
+
+/obj/item/organ/cyberimp/arm/toolset/emag_act()
+ . = ..()
+ if(obj_flags & EMAGGED)
+ return
+ obj_flags |= EMAGGED
+ to_chat(usr, "You unlock [src]'s integrated knife!")
+ items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
+ return TRUE
+
+/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/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/surgicaldrill/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/surgical_drapes)
+
+/obj/item/organ/cyberimp/arm/surgery/emag_act()
+ . = ..()
+ if(obj_flags & EMAGGED)
+ return
+ obj_flags |= EMAGGED
+ to_chat(usr, "You unlock [src]'s integrated knife!")
+ items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
+ return TRUE
+
+/obj/item/organ/cyberimp/arm/janitor
+ name = "janitorial tools implant"
+ desc = "A set of janitorial tools on the user's arm."
+ contents = newlist(/obj/item/lightreplacer, /obj/item/holosign_creator, /obj/item/soap/nanotrasen, /obj/item/reagent_containers/spray/cyborg_drying, /obj/item/mop/advanced, /obj/item/paint/paint_remover, /obj/item/reagent_containers/glass/beaker/large, /obj/item/reagent_containers/spray/cleaner) //Beaker if for refilling sprays
+
+/obj/item/organ/cyberimp/arm/janitor/emag_act()
+ . = ..()
+ if(obj_flags & EMAGGED)
+ return
+ obj_flags |= EMAGGED
+ to_chat(usr, "You unlock [src]'s integrated deluxe cleaning supplies!")
+ items_list += new /obj/item/soap/syndie(src) //We add not replace.
+ items_list += new /obj/item/reagent_containers/spray/cyborg_lube(src)
+ return TRUE
+
+/obj/item/organ/cyberimp/arm/service
+ name = "service toolset implant"
+ desc = "A set of miscellaneous gadgets hidden behind a concealed panel on the user's arm."
+ contents = newlist(/obj/item/extinguisher/mini, /obj/item/kitchen/knife/combat/bone/plastic, /obj/item/hand_labeler, /obj/item/pen, /obj/item/reagent_containers/dropper, /obj/item/kitchen/rollingpin, /obj/item/reagent_containers/glass/beaker/large, /obj/item/reagent_containers/syringe,/obj/item/reagent_containers/food/drinks/shaker, /obj/item/radio/off, /obj/item/camera, /obj/item/modular_computer/tablet/preset/cargo)
+
+/obj/item/organ/cyberimp/arm/service/emag_act()
+ . = ..()
+ if(obj_flags & EMAGGED)
+ return
+ obj_flags |= EMAGGED
+ to_chat(usr, "You unlock [src]'s integrated real knife!")
+ items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
+ return TRUE
+
+///////////////
+//Combat Arms//
+///////////////
+
+/obj/item/organ/cyberimp/arm/gun/laser
+ name = "arm-mounted laser implant"
+ desc = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use."
+ icon_state = "arm_laser"
+ contents = newlist(/obj/item/gun/energy/laser/mounted)
+
+/obj/item/organ/cyberimp/arm/gun/taser
+ name = "arm-mounted taser implant"
+ desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use."
+ icon_state = "arm_taser"
+ contents = newlist(/obj/item/gun/energy/e_gun/advtaser/mounted)
/obj/item/organ/cyberimp/arm/gun/emp_act(severity)
. = ..()
@@ -156,54 +238,6 @@
crit_fail = 1
organ_flags |= ORGAN_FAILING
-
-/obj/item/organ/cyberimp/arm/gun/laser
- name = "arm-mounted laser implant"
- desc = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use."
- icon_state = "arm_laser"
- contents = newlist(/obj/item/gun/energy/laser/mounted)
-
-/obj/item/organ/cyberimp/arm/gun/laser/l
- zone = BODY_ZONE_L_ARM
-
-
-/obj/item/organ/cyberimp/arm/gun/taser
- name = "arm-mounted taser implant"
- desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use."
- icon_state = "arm_taser"
- contents = newlist(/obj/item/gun/energy/e_gun/advtaser/mounted)
-
-/obj/item/organ/cyberimp/arm/gun/taser/l
- zone = BODY_ZONE_L_ARM
-
-/obj/item/organ/cyberimp/arm/toolset
- name = "integrated toolset implant"
- desc = "A stripped-down version of the engineering cyborg toolset, designed to be installed on subject's arm. Contains all necessary tools."
- contents = newlist(/obj/item/screwdriver/cyborg, /obj/item/wrench/cyborg, /obj/item/weldingtool/largetank/cyborg,
- /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/multitool/cyborg)
-
-/obj/item/organ/cyberimp/arm/toolset/l
- zone = BODY_ZONE_L_ARM
-
-/obj/item/organ/cyberimp/arm/toolset/emag_act()
- . = ..()
- if(locate(/obj/item/kitchen/knife/combat/cyborg) in items_list)
- return
- to_chat(usr, "You unlock [src]'s integrated knife!")
- items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
- return TRUE
-
-/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 energy."
- contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight)
-
-/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/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."
@@ -231,7 +265,22 @@
var/obj/item/assembly/flash/armimplant/F = locate(/obj/item/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/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/surgicaldrill/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/surgical_drapes)
+/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 energy."
+ contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight)
+
+/obj/item/organ/cyberimp/arm/shield
+ name = "arm-mounted riot shield"
+ desc = "A deployable riot shield to help deal with civil unrest."
+ contents = newlist(/obj/item/shield/riot/implant)
+
+/obj/item/organ/cyberimp/arm/shield/emag_act()
+ . = ..()
+ if(obj_flags & EMAGGED)
+ return
+ obj_flags |= EMAGGED
+ to_chat(usr, "You unlock [src]'s high-power flash!")
+ var/obj/item/assembly/flash/armimplant/F = new(src)
+ items_list += F
+ F.I = src