diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 6ff1b4acf1f..1ed98304765 100755
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -5,6 +5,8 @@
//BIG NOTE: Don't add living things to crates, that's bad, it will break the shuttle.
//NEW NOTE: Do NOT set the price of any crates below 7 points. Doing so allows infinite points.
+var/list/all_supply_groups = list("Operations","Security","Hospitality","Engineering","Medical / Science","Hydroponics")
+
/datum/supply_packs
var/name = null
var/list/contains = list()
@@ -38,6 +40,7 @@
cost = 20
containertype = /obj/structure/closet/crate
containername = "Special Ops crate"
+ group = "Security"
hidden = 1
/datum/supply_packs/food
@@ -53,6 +56,7 @@
cost = 10
containertype = /obj/structure/closet/crate/freezer
containername = "Food crate"
+ group = "Hospitality"
/datum/supply_packs/monkey
name = "Monkey crate"
@@ -60,6 +64,7 @@
cost = 20
containertype = /obj/structure/closet/crate/freezer
containername = "Monkey crate"
+ group = "Hydroponics"
/datum/supply_packs/beanbagammo
@@ -77,6 +82,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Beanbag shells"
+ group = "Security"
/datum/supply_packs/toner
name = "Toner Cartridges"
@@ -89,6 +95,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Toner Cartridges"
+ group = "Operations"
/datum/supply_packs/party
name = "Party equipment"
@@ -105,6 +112,7 @@
cost = 20
containertype = /obj/structure/closet/crate
containername = "Party equipment"
+ group = "Hospitality"
/datum/supply_packs/internals
name = "Internals crate"
@@ -117,18 +125,19 @@
cost = 10
containertype = /obj/structure/closet/crate/internals
containername = "Internals crate"
+ group = "Engineering"
/datum/supply_packs/evacuation
name = "Emergency equipment"
- contains = list(/obj/machinery/bot/floorbot,
- /obj/machinery/bot/floorbot,
- /obj/machinery/bot/medbot,
- /obj/machinery/bot/medbot,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air,
- /obj/item/weapon/tank/air,
+ contains = list(/obj/item/weapon/storage/toolbox/emergency,
+ /obj/item/weapon/storage/toolbox/emergency,
+ /obj/item/clothing/suit/storage/hazardvest,
+ /obj/item/clothing/suit/storage/hazardvest,
+ /obj/item/weapon/tank/emergency_oxygen,
+ /obj/item/weapon/tank/emergency_oxygen,
+ /obj/item/weapon/tank/emergency_oxygen,
+ /obj/item/weapon/tank/emergency_oxygen,
+ /obj/item/weapon/tank/emergency_oxygen,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
@@ -137,6 +146,7 @@
cost = 35
containertype = /obj/structure/closet/crate/internals
containername = "Emergency Crate"
+ group = "Engineering"
/datum/supply_packs/janitor
name = "Janitorial supplies"
@@ -156,6 +166,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Janitorial supplies"
+ group = "Operations"
/datum/supply_packs/lightbulbs
name = "Replacement lights"
@@ -165,8 +176,8 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Replacement lights"
-//BS12 EDIT
-/*
+ group = "Engineering"
+
/datum/supply_packs/costume
name = "Standard Costume crate"
contains = list(/obj/item/weapon/storage/backpack/clown,
@@ -185,7 +196,8 @@
containertype = /obj/structure/closet/crate/secure
containername = "Standard Costumes"
access = access_theatre
-*/
+ group = "Operations"
+
/datum/supply_packs/wizard
name = "Wizard costume"
contains = list(/obj/item/weapon/staff,
@@ -195,6 +207,7 @@
cost = 20
containertype = /obj/structure/closet/crate
containername = "Wizard costume crate"
+ group = "Operations"
/datum/supply_packs/mule
name = "MULEbot Crate"
@@ -202,6 +215,7 @@
cost = 20
containertype = /obj/structure/largecrate/mule
containername = "MULEbot Crate"
+ group = "Operations"
/datum/supply_packs/lisa
name = "Corgi Crate"
@@ -209,6 +223,7 @@
cost = 50
containertype = /obj/structure/largecrate/lisa
containername = "Corgi Crate"
+ group = "Hydroponics"
/datum/supply_packs/hydroponics // -- Skie
name = "Hydroponics Supply Crate"
@@ -225,6 +240,7 @@
containertype = /obj/structure/closet/crate/hydroponics
containername = "Hydroponics crate"
access = access_hydroponics
+ group = "Hydroponics"
/datum/supply_packs/seeds
name = "Seeds Crate"
@@ -244,6 +260,7 @@
containertype = /obj/structure/closet/crate/hydroponics
containername = "Seeds crate"
access = access_hydroponics
+ group = "Hydroponics"
/datum/supply_packs/weedcontrol
name = "Weed Control Crate"
@@ -255,6 +272,7 @@
containertype = /obj/structure/closet/crate/secure/hydrosec
containername = "Weed control crate"
access = access_hydroponics
+ group = "Hydroponics"
/datum/supply_packs/exoticseeds
name = "Exotic Seeds Crate"
@@ -272,6 +290,7 @@
containertype = /obj/structure/closet/crate/hydroponics
containername = "Exotic Seeds crate"
access = access_hydroponics
+ group = "Hydroponics"
/datum/supply_packs/medical
name = "Medical crate"
@@ -286,6 +305,7 @@
cost = 10
containertype = /obj/structure/closet/crate/medical
containername = "Medical crate"
+ group = "Medical / Science"
/datum/supply_packs/virus
@@ -304,6 +324,7 @@
/obj/item/weapon/reagent_containers/glass/bottle/mutagen)
containername = "Virus crate"
access = access_cmo
+ group = "Medical / Science"
/datum/supply_packs/metal50
name = "50 Metal Sheets"
@@ -312,6 +333,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Metal sheets crate"
+ group = "Engineering"
/datum/supply_packs/glass50
name = "50 Glass Sheets"
@@ -320,6 +342,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Glass sheets crate"
+ group = "Engineering"
/datum/supply_packs/electrical
name = "Electrical maintenance crate"
@@ -334,6 +357,7 @@
cost = 15
containertype = /obj/structure/closet/crate
containername = "Electrical maintenance crate"
+ group = "Engineering"
/datum/supply_packs/mechanical
name = "Mechanical maintenance crate"
@@ -349,6 +373,7 @@
cost = 10
containertype = /obj/structure/closet/crate
containername = "Mechanical maintenance crate"
+ group = "Engineering"
/datum/supply_packs/watertank
name = "Water tank crate"
@@ -356,6 +381,7 @@
cost = 8
containertype = /obj/structure/largecrate
containername = "water tank crate"
+ group = "Hydroponics"
/datum/supply_packs/fueltank
name = "Fuel tank crate"
@@ -363,6 +389,7 @@
cost = 8
containertype = /obj/structure/largecrate
containername = "fuel tank crate"
+ group = "Engineering"
/datum/supply_packs/solar
name = "Solar Pack crate"
@@ -393,6 +420,7 @@
cost = 20
containertype = /obj/structure/closet/crate
containername = "solar pack crate"
+ group = "Engineering"
/datum/supply_packs/engine
name = "Emitter crate"
@@ -402,6 +430,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Emitter crate"
access = access_ce
+ group = "Engineering"
/datum/supply_packs/engine/field_gen
name = "Field Generator crate"
@@ -410,6 +439,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Field Generator crate"
access = access_ce
+ group = "Engineering"
/datum/supply_packs/engine/sing_gen
name = "Singularity Generator crate"
@@ -417,6 +447,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Singularity Generator crate"
access = access_ce
+ group = "Engineering"
/datum/supply_packs/engine/collector
name = "Collector crate"
@@ -424,6 +455,7 @@
/obj/machinery/power/rad_collector,
/obj/machinery/power/rad_collector)
containername = "Collector crate"
+ group = "Engineering"
/datum/supply_packs/engine/PA
name = "Particle Accelerator crate"
@@ -438,6 +470,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Particle Accelerator crate"
access = access_ce
+ group = "Engineering"
/datum/supply_packs/mecha_ripley
name = "Circuit Crate (\"Ripley\" APLU)"
@@ -448,6 +481,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "APLU \"Ripley\" Circuit Crate"
access = access_robotics
+ group = "Engineering"
/datum/supply_packs/mecha_odysseus
name = "Circuit Crate (\"Odysseus\")"
@@ -457,6 +491,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "\"Odysseus\" Circuit Crate"
access = access_robotics
+ group = "Engineering"
/datum/supply_packs/robotics
@@ -475,6 +510,7 @@
containertype = /obj/structure/closet/crate/secure/gear
containername = "Robotics Assembly"
access = access_robotics
+ group = "Engineering"
/datum/supply_packs/plasma
name = "Plasma assembly crate"
@@ -494,6 +530,7 @@
containertype = /obj/structure/closet/crate/secure/plasma
containername = "Plasma assembly crate"
access = access_tox_storage
+ group = "Medical / Science"
/datum/supply_packs/weapons
name = "Weapons crate"
@@ -509,6 +546,7 @@
containertype = /obj/structure/closet/crate/secure/weapon
containername = "Weapons crate"
access = access_security
+ group = "Security"
/datum/supply_packs/eweapons
name = "Experimental weapons crate"
@@ -523,6 +561,7 @@
containertype = /obj/structure/closet/crate/secure/weapon
containername = "Experimental weapons crate"
access = access_heads
+ group = "Security"
/datum/supply_packs/armor
name = "Armor crate"
@@ -534,6 +573,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Armor crate"
access = access_security
+ group = "Security"
/datum/supply_packs/riot
name = "Riot gear crate"
@@ -559,6 +599,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Riot gear crate"
access = access_armory
+ group = "Security"
/datum/supply_packs/loyalty
name = "Loyalty implant crate"
@@ -567,6 +608,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Loyalty implant crate"
access = access_armory
+ group = "Security"
/datum/supply_packs/ballistic
name = "Ballistic gear crate"
@@ -578,6 +620,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Ballistic gear crate"
access = access_armory
+ group = "Security"
/datum/supply_packs/expenergy
name = "Experimental energy gear crate"
@@ -589,6 +632,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Experimental energy gear crate"
access = access_armory
+ group = "Security"
/datum/supply_packs/exparmor
name = "Experimental armor crate"
@@ -600,6 +644,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Experimental armor crate"
access = access_armory
+ group = "Security"
/datum/supply_packs/securitybarriers
name = "Security Barriers"
@@ -610,6 +655,7 @@
cost = 20
containertype = /obj/structure/closet/crate/secure/gear
containername = "Security Barriers crate"
+ group = "Security"
/datum/supply_packs/securitybarriers
name = "Shield Generators"
@@ -621,6 +667,7 @@
containertype = /obj/structure/closet/crate/secure
containername = "Shield Generators crate"
access = access_teleporter
+ group = "Security"
/datum/supply_packs/randomised
var/num_contained = 3 //number of items picked to be contained in a randomised crate
@@ -648,6 +695,7 @@
cost = 200
containertype = /obj/structure/closet/crate
containername = "Collectable hats crate! Brought to you by Bass.inc!"
+ group = "Operations"
/datum/supply_packs/randomised/New()
manifest += "Contains any [num_contained] of:"
@@ -671,12 +719,11 @@
/obj/item/weapon/reagent_containers/glass/paint/remover,
/obj/item/weapon/wrapping_paper,
/obj/item/weapon/wrapping_paper,
- /obj/item/weapon/wrapping_paper,
- /obj/item/weapon/contraband/poster)
- cost = 5
+ /obj/item/weapon/wrapping_paper)
+ cost = 10
containertype = "/obj/structure/closet/crate"
containername = "Arts and Crafts crate"
-
+ group = "Operations"
/datum/supply_packs/randomised/contraband
num_contained = 5
@@ -693,6 +740,7 @@
containertype = /obj/structure/closet/crate
containername = "Unlabeled crate"
contraband = 1
+ group = "Operations"
/datum/supply_packs/boxes
name = "Empty Box supplies"
@@ -706,9 +754,10 @@
/obj/item/weapon/storage/box,
/obj/item/weapon/storage/box,
/obj/item/weapon/storage/box)
- cost = 5
+ cost = 10
containertype = "/obj/structure/closet/crate"
containername = "Empty Box crate"
+ group = "Operations"
/datum/supply_packs/surgery
name = "Surgery crate"
@@ -735,7 +784,37 @@
/obj/item/clothing/under/rank/medical/green,
/obj/item/weapon/storage/box/masks,
/obj/item/weapon/storage/box/gloves)
- cost = 10
+ cost = 15
containertype = "/obj/structure/closet/crate"
containername = "Sterile equipment crate"
group = "Medical / Science"
+
+/datum/supply_packs/randomised/pizza
+ num_contained = 6
+ contains = list(/obj/item/pizzabox/margherita,
+ /obj/item/pizzabox/mushroom,
+ /obj/item/pizzabox/meat,
+ /obj/item/pizzabox/vegetable)
+ name = "Surprise pack of half a dozen pizzas"
+ cost = 15
+ containertype = /obj/structure/closet/crate
+ containername = "Pizza crate"
+ group = "Hospitality"
+
+/datum/supply_packs/formal_wear
+ contains = list(/obj/item/clothing/head/bowler,
+ /obj/item/clothing/head/that,
+ /obj/item/clothing/suit/storage/lawyer/bluejacket,
+ /obj/item/clothing/suit/storage/lawyer/purpjacket,
+ /obj/item/clothing/under/suit_jacket,
+ /obj/item/clothing/under/suit_jacket/female,
+ /obj/item/clothing/under/suit_jacket/really_black,
+ /obj/item/clothing/under/suit_jacket/red,
+ /obj/item/clothing/shoes/black,
+ /obj/item/clothing/shoes/black,
+ /obj/item/clothing/suit/wcoat)
+ name = "Formalwear closet"
+ cost = 30
+ containertype = /obj/structure/closet
+ containername = "Formalwear for the best occasions."
+ group = "Operations"
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index d718ec2a548..560ef3e49c0 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -355,7 +355,7 @@ var/list/mechtoys = list(
dat += {"
Supply shuttle