diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm
index 09748049..f7f591be 100644
--- a/GainStation13/code/modules/client/preferences/preferences.dm
+++ b/GainStation13/code/modules/client/preferences/preferences.dm
@@ -16,3 +16,6 @@
///Does the person wish to be involved with non-con weight gain events?
var/noncon_weight_gain = FALSE
+
+ ///What is the max weight that the person wishes to be? If set to FALSE, there will be no max weight
+ var/max_weight = FALSE
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 1493274d..2493ab15 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1020,6 +1020,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
"
//GS13 stuff goes here
dat += "
GS13 Preferences
"
+
+ dat += "Maximum Weight:[max_weight == FALSE ? "None" : max_weight]
"
dat += "NonCon - Weight Gain:[noncon_weight_gain == TRUE ? "Enabled" : "Disabled"]
"
dat += "GS13 Weight Gain
"
@@ -2559,6 +2561,30 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("noncon_weight_gain")
noncon_weight_gain = !noncon_weight_gain
+ if("max_fatness")
+ var/pickedweight = input(user, "Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit", "Character Preference", "None") as null|anything in list("None", "Fat", "Fatter", "Very Fat", "Obese", "Morbidly Obese", "Extremely Obese", "Barely Mobile", "Immobile")
+ if(pickedweight)
+ switch(pickedweight)
+ if("None")
+ max_weight = FALSE
+ if("Fat")
+ max_weight = FATNESS_LEVEL_FATTER
+ if("Fatter")
+ max_weight = FATNESS_LEVEL_VERYFAT
+ if("Very Fat")
+ max_weight = FATNESS_LEVEL_OBESE
+ if("Obese")
+ max_weight = FATNESS_LEVEL_MORBIDLY_OBESE
+ if("Morbidly Obese")
+ max_weight = FATNESS_LEVEL_EXTREMELY_OBESE
+ if("Extremely Obese")
+ max_weight = FATNESS_LEVEL_BARELYMOBILE
+ if("Barely Mobile")
+ max_weight = FATNESS_LEVEL_IMMOBILE
+ if("Immobile")
+ max_weight = FATNESS_LEVEL_BLOB
+
+
if("inflatable_belly")
features["inflatable_belly"] = !features["inflatable_belly"]
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 47b6893a..43e5f64d 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -154,6 +154,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["weight_gain_viruses"] >> weight_gain_viruses
S["weight_gain_weapons"] >> weight_gain_weapons
S["noncon_weight_gain"] >> noncon_weight_gain
+ S["max_weight"] >> max_weight
+
//try to fix any outdated data if necessfary
if(needs_update >= 0)
@@ -285,6 +287,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["weight_gain_chems"], weight_gain_chems)
WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons)
WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
+ WRITE_FILE(S["max_weight"], max_weight)
return 1