diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index a5ad770e..9d316abf 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -284,3 +284,5 @@
#define NUKEOP_TRAIT "nuke-op"
#define MEGAFAUNA_TRAIT "megafauna"
#define DEATHSQUAD_TRAIT "deathsquad"
+#define HELPLESSNESS_TRAIT "helplessness"
+
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 09c6dbdd..c8cebeb0 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1073,16 +1073,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
"
dat += "
GS13 Helplessness Preferences
"
- dat += "No Movement:[helplessness_no_movement == FALSE ? "Disabled" : helplessness_no_movement]
)"
- dat += "Clumsy:[helplessness_clumsy == FALSE ? "Disabled" : helplessness_clumsy]
)"
- dat += "Nearsighted:[helplessness_nearsighted == FALSE ? "Disabled" : helplessness_nearsighted]
)"
- dat += "Hidden Face:[helplessness_hidden_face == FALSE ? "Disabled" : helplessness_hidden_face]
)"
- dat += "Mute:[helplessness_mute == FALSE ? "Disabled" : helplessness_mute]
)"
- dat += "Immobile Arms:[helplessness_immobile_arms == FALSE ? "Disabled" : helplessness_immobile_arms]
)"
- dat += "Clothing Jumpsuit:[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]
)"
- dat += "Clothing Misc:[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]
)"
- dat += "Clothing Back:[helplessness_clothing_back == FALSE ? "Disabled" : helplessness_clothing_back]
)"
- dat += "No Buckle:[helplessness_no_buckle == FALSE ? "Disabled" : helplessness_no_buckle]
)"
+ dat += "No Movement:[helplessness_no_movement == FALSE ? "Disabled" : helplessness_no_movement]
"
+ dat += "Clumsy:[helplessness_clumsy == FALSE ? "Disabled" : helplessness_clumsy]
"
+ dat += "Nearsighted:[helplessness_nearsighted == FALSE ? "Disabled" : helplessness_nearsighted]
"
+ dat += "Hidden Face:[helplessness_hidden_face == FALSE ? "Disabled" : helplessness_hidden_face]
"
+ dat += "Mute:[helplessness_mute == FALSE ? "Disabled" : helplessness_mute]
"
+ dat += "Immobile Arms:[helplessness_immobile_arms == FALSE ? "Disabled" : helplessness_immobile_arms]
"
+ dat += "Clothing Jumpsuit:[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]"
+ dat += "Clothing Misc:[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]
"
+ dat += "Clothing Back:[helplessness_clothing_back == FALSE ? "Disabled" : helplessness_clothing_back]
"
+ dat += "No Buckle:[helplessness_no_buckle == FALSE ? "Disabled" : helplessness_no_buckle]
"
//Add the Hyper stuff below here
dat += "Hyper Preferences
"
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 08782217..11d01b06 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1354,7 +1354,21 @@ GLOBAL_LIST_EMPTY(roundstart_races)
ADD_TRAIT(H, trait_gain, OBESITY)
update_body_size(H, 1)
+/datum/species/proc/handle_helplessness(mob/living/carbon/human/fatty)
+ var/datum/preferences/preferences = fatty?.client?.prefs
+ if(!istype(preferences))
+ return FALSE
+
+ if(preferences.helplessness_clumsy)
+ if(!HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT))
+ if(fatty.fatness >= preferences.helplessness_clumsy)
+ ADD_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
+
+ else if(fatty.fatness < preferences.helplessness_clumsy)
+ REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
+
/datum/species/proc/handle_fatness(mob/living/carbon/human/H)
+ handle_helplessness(H)
if(HAS_TRAIT(H, TRAIT_BLOB))
handle_fatness_trait(
H,