diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm
index 7a7379c834..2a24c0b451 100644
--- a/code/datums/components/crafting/recipes/recipes_clothing.dm
+++ b/code/datums/components/crafting/recipes/recipes_clothing.dm
@@ -263,6 +263,14 @@
time = 30
category = CAT_CLOTHING
+/datum/crafting_recipe/durathread_reinforcement_kit
+ name = "Durathread Reinforcement Kit"
+ result = /obj/item/armorkit
+ reqs = list(/obj/item/stack/sheet/durathread = 4)
+ tools = list(/obj/item/stack/sheet/mineral/titanium, TOOL_WIRECUTTER) // tough needle for a tough fabric
+ time = 40
+ category = CAT_CLOTHING
+
/datum/crafting_recipe/durathread_duffelbag
name = "Durathread Dufflebag"
result = /obj/item/storage/backpack/duffelbag/durathread
diff --git a/code/game/objects/items/armor_kits.dm b/code/game/objects/items/armor_kits.dm
new file mode 100644
index 0000000000..fa88b77600
--- /dev/null
+++ b/code/game/objects/items/armor_kits.dm
@@ -0,0 +1,44 @@
+// Armor kits! Reinforcing uniforms to maintain fashion and also armor capabilities.
+
+/obj/item/armorkit
+ name = "durathread armor kit"
+ desc = "A glorified sewing kit with durathread sheets, thread, and a titanium needle, for reinforcing jumpsuits and uniforms."
+ icon = 'icons/obj/clothing/reinf_kits.dmi'
+ w_class = WEIGHT_CLASS_SMALL
+ icon_state = "durathread_kit" // shoutout to my guy Toriate for being good at sprites tho
+
+/obj/item/armorkit/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
+ // yeah have fun making subtypes and modifying the afterattack if you want to make variants
+ // idiot
+ // - hatter
+ var/used = FALSE
+
+ if(isobj(target) && istype(target, /obj/item/clothing/under))
+ var/obj/item/clothing/under/C = target
+ if(C.armor.melee < 10)
+ C.armor.melee = 10
+ used = TRUE
+ if(C.armor.laser < 10)
+ C.armor.laser = 10
+ used = TRUE
+ if(C.armor.fire < 40)
+ C.armor.fire = 40
+ used = TRUE
+ if(C.armor.acid < 10)
+ C.armor.acid = 10
+ used = TRUE
+ if(C.armor.bomb < 5)
+ C.armor.bomb = 5
+ used = TRUE
+
+ if(used)
+ user.visible_message("[user] uses [src] on [C], reinforcing it and tossing the empty case away afterwards.", \
+ "You reinforce [C] with [src], making it a little more protective! You toss the empty casing away afterwards.")
+ C.name = "durathread [C.name]" // this disappears if it gets repaired, which is annoying
+ qdel(src)
+ return
+ else
+ to_chat(user, "You stare at [src] and [C], coming to the conclusion that you probably don't need to reinforce it any further.")
+ return
+ else
+ return
diff --git a/icons/obj/clothing/reinf_kits.dmi b/icons/obj/clothing/reinf_kits.dmi
new file mode 100644
index 0000000000..3b23d53342
Binary files /dev/null and b/icons/obj/clothing/reinf_kits.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index a63d1db60a..b3b32e6f67 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -970,6 +970,7 @@
#include "code\game\objects\items\AI_modules.dm"
#include "code\game\objects\items\airlock_painter.dm"
#include "code\game\objects\items\apc_frame.dm"
+#include "code\game\objects\items\armor_kits.dm"
#include "code\game\objects\items\balls.dm"
#include "code\game\objects\items\binoculars.dm"
#include "code\game\objects\items\blueprints.dm"