diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm
index ef7e9ea8ee9..b27093934e0 100644
--- a/code/datums/outfits/outfit.dm
+++ b/code/datums/outfits/outfit.dm
@@ -127,7 +127,8 @@ var/list/outfits_decls_by_type_
if(gloves)
H.equip_to_slot_or_del(new gloves(H),slot_gloves)
if(shoes)
- H.equip_to_slot_or_del(new shoes(H),slot_shoes)
+ if(!(H.client?.prefs?.shoe_hater)) //RS ADD
+ H.equip_to_slot_or_del(new shoes(H),slot_shoes)
if(mask)
H.equip_to_slot_or_del(new mask(H),slot_wear_mask)
if(head)
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index 8f1f409b66a..6091fc0e7b3 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -430,6 +430,8 @@ var/global/datum/controller/occupations/job_master
//if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
// custom_equip_leftovers += thing
//else
+ if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD
+ continue
if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot))
to_chat(H, "Equipping you with \the [thing]!")
if(G.slot != slot_tie)
@@ -455,6 +457,8 @@ var/global/datum/controller/occupations/job_master
// If some custom items could not be equipped before, try again now.
for(var/thing in custom_equip_leftovers)
var/datum/gear/G = gear_datums[thing]
+ if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD
+ continue
if(G.slot in custom_equip_slots)
spawn_in_storage += thing
else
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index be0cc95a40a..692e4f7d57b 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -13,6 +13,7 @@
S["pdachoice"] >> pref.pdachoice
S["communicator_visibility"] >> pref.communicator_visibility
S["ringtone"] >> pref.ringtone
+ S["shoe_hater"] >> pref.shoe_hater //RS ADD
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
S["all_underwear"] << pref.all_underwear
@@ -21,6 +22,7 @@
S["pdachoice"] << pref.pdachoice
S["communicator_visibility"] << pref.communicator_visibility
S["ringtone"] << pref.ringtone
+ S["shoe_hater"] << pref.shoe_hater //RS ADD
var/global/list/valid_ringtones = list(
"beep",
@@ -120,6 +122,7 @@ var/global/list/valid_ringtones = list(
. += "PDA Type: [pdachoicelist[pref.pdachoice]]
"
. += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
"
. += "Ringtone (leave blank for job default): [pref.ringtone]
"
+ . += "Spawn With Shoes:[(pref.shoe_hater) ? "No" : "Yes"]
" //RS Addition
return jointext(.,null)
@@ -188,5 +191,10 @@ var/global/list/valid_ringtones = list(
else
pref.ringtone = choice
return TOPIC_REFRESH
+ else if(href_list["toggle_shoes"]) //RS ADD START
+ if(CanUseTopic(user))
+ pref.shoe_hater = !pref.shoe_hater
+ return TOPIC_REFRESH
+ //RS ADD END
return ..()
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 275c1b095cd..70a93c819bb 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -50,6 +50,7 @@ var/list/preferences_datums = list()
var/blood_reagents = "default" //blood restoration reagents
var/backbag = 2 //backpack type
var/pdachoice = 1 //PDA type
+ var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes
var/h_style = "Bald" //Hair type
var/r_hair = 0 //Hair color
var/g_hair = 0 //Hair color