diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index e4f2f3b5d1b..0d4a871fc06 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -963,6 +963,13 @@ var/list/uplink_items = list()
item = /obj/item/weapon/storage/backpack/duffel/syndie/surgery
cost = 4
+/datum/uplink_item/device_tools/bonerepair
+ name = "Prototype Bone Repair Kit"
+ desc = "Stolen prototype bone repair nanites. Contains one nanocalcium autoinjector and guide."
+ reference = "NCAI"
+ item = /obj/item/weapon/storage/box/syndie_kit/bonerepair
+ cost = 6
+
/datum/uplink_item/device_tools/military_belt
name = "Military Belt"
desc = "A robust seven-slot red belt made for carrying a broad variety of weapons, ammunition and explosives"
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index c5f32121d4f..7624fa4bbe5 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -241,4 +241,24 @@
..()
for(var/i in 1 to 3)
new/obj/item/cardboard_cutout/adaptive(src)
- new/obj/item/toy/crayon/spraycan(src)
\ No newline at end of file
+ new/obj/item/toy/crayon/spraycan(src)
+
+/obj/item/weapon/storage/box/syndie_kit/bonerepair
+ name = "bone repair kit"
+ desc = "A box containing one prototype field bone repair kit."
+
+/obj/item/weapon/storage/box/syndie_kit/bonerepair/New()
+ ..()
+ new /obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium(src)
+ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
+ P.name = "Bone repair guide"
+ P.desc = "For when you want to safely get off Mr Bones' Wild Ride."
+ P.info = {"
+
Prototype Bone Repair Nanites
+
+Usage:
+
+This is a highly experimental prototype chemical designed to repair damaged bones of soldiers in the field, use only as a last resort. The autoinjector contains prototype nanites bearing a calcium based payload. The nanites will simultaneously shut down body systems whilst aiding bone repair.
Warning: Side effects can cause temporary paralysis, loss of co-ordination and sickness. Do not use with any kind of stimulant or drugs. Serious damage can occur!
+
+To apply, hold the injector a short distance away from the outer thigh before applying firmly to the skin surface. Bones should begin repair after a short time, during which you are advised to remain still.
After use you are advised to see a doctor at the next available opportunity. Mild scarring and tissue damage may occur after use. This is a prototype.
+ "}
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm
index b135d076818..0e53f7fdc39 100644
--- a/code/modules/reagents/chemistry/reagents/medicine.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine.dm
@@ -1035,3 +1035,40 @@
color = "#F5F5F5"
// This reagent's effects are handled in heart attack handling code
+
+/datum/reagent/medicine/nanocalcium
+ name = "Nano-Calcium"
+ id = "nanocalcium"
+ description = "Highly advanced nanites equipped with calcium payloads designed to repair bones. Nanomachines son."
+ color = "#9b3401"
+ metabolization_rate = 0.5
+
+/datum/reagent/medicine/nanocalcium/on_mob_life(mob/living/carbon/human/M)
+ switch(current_cycle)
+ if(1 to 19)
+ M.AdjustJitter(4)
+ if(prob(10))
+ to_chat(M, "Your skin feels hot and your veins are on fire!")
+ if(20 to 43)
+ //If they have stimulants or stimulant drugs then just apply toxin damage instead.
+ if(M.reagents.has_reagent("methamphetamine") || M.reagents.has_reagent("crank") || M.reagents.has_reagent("bath_salts") || M.reagents.has_reagent("stimulative_agent") || M.reagents.has_reagent("stimulants"))
+ M.adjustToxLoss(10)
+ else //apply debilitating effects
+ if(prob(75))
+ M.AdjustConfused(5)
+ else
+ M.AdjustWeakened(5)
+ if(44)
+ to_chat(M, "Your body goes rigid, you cannot move at all!")
+ M.AdjustWeakened(15)
+ if(45 to INFINITY) // Start fixing bones | If they have stimulants or stimulant drugs in their system then the nanites won't work.
+ if(M.reagents.has_reagent("methamphetamine") || M.reagents.has_reagent("crank") || M.reagents.has_reagent("bath_salts") || M.reagents.has_reagent("stimulative_agent") || M.reagents.has_reagent("stimulants"))
+ return ..()
+ else
+ for(var/obj/item/organ/external/E in M.bodyparts)
+ if(E.is_broken())
+ if(prob(50)) // Each tick has a 50% chance of repearing a bone.
+ to_chat(M, "You feel a burning sensation in your [E.name] as it straightens involuntarily!")
+ E.rejuvenate() //Repair it completely.
+ break
+ ..()
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 490f46e0a52..796b28d9b6f 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -39,6 +39,8 @@
add_logs(user, M, "injected", src, "([contained])")
+ return TRUE
+
/obj/item/weapon/reagent_containers/hypospray/CMO
list_reagents = list("omnizine" = 30)
@@ -75,6 +77,7 @@
return
..()
update_icon()
+ return TRUE
/obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon()
if(reagents.total_volume > 0)
@@ -110,4 +113,17 @@
amount_per_transfer_from_this = 50
possible_transfer_amounts = list(50)
volume = 50
- list_reagents = list("stimulants" = 50)
\ No newline at end of file
+ list_reagents = list("stimulants" = 50)
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium
+ name = "nanocalcium autoinjector"
+ desc = "After a short period of time the nanites will slow the body's systems and assist with bone repair. Nanomachines son."
+ icon_state = "bonepen"
+ amount_per_transfer_from_this = 30
+ possible_transfer_amounts = list(30)
+ volume = 30
+ list_reagents = list("nanocalcium" = 30)
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium/attack(mob/living/M, mob/user)
+ if(..())
+ playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1)
\ No newline at end of file
diff --git a/icons/obj/hypo.dmi b/icons/obj/hypo.dmi
index 6baa7869c75..a6df9972275 100644
Binary files a/icons/obj/hypo.dmi and b/icons/obj/hypo.dmi differ