diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm
index 8e2ee706180dc..5813fe41d6470 100644
--- a/code/game/objects/effects/spawners/bundle.dm
+++ b/code/game/objects/effects/spawners/bundle.dm
@@ -113,7 +113,7 @@
name = "pirate costume spawner"
items = list(
/obj/item/clothing/under/costume/pirate,
- /obj/item/clothing/suit/pirate,
+ /obj/item/clothing/suit/costume/pirate,
/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/obj/item/clothing/glasses/eyepatch)
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 4cfe7f6da8c0b..0fc458ec7bc0e 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -383,7 +383,7 @@
/obj/item/storage/backpack/satchel/flat/treasure/PopulateContents()
new /obj/item/dualsaber/toy(src)
- new /obj/item/clothing/suit/pirate(src)
+ new /obj/item/clothing/suit/costume/pirate(src)
new /obj/item/clothing/head/pirate(src)
for(var/i in 1 to 3)
new /obj/item/coin/gold(src)
@@ -524,7 +524,7 @@
new /obj/item/stack/cable_coil/random(src)
new /obj/item/wirecutters(src)
new /obj/item/multitool(src)
-
+
/obj/item/storage/backpack/duffelbag/science
name = "science duffel bag"
desc = "A large duffel bag for holding extra tools and artifacts."
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index db0d5bb1ebd68..a71697e46315c 100755
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -332,7 +332,7 @@
for(var/i in 1 to 3)
new /obj/item/paper/fluff/jobs/security/court_judgment (src)
new /obj/item/pen (src)
- new /obj/item/clothing/suit/judgerobe (src)
+ new /obj/item/clothing/suit/costume/judgerobe (src)
new /obj/item/clothing/head/powdered_wig (src)
new /obj/item/storage/briefcase(src)
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 92de427999159..25cbef2105140 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -395,6 +395,8 @@
/obj/item/clothing/suit/space/changeling
name = "flesh mass"
icon_state = "lingspacesuit"
+ icon = 'icons/obj/clothing/suits/costume.dmi'
+ worn_icon = 'icons/mob/clothing/suits/costume.dmi'
desc = "A huge, bulky mass of armored pressure and temperature-resistant organic tissue, evolved to facilitate space travel and protect from close range threats."
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE | HEADINTERNALS //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
@@ -418,6 +420,7 @@
/obj/item/clothing/head/helmet/space/changeling
name = "flesh mass"
icon_state = "lingspacehelmet"
+ item_state = null
desc = "A covering of armored pressure and temperature-resistant organic tissue with a glass-like chitin front."
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index 66fdfff30d427..f076f99588557 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -117,7 +117,7 @@
uniform = /obj/item/clothing/under/costume/pirate
shoes = /obj/item/clothing/shoes/sneakers/brown
- suit = /obj/item/clothing/suit/pirate
+ suit = /obj/item/clothing/suit/costume/pirate
head = /obj/item/clothing/head/bandana
glasses = /obj/item/clothing/glasses/eyepatch
@@ -364,7 +364,7 @@
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/thermal/eyepatch
- suit = /obj/item/clothing/suit/pirate/captain
+ suit = /obj/item/clothing/suit/costume/pirate/captain
back = /obj/item/storage/backpack/satchel/leather
belt = /obj/item/gun/ballistic/revolver/mateba
diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm
index e2b9203736924..bf86b615b1e15 100644
--- a/code/modules/clothing/suits/_suits.dm
+++ b/code/modules/clothing/suits/_suits.dm
@@ -1,12 +1,15 @@
#define FOOTSTEP_COOLDOWN 3 //3 deci-seconds
/obj/item/clothing/suit
- icon = 'icons/obj/clothing/suits.dmi'
name = "suit"
+ icon = 'icons/obj/clothing/suits/default.dmi'
var/fire_resist = T0C+100
drop_sound = 'sound/items/handling/cloth_drop.ogg'
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
- allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
+ allowed = list(
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/plasmaman
+ )
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, STAMINA = 0)
slot_flags = ITEM_SLOT_OCLOTHING
var/blood_overlay_type = "suit"
diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm
new file mode 100644
index 0000000000000..73bd943f6272a
--- /dev/null
+++ b/code/modules/clothing/suits/costume.dm
@@ -0,0 +1,344 @@
+/obj/item/clothing/suit/costume
+ icon = 'icons/obj/clothing/suits/costume.dmi'
+ worn_icon = 'icons/mob/clothing/suits/costume.dmi'
+
+/obj/item/clothing/suit/hooded/flashsuit
+ name = "flashy costume"
+ desc = "What did you expect?"
+ icon_state = "flashsuit"
+ icon = 'icons/obj/clothing/suits/costume.dmi'
+ worn_icon = 'icons/mob/clothing/suits/costume.dmi'
+ item_state = "armor"
+ body_parts_covered = CHEST|GROIN
+ hoodtype = /obj/item/clothing/head/hooded/flashsuit
+
+/obj/item/clothing/suit/hooded/hastur
+ name = "\improper Hastur's robe"
+ desc = "Robes not meant to be worn by man."
+ icon_state = "hastur"
+ item_state = "hastur"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ hoodtype = /obj/item/clothing/head/hooded/hasturhood
+
+/obj/item/clothing/head/hooded/flashsuit
+ name = "flash button"
+ desc = "You will learn to fear the flash."
+ icon_state = "flashsuit"
+ body_parts_covered = HEAD
+ flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK|HIDESNOUT
+
+/obj/item/clothing/suit/costume/pirate
+ name = "pirate coat"
+ desc = "Yarr."
+ icon_state = "pirate"
+ item_state = "pirate"
+ body_parts_covered = CHEST|GROIN|ARMS
+ allowed = list(/obj/item/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
+
+/obj/item/clothing/suit/costume/pirate/captain
+ name = "pirate captain coat"
+ desc = "Yarr."
+ icon_state = "hgpirate"
+ item_state = "hgpirate"
+
+
+/obj/item/clothing/suit/costume/cyborg_suit
+ name = "cyborg suit"
+ desc = "Suit for a cyborg costume."
+ icon_state = "death"
+ item_state = "death"
+ flags_1 = CONDUCT_1
+ fire_resist = T0C+5200
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+
+
+/obj/item/clothing/suit/costume/justice
+ name = "justice suit"
+ desc = "this pretty much looks ridiculous" //Needs no fixing
+ icon_state = "justice"
+ item_state = "justice"
+ body_parts_covered = CHEST|GROIN|ARMS|LEGS
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+
+
+/obj/item/clothing/suit/costume/judgerobe
+ name = "judge's robe"
+ desc = "This robe commands authority."
+ icon_state = "judge"
+ item_state = "judge"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ allowed = list(/obj/item/storage/fancy/cigarettes, /obj/item/stack/spacecash)
+ flags_inv = HIDEJUMPSUIT
+
+
+/obj/item/clothing/suit/apron/overalls
+ name = "coveralls"
+ desc = "A set of denim overalls."
+ icon_state = "overalls"
+ item_state = "overalls"
+ body_parts_covered = CHEST|GROIN|LEGS
+
+/obj/item/clothing/suit/apron/purple_bartender
+ name = "purple bartender apron"
+ desc = "A fancy purple apron for a stylish person."
+ icon_state = "purplebartenderapron"
+ item_state = "purplebartenderapron"
+ body_parts_covered = CHEST|GROIN|LEGS
+
+/obj/item/clothing/suit/syndicatefake
+ name = "black and red space suit replica"
+ icon_state = "syndicate-black-red"
+ item_state = "syndicate-black-red"
+ desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
+ w_class = WEIGHT_CLASS_NORMAL
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy)
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ resistance_flags = NONE
+
+/obj/item/clothing/suit/hastur
+ name = "\improper Hastur's robe"
+ desc = "Robes not meant to be worn by man."
+ icon_state = "hastur"
+ item_state = "hastur"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+
+
+/obj/item/clothing/suit/imperium_monk
+ name = "\improper Imperium monk suit"
+ desc = "Have YOU killed a xeno today?"
+ icon_state = "imperium_monk"
+ item_state = "imperium_monk"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ flags_inv = HIDESHOES|HIDEJUMPSUIT
+ allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen)
+
+
+/obj/item/clothing/suit/chickensuit
+ name = "chicken suit"
+ desc = "A suit made long ago by the ancient empire KFC."
+ icon_state = "chickensuit"
+ item_state = "chickensuit"
+ body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET
+ flags_inv = HIDESHOES|HIDEJUMPSUIT
+
+
+/obj/item/clothing/suit/monkeysuit
+ name = "monkey suit"
+ desc = "A suit that looks like a primate."
+ icon_state = "monkeysuit"
+ item_state = "monkeysuit"
+ body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+
+/obj/item/clothing/suit/toggle/owlwings
+ name = "owl cloak"
+ desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad."
+ icon_state = "owl_wings"
+ item_state = "owl_wings"
+ togglename = "wings"
+ body_parts_covered = ARMS|CHEST
+ actions_types = list(/datum/action/item_action/toggle_wings)
+
+/obj/item/clothing/suit/toggle/owlwings/Initialize(mapload)
+ . = ..()
+ allowed = GLOB.security_vest_allowed
+
+/obj/item/clothing/suit/toggle/owlwings/griffinwings
+ name = "griffon cloak"
+ desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad."
+ icon_state = "griffin_wings"
+ item_state = "griffin_wings"
+
+/obj/item/clothing/suit/cardborg
+ name = "cardborg suit"
+ desc = "An ordinary cardboard box with holes cut in the sides."
+ icon_state = "cardborg"
+ item_state = "cardborg"
+ body_parts_covered = CHEST|GROIN
+ flags_inv = HIDEJUMPSUIT
+ dog_fashion = /datum/dog_fashion/back
+
+/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot)
+ ..()
+ if(slot == ITEM_SLOT_OCLOTHING)
+ disguise(user)
+
+/obj/item/clothing/suit/cardborg/dropped(mob/living/user)
+ ..()
+ user.remove_alt_appearance("standard_borg_disguise")
+
+/obj/item/clothing/suit/cardborg/proc/disguise(mob/living/carbon/human/H, obj/item/clothing/head/cardborg/borghead)
+ if(istype(H))
+ if(!borghead)
+ borghead = H.head
+ if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
+ var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
+ I.override = 1
+ I.add_overlay(mutable_appearance('icons/mob/robots.dmi', "robot_e")) //gotta look realistic
+ add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", I) //you look like a robot to robots! (including yourself because you're totally a robot)
+
+
+/obj/item/clothing/suit/snowman
+ name = "snowman outfit"
+ desc = "Two white spheres covered in white glitter. 'Tis the season."
+ icon_state = "snowman"
+ item_state = "snowman"
+ body_parts_covered = CHEST|GROIN
+ flags_inv = HIDEJUMPSUIT
+
+/obj/item/clothing/suit/poncho
+ name = "poncho"
+ desc = "Your classic, non-racist poncho."
+ icon_state = "classicponcho"
+ item_state = "classicponcho"
+
+/obj/item/clothing/suit/poncho/green
+ name = "green poncho"
+ desc = "Your classic, non-racist poncho. This one is green."
+ icon_state = "greenponcho"
+ item_state = "greenponcho"
+
+/obj/item/clothing/suit/poncho/red
+ name = "red poncho"
+ desc = "Your classic, non-racist poncho. This one is red."
+ icon_state = "redponcho"
+ item_state = "redponcho"
+
+/obj/item/clothing/suit/poncho/ponchoshame
+ name = "poncho of shame"
+ desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally."
+ icon_state = "ponchoshame"
+ item_state = "ponchoshame"
+
+/obj/item/clothing/suit/poncho/ponchoshame/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT)
+
+/obj/item/clothing/suit/poncho/ponchoshame/outlaw
+ desc = "You broke the rules of the duel, and drew your gun before High Noon. This poncho will rest on your shoulders eternally, just like your shame."
+ icon_state = "ponchoshame_alt"
+ item_state = "ponchoshame_alt"
+ armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 30, BIO = 30, RAD = 20, FIRE = 0, ACID = 30, STAMINA = 35)
+ body_parts_covered = CHEST|GROIN
+ allowed = list(/obj/item/gun/ballistic/shotgun/lever_action, /obj/item/gun/ballistic/rifle/leveraction, /obj/item/gun/ballistic/revolver)
+
+/obj/item/clothing/suit/whitedress
+ name = "white dress"
+ desc = "A fancy white dress."
+ icon_state = "white_dress"
+ item_state = "w_suit"
+ body_parts_covered = CHEST|GROIN|LEGS|FEET
+ flags_inv = HIDEJUMPSUIT|HIDESHOES
+
+/obj/item/clothing/suit/hooded/carp_costume
+ name = "carp costume"
+ desc = "A costume made from 'synthetic' carp scales, it smells."
+ icon_state = "carp_casual"
+ item_state = "labcoat"
+ body_parts_covered = CHEST|GROIN|ARMS
+ cold_protection = CHEST|GROIN|ARMS
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
+ allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pneumatic_cannon/speargun)
+ hoodtype = /obj/item/clothing/head/hooded/carp_hood
+
+/obj/item/clothing/head/hooded/carp_hood
+ name = "carp hood"
+ desc = "A hood attached to a carp costume."
+ icon_state = "carp_casual"
+ body_parts_covered = HEAD
+ cold_protection = HEAD
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+ flags_inv = HIDEHAIR|HIDEEARS
+
+/obj/item/clothing/head/hooded/hasturhood
+ name = "hastur's hood"
+ desc = "It's unspeakably stylish."
+ icon_state = "hasturhood"
+ body_parts_covered = HEAD
+ flags_inv = HIDEHAIR
+ flags_cover = HEADCOVERSEYES
+
+/obj/item/clothing/head/hooded/carp_hood/equipped(mob/living/carbon/human/user, slot)
+ ..()
+ if (slot == ITEM_SLOT_HEAD)
+ user.faction |= "carp"
+
+/obj/item/clothing/head/hooded/carp_hood/dropped(mob/living/carbon/human/user)
+ ..()
+ if (user.head == src)
+ user.faction -= "carp"
+
+/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
+ name = "corgi costume"
+ desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs."
+ icon_state = "ian"
+ item_state = "labcoat"
+ body_parts_covered = CHEST|GROIN|ARMS
+ //cold_protection = CHEST|GROIN|ARMS
+ //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+ allowed = list()
+ hoodtype = /obj/item/clothing/head/hooded/ian_hood
+ dog_fashion = /datum/dog_fashion/back
+
+/obj/item/clothing/head/hooded/ian_hood
+ name = "corgi hood"
+ desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
+ icon_state = "ian"
+ body_parts_covered = HEAD
+ //cold_protection = HEAD
+ //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+ flags_inv = HIDEHAIR|HIDEEARS
+
+/obj/item/clothing/suit/hooded/bee_costume // It's Hip!
+ name = "bee costume"
+ desc = "Bee the true Queen!"
+ icon_state = "bee"
+ item_state = "labcoat"
+ body_parts_covered = CHEST|GROIN|ARMS
+ clothing_flags = THICKMATERIAL
+ hoodtype = /obj/item/clothing/head/hooded/bee_hood
+
+/obj/item/clothing/head/hooded/bee_hood
+ name = "bee hood"
+ desc = "A hood attached to a bee costume."
+ icon_state = "bee"
+ body_parts_covered = HEAD
+ clothing_flags = THICKMATERIAL | SNUG_FIT
+ flags_inv = HIDEHAIR|HIDEEARS
+ dynamic_hair_suffix = ""
+
+/obj/item/clothing/suit/hooded/bee_costume/syndie
+ name = "BLF costume"
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
+ hoodtype = /obj/item/clothing/head/hooded/bee_hood/syndie
+
+/obj/item/clothing/head/hooded/bee_hood/syndie
+ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
+
+/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
+ name = "bloated human suit"
+ desc = "A horribly bloated suit made from human skins."
+ icon_state = "lingspacesuit"
+ item_state = "labcoat"
+ body_parts_covered = CHEST|GROIN|ARMS
+ allowed = list()
+ actions_types = list(/datum/action/item_action/toggle_human_head)
+ hoodtype = /obj/item/clothing/head/hooded/human_head
+
+
+/obj/item/clothing/head/hooded/human_head
+ name = "bloated human head"
+ desc = "A horribly bloated and mismatched human head."
+ icon_state = "lingspacehelmet"
+ body_parts_covered = HEAD
+ flags_cover = HEADCOVERSEYES
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+
+/obj/item/clothing/suit/security/officer/russian
+ name = "\improper Russian officer's jacket"
+ desc = "This jacket is for those special occasions when a russian officer isn't required to wear their armor."
+ icon_state = "officertanjacket"
+ item_state = "officertanjacket"
+ body_parts_covered = CHEST|ARMS
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 42588018ad38c..4429bc5698270 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -54,346 +54,6 @@
icon_state = "aristo_blue"
item_state = "aristo_blue"
-/*
- * Costume
- */
-/obj/item/clothing/suit/hooded/flashsuit
- name = "flashy costume"
- desc = "What did you expect?"
- icon_state = "flashsuit"
- item_state = "armor"
- body_parts_covered = CHEST|GROIN
- hoodtype = /obj/item/clothing/head/hooded/flashsuit
-
-/obj/item/clothing/suit/hooded/hastur
- name = "\improper Hastur's robe"
- desc = "Robes not meant to be worn by man."
- icon_state = "hastur"
- item_state = "hastur"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
- hoodtype = /obj/item/clothing/head/hooded/hasturhood
-
-/obj/item/clothing/head/hooded/flashsuit
- name = "flash button"
- desc = "You will learn to fear the flash."
- icon_state = "flashsuit"
- body_parts_covered = HEAD
- flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK|HIDESNOUT
-
-/obj/item/clothing/suit/pirate
- name = "pirate coat"
- desc = "Yarr."
- icon_state = "pirate"
- item_state = "pirate"
- allowed = list(/obj/item/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
-
-/obj/item/clothing/suit/pirate/captain
- name = "pirate captain coat"
- desc = "Yarr."
- icon_state = "hgpirate"
- item_state = "hgpirate"
-
-
-/obj/item/clothing/suit/cyborg_suit
- name = "cyborg suit"
- desc = "Suit for a cyborg costume."
- icon_state = "death"
- item_state = "death"
- flags_1 = CONDUCT_1
- fire_resist = T0C+5200
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-
-
-/obj/item/clothing/suit/justice
- name = "justice suit"
- desc = "this pretty much looks ridiculous" //Needs no fixing
- icon_state = "justice"
- item_state = "justice"
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-
-
-/obj/item/clothing/suit/judgerobe
- name = "judge's robe"
- desc = "This robe commands authority."
- icon_state = "judge"
- item_state = "judge"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- allowed = list(/obj/item/storage/fancy/cigarettes, /obj/item/stack/spacecash)
- flags_inv = HIDEJUMPSUIT
-
-
-/obj/item/clothing/suit/apron/overalls
- name = "coveralls"
- desc = "A set of denim overalls."
- icon_state = "overalls"
- item_state = "overalls"
- body_parts_covered = CHEST|GROIN|LEGS
-
-/obj/item/clothing/suit/apron/purple_bartender
- name = "purple bartender apron"
- desc = "A fancy purple apron for a stylish person."
- icon_state = "purplebartenderapron"
- item_state = "purplebartenderapron"
- body_parts_covered = CHEST|GROIN|LEGS
-
-/obj/item/clothing/suit/syndicatefake
- name = "black and red space suit replica"
- icon_state = "syndicate-black-red"
- item_state = "syndicate-black-red"
- desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
- w_class = WEIGHT_CLASS_NORMAL
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy)
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
- resistance_flags = NONE
-
-/obj/item/clothing/suit/hastur
- name = "\improper Hastur's robe"
- desc = "Robes not meant to be worn by man."
- icon_state = "hastur"
- item_state = "hastur"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-
-
-/obj/item/clothing/suit/imperium_monk
- name = "\improper Imperium monk suit"
- desc = "Have YOU killed a xeno today?"
- icon_state = "imperium_monk"
- item_state = "imperium_monk"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- flags_inv = HIDESHOES|HIDEJUMPSUIT
- allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen)
-
-
-/obj/item/clothing/suit/chickensuit
- name = "chicken suit"
- desc = "A suit made long ago by the ancient empire KFC."
- icon_state = "chickensuit"
- item_state = "chickensuit"
- body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET
- flags_inv = HIDESHOES|HIDEJUMPSUIT
-
-
-/obj/item/clothing/suit/monkeysuit
- name = "monkey suit"
- desc = "A suit that looks like a primate."
- icon_state = "monkeysuit"
- item_state = "monkeysuit"
- body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS
- flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
-
-/obj/item/clothing/suit/toggle/owlwings
- name = "owl cloak"
- desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad."
- icon_state = "owl_wings"
- item_state = "owl_wings"
- togglename = "wings"
- body_parts_covered = ARMS|CHEST
- actions_types = list(/datum/action/item_action/toggle_wings)
-
-/obj/item/clothing/suit/toggle/owlwings/Initialize(mapload)
- . = ..()
- allowed = GLOB.security_vest_allowed
-
-/obj/item/clothing/suit/toggle/owlwings/griffinwings
- name = "griffon cloak"
- desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad."
- icon_state = "griffin_wings"
- item_state = "griffin_wings"
-
-/obj/item/clothing/suit/cardborg
- name = "cardborg suit"
- desc = "An ordinary cardboard box with holes cut in the sides."
- icon_state = "cardborg"
- item_state = "cardborg"
- body_parts_covered = CHEST|GROIN
- flags_inv = HIDEJUMPSUIT
- dog_fashion = /datum/dog_fashion/back
-
-/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot)
- ..()
- if(slot == ITEM_SLOT_OCLOTHING)
- disguise(user)
-
-/obj/item/clothing/suit/cardborg/dropped(mob/living/user)
- ..()
- user.remove_alt_appearance("standard_borg_disguise")
-
-/obj/item/clothing/suit/cardborg/proc/disguise(mob/living/carbon/human/H, obj/item/clothing/head/cardborg/borghead)
- if(istype(H))
- if(!borghead)
- borghead = H.head
- if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
- var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
- I.override = 1
- I.add_overlay(mutable_appearance('icons/mob/robots.dmi', "robot_e")) //gotta look realistic
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", I) //you look like a robot to robots! (including yourself because you're totally a robot)
-
-
-/obj/item/clothing/suit/snowman
- name = "snowman outfit"
- desc = "Two white spheres covered in white glitter. 'Tis the season."
- icon_state = "snowman"
- item_state = "snowman"
- body_parts_covered = CHEST|GROIN
- flags_inv = HIDEJUMPSUIT
-
-/obj/item/clothing/suit/poncho
- name = "poncho"
- desc = "Your classic, non-racist poncho."
- icon_state = "classicponcho"
- item_state = "classicponcho"
-
-/obj/item/clothing/suit/poncho/green
- name = "green poncho"
- desc = "Your classic, non-racist poncho. This one is green."
- icon_state = "greenponcho"
- item_state = "greenponcho"
-
-/obj/item/clothing/suit/poncho/red
- name = "red poncho"
- desc = "Your classic, non-racist poncho. This one is red."
- icon_state = "redponcho"
- item_state = "redponcho"
-
-/obj/item/clothing/suit/poncho/ponchoshame
- name = "poncho of shame"
- desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally."
- icon_state = "ponchoshame"
- item_state = "ponchoshame"
-
-/obj/item/clothing/suit/poncho/ponchoshame/Initialize(mapload)
- . = ..()
- ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT)
-
-/obj/item/clothing/suit/poncho/ponchoshame/outlaw
- desc = "You broke the rules of the duel, and drew your gun before High Noon. This poncho will rest on your shoulders eternally, just like your shame."
- icon_state = "ponchoshame_alt"
- item_state = "ponchoshame_alt"
- armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 30, BIO = 30, RAD = 20, FIRE = 0, ACID = 30, STAMINA = 35)
- body_parts_covered = CHEST|GROIN
- allowed = list(/obj/item/gun/ballistic/shotgun/lever_action, /obj/item/gun/ballistic/rifle/leveraction, /obj/item/gun/ballistic/revolver)
-
-/obj/item/clothing/suit/whitedress
- name = "white dress"
- desc = "A fancy white dress."
- icon_state = "white_dress"
- item_state = "w_suit"
- body_parts_covered = CHEST|GROIN|LEGS|FEET
- flags_inv = HIDEJUMPSUIT|HIDESHOES
-
-/obj/item/clothing/suit/hooded/carp_costume
- name = "carp costume"
- desc = "A costume made from 'synthetic' carp scales, it smells."
- icon_state = "carp_casual"
- item_state = "labcoat"
- body_parts_covered = CHEST|GROIN|ARMS
- cold_protection = CHEST|GROIN|ARMS
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
- allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pneumatic_cannon/speargun)
- hoodtype = /obj/item/clothing/head/hooded/carp_hood
-
-/obj/item/clothing/head/hooded/carp_hood
- name = "carp hood"
- desc = "A hood attached to a carp costume."
- icon_state = "carp_casual"
- body_parts_covered = HEAD
- cold_protection = HEAD
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
- flags_inv = HIDEHAIR|HIDEEARS
-
-/obj/item/clothing/head/hooded/hasturhood
- name = "hastur's hood"
- desc = "It's unspeakably stylish."
- icon_state = "hasturhood"
- body_parts_covered = HEAD
- flags_inv = HIDEHAIR
- flags_cover = HEADCOVERSEYES
-
-/obj/item/clothing/head/hooded/carp_hood/equipped(mob/living/carbon/human/user, slot)
- ..()
- if (slot == ITEM_SLOT_HEAD)
- user.faction |= "carp"
-
-/obj/item/clothing/head/hooded/carp_hood/dropped(mob/living/carbon/human/user)
- ..()
- if (user.head == src)
- user.faction -= "carp"
-
-/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
- name = "corgi costume"
- desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs."
- icon_state = "ian"
- item_state = "labcoat"
- body_parts_covered = CHEST|GROIN|ARMS
- //cold_protection = CHEST|GROIN|ARMS
- //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
- allowed = list()
- hoodtype = /obj/item/clothing/head/hooded/ian_hood
- dog_fashion = /datum/dog_fashion/back
-
-/obj/item/clothing/head/hooded/ian_hood
- name = "corgi hood"
- desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
- icon_state = "ian"
- body_parts_covered = HEAD
- //cold_protection = HEAD
- //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
- flags_inv = HIDEHAIR|HIDEEARS
-
-/obj/item/clothing/suit/hooded/bee_costume // It's Hip!
- name = "bee costume"
- desc = "Bee the true Queen!"
- icon_state = "bee"
- item_state = "labcoat"
- body_parts_covered = CHEST|GROIN|ARMS
- clothing_flags = THICKMATERIAL
- hoodtype = /obj/item/clothing/head/hooded/bee_hood
-
-/obj/item/clothing/head/hooded/bee_hood
- name = "bee hood"
- desc = "A hood attached to a bee costume."
- icon_state = "bee"
- body_parts_covered = HEAD
- clothing_flags = THICKMATERIAL | SNUG_FIT
- flags_inv = HIDEHAIR|HIDEEARS
- dynamic_hair_suffix = ""
-
-/obj/item/clothing/suit/hooded/bee_costume/syndie
- name = "BLF costume"
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
- hoodtype = /obj/item/clothing/head/hooded/bee_hood/syndie
-
-/obj/item/clothing/head/hooded/bee_hood/syndie
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 40, BOMB = 0, BIO = 60, RAD = 0, FIRE = 0, ACID = 50, STAMINA = 40)
-
-/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
- name = "bloated human suit"
- desc = "A horribly bloated suit made from human skins."
- icon_state = "lingspacesuit"
- item_state = "labcoat"
- body_parts_covered = CHEST|GROIN|ARMS
- allowed = list()
- actions_types = list(/datum/action/item_action/toggle_human_head)
- hoodtype = /obj/item/clothing/head/hooded/human_head
-
-
-/obj/item/clothing/head/hooded/human_head
- name = "bloated human head"
- desc = "A horribly bloated and mismatched human head."
- icon_state = "lingspacehelmet"
- body_parts_covered = HEAD
- flags_cover = HEADCOVERSEYES
- flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
-
-/obj/item/clothing/suit/security/officer/russian
- name = "\improper Russian officer's jacket"
- desc = "This jacket is for those special occasions when a russian officer isn't required to wear their armor."
- icon_state = "officertanjacket"
- item_state = "officertanjacket"
- body_parts_covered = CHEST|ARMS
-
/////////////////
//DONATOR ITEMS//
/////////////////
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index 95d180714c051..c728657031da5 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -94,7 +94,7 @@
/datum/outfit/piratecorpse/ranged
name = "Pirate Gunner Corpse"
- suit = /obj/item/clothing/suit/pirate
+ suit = /obj/item/clothing/suit/costume/pirate
head = /obj/item/clothing/head/pirate
diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm
index 933d7e6d82f20..428157e316da2 100644
--- a/code/modules/vending/autodrobe.dm
+++ b/code/modules/vending/autodrobe.dm
@@ -66,7 +66,7 @@
/obj/item/clothing/under/suit/waiter = 1,
/obj/item/clothing/suit/jacket/miljacket = 1,
/obj/item/clothing/under/costume/pirate = 1,
- /obj/item/clothing/suit/pirate = 1,
+ /obj/item/clothing/suit/costume/pirate = 1,
/obj/item/clothing/head/pirate = 1,
/obj/item/clothing/head/bandana = 1,
/obj/item/clothing/head/bandana = 1,
@@ -130,13 +130,13 @@
/obj/item/clothing/head/wig/random = 3,
/obj/item/clothing/head/delinquent = 1,
/obj/item/clothing/ears/headphones = 2)
- contraband = list(/obj/item/clothing/suit/judgerobe = 1,
+ contraband = list(/obj/item/clothing/suit/costume/judgerobe = 1,
/obj/item/clothing/head/powdered_wig = 1,
/obj/item/gun/magic/wand = 2,
/obj/item/clothing/glasses/sunglasses/advanced/garb = 2,
/obj/item/clothing/glasses/blindfold = 1,
/obj/item/clothing/mask/muzzle = 2)
- premium = list(/obj/item/clothing/suit/pirate/captain = 2,
+ premium = list(/obj/item/clothing/suit/costume/pirate/captain = 2,
/obj/item/clothing/head/pirate/captain = 2,
/obj/item/clothing/under/rank/civilian/clown/rainbow = 1,
/obj/item/clothing/head/helmet/roman/fake = 1,
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/head/hats.dmi
similarity index 100%
rename from icons/obj/clothing/hats.dmi
rename to icons/obj/clothing/head/hats.dmi
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits/suits.dmi
similarity index 100%
rename from icons/obj/clothing/suits.dmi
rename to icons/obj/clothing/suits/suits.dmi
diff --git a/icons/obj/clothing/under/captain.dmi b/icons/obj/clothing/under/captain.dmi
new file mode 100644
index 0000000000000..57ab488334353
Binary files /dev/null and b/icons/obj/clothing/under/captain.dmi differ
diff --git a/icons/obj/clothing/under/cargo.dmi b/icons/obj/clothing/under/cargo.dmi
new file mode 100644
index 0000000000000..6b1a1c201f54c
Binary files /dev/null and b/icons/obj/clothing/under/cargo.dmi differ
diff --git a/icons/obj/clothing/under/centcom.dmi b/icons/obj/clothing/under/centcom.dmi
new file mode 100644
index 0000000000000..a9d8c29720bff
Binary files /dev/null and b/icons/obj/clothing/under/centcom.dmi differ
diff --git a/icons/obj/clothing/under/civilian.dmi b/icons/obj/clothing/under/civilian.dmi
new file mode 100644
index 0000000000000..7fd3294666dc4
Binary files /dev/null and b/icons/obj/clothing/under/civilian.dmi differ
diff --git a/icons/obj/clothing/under/color.dmi b/icons/obj/clothing/under/color.dmi
new file mode 100644
index 0000000000000..ede289898974d
Binary files /dev/null and b/icons/obj/clothing/under/color.dmi differ
diff --git a/icons/obj/clothing/under/costume.dmi b/icons/obj/clothing/under/costume.dmi
new file mode 100644
index 0000000000000..2ef1217b2b444
Binary files /dev/null and b/icons/obj/clothing/under/costume.dmi differ
diff --git a/icons/obj/clothing/under/default.dmi b/icons/obj/clothing/under/default.dmi
new file mode 100644
index 0000000000000..d751d47d21765
Binary files /dev/null and b/icons/obj/clothing/under/default.dmi differ
diff --git a/icons/obj/clothing/under/dress.dmi b/icons/obj/clothing/under/dress.dmi
new file mode 100644
index 0000000000000..e0239e1e90a9d
Binary files /dev/null and b/icons/obj/clothing/under/dress.dmi differ
diff --git a/icons/obj/clothing/under/engineering.dmi b/icons/obj/clothing/under/engineering.dmi
new file mode 100644
index 0000000000000..54a6133181186
Binary files /dev/null and b/icons/obj/clothing/under/engineering.dmi differ
diff --git a/icons/obj/clothing/under/medical.dmi b/icons/obj/clothing/under/medical.dmi
new file mode 100644
index 0000000000000..58049b9eaf8ff
Binary files /dev/null and b/icons/obj/clothing/under/medical.dmi differ
diff --git a/icons/obj/clothing/under/plasmaman.dmi b/icons/obj/clothing/under/plasmaman.dmi
new file mode 100644
index 0000000000000..9ddd05c9a358f
Binary files /dev/null and b/icons/obj/clothing/under/plasmaman.dmi differ
diff --git a/icons/obj/clothing/under/rnd.dmi b/icons/obj/clothing/under/rnd.dmi
new file mode 100644
index 0000000000000..6eb59e44efed7
Binary files /dev/null and b/icons/obj/clothing/under/rnd.dmi differ
diff --git a/icons/obj/clothing/under/suits.dmi b/icons/obj/clothing/under/suits.dmi
new file mode 100644
index 0000000000000..745691e852e26
Binary files /dev/null and b/icons/obj/clothing/under/suits.dmi differ
diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi
new file mode 100644
index 0000000000000..c5371dbcf5945
Binary files /dev/null and b/icons/obj/clothing/under/syndicate.dmi differ
diff --git a/icons/obj/clothing/under/trek.dmi b/icons/obj/clothing/under/trek.dmi
new file mode 100644
index 0000000000000..b902aa6371b3b
Binary files /dev/null and b/icons/obj/clothing/under/trek.dmi differ
diff --git a/icons/obj/clothing/under/uniforms.dmi b/icons/obj/clothing/under/uniforms.dmi
new file mode 100644
index 0000000000000..a28e0818e0849
Binary files /dev/null and b/icons/obj/clothing/under/uniforms.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
deleted file mode 100644
index 042b80c858961..0000000000000
Binary files a/icons/obj/clothing/uniforms.dmi and /dev/null differ