diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm
index 3c64adf2b7e..8f0d5a5b480 100644
--- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm
@@ -514,8 +514,81 @@
if(M.mind?.assigned_role != "Clown")
REMOVE_TRAIT(M, TRAIT_COMIC_SANS, id)
M.RemoveElement(/datum/element/waddling)
+ M.DeleteComponent(/datum/component/squeak)
- M.DeleteComponent(/datum/component/squeak)
+/datum/reagent/mimestrogen
+ name = "Mimestrogen"
+ id = "mimestrogen"
+ description = "Mimestrogen is an odd chemical compound that induces a variety of annoying side-effects in the average person. It also causes mild intoxication, and is toxic to clowns."
+ color = "#353535" // Should be dark grey, there are already a fair number of white chemicals
+ process_flags = ORGANIC | SYNTHETIC
+ drink_desc = "The color of the glass' surroundings seem to drain as you look at it."
+ taste_description = "an entertaining flavour"
+
+/datum/reagent/mimestrogen/on_new()
+ ..()
+ var/mob/living/carbon/C = holder.my_atom
+ if(!istype(C))
+ return
+ if(C.mind)
+ if(C.mind.assigned_role == "Mime")
+ to_chat(C, "Whatever that was, it feels great!")
+ else if(C.mind.assigned_role == "Clown")
+ to_chat(C, "You feel nauseous.")
+ C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
+ C.mind.miming = TRUE
+ ADD_TRAIT(C, TRAIT_COLORBLIND, id)
+ else
+ to_chat(C, "Something doesn't feel right...")
+ C.AdjustDizzy(volume STATUS_EFFECT_CONSTANT)
+ C.mind.miming = TRUE // Jestosterone gives comic sans which makes one more clown-like, comic sans also unlocks clown healing, minus Jestoserone. So, mind.miming makes one more like a mime and unlocks mime healing, minus Mimestrogen.
+ ADD_TRAIT(C, TRAIT_COLORBLIND, id)
+
+/datum/reagent/mimestrogen/on_mob_life(mob/living/carbon/human/M)
+ var/update_flags = STATUS_UPDATE_NONE
+ if(prob(10))
+ M.emote("giggle")
+ if(!M.mind)
+ return ..() | update_flags
+ if(M.mind.assigned_role == "Mime")
+ update_flags |= M.adjustBruteLoss(-1.5 * REAGENTS_EFFECT_MULTIPLIER, robotic = TRUE)
+ else
+ M.AdjustDizzy(20 SECONDS, 0, 100 SECONDS)
+ if(M.client)
+ M.client.color = MATRIX_GREYSCALE
+ M.update_client_colour() // TRAIT_COLORBLIND only makes you colourblind for the wires, this fully makes it greyscale
+ if(prob(10))
+ M.EyeBlurry(10 SECONDS)
+ if(prob(6))
+ var/static/list/mime_message = list("You feel light-headed.",
+ "You can't see straight.",
+ "You feel about as entertaining as the station mime.",
+ "Muted colors and berets cloud your vision.",
+ "Your voice box feels numb.",
+ "What was that?!",
+ "You can hear silence in the distance, somehow.",
+ "You feel like miming.",
+ "Silence permeates your ears.",
+ "...",
+ "You feel like miming a performance.")
+ to_chat(M, "[pick(mime_message)]")
+ if(M.mind.assigned_role == "Clown")
+ if(M.dna.species.tox_mod <= 0) // If they can't take tox damage, make them take burn damage
+ update_flags |= M.adjustFireLoss(1.5 * REAGENTS_EFFECT_MULTIPLIER, robotic = TRUE)
+ else
+ update_flags |= M.adjustToxLoss(1.5 * REAGENTS_EFFECT_MULTIPLIER)
+ return ..() | update_flags
+
+/datum/reagent/mimestrogen/on_mob_delete(mob/living/M)
+ ..()
+ if(M.mind?.assigned_role != "Mime")
+ M.mind.miming = FALSE
+ if(M.client)
+ M.client.color = null
+ REMOVE_TRAIT(M, TRAIT_COLORBLIND, id)
+ M.update_client_colour() // You get stuck with permanent greyscale if it's not separated from client.color by at least one line
+ else
+ REMOVE_TRAIT(M, TRAIT_COLORBLIND, id)
/datum/reagent/royal_bee_jelly
name = "Royal bee jelly"
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 50c817a6d89..1ef49b5c1ed 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -289,6 +289,15 @@
/datum/chemical_reaction/jestosterone/on_reaction(datum/reagents/holder, created_volume)
playsound(get_turf(holder.my_atom), 'sound/items/bikehorn.ogg', 50, 1)
+/datum/chemical_reaction/mimestrogen
+ name = "Mimestrogen"
+ id = "mimestrogen"
+ result = "mimestrogen"
+ required_reagents = list("blood" = 1, "sodiumchloride" = 1, "nothing" = 1, "capulettium_plus" = 1) // Or one freshly-squeezed mime
+ min_temp = T0C + 100
+ result_amount = 5
+ mix_message = "The mixture seems to drain of color before stopping at a dark grey."
+
/datum/chemical_reaction/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"