diff --git a/GainStation13/code/datums/diseases/advance/symptoms/berry.dm b/GainStation13/code/datums/diseases/advance/symptoms/berry.dm
new file mode 100644
index 00000000..59a232f3
--- /dev/null
+++ b/GainStation13/code/datums/diseases/advance/symptoms/berry.dm
@@ -0,0 +1,91 @@
+/datum/symptom/berry
+ name = "Berrification"
+ desc = "The virus causes the host's biology to overflow with a blue substance. Infection ends if the substance is completely removed from their body, besides ordinary cures."
+ stealth = -5
+ resistance = -4
+ stage_speed = 1
+ transmittable = 6
+ level = 7
+ severity = 5
+ base_message_chance = 100
+ symptom_delay_min = 15
+ symptom_delay_max = 45
+ threshold_desc = list(
+ "Stage Speed" = "Increases the rate of liquid production.",
+ )
+ var/datum/reagent/infection_reagent = /datum/reagent/berry_juice_infection
+
+/datum/symptom/berry/Start(datum/disease/advance/A)
+ if(!..())
+ return
+ if(A.affected_mob?.client?.prefs?.blueberry_inflation)
+ A.affected_mob.reagents.add_reagent(infection_reagent, max(1, A.properties["stage_rate"]) * 10)
+ ..()
+
+/datum/symptom/berry/Activate(datum/disease/advance/A)
+ if(!..())
+ return
+ var/mob/living/carbon/M = A.affected_mob
+ if(!(M?.client?.prefs?.blueberry_inflation))
+ return
+ if(M.reagents.get_reagent_amount(infection_reagent) <= 0)
+ A.remove_disease()
+ switch(A.stage)
+ if(1, 2, 3, 4)
+ if(prob(base_message_chance))
+ to_chat(M, "[pick("You feel oddly full...", "Your stomach churns...", "You hear a gurgle...", "You taste berries...")]")
+ else
+ to_chat(M, "[pick("A deep slosh comes from inside you...", "Your mind feels so light...", "You think blue really suits you...", "Your skin feels so tight...")]")
+ M.reagents.add_reagent(infection_reagent, max(A.properties["stage_rate"], 1))
+
+/datum/reagent/berry_juice_infection
+ name = "Blueberry Juice"
+ description = "Totally infectious."
+ reagent_state = LIQUID
+ metabolization_rate = 0.25 * REAGENTS_METABOLISM
+ color = "#0004ff"
+ var/picked_color
+ var/list/random_color_list = list("#0058db","#5d00c7","#0004ff","#0057e7")
+ taste_description = "blueberry pie"
+ var/no_mob_color = FALSE
+ value = 10 //it sells. Make that berry factory
+
+/datum/reagent/berry_juice_infection/on_mob_add(mob/living/L, amount)
+ if(iscarbon(L))
+ var/mob/living/carbon/affected_mob = L
+ if(!(affected_mob?.client?.prefs?.blueberry_inflation))
+ affected_mob.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
+ return
+ picked_color = pick(random_color_list)
+ affected_mob.fat_hide(affected_mob.fatness_real + ((3 * (volume * volume))/50), src)
+ else
+ L.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
+ ..()
+
+/datum/reagent/berry_juice_infection/on_mob_life(mob/living/carbon/M)
+ if(!(M?.client?.prefs?.blueberry_inflation))
+ M.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
+ return
+ if(!no_mob_color)
+ M.add_atom_colour(picked_color, WASHABLE_COLOUR_PRIORITY)
+ M.fat_hide(M.fatness_real + ((3 * (volume * volume))/50), src)
+ M.adjust_fatness(1, FATTENING_TYPE_CHEM)
+ ..()
+
+/datum/reagent/berry_juice_infection/on_mob_delete(mob/living/L)
+ if(!iscarbon(L))
+ return
+ var/mob/living/carbon/C = L
+ C.fat_show()
+
+/obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target)
+ if(M.reagents.get_reagent_amount(/datum/reagent/berry_juice_infection) > 0 && (reagents.total_volume + min(amount_per_transfer_from_this, 10)) <= volume)
+ reagents.add_reagent(/datum/reagent/berry_juice_infection, min(10, amount_per_transfer_from_this))
+ M.reagents.remove_reagent(/datum/reagent/berry_juice_infection, min(10, amount_per_transfer_from_this))
+ if(M != user)
+ to_chat(user, "You juice [M.name]...")
+ to_chat(M, "[user.name] juices you...")
+ else
+ to_chat(user, "You get some juice out of you...")
+ return
+ ..()
diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm
index c104c18a..3a3e920c 100644
--- a/GainStation13/code/modules/client/preferences/preferences.dm
+++ b/GainStation13/code/modules/client/preferences/preferences.dm
@@ -13,6 +13,8 @@
var/weight_gain_magic = FALSE
///Weight gain from viruses
var/weight_gain_viruses = FALSE
+ ///Blueberry Inflation
+ var/blueberry_inflation = FALSE
///Extreme weight gain
var/weight_gain_extreme = FALSE
///stuckage
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index c94989ca..96e2798b 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -55,7 +55,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
- GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment")
+ GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment", "Berry Juice")
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")
for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index a04265a6..a33d2a3c 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -895,6 +895,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Honey"
if(/datum/reagent/consumable/nutriment)
dat += "Nutriment"
+ if(/datum/reagent/berry_juice_infection)
+ dat += "Berry Juice"
else
dat += "Nothing?"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -944,6 +946,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Strawberry Milk"
if(/datum/reagent/consumable/nutriment)
dat += "Nutriment"
+ if(/datum/reagent/berry_juice_infection)
+ dat += "Berry Juice"
else
dat += "Nothing?"
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
@@ -1059,6 +1063,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Weight Gain - Weapons:[weight_gain_weapons == TRUE ? "Enabled" : "Disabled"]
"
dat += "Weight Gain - Magic:[weight_gain_magic == TRUE ? "Enabled" : "Disabled"]
"
dat += "Weight Gain - Viruses:[weight_gain_viruses == TRUE ? "Enabled" : "Disabled"]
"
+ dat += "Blueberry Inflation:[blueberry_inflation == TRUE ? "Enabled" : "Disabled"]
"
dat += "