diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 01ab0933..c47c6052 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -145,6 +145,7 @@
#define TRAIT_MUSICIAN "musician"
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
#define TRAIT_NYMPHO "nymphomania"
+#define TRAIT_FLUID_LEAK "leaky_fluids"
#define TRAIT_MASO "masochism"
#define TRAIT_HIGH_BLOOD "high_blood"
#define TRAIT_PHARMA "hepatic_pharmacokinesis"
diff --git a/modular_citadel/code/datums/traits/neutral.dm b/modular_citadel/code/datums/traits/neutral.dm
index 197c9b94..f064f757 100644
--- a/modular_citadel/code/datums/traits/neutral.dm
+++ b/modular_citadel/code/datums/traits/neutral.dm
@@ -41,3 +41,12 @@
var/active = FALSE
var/power = 0
var/cachedmoveCalc = 1
+
+/datum/quirk/fluid_leak
+ name = "Leaky breasts"
+ desc = "You don't stop making milk, and you have a habit of leaking everywhere when your breasts are full"
+ mob_trait = TRAIT_FLUID_LEAK
+ value = 0
+ medical_record_text = "Patient poorly controls their fluids."
+ gain_text = "You feel like your leaking everywhere."
+ lose_text = "You feel like you can control your fluids."
diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm
index da8a142f..c9383fb1 100644
--- a/modular_citadel/code/modules/arousal/organs/breasts.dm
+++ b/modular_citadel/code/modules/arousal/organs/breasts.dm
@@ -15,6 +15,7 @@
fluid_id = "milk"
var/amount = 2
fluid_mult = 0.25 // Set to a lower value due to production scaling with size (I.E. D cups produce the "normal" amount)
+ fluid_max_volume = 5
producing = TRUE
shape = "Pair"
can_masturbate_with = TRUE
@@ -28,7 +29,7 @@
return
if(!reagents || !owner)
return
- reagents.maximum_volume = fluid_max_volume * cached_size * fluid_mult // fluid amount is also scaled by the size of the organ
+ reagents.maximum_volume = fluid_max_volume * cached_size// fluid amount is also scaled by the size of the organ
if(fluid_id && producing)
if(reagents.total_volume == 0) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank.
fluid_rate = 0.1
@@ -43,6 +44,9 @@
if(!sent_full_message)
send_full_message()
sent_full_message = TRUE
+ if(HAS_TRAIT(owner, TRAIT_FLUID_LEAK))
+ reagents.get_master_reagent().reaction_turf(get_turf(owner), 3)
+ reagents.remove_reagent(fluid_id, 3)
return FALSE
sent_full_message = FALSE
reagents.isolate_reagent(fluid_id)