diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 4252e1558b..6e5ea6f9b5 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -408,8 +408,9 @@ GLOBAL_LIST_EMPTY(species_datums)
override = TRUE
if(HAS_TRAIT(M, TRAIT_SIXTHSENSE))
override = TRUE
- if(SSticker.current_state == GAME_STATE_FINISHED)
- override = TRUE
+ if(CONFIG_GET(flag/reveal_everything))
+ if(SSticker.current_state == GAME_STATE_FINISHED)
+ override = TRUE
if(isnewplayer(M) && !override)
continue
if(M.stat != DEAD && !override)
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index c63c1e1136..ba726f39c4 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -249,8 +249,7 @@
for(var/m in GLOB.player_list)
var/mob/M = m
H.add_hud_to(M)
-
- CHECK_TICK
+ CHECK_TICK
//Set news report and mode result
mode.set_round_result()
@@ -274,8 +273,7 @@
// handle_hearts()
if(CONFIG_GET(flag/reveal_everything))
set_observer_default_invisibility(0, "The round is over! You are now visible to the living.")
-
- CHECK_TICK
+ CHECK_TICK
//These need update to actually reflect the real antagonists
//Print a list of antagonists to the server log
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 2d691149b6..9d92d08385 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -60,6 +60,7 @@ GLOBAL_PROTECT(admin_verbs_admin)
/client/proc/jumptokey, /*allows us to jump to the location of a mob with a certain ckey*/
/client/proc/jumptomob, /*allows us to jump to a specific mob*/
/client/proc/jumptoturf, /*allows us to jump to a specific turf*/
+ /client/proc/admin_end_shift, /*allows us to end the shift properly, also logs it*/
/client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/
/client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcom*/
// /client/proc/admin_disable_shuttle, /*allows us to disable the emergency shuttle admin-wise so that it cannot be called*/
@@ -232,6 +233,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
/client/proc/cmd_admin_headset_message,
/client/proc/cmd_admin_check_contents,
/datum/admins/proc/access_news_network,
+ /client/proc/admin_end_shift,
/client/proc/admin_call_shuttle,
/client/proc/admin_cancel_shuttle,
/client/proc/cmd_admin_direct_narrate,
diff --git a/html/changelog.html b/html/changelog.html
index b1254a6e60..8dcb0b3d2f 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -57,6 +57,11 @@
SandPoot updated:
+ SandPoot updated:
+
+ - Admins have a special shiny button to end the round ic.
+ - No longer calling CHECK_TICKs for no reason.
+ - If reveal everything is false, ghosts can no longer speak to the living when the round ends.
- Added an outline color theme for liteweb. (used when you don't pick a color)
- You can once again see your previews for picking target bodyparts on your hud.
- Stuff on your other ear is no longer fire-proof.
@@ -74,6 +79,10 @@
- Heads of Staff, Minus the Captain and HOS, spawn with a weapon permit. The Bartender also spawns with one
- Captain, HOS and HOP spawn with a case of 20 weapon permits for distribution.
- added in permit, compermit and barpermit
+ SandPoot and The Last Hosea2 updated:
+
+ - Added new clothing items including hats, some shoes and a duster! They're available on the loadout and vendors.
+ - Deletes file duplicates that were in the wrong place.
29 January 2022
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 2ffe1f61aa..2989869210 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -31613,6 +31613,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
BongaTheProto:
- bugfix: Hilbert's hotel atmos system shouldn't runtime anymore
SandPoot:
+ - rscadd: Admins have a special shiny button to end the round ic.
+ - bugfix: No longer calling CHECK_TICKs for no reason.
+ - config: If reveal everything is false, ghosts can no longer speak to the living
+ when the round ends.
- rscadd: Added an outline color theme for liteweb. (used when you don't pick a
color)
- bugfix: You can once again see your previews for picking target bodyparts on your
@@ -31620,3 +31624,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: Stuff on your other ear is no longer fire-proof.
- bugfix: Your items no longer go invisble if you cycle through hud modes or reconnect
into the game.
+ SandPoot and The Last Hosea2:
+ - rscadd: Added new clothing items including hats, some shoes and a duster! They're
+ available on the loadout and vendors.
+ - rscdel: Deletes file duplicates that were in the wrong place.
diff --git a/modular_sand/code/modules/admin/verbs/randomverbs.dm b/modular_sand/code/modules/admin/verbs/randomverbs.dm
new file mode 100644
index 0000000000..5bb62c4415
--- /dev/null
+++ b/modular_sand/code/modules/admin/verbs/randomverbs.dm
@@ -0,0 +1,20 @@
+/client/proc/admin_end_shift()
+ set category = "Admin.Events"
+ set name = "End shift"
+ set desc = "Calls the shuttle as if a roundend vote passed."
+
+ if(EMERGENCY_AT_LEAST_DOCKED)
+ return
+
+ if(!check_rights(R_ADMIN))
+ return
+
+ var/confirm = alert(src, "End the shift?", "Confirm", "Yes", "No")
+ if(confirm != "Yes")
+ return
+
+ SSshuttle.autoEnd()
+ SSblackbox.record_feedback("tally", "admin_verb", 1, "End Shift") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+ log_admin("[key_name(usr)] ended the shift.")
+ message_admins("[key_name_admin(usr)] ended the shift.")
+ return
diff --git a/modular_sand/code/modules/client/loadout/_security.dm b/modular_sand/code/modules/client/loadout/_security.dm
new file mode 100644
index 0000000000..be2d6399aa
--- /dev/null
+++ b/modular_sand/code/modules/client/loadout/_security.dm
@@ -0,0 +1,48 @@
+/datum/gear/head/brodie
+ name = "Brodie"
+ subcategory = LOADOUT_SUBCATEGORY_HEAD_JOBS
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet."
+ path = /obj/item/clothing/head/helmet/brodie
+ restricted_roles = list("Security Officer", "Warden", "Head of Security")
+
+/datum/gear/head/brodie/medic
+ name = "Medical Brodie"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has a cross indicating the wearer is a doctor."
+ path = /obj/item/clothing/head/helmet/brodie/medic
+
+/datum/gear/head/brodie/irish
+ name = "Irish Brodie"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has a cross indicating the wearer is an Irishman."
+ path = /obj/item/clothing/head/helmet/brodie/irish
+
+/datum/gear/head/brodie/nettan
+ name = "Netted Brodie"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has netting over it."
+ path = /obj/item/clothing/head/helmet/brodie/nettan
+
+/datum/gear/head/brodie/nettanf
+ name = "Brodie with a net and leaves"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has netting and leaves over it."
+ path = /obj/item/clothing/head/helmet/brodie/nettanf
+
+/datum/gear/head/brodie/netgreen
+ name = "Green netted Brodie"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has green netting over it."
+ path = /obj/item/clothing/head/helmet/brodie/netgreen
+
+/datum/gear/head/brodie/netgreenf
+ name = "Green netted Brodie with leaves"
+ description = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has green netting and leaves over it."
+ path = /obj/item/clothing/head/helmet/brodie/netgreenf
+
+/datum/gear/shoes/puttee
+ name = "Puttee Boots"
+ description = "A World War 1 era set of wool british puttees wrapped over the leg and boots."
+ path = /obj/item/clothing/shoes/jackboots/puttee
+ restricted_roles = list("Security Officer", "Warden", "Head of Security")
diff --git a/modular_sand/code/modules/client/loadout/head.dm b/modular_sand/code/modules/client/loadout/head.dm
new file mode 100644
index 0000000000..7ab2dda314
--- /dev/null
+++ b/modular_sand/code/modules/client/loadout/head.dm
@@ -0,0 +1,14 @@
+/datum/gear/head/slouch
+ name = "Slouch hat"
+ description = "An Australian Military slouch hat with one side turned up... Smells faintly of Kangaroos."
+ path = /obj/item/clothing/head/slouch_hat
+
+/datum/gear/head/lawdog
+ name = "Law dog"
+ description = "Hat of the old west law bringers like bass reeves and wyatt erp."
+ path = /obj/item/clothing/head/lawdog
+
+/datum/gear/head/gunfighter
+ name = "Gun fighter"
+ description = "One hell of a bastard wears this hat upon their head... with its hat band made out of bullet casings folks can tell you mean business."
+ path = /obj/item/clothing/head/gunfighter
diff --git a/modular_sand/code/modules/client/loadout/suit.dm b/modular_sand/code/modules/client/loadout/suit.dm
new file mode 100644
index 0000000000..be93382e3f
--- /dev/null
+++ b/modular_sand/code/modules/client/loadout/suit.dm
@@ -0,0 +1,5 @@
+/datum/gear/suit/duster
+ name = "Oilskin duster"
+ subcategory = LOADOUT_SUBCATEGORY_SUIT_COATS
+ description = "A Long Duster coat with the iconic shoulder cape, Commonly used for rainy days and dusty dry days by cowboys."
+ path = /obj/item/clothing/suit/jacket/duster
diff --git a/modular_sand/code/modules/clothing/head/helmet.dm b/modular_sand/code/modules/clothing/head/helmet.dm
new file mode 100644
index 0000000000..a6c7230bfe
--- /dev/null
+++ b/modular_sand/code/modules/clothing/head/helmet.dm
@@ -0,0 +1,51 @@
+/obj/item/clothing/head/helmet/brodie
+ name = "Brodie"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet."
+ icon = 'modular_sand/icons/obj/clothing/hats.dmi'
+ icon_state = "brodie"
+ item_state = "brodie"
+ mob_overlay_icon = 'modular_sand/icons/mob/clothing/head.dmi'
+ mutantrace_variation = STYLE_NO_ANTHRO_ICON
+ flags_cover = null // Doesn't cover eyes.
+
+/obj/item/clothing/head/helmet/brodie/medic
+ name = "Medical Brodie"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has a cross indicating the wearer is a doctor."
+ icon_state = "brodie_medic"
+ item_state = "brodie_medic"
+
+/obj/item/clothing/head/helmet/brodie/irish
+ name = "Irish Brodie"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has a cross indicating the wearer is an Irishman."
+ icon_state = "brodie_irish"
+ item_state = "brodie_irish"
+
+/obj/item/clothing/head/helmet/brodie/nettan
+ name = "Netted Brodie"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has netting over it."
+ icon_state = "brodie_nettan"
+ item_state = "brodie_nettan"
+
+/obj/item/clothing/head/helmet/brodie/nettanf
+ name = "Brodie with a net and leaves"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has netting and leaves over it."
+ icon_state = "brodie_nettanf"
+ item_state = "brodie_nettanf"
+
+/obj/item/clothing/head/helmet/brodie/netgreen
+ name = "Green netted Brodie"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has green netting over it."
+ icon_state = "brodie_netgreen"
+ item_state = "brodie_netgreen"
+
+/obj/item/clothing/head/helmet/brodie/netgreenf
+ name = "Green netted Brodie with leaves"
+ desc = "The Brodie helmet is a steel combat helmet also known as the battle bowler. A World War 1 and 2 era British and commonwealth helmet\n\
+ This one has green netting and leaves over it."
+ icon_state = "brodie_netgreenf"
+ item_state = "brodie_netgreenf"
diff --git a/modular_sand/code/modules/clothing/head/misc.dm b/modular_sand/code/modules/clothing/head/misc.dm
index 8d93981414..4b011f3e53 100644
--- a/modular_sand/code/modules/clothing/head/misc.dm
+++ b/modular_sand/code/modules/clothing/head/misc.dm
@@ -1,51 +1,26 @@
-/obj/item/clothing/head/goatpelt
- name = "goat pelt hat"
- desc = "Fuzzy and Warm!"
+/obj/item/clothing/head/slouch_hat
+ name = "Slouch hat"
+ desc = "An Australian Military slouch hat with one side turned up... Smells faintly of Kangaroos."
icon = 'modular_sand/icons/obj/clothing/hats.dmi'
- icon_state = "goatpelt"
+ icon_state = "slouch"
+ item_state = "slouch"
mob_overlay_icon = 'modular_sand/icons/mob/clothing/head.dmi'
mutantrace_variation = STYLE_NO_ANTHRO_ICON
- item_state = "goatpelt"
-/obj/item/clothing/head/goatpelt/king
- name = "king goat pelt hat"
- desc = "Fuzzy, Warm and Robust!"
- icon_state = "goatpelt"
- item_state = "goatpelt"
- color = "#ffd700"
- body_parts_covered = HEAD
- armor = list("melee" = 60, "bullet" = 55, "laser" = 55, "energy" = 45, "bomb" = 100, "bio" = 20, "rad" = 20, "fire" = 100, "acid" = 100)
- dog_fashion = null
- resistance_flags = FIRE_PROOF
-
-/obj/item/clothing/head/goatpelt/king/equipped(mob/living/carbon/human/user, slot)
- ..()
- if (slot == ITEM_SLOT_HEAD)
- user.faction |= "goat"
-
-/obj/item/clothing/head/goatpelt/king/dropped(mob/living/carbon/human/user)
- if (user.head == src)
- user.faction -= "goat"
- ..()
-
-/obj/item/clothing/head/goatpope
- name = "goat pope hat"
- desc = "And on the seventh day King Goat said there will be cabbage!"
- mob_overlay_icon = 'modular_sand/icons/mob/large-worn-icons/64x64/head.dmi'
- mutantrace_variation = STYLE_NO_ANTHRO_ICON
+/obj/item/clothing/head/lawdog
+ name = "Law dog"
+ desc = "Hat of the old west law bringers like bass reeves and wyatt erp."
icon = 'modular_sand/icons/obj/clothing/hats.dmi'
- icon_state = "goatpope"
- item_state = "goatpope"
- worn_x_dimension = 64
- worn_y_dimension = 64
- resistance_flags = FLAMMABLE
+ icon_state = "lawdog"
+ item_state = "lawdog"
+ mob_overlay_icon = 'modular_sand/icons/mob/clothing/head.dmi'
+ mutantrace_variation = STYLE_NO_ANTHRO_ICON
-/obj/item/clothing/head/goatpope/equipped(mob/living/carbon/human/user, slot)
- ..()
- if (slot == ITEM_SLOT_HEAD)
- user.faction |= "goat"
-
-/obj/item/clothing/head/goatpope/dropped(mob/living/carbon/human/user, slot)
- if (user.head == src)
- user.faction -= "goat"
- ..()
+/obj/item/clothing/head/gunfighter
+ name = "Gun fighter"
+ desc = "One hell of a bastard wears this hat upon their head... with its hat band made out of bullet casings folks can tell you mean business."
+ icon = 'modular_sand/icons/obj/clothing/hats.dmi'
+ icon_state = "gunfighter"
+ item_state = "gunfighter"
+ mob_overlay_icon = 'modular_sand/icons/mob/clothing/head.dmi'
+ mutantrace_variation = STYLE_NO_ANTHRO_ICON
diff --git a/modular_sand/code/modules/clothing/head/misc_special.dm b/modular_sand/code/modules/clothing/head/misc_special.dm
new file mode 100644
index 0000000000..8d93981414
--- /dev/null
+++ b/modular_sand/code/modules/clothing/head/misc_special.dm
@@ -0,0 +1,51 @@
+/obj/item/clothing/head/goatpelt
+ name = "goat pelt hat"
+ desc = "Fuzzy and Warm!"
+ icon = 'modular_sand/icons/obj/clothing/hats.dmi'
+ icon_state = "goatpelt"
+ mob_overlay_icon = 'modular_sand/icons/mob/clothing/head.dmi'
+ mutantrace_variation = STYLE_NO_ANTHRO_ICON
+ item_state = "goatpelt"
+
+/obj/item/clothing/head/goatpelt/king
+ name = "king goat pelt hat"
+ desc = "Fuzzy, Warm and Robust!"
+ icon_state = "goatpelt"
+ item_state = "goatpelt"
+ color = "#ffd700"
+ body_parts_covered = HEAD
+ armor = list("melee" = 60, "bullet" = 55, "laser" = 55, "energy" = 45, "bomb" = 100, "bio" = 20, "rad" = 20, "fire" = 100, "acid" = 100)
+ dog_fashion = null
+ resistance_flags = FIRE_PROOF
+
+/obj/item/clothing/head/goatpelt/king/equipped(mob/living/carbon/human/user, slot)
+ ..()
+ if (slot == ITEM_SLOT_HEAD)
+ user.faction |= "goat"
+
+/obj/item/clothing/head/goatpelt/king/dropped(mob/living/carbon/human/user)
+ if (user.head == src)
+ user.faction -= "goat"
+ ..()
+
+/obj/item/clothing/head/goatpope
+ name = "goat pope hat"
+ desc = "And on the seventh day King Goat said there will be cabbage!"
+ mob_overlay_icon = 'modular_sand/icons/mob/large-worn-icons/64x64/head.dmi'
+ mutantrace_variation = STYLE_NO_ANTHRO_ICON
+ icon = 'modular_sand/icons/obj/clothing/hats.dmi'
+ icon_state = "goatpope"
+ item_state = "goatpope"
+ worn_x_dimension = 64
+ worn_y_dimension = 64
+ resistance_flags = FLAMMABLE
+
+/obj/item/clothing/head/goatpope/equipped(mob/living/carbon/human/user, slot)
+ ..()
+ if (slot == ITEM_SLOT_HEAD)
+ user.faction |= "goat"
+
+/obj/item/clothing/head/goatpope/dropped(mob/living/carbon/human/user, slot)
+ if (user.head == src)
+ user.faction -= "goat"
+ ..()
diff --git a/modular_sand/code/modules/clothing/masks/miscellaneous.dm b/modular_sand/code/modules/clothing/masks/miscellaneous.dm
index b1665df07e..01ba667e7f 100644
--- a/modular_sand/code/modules/clothing/masks/miscellaneous.dm
+++ b/modular_sand/code/modules/clothing/masks/miscellaneous.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/mask/sand //keep an eye on this boy, i want a it to be a hoodie for a cloak now.
name = "Sand mask"
desc = "The halo appears to be floating."
- icon = 'modular_sand/icons/obj/clothing/mask.dmi'
+ icon = 'modular_sand/icons/obj/clothing/masks.dmi'
icon_state = "sand"
item_state = "sand"
mob_overlay_icon = 'modular_sand/icons/mob/clothing/mask.dmi'
diff --git a/modular_sand/code/modules/clothing/shoes/miscellaneous.dm b/modular_sand/code/modules/clothing/shoes/miscellaneous.dm
new file mode 100644
index 0000000000..1c790e9e78
--- /dev/null
+++ b/modular_sand/code/modules/clothing/shoes/miscellaneous.dm
@@ -0,0 +1,8 @@
+/obj/item/clothing/shoes/jackboots/puttee
+ name = "Putte Boots"
+ desc = "A World War 1 era set of wool british puttees wrapped over the leg and boots."
+ icon = 'modular_sand/icons/obj/clothing/shoes.dmi'
+ icon_state = "puttee"
+ item_state = "puttee"
+ mob_overlay_icon = 'modular_sand/icons/mob/clothing/feet.dmi'
+ anthro_mob_worn_overlay = 'modular_sand/icons/mob/clothing/feet_digi.dmi'
diff --git a/modular_sand/code/modules/clothing/suits/miscellaneous.dm b/modular_sand/code/modules/clothing/suits/miscellaneous.dm
new file mode 100644
index 0000000000..7c117f826f
--- /dev/null
+++ b/modular_sand/code/modules/clothing/suits/miscellaneous.dm
@@ -0,0 +1,9 @@
+/obj/item/clothing/suit/jacket/duster
+ name = "Oilskin duster"
+ desc = "A Long Duster coat with the iconic shoulder cape, Commonly used for rainy days and dusty dry days by cowboys."
+ icon = 'modular_sand/icons/obj/clothing/suits.dmi'
+ icon_state = "duster"
+ item_state = "duster"
+ mob_overlay_icon = "modular_sand/icons/mob/clothing/suit.dmi"
+ body_parts_covered = CHEST|GROIN|ARMS|LEGS
+ cold_protection = CHEST|GROIN|ARMS|LEGS
diff --git a/modular_sand/code/modules/vending/clothesmate.dm b/modular_sand/code/modules/vending/clothesmate.dm
index 8339635ffc..c4d522cb57 100644
--- a/modular_sand/code/modules/vending/clothesmate.dm
+++ b/modular_sand/code/modules/vending/clothesmate.dm
@@ -1,5 +1,10 @@
/obj/machinery/vending/clothing/Initialize()
- products[/obj/item/clothing/head/wig] = 5
+ products += list(/obj/item/clothing/head/wig = 5,
+ /obj/item/clothing/suit/jacket/duster = 5,
+ /obj/item/clothing/head/slouch_hat = 5,
+ /obj/item/clothing/head/lawdog = 5,
+ /obj/item/clothing/head/gunfighter = 5
+ )
for(var/P in typesof(/datum/gear/underwear))
var/datum/gear/G = P
products[initial(G.path)] = 5
diff --git a/modular_sand/code/modules/vending/wardrobes.dm b/modular_sand/code/modules/vending/wardrobes.dm
new file mode 100644
index 0000000000..3b5f3e20ba
--- /dev/null
+++ b/modular_sand/code/modules/vending/wardrobes.dm
@@ -0,0 +1,5 @@
+/obj/machinery/vending/wardrobe/sec_wardrobe/Initialize(mapload)
+ products[/obj/item/clothing/shoes/jackboots/puttee] = 5
+ for(var/item in subtypesof(/obj/item/clothing/head/helmet/brodie))
+ products[item] = 5
+ . = ..()
diff --git a/modular_sand/icons/mob/clothing/feet.dmi b/modular_sand/icons/mob/clothing/feet.dmi
new file mode 100644
index 0000000000..79cb59931a
Binary files /dev/null and b/modular_sand/icons/mob/clothing/feet.dmi differ
diff --git a/modular_sand/icons/mob/clothing/feet_digi.dmi b/modular_sand/icons/mob/clothing/feet_digi.dmi
new file mode 100644
index 0000000000..5513d0f6ec
Binary files /dev/null and b/modular_sand/icons/mob/clothing/feet_digi.dmi differ
diff --git a/modular_sand/icons/mob/clothing/head.dmi b/modular_sand/icons/mob/clothing/head.dmi
index 5e7539eae8..bb0472ca29 100644
Binary files a/modular_sand/icons/mob/clothing/head.dmi and b/modular_sand/icons/mob/clothing/head.dmi differ
diff --git a/modular_sand/icons/mob/clothing/suit.dmi b/modular_sand/icons/mob/clothing/suit.dmi
index b250f0c247..d67f0be909 100644
Binary files a/modular_sand/icons/mob/clothing/suit.dmi and b/modular_sand/icons/mob/clothing/suit.dmi differ
diff --git a/modular_sand/icons/obj/clothing/hats.dmi b/modular_sand/icons/obj/clothing/hats.dmi
index 1a5b17aaf2..e393feeb57 100644
Binary files a/modular_sand/icons/obj/clothing/hats.dmi and b/modular_sand/icons/obj/clothing/hats.dmi differ
diff --git a/modular_sand/icons/obj/clothing/head_muzzled.dmi b/modular_sand/icons/obj/clothing/head_muzzled.dmi
deleted file mode 100644
index 07c078c353..0000000000
Binary files a/modular_sand/icons/obj/clothing/head_muzzled.dmi and /dev/null differ
diff --git a/modular_sand/icons/obj/clothing/mask.dmi b/modular_sand/icons/obj/clothing/mask.dmi
deleted file mode 100644
index 391e5674a5..0000000000
Binary files a/modular_sand/icons/obj/clothing/mask.dmi and /dev/null differ
diff --git a/modular_sand/icons/obj/clothing/masks.dmi b/modular_sand/icons/obj/clothing/masks.dmi
index 5473d67f40..da9c36c105 100644
Binary files a/modular_sand/icons/obj/clothing/masks.dmi and b/modular_sand/icons/obj/clothing/masks.dmi differ
diff --git a/modular_sand/icons/obj/clothing/shoes.dmi b/modular_sand/icons/obj/clothing/shoes.dmi
new file mode 100644
index 0000000000..5d1cb780b7
Binary files /dev/null and b/modular_sand/icons/obj/clothing/shoes.dmi differ
diff --git a/modular_sand/icons/obj/clothing/suits.dmi b/modular_sand/icons/obj/clothing/suits.dmi
index c6fe6f59e9..31c58f7724 100644
Binary files a/modular_sand/icons/obj/clothing/suits.dmi and b/modular_sand/icons/obj/clothing/suits.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 5e32398809..2d5eb6e159 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3971,6 +3971,7 @@
#include "modular_sand\code\game\turfs\simulated\floor\titanium_floor.dm"
#include "modular_sand\code\modules\admin\chat_commands.dm"
#include "modular_sand\code\modules\admin\verbs\fix_air.dm"
+#include "modular_sand\code\modules\admin\verbs\randomverbs.dm"
#include "modular_sand\code\modules\arousal\arousal.dm"
#include "modular_sand\code\modules\arousal\creampie.dm"
#include "modular_sand\code\modules\arousal\genitals.dm"
@@ -3994,25 +3995,31 @@
#include "modular_sand\code\modules\client\asset_cache.dm"
#include "modular_sand\code\modules\client\preferences.dm"
#include "modular_sand\code\modules\client\preferences_savefile.dm"
+#include "modular_sand\code\modules\client\loadout\_security.dm"
#include "modular_sand\code\modules\client\loadout\accessories.dm"
#include "modular_sand\code\modules\client\loadout\backpack.dm"
#include "modular_sand\code\modules\client\loadout\boxers.dm"
#include "modular_sand\code\modules\client\loadout\hands.dm"
+#include "modular_sand\code\modules\client\loadout\head.dm"
#include "modular_sand\code\modules\client\loadout\shirts.dm"
#include "modular_sand\code\modules\client\loadout\socks.dm"
+#include "modular_sand\code\modules\client\loadout\suit.dm"
#include "modular_sand\code\modules\client\loadout\uniform.dm"
#include "modular_sand\code\modules\client\loadout\wrists.dm"
#include "modular_sand\code\modules\clothing\refactor.dm"
#include "modular_sand\code\modules\clothing\gloves\_gloves.dm"
#include "modular_sand\code\modules\clothing\gloves\accessories.dm"
+#include "modular_sand\code\modules\clothing\head\helmet.dm"
#include "modular_sand\code\modules\clothing\head\misc.dm"
#include "modular_sand\code\modules\clothing\masks\hailer.dm"
+#include "modular_sand\code\modules\clothing\head\misc_special.dm"
#include "modular_sand\code\modules\clothing\masks\miscellaneous.dm"
#include "modular_sand\code\modules\clothing\neck\_neck.dm"
#include "modular_sand\code\modules\clothing\outfits\standard.dm"
+#include "modular_sand\code\modules\clothing\shoes\miscellaneous.dm"
#include "modular_sand\code\modules\clothing\spacesuits\chronosuit.dm"
#include "modular_sand\code\modules\clothing\spacesuits\hardsuit.dm"
-#include "modular_sand\code\modules\clothing\suits\armor.dm"
+#include "modular_sand\code\modules\clothing\suits\miscellaneous.dm"
#include "modular_sand\code\modules\clothing\under\costumes.dm"
#include "modular_sand\code\modules\clothing\under\miscellaneous.dm"
#include "modular_sand\code\modules\clothing\under\uniform.dm"
@@ -4166,6 +4173,7 @@
#include "modular_sand\code\modules\vending\autodrobe.dm"
#include "modular_sand\code\modules\vending\clothesmate.dm"
#include "modular_sand\code\modules\vending\kinkmate.dm"
+#include "modular_sand\code\modules\vending\wardrobes.dm"
#include "modular_splurt\code\__HELPERS\_cit_helpers.dm"
#include "modular_splurt\code\__HELPERS\cmp.dm"
#include "modular_splurt\code\__HELPERS\icons.dm"
@@ -4344,5 +4352,6 @@
#include "modular_splurt\code\modules\vending\kinkmate.dm"
#include "modular_splurt\code\modules\vending\security.dm"
#include "modular_splurt\code\modules\vending\wardrobes.dm"
+#include "modular_sand\code\modules\vending\wardrobes.dm"
#include "tools\Redirector\textprocs.dm"
// END_INCLUDE