diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 481305d62b..d4eed921bd 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -216,7 +216,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Name: "
dat += "[real_name]
"
- dat += "Gender: [gender == MALE ? "Male" : "Female"]
"
+ dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
"
dat += "Age: [age]
"
dat += "Special Names:
"
@@ -254,7 +254,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
dat += "[TextPreview(features["flavor_text"])]...
"
dat += "
Body
"
- dat += "Gender: [gender == MALE ? "Male" : "Female"]
"
+ dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
"
dat += "Species:[pref_species.id]
"
dat += "Random Body
"
dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
"
@@ -1844,13 +1844,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(unlock_content)
toggles ^= MEMBER_PUBLIC
if("gender")
- if(gender == MALE)
- gender = FEMALE
- else
- gender = MALE
- underwear = random_underwear(gender)
- undershirt = random_undershirt(gender)
- socks = random_socks()
+ var/chosengender = input(user, "Select your character's gender.", "Gender Selection", gender) in list(MALE,FEMALE,"nonbinary","object")
+ switch(chosengender)
+ if("nonbinary")
+ chosengender = PLURAL
+ if("object")
+ chosengender = NEUTER
+ gender = chosengender
facial_hair_style = random_facial_hair_style(gender)
hair_style = random_hair_style(gender)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 8152f42efb..dbf782c5fe 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -349,7 +349,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//Sanitize
real_name = reject_bad_name(real_name)
- gender = sanitize_gender(gender)
+ gender = sanitize_gender(gender, TRUE, TRUE)
if(!real_name)
real_name = random_unique_name(gender)