diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm
index cf0e1bdec9..9eb3fcaaea 100644
--- a/code/datums/components/crafting/recipes/recipes_misc.dm
+++ b/code/datums/components/crafting/recipes/recipes_misc.dm
@@ -115,6 +115,33 @@
//Tools & Storage//
///////////////////
+/datum/crafting_recipe/upgraded_gauze
+ name = "Improved Gauze"
+ result = /obj/item/stack/medical/gauze/adv
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/space_cleaner/sterilizine = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
+/datum/crafting_recipe/bruise_pack
+ name = "Bruise Pack"
+ result = /obj/item/stack/medical/bruise_pack
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/medicine/styptic_powder = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
+/datum/crafting_recipe/burn_pack
+ name = "Brun Ointment"
+ result = /obj/item/stack/medical/ointment
+ time = 1
+ reqs = list(/obj/item/stack/medical/gauze = 1,
+ /datum/reagent/medicine/silver_sulfadiazine = 10)
+ category = CAT_MISC
+ subcategory = CAT_TOOL
+
/datum/crafting_recipe/ghettojetpack
name = "Improvised Jetpack"
result = /obj/item/tank/jetpack/improvised
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 50e9b94e97..adc4970175 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -100,6 +100,7 @@
if(!H.bleedsuppress && H.bleed_rate) //so you can't stack bleed suppression
H.suppress_bloodloss(stop_bleeding)
to_chat(user, "You stop the bleeding of [M]!")
+ H.adjustBruteLoss(-(heal_brute))
return TRUE
to_chat(user, "You can not use \the [src] on [M]!")
@@ -127,6 +128,12 @@
stop_bleeding = 900
heal_brute = 0
+/obj/item/stack/medical/gauze/adv
+ name = "sterilized medical gauze"
+ desc = "A roll of elastic sterilized cloth that is extremely effective at stopping bleeding, heals minor wounds and cleans them."
+ singular_name = "sterilized medical gauze"
+ self_delay = 5
+
/obj/item/stack/medical/gauze/cyborg
custom_materials = null
is_cyborg = 1
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index d9eb1f77a7..e4973dd2d5 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -246,6 +246,13 @@
metabolization_rate = 5 * REAGENTS_METABOLISM
overdose_threshold = 50
+/datum/reagent/medicine/silver_sulfadiazine/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/ointment(get_turf(G), reac_volume)
+ G.use(reac_volume)
+
/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
if(method in list(INGEST, VAPOR, INJECT))
@@ -321,6 +328,12 @@
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
+/datum/reagent/medicine/styptic_powder/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/bruise_pack(get_turf(G), reac_volume)
+ G.use(reac_volume)
/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-2*REM, 0)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 6dc27dcd9e..5fb27bd074 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1045,6 +1045,14 @@
// +20% success propability on each step, useful while operating in less-than-perfect conditions
..()
+/datum/reagent/space_cleaner/sterilizine/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/medical/gauze))
+ var/obj/item/stack/medical/gauze/G = O
+ reac_volume = min((reac_volume / 10), G.amount)
+ new/obj/item/stack/medical/gauze/adv(get_turf(G), reac_volume)
+ G.use(reac_volume)
+
+
/datum/reagent/iron
name = "Iron"
description = "Pure iron is a metal."