diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm
index 70a5c5908f5..c273b2b2b86 100644
--- a/code/__DEFINES/reagents.dm
+++ b/code/__DEFINES/reagents.dm
@@ -36,7 +36,10 @@
#define CLEAR_REAGENTS 4 // all reagents were cleared
#define MIMEDRINK_SILENCE_DURATION 30 //ends up being 60 seconds given 1 tick every 2 seconds
-#define THRESHOLD_UNHUSK 50 //Health treshold for synthflesh and rezadone to unhusk someone
+///Health threshold for synthflesh and rezadone to unhusk someone
+#define UNHUSK_DAMAGE_THRESHOLD 50
+///Amount of synthflesh required to unhusk someone
+#define SYNTHFLESH_UNHUSK_AMOUNT 100
//used by chem masters and pill presses
#define PILL_STYLE_COUNT 22 //Update this if you add more pill icons or you die
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 971e06e1162..1c3c74d2fad 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -579,8 +579,10 @@
fail_reason = "Patient's heart is missing."
if (DEFIB_FAIL_FAILING_HEART)
fail_reason = "Patient's heart too damaged, replace or repair and try again."
- if (DEFIB_FAIL_TISSUE_DAMAGE, DEFIB_FAIL_HUSK)
+ if (DEFIB_FAIL_TISSUE_DAMAGE)
fail_reason = "Tissue damage too severe, repair and try again."
+ if (DEFIB_FAIL_HUSK)
+ fail_reason = "Patient's body is a mere husk, repair and try again."
if (DEFIB_FAIL_FAILING_BRAIN)
fail_reason = "Patient's brain is too damaged, repair and try again."
if (DEFIB_FAIL_NO_INTELLIGENCE)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 2f3b6b5c367..5d34eb41ffd 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -169,6 +169,14 @@ GENE SCANNER
render_list += "Analyzing results for [M]:\nOverall status: [mob_status]\n"
+ // Husk detection
+ if(advanced && HAS_TRAIT_FROM(M, TRAIT_HUSK, BURN))
+ render_list += "Subject has been husked by severe burns.\n"
+ else if (advanced && HAS_TRAIT_FROM(M, TRAIT_HUSK, CHANGELING_DRAIN))
+ render_list += "Subject has been husked by dessication.\n"
+ else if(HAS_TRAIT(M, TRAIT_HUSK))
+ render_list += "Subject has been husked.\n"
+
// Damage descriptions
if(brute_loss > 10)
render_list += "[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.\n"
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index b2a9cc45b91..032a4fcf25d 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -569,7 +569,7 @@
update_stat()
update_mobility()
if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD*2) && stat == DEAD )
- become_husk("burn")
+ become_husk(BURN)
med_hud_set_health()
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 51220436520..cdd82fa196d 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -510,6 +510,8 @@
else if(HAS_TRAIT_FROM(src, TRAIT_DISSECTED,"Thorough Dissection"))
dissectionmsg = " via Thorough Dissection"
. += "This body has been dissected and analyzed[dissectionmsg].
"
+ if(HAS_TRAIT(src,TRAIT_HUSK))
+ . += "This body has been reduced to a grotesque husk."
/**
* Get the list of keywords for policy config
diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
index d6344f0387f..24db8ceab05 100644
--- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
@@ -407,7 +407,7 @@
/*Suffix: Combo of healing, prob gonna get wack REAL fast*/
/datum/reagent/medicine/c2/synthflesh
name = "Synthflesh"
- description = "Heals brute and burn damage at the cost of toxicity (66% of damage healed). Touch application only."
+ description = "Heals brute and burn damage at the cost of toxicity (66% of damage healed). 100u or more can restore corpses husked by burns. Touch application only."
reagent_state = LIQUID
color = "#FFEBEB"
@@ -429,8 +429,8 @@
if(show_message)
to_chat(carbies, "You feel your burns and bruises healing! It stings like hell!")
SEND_SIGNAL(carbies, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
- if(HAS_TRAIT_FROM(exposed_mob, TRAIT_HUSK, "burn") && carbies.getFireLoss() < THRESHOLD_UNHUSK && (carbies.reagents.get_reagent_amount(/datum/reagent/medicine/c2/synthflesh) + reac_volume >= 100))
- carbies.cure_husk("burn")
+ if(HAS_TRAIT_FROM(exposed_mob, TRAIT_HUSK, BURN) && carbies.getFireLoss() < UNHUSK_DAMAGE_THRESHOLD && (carbies.reagents.get_reagent_amount(/datum/reagent/medicine/c2/synthflesh) + reac_volume >= SYNTHFLESH_UNHUSK_AMOUNT))
+ carbies.cure_husk(BURN)
carbies.visible_message("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!") //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or a golem or something
/******ORGAN HEALING******/
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 2bef3c55ced..4a400c20c05 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -212,7 +212,7 @@
/datum/reagent/medicine/rezadone
name = "Rezadone"
- description = "A powder derived from fish toxin, Rezadone can effectively treat genetic damage as well as restoring minor wounds. Overdose will cause intense nausea and minor toxin damage."
+ description = "A powder derived from fish toxin, Rezadone can effectively treat genetic damage as well as restoring minor wounds and restoring corpses husked by burns. Overdose will cause intense nausea and minor toxin damage."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
overdose_threshold = 30
@@ -238,8 +238,8 @@
return
var/mob/living/carbon/patient = exposed_mob
- if(reac_volume >= 5 && HAS_TRAIT_FROM(patient, TRAIT_HUSK, "burn") && patient.getFireLoss() < THRESHOLD_UNHUSK) //One carp yields 12u rezadone.
- patient.cure_husk("burn")
+ if(reac_volume >= 5 && HAS_TRAIT_FROM(patient, TRAIT_HUSK, BURN) && patient.getFireLoss() < UNHUSK_DAMAGE_THRESHOLD) //One carp yields 12u rezadone.
+ patient.cure_husk(BURN)
patient.visible_message("[patient]'s body rapidly absorbs moisture from the environment, taking on a more healthy appearance.")
/datum/reagent/medicine/spaceacillin