diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index dc0b304d..161725d6 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -55,6 +55,8 @@
var/blood_state = BLOOD_STATE_NOT_BLOODY
var/list/blood_smear = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
+ var/cumdrip_rate = 0 //how long are we dripping jizz for?
+
var/name_override //For temporary visible name changes
var/genital_override = FALSE //Force genitals on things incase of chems
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 139ab861..ce8af418 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -36,6 +36,9 @@
//heart attack stuff
handle_heart()
+ if(cumdrip_rate > 0 && stat != DEAD)
+ handle_creampie()
+
if(stat != DEAD)
//Stuff jammed in your limbs hurts
handle_embedded_objects()
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index 44f21f10..ca11c14d 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -415,6 +415,10 @@
/mob/living/carbon/proc/handle_blood()
return
+/mob/living/carbon/proc/handle_creampie()
+ return
+
+
/mob/living/carbon/proc/handle_bodyparts()
for(var/I in bodyparts)
var/obj/item/bodypart/BP = I
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 8e98e2dd..9acc77d5 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -283,6 +283,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/insectguts,
/obj/effect/decal/cleanable/semen,
+ /obj/effect/decal/cleanable/semendrip,
/obj/effect/decal/cleanable/milk,
/obj/effect/decal/cleanable/femcum,
/obj/effect/decal/remains
diff --git a/hyperstation/code/modules/arousal/creampie.dm b/hyperstation/code/modules/arousal/creampie.dm
new file mode 100644
index 00000000..321efa81
--- /dev/null
+++ b/hyperstation/code/modules/arousal/creampie.dm
@@ -0,0 +1,16 @@
+/mob/living/carbon/human/handle_creampie()
+ if(NOBLOOD in dna.species.species_traits)
+ cumdrip_rate = 0
+ return
+
+ if(cumdrip_rate < 0)
+ cumdrip_rate = 0
+
+ if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_NOCLONE)))
+ cumdrip_rate = cumdrip_rate - 1
+ cumdrip()
+
+/mob/living/carbon/human/proc/cumdrip()
+ .=..()
+ if(isturf(loc))
+ new/obj/effect/decal/cleanable/semendrip(get_turf(src))
\ No newline at end of file
diff --git a/hyperstation/code/obj/fleshlight.dm b/hyperstation/code/obj/fleshlight.dm
index 0befcc44..125c7ec3 100644
--- a/hyperstation/code/obj/fleshlight.dm
+++ b/hyperstation/code/obj/fleshlight.dm
@@ -177,7 +177,10 @@
if( (P.condom == 1) || (P.sounding == 1)) //If coundomed and/or sounded, do not fire impreg chance
O.mob_climax_partner(P, M, FALSE, FALSE, FALSE, TRUE)
else //Else, fire impreg chance
- O.mob_climax_partner(P, M, FALSE, TRUE, FALSE, TRUE) //climax with their partner remotely, and impreg because people keep asking!
+ if(G.name == "vagina") //no more spontaneous impregnations through the butt!
+ O.mob_climax_partner(P, M, FALSE, TRUE, FALSE, TRUE)
+ else
+ O.mob_climax_partner(P, M, FALSE, FALSE, FALSE, TRUE)
if(option == "Lick")
to_chat(M, "You feel a tongue lick you through the portal against your [G.name].")
diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm
index 97d8ac36..dbe34274 100644
--- a/modular_citadel/code/modules/arousal/arousal.dm
+++ b/modular_citadel/code/modules/arousal/arousal.dm
@@ -316,6 +316,7 @@
if(spillage)
if(total_fluids > 5)
fluid_source.reaction(src.loc, TOUCH, 1, 0)
+
fluid_source.clear_reagents()
src.visible_message("[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], with [p_their()] [G.name]!", \
"You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].", \
@@ -364,6 +365,9 @@
if(total_fluids > 5)
fluid_source.reaction(L.loc, TOUCH, 1, 0)
+ var/mob/living/carbon/human/H = L
+ if(H)
+ H.cumdrip_rate += rand(5,10)
fluid_source.clear_reagents()
src.visible_message("[src] climaxes over [L], using [p_their()] [G.name]!", \
"You orgasm over [L], using your [G.name].", \
@@ -389,6 +393,9 @@
total_fluids -= total_fluids*G.fluid_transfer_factor
if(total_fluids > 5)
fluid_source.reaction(L.loc, TOUCH, 1, 0)
+ var/mob/living/carbon/human/H = L
+ if(H)
+ H.cumdrip_rate += rand(5,10)
fluid_source.clear_reagents()
src.visible_message("[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!", \
"You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].", \
diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
index 8ac4fc75..e2420ebd 100644
--- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
+++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
@@ -34,6 +34,16 @@
icon_state = "semen1"
random_icon_states = list("semen1", "semen2", "semen3", "semen4")
+/obj/effect/decal/cleanable/semendrip
+ name = "semen"
+ desc = null
+ gender = PLURAL
+ density = 0
+ layer = ABOVE_NORMAL_TURF_LAYER
+ icon = 'modular_citadel/icons/obj/genitals/effects.dmi'
+ icon_state = "drip1"
+ random_icon_states = list("drip1", "drip2", "drip3", "drip4")
+
/obj/effect/decal/cleanable/semen/Initialize(mapload)
. = ..()
dir = GLOB.cardinals
diff --git a/modular_citadel/icons/obj/genitals/effects.dmi b/modular_citadel/icons/obj/genitals/effects.dmi
index e5e62738..5e56d1e3 100644
Binary files a/modular_citadel/icons/obj/genitals/effects.dmi and b/modular_citadel/icons/obj/genitals/effects.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 88c3ef44..a6944765 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3110,6 +3110,7 @@
#include "hyperstation\code\modules\antagonists\wendigo\mob\update_icons.dm"
#include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm"
#include "hyperstation\code\modules\arousal\arousalhud.dm"
+#include "hyperstation\code\modules\arousal\creampie.dm"
#include "hyperstation\code\modules\cargo\exports\engineering.dm"
#include "hyperstation\code\modules\cargo\exports\sweatshop.dm"
#include "hyperstation\code\modules\cargo\packs\misc.dm"