diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index c29f8dbe2b..fa2a7b06ae 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -201,6 +201,7 @@
"balls_cum_rate" = CUM_RATE,
"balls_cum_mult" = CUM_RATE_MULT,
"balls_efficiency" = CUM_EFFICIENCY,
+ "balls_fluid" = /datum/reagent/consumable/semen, //GS13 - hs13 content
"has_breasts" = FALSE,
"breasts_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"breasts_size" = pick(CONFIG_GET(keyed_list/breasts_cups_prefs)),
diff --git a/code/modules/arousal/organs/testicles.dm b/code/modules/arousal/organs/testicles.dm
index d47020c8b2..b32c478674 100644
--- a/code/modules/arousal/organs/testicles.dm
+++ b/code/modules/arousal/organs/testicles.dm
@@ -64,6 +64,7 @@
else
color = "#[D.features["balls_color"]]"
shape = D.features["balls_shape"]
+ fluid_id = D.features["balls_fluid"]
fluid_rate = D.features["balls_cum_rate"]
fluid_mult = D.features["balls_cum_mult"]
fluid_efficiency = D.features["balls_efficiency"]
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 3e8b06e05a..47cf57175b 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -769,6 +769,22 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "#[features["balls_color"]] Change
"
dat += "Testicles Shape: [features["balls_shape"]]"
dat += "Testicles Visibility:[features["balls_visibility"]]"
+ dat += "Produces:"
+ switch(features["balls_fluid"])
+ if(/datum/reagent/consumable/milk)
+ dat += "Milk"
+ if(/datum/reagent/water)
+ dat += "Water"
+ if(/datum/reagent/consumable/semen)
+ dat += "Semen"
+ if(/datum/reagent/consumable/alienhoney)
+ dat += "Honey"
+ if(/datum/reagent/consumable/nutriment)
+ dat += "Nutriment"
+ if(/datum/reagent/blueberry_juice)
+ dat += "Berry Juice"
+ else
+ dat += "Nothing?"
dat += APPEARANCE_CATEGORY_COLUMN
dat += "
Vagina
"
dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]"
@@ -809,8 +825,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Femcum"
if(/datum/reagent/consumable/alienhoney)
dat += "Honey"
- if(/datum/reagent/consumable/milk/pinkmilk)
- dat += "Strawberry Milk"
if(/datum/reagent/consumable/nutriment)
dat += "Nutriment"
if(/datum/reagent/blueberry_juice)
@@ -2657,6 +2671,23 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_shape)
features["balls_shape"] = new_shape
+ if("balls_fluid")
+ var/new_shape
+ new_shape = input(user, "Balls Fluid", "Character Preference") as null|anything in GLOB.genital_fluids_list
+ switch(new_shape)
+ if("Milk")
+ features["balls_fluid"] = /datum/reagent/consumable/milk
+ if("Water")
+ features["balls_fluid"] = /datum/reagent/water
+ if("Semen")
+ features["balls_fluid"] = /datum/reagent/consumable/semen
+ if("Honey")
+ features["balls_fluid"] = /datum/reagent/consumable/alienhoney
+ if("Nutriment")
+ features["balls_fluid"] = /datum/reagent/consumable/nutriment
+ if("Berry Juice")
+ features["balls_fluid"] = /datum/reagent/blueberry_juice
+
if("balls_visibility")
var/n_vis = input(user, "Testicles Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 6ace323783..df44203998 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -954,6 +954,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["object_tf"] >> object_tf
S["blueberry_inflation"] >> blueberry_inflation
S["feature_breasts_fluid"] >> features["breasts_fluid"]
+ S["feature_balls_fluid"] >> features["balls_fluid"]
S["alt_titles_preferences"] >> alt_titles_preferences
//gear loadout
if(istext(S["loadout"]))
@@ -1284,6 +1285,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_balls_shape"], features["balls_shape"])
WRITE_FILE(S["feature_balls_size"], features["balls_size"])
WRITE_FILE(S["feature_balls_visibility"], features["balls_visibility"])
+ WRITE_FILE(S["feature_balls_fluid"], features["balls_fluid"])
WRITE_FILE(S["feature_has_breasts"], features["has_breasts"])
WRITE_FILE(S["feature_breasts_size"], features["breasts_size"])