diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm
index d6bfb03523..a7a5a9a95a 100644
--- a/GainStation13/code/modules/client/preferences/preferences.dm
+++ b/GainStation13/code/modules/client/preferences/preferences.dm
@@ -64,6 +64,12 @@
///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
+ var/starting_weight = 0 //how thicc you wanna be at start
+ var/permanent_fat = 0 //If it isn't the consequences of your own actions
+ var/wg_rate = 0.5
+ var/wl_rate = 0.5
+ var/ckeyslot
+
/// Prompts the user to choose a weight and returns said weight.
/datum/preferences/proc/chose_weight(input_text = "Choose a weight.", mob/user)
var/chosen_weight = FALSE
@@ -74,7 +80,7 @@
switch(picked_weight_class)
if("Fat")
- chosen_weight = FATNESS_LEVEL_FATTER
+ chosen_weight = FATNESS_LEVEL_FATTER
if("Fatter")
chosen_weight = FATNESS_LEVEL_VERYFAT
if("Very Fat")
@@ -89,13 +95,12 @@
chosen_weight = FATNESS_LEVEL_IMMOBILE
if("Immobile")
chosen_weight = FATNESS_LEVEL_BLOB
-
+
if(picked_weight_class != "Other")
return chosen_weight
-
+
var/custom_fatness = input(user, "What fatness level (BFI) would you like to use?", "Character Preference") as null|num
if(isnull(custom_fatness))
custom_fatness = FALSE
return custom_fatness
-
\ No newline at end of file
diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm
index e4e784c039..eb4aeb0a52 100644
--- a/code/__DEFINES/loadout.dm
+++ b/code/__DEFINES/loadout.dm
@@ -106,6 +106,7 @@
#define GAME_PREFS_TAB 0
#define OOC_PREFS_TAB 1
#define CONTENT_PREFS_TAB 2
+#define GS13_PREFS_TAB 3
//quirks
#define QUIRK_POSITIVE "Positive"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 48a681bc7b..3c6faac42e 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1068,6 +1068,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "General"
dat += "OOC"
dat += "Content"
+ dat += "GS13"
dat += ""
dat += "
"
@@ -1305,6 +1306,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Ass Slapping: [(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"]
"
dat += "Automatic Wagging: [(cit_toggles & NO_AUTO_WAG) ? "Disabled" : "Enabled"]
"
dat += ""
+ if(GS13_PREFS_TAB)
if(KEYBINDINGS_TAB) // Custom keybindings
dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Input"]
"
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 8e21730525..db2f1a331e 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -916,6 +916,38 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(json_from_file)
belly_prefs = json_from_file["belly_prefs"]
+ //GS13 code preferences
+ S["weight_gain_food"] >> weight_gain_food
+ S["weight_gain_chems"] >> weight_gain_chems
+ S["weight_gain_items"] >> weight_gain_items
+ S["weight_gain_magic"] >> weight_gain_magic
+ S["weight_gain_viruses"] >> weight_gain_viruses
+ S["weight_gain_nanites"] >> weight_gain_nanites
+ S["weight_gain_weapons"] >> weight_gain_weapons
+ S["weight_gain_extreme"] >> weight_gain_extreme
+ S["weight_gain_persistent"] >> weight_gain_persistent
+ S["weight_gain_permanent"] >> weight_gain_permanent
+ S["wg_rate"] >> wg_rate
+ S["wl_rate"] >> wl_rate
+ S["noncon_weight_gain"] >> noncon_weight_gain
+ S["bot_feeding"] >> bot_feeding
+ S["max_weight"] >> max_weight
+ S["helplessness_no_movement"] >> helplessness_no_movement
+ S["helplessness_clumsy"] >> helplessness_clumsy
+ S["helplessness_nearsighted"] >> helplessness_nearsighted
+ S["helplessness_hidden_face"] >> helplessness_hidden_face
+ S["helplessness_mute"] >> helplessness_mute
+ S["helplessness_immobile_arms"] >> helplessness_immobile_arms
+ S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit
+ S["helplessness_clothing_misc"] >> helplessness_clothing_misc
+ S["helplessness_clothing_back"] >> helplessness_clothing_back
+ S["helplessness_no_buckle"] >> helplessness_no_buckle
+ S["stuckage"] >> stuckage
+ S["chair_breakage"] >> chair_breakage
+ S["fatness_vulnerable"] >> fatness_vulnerable
+ S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable
+ S["blueberry_inflation"] >> blueberry_inflation
+
//gear loadout
if(S["loadout"])
loadout_data = safe_json_decode(S["loadout"])
@@ -1224,6 +1256,38 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_hide_belly"], features["hide_belly"])
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
+ //GS13 PREFS
+ WRITE_FILE(S["weight_gain_food"], weight_gain_food)
+ WRITE_FILE(S["weight_gain_items"], weight_gain_items)
+ WRITE_FILE(S["weight_gain_magic"], weight_gain_magic)
+ WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses)
+ WRITE_FILE(S["weight_gain_nanites"], weight_gain_nanites)
+ WRITE_FILE(S["weight_gain_chems"], weight_gain_chems)
+ WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons)
+ WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme)
+ WRITE_FILE(S["weight_gain_persistent"], weight_gain_persistent)
+ WRITE_FILE(S["weight_gain_permanent"], weight_gain_permanent)
+ WRITE_FILE(S["wg_rate"], wg_rate)
+ WRITE_FILE(S["wl_rate"], wl_rate)
+ WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
+ WRITE_FILE(S["bot_feeding"], bot_feeding)
+ WRITE_FILE(S["max_weight"], max_weight)
+ WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement)
+ WRITE_FILE(S["helplessness_clumsy"], helplessness_clumsy)
+ WRITE_FILE(S["helplessness_nearsighted"], helplessness_nearsighted)
+ WRITE_FILE(S["helplessness_hidden_face"], helplessness_hidden_face)
+ WRITE_FILE(S["helplessness_mute"], helplessness_mute)
+ WRITE_FILE(S["helplessness_immobile_arms"], helplessness_immobile_arms)
+ WRITE_FILE(S["helplessness_clothing_jumpsuit"], helplessness_clothing_jumpsuit)
+ WRITE_FILE(S["helplessness_clothing_misc"], helplessness_clothing_misc)
+ WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back)
+ WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle)
+ WRITE_FILE(S["stuckage"], stuckage)
+ WRITE_FILE(S["chair_breakage"], chair_breakage)
+ WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable)
+ WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable)
+ WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
+
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
WRITE_FILE(S["feature_color_scheme"], features["color_scheme"])