diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm
index 6d85973f..493ac4ac 100644
--- a/code/modules/cargo/bounties/assistant.dm
+++ b/code/modules/cargo/bounties/assistant.dm
@@ -1,46 +1,46 @@
/datum/bounty/item/assistant/strange_object
name = "Strange Object"
description = "Kinaris has taken an interest in strange objects. Find one in maint, and ship it off to CentCom right away."
- reward = 1200
+ reward = 600
wanted_types = list(/obj/item/relic)
/datum/bounty/item/assistant/scooter
name = "Scooter"
description = "Kinaris has determined walking to be wasteful. Ship a scooter to CentCom to speed operations up."
- reward = 1080 // the mat hoffman
+ reward = 850 // the mat hoffman
wanted_types = list(/obj/vehicle/ridden/scooter)
include_subtypes = FALSE
/datum/bounty/item/assistant/skateboard
name = "Skateboard"
description = "Kinaris has determined walking to be wasteful. Ship a skateboard to CentCom to speed operations up."
- reward = 900 // the tony hawk
+ reward = 700 // the tony hawk
wanted_types = list(/obj/vehicle/ridden/scooter/skateboard)
/datum/bounty/item/assistant/stunprod
name = "Stunprod"
description = "CentCom demands a stunprod to use against dissidents. Craft one, then ship it."
- reward = 1300
+ reward = 800
wanted_types = list(/obj/item/melee/baton/cattleprod)
/datum/bounty/item/assistant/soap
name = "Soap"
description = "Soap has gone missing from CentCom's bathrooms and nobody knows who took it. Replace it and be the hero CentCom needs."
- reward = 2000
+ reward = 1000
required_count = 3
wanted_types = list(/obj/item/soap)
/datum/bounty/item/assistant/spear
name = "Spears"
description = "CentCom's security forces are going through budget cuts. You will be paid if you ship a set of spears."
- reward = 2000
+ reward = 1000
required_count = 5
wanted_types = list(/obj/item/twohanded/spear)
/datum/bounty/item/assistant/toolbox
name = "Toolboxes"
description = "There's an absence of robustness at Central Command. Hurry up and ship some toolboxes as a solution."
- reward = 2000
+ reward = 1000
required_count = 6
wanted_types = list(/obj/item/storage/toolbox)
@@ -53,81 +53,81 @@
/datum/bounty/item/assistant/clown_box
name = "Clown Box"
description = "The universe needs laughter. Stamp cardboard with a clown stamp and ship it out."
- reward = 1500
+ reward = 750
wanted_types = list(/obj/item/storage/box/clown)
/datum/bounty/item/assistant/cheesiehonkers
name = "Cheesie Honkers"
description = "Apparently the company that makes Cheesie Honkers is going out of business soon. CentCom wants to stock up before it happens!"
- reward = 1200
+ reward = 1000
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/cheesiehonkers)
/datum/bounty/item/assistant/baseball_bat
name = "Baseball Bat"
description = "Baseball fever is going on at CentCom! Be a dear and ship them some baseball bats, so that management can live out their childhood dream."
- reward = 2000
+ reward = 1000
required_count = 5
wanted_types = list(/obj/item/melee/baseball_bat)
/datum/bounty/item/assistant/extendohand
name = "Extendo-Hand"
description = "Commander Betsy is getting old, and can't bend over to get the telescreen remote anymore. Management has requested an extendo-hand to help her out."
- reward = 2500
+ reward = 1250
wanted_types = list(/obj/item/extendohand)
/datum/bounty/item/assistant/donut
name = "Donuts"
description = "CentCom's security forces are facing heavy losses against the Syndicate. Ship donuts to raise morale."
- reward = 3000
+ reward = 2000
required_count = 10
wanted_types = list(/obj/item/reagent_containers/food/snacks/donut)
/datum/bounty/item/assistant/donkpocket
name = "Donk-Pockets"
description = "Consumer safety recall: Warning. Donk-Pockets manufactured in the past year contain hazardous lizard biomatter. Return units to CentCom immediately."
- reward = 3000
+ reward = 1000
required_count = 10
wanted_types = list(/obj/item/reagent_containers/food/snacks/donkpocket)
/datum/bounty/item/assistant/briefcase
name = "Briefcase"
description = "Central Command will be holding a business convention this year. Ship a few briefcases in support."
- reward = 2500
+ reward = 1500
required_count = 5
wanted_types = list(/obj/item/storage/briefcase, /obj/item/storage/secure/briefcase)
/datum/bounty/item/assistant/sunglasses
name = "Sunglasses"
description = "A famous blues duo is passing through the sector, but they've lost their shades and they can't perform. Ship new sunglasses to CentCom to rectify this."
- reward = 3000
+ reward = 1000
required_count = 2
wanted_types = list(/obj/item/clothing/glasses/sunglasses)
/datum/bounty/item/assistant/monkey_hide
name = "Monkey Hide"
description = "One of the scientists at CentCom is interested in testing products on monkey skin. Your mission is to acquire monkey's hide and ship it."
- reward = 1500
+ reward = 500
wanted_types = list(/obj/item/stack/sheet/animalhide/monkey)
/datum/bounty/item/assistant/shard
name = "Shards"
description = "A killer clown has been stalking CentCom, and staff have been unable to catch her because she's not wearing shoes. Please ship some shards so that a booby trap can be constructed."
- reward = 1500
+ reward = 500
required_count = 15
wanted_types = list(/obj/item/shard)
/datum/bounty/item/assistant/comfy_chair
name = "Comfy Chairs"
description = "Commander Pat is unhappy with his chair. He claims it hurts his back. Ship some alternatives out to humor him."
- reward = 1500
+ reward = 900
required_count = 5
wanted_types = list(/obj/structure/chair/comfy)
/datum/bounty/item/assistant/geranium
name = "Geraniums"
description = "Commander Zot has the hots for Commander Zena. Send a shipment of geraniums - her favorite flower - and he'll happily reward you."
- reward = 4000
+ reward = 1000
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/grown/poppy/geranium)
@@ -142,7 +142,7 @@
/datum/bounty/item/assistant/shadyjims
name = "Shady Jim's"
description = "There's an irate officer at CentCom demanding that he receive a box of Shady Jim's cigarettes. Please ship one. He's starting to make threats."
- reward = 500
+ reward = 750
wanted_types = list(/obj/item/storage/fancy/cigarettes/cigpack_shadyjims)
/datum/bounty/item/assistant/potted_plants
diff --git a/code/modules/cargo/bounties/botany.dm b/code/modules/cargo/bounties/botany.dm
index 34906b32..754de480 100644
--- a/code/modules/cargo/bounties/botany.dm
+++ b/code/modules/cargo/bounties/botany.dm
@@ -1,5 +1,5 @@
/datum/bounty/item/botany
- reward = 5000
+ reward = 1200
var/datum/bounty/item/botany/multiplier = 0 //adds bonus reward money; increased for higher tier or rare mutations
var/datum/bounty/item/botany/bonus_desc //for adding extra flavor text to bounty descriptions
var/datum/bounty/item/botany/foodtype = "meal" //same here
@@ -64,7 +64,7 @@
multiplier = 4 //hush money
bonus_desc = "Do not mention this shipment to security."
foodtype = "\"meal\""
-
+
/datum/bounty/item/botany/cannabis_white
name = "Lifeweed Leaves"
wanted_types = list(/obj/item/reagent_containers/food/snacks/grown/cannabis/white)
diff --git a/code/modules/cargo/bounties/chef.dm b/code/modules/cargo/bounties/chef.dm
index 50da3c67..bd5e3371 100644
--- a/code/modules/cargo/bounties/chef.dm
+++ b/code/modules/cargo/bounties/chef.dm
@@ -1,34 +1,34 @@
/datum/bounty/item/chef/birthday_cake
name = "Birthday Cake"
description = "Winfre's birthday is coming up! Ship them a birthday cake to celebrate!"
- reward = 4000
+ reward = 1000
wanted_types = list(/obj/item/reagent_containers/food/snacks/store/cake/birthday, /obj/item/reagent_containers/food/snacks/cakeslice/birthday)
/datum/bounty/item/chef/soup
name = "Soup"
description = "To quell the homeless uprising, Kinaris will be serving soup to all underpaid workers. Ship any type of soup."
- reward = 3000
+ reward = 700
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/soup)
/datum/bounty/item/chef/popcorn
name = "Popcorn Bags"
description = "Upper management wants to host a movie night. Ship bags of popcorn for the occasion."
- reward = 3000
+ reward = 800
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/popcorn)
/datum/bounty/item/chef/onionrings
name = "Onion Rings"
description = "Kinaris.co is remembering Saturn day. Ship onion rings to show the station's support."
- reward = 3000
+ reward = 800
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/onionrings)
/datum/bounty/item/chef/icecreamsandwich
name = "Ice Cream Sandwiches"
description = "Upper management has been screaming non-stop for ice cream. Please send some."
- reward = 4000
+ reward = 800
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/icecreamsandwich)
@@ -47,21 +47,21 @@
/datum/bounty/item/chef/salad
name = "Salad or Rice Bowls"
description = "CentCom management is going on a health binge. Your order is to ship salad or rice bowls."
- reward = 3000
+ reward = 1200
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/salad)
/datum/bounty/item/chef/carrotfries
name = "Carrot Fries"
description = "Night sight can mean life or death! A shipment of carrot fries is the order."
- reward = 3500
+ reward = 1300
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/carrotfries)
/datum/bounty/item/chef/superbite
name = "Super Bite Burger"
description = "Commander Tubbs thinks he can set a competitive eating world record. All he needs is a super bite burger shipped to him."
- reward = 12000
+ reward = 1800
wanted_types = list(/obj/item/reagent_containers/food/snacks/burger/superbite)
/datum/bounty/item/chef/poppypretzel
@@ -73,19 +73,19 @@
/datum/bounty/item/chef/cubancarp
name = "Cuban Carp"
description = "To celebrate the birth of Castro XXVII, ship one cuban carp to CentCom."
- reward = 8000
+ reward = 3000
wanted_types = list(/obj/item/reagent_containers/food/snacks/cubancarp)
/datum/bounty/item/chef/hotdog
name = "Hot Dog"
description = "Kinaris.co is conducting taste tests to determine the best hot dog recipe. Ship your station's version to participate."
- reward = 8000
+ reward = 4000
wanted_types = list(/obj/item/reagent_containers/food/snacks/hotdog)
/datum/bounty/item/chef/eggplantparm
name = "Eggplant Parmigianas"
description = "A famous singer will be arriving at CentCom, and their contract demands that they only be served Eggplant Parmigiana. Ship some, please!"
- reward = 3500
+ reward = 2500
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/eggplantparm)
@@ -99,33 +99,33 @@
/datum/bounty/item/chef/chawanmushi
name = "Chawanmushi"
description = "Kinaris.Co wants to improve relations with its sister company, Donk.Co. Ship Chawanmushi immediately."
- reward = 8000
+ reward = 5000
wanted_types = list(/obj/item/reagent_containers/food/snacks/chawanmushi)
/datum/bounty/item/chef/kebab
name = "Kebabs"
description = "Remove all kebab from station you are best food. Ship to CentCom to remove from the premises."
- reward = 3500
+ reward = 1500
required_count = 3
wanted_types = list(/obj/item/reagent_containers/food/snacks/kebab)
/datum/bounty/item/chef/soylentgreen
name = "Soylent Green"
description = "CentCom has heard wonderful things about the product 'Soylent Green', and would love to try some. If you endulge them, expect a pleasant bonus."
- reward = 5000
+ reward = 4000
wanted_types = list(/obj/item/reagent_containers/food/snacks/soylentgreen)
/datum/bounty/item/chef/pancakes
name = "Pancakes"
description = "Here at Kinaris.Co we consider employees to be family. And you know what families love? Pancakes. Ship a baker's dozen."
- reward = 5000
+ reward = 4000
required_count = 13
wanted_types = list(/datum/crafting_recipe/food/pancakes)
/datum/bounty/item/chef/nuggies
name = "Chicken Nuggets"
description = "The vice president's son won't shut up about chicken nuggies. Would you mind shipping some?"
- reward = 4000
+ reward = 2500
required_count = 6
wanted_types = list(/obj/item/reagent_containers/food/snacks/nugget)
diff --git a/code/modules/cargo/bounties/engineering.dm b/code/modules/cargo/bounties/engineering.dm
index a0c3c577..27ac4887 100644
--- a/code/modules/cargo/bounties/engineering.dm
+++ b/code/modules/cargo/bounties/engineering.dm
@@ -27,41 +27,41 @@
/datum/bounty/item/engineering/pacman
name = "P.A.C.M.A.N.-type portable generator"
description = "A neighboring station had a problem with their SMES, and now need something to power their communications console. Can you send them a P.AC.M.A.N.?"
- reward = 3500 //2500 for the cargo one
+ reward = 1500 //2500 for the cargo one
wanted_types = list(/obj/machinery/power/port_gen/pacman)
/datum/bounty/item/engineering/canisters
name = "Gas Canisters"
description = "After a recent debacle in a nearby sector, 10 gas canisters are needed for containing an experimental aerosol before it kills all the local fauna."
- reward = 5000
+ reward = 3000
required_count = 10 //easy to make
wanted_types = list(/obj/machinery/portable_atmospherics/canister)
/datum/bounty/item/engineering/microwave
name = "Microwaves"
description = "Due to a shortage of microwaves, our chefs are incapable of keeping up with our sheer volume of orders. We need at least three microwaves to keep up with our crew's dietary habits."
- reward = 2000
+ reward = 1000
required_count = 3
wanted_types = list(/obj/machinery/microwave)
/datum/bounty/item/engineering/hydroponicstrays
name = "Hydroponics Tray"
description = "The garden has become a hot spot of late, they need a few more hydroponics tray to grow more flowers."
- reward = 2500
+ reward = 1500
required_count = 5
wanted_types = list(/obj/machinery/hydroponics)
/datum/bounty/item/engineering/rcd
name = "Spare RCD"
description = "Construction and repairs to are shuttles are going slowly. As it turns out, we're a little short on RCDs, can you send us a few?"
- reward = 2500
+ reward = 1500
required_count = 3
wanted_types = list(/obj/item/construction/rcd)
/datum/bounty/item/engineering/rpd
name = "Spare RPD"
description = "Our Atmospheric Technicians are still living in the past, relying on stationary pipe dispensers to produce the pipes necessary to accomplish their strenuous tasks. They could use an upgrade. Could you send us some Rapid Pipe Dispensers?"
- reward = 3000
+ reward = 2500
required_count = 3
wanted_types = list(/obj/item/pipe_dispenser)
@@ -75,19 +75,19 @@
/datum/bounty/item/engineering/arcadetrail
name = "Orion Trail Arcade Games"
description = "The staff have nothing to do when off-work. Can you send us some Orion Trail games to play?"
- reward = 3000
+ reward = 1500
required_count = 5
wanted_types = list(/obj/machinery/computer/arcade/orion_trail)
/datum/bounty/item/engineering/arcadebattle
name = "Battle Arcade Games"
description = "The staff have nothing to do when off-work. Can you send us some Battle Arcade games to play?"
- reward = 3000
+ reward = 1500
required_count = 5
wanted_types = list(/obj/machinery/computer/arcade/battle)
/datum/bounty/item/engineering/energy_ball
name = "Contained Tesla Ball"
description = "Station 24 is being overrun by hordes of angry Mothpeople. They are requesting the ultimate bug zapper."
- reward = 75000 //requires 14k credits of purchases, not to mention cooperation with engineering/heads of staff to set up inside the cramped shuttle
+ reward = 50000 //requires 14k credits of purchases, not to mention cooperation with engineering/heads of staff to set up inside the cramped shuttle
wanted_types = list(/obj/singularity/energy_ball)
diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm
index 9b3e4845..48d736c8 100644
--- a/code/modules/cargo/bounties/medical.dm
+++ b/code/modules/cargo/bounties/medical.dm
@@ -7,34 +7,34 @@
/datum/bounty/item/medical/lung
name = "Lungs"
description = "A recent explosion at Central Command has left multiple staff with punctured lungs. Ship spare lungs to be rewarded."
- reward = 10000
+ reward = 3000
required_count = 3
wanted_types = list(/obj/item/organ/lungs)
/datum/bounty/item/medical/appendix
name = "Appendix"
description = "Chef Gibb of Central Command wants to prepare a meal using a very special delicacy: an appendix. If you ship one, he'll pay."
- reward = 5000 //there are no synthetic appendixes
+ reward = 3500 //there are no synthetic appendixes
wanted_types = list(/obj/item/organ/appendix)
/datum/bounty/item/medical/ears
name = "Ears"
description = "Multiple staff at Station 12 have been left deaf due to unauthorized clowning. Ship them new ears."
- reward = 10000
+ reward = 5000
required_count = 3
wanted_types = list(/obj/item/organ/ears)
/datum/bounty/item/medical/liver
name = "Livers"
description = "Multiple high-ranking CentCom diplomats have been hospitalized with liver failure after a recent meeting with Third Soviet Union ambassadors. Help us out, will you?"
- reward = 10000
+ reward = 5500
required_count = 3
wanted_types = list(/obj/item/organ/liver)
/datum/bounty/item/medical/eye
name = "Organic Eyes"
description = "Station 5's Research Director Willem is requesting a few pairs of non-robotic eyes. Don't ask questions, just ship them."
- reward = 10000
+ reward = 3000
required_count = 3
wanted_types = list(/obj/item/organ/eyes)
exclude_types = list(/obj/item/organ/eyes/robotic)
@@ -42,7 +42,7 @@
/datum/bounty/item/medical/tongue
name = "Tongues"
description = "A recent attack by Mime extremists has left staff at Station 23 speechless. Ship some spare tongues."
- reward = 10000
+ reward = 4500
required_count = 3
wanted_types = list(/obj/item/organ/tongue)
@@ -95,33 +95,33 @@
/datum/bounty/item/medical/surgery
name = "Surgery tool implants"
description = "Our medical interns keep dropping their Shambler's Juice while they're performing open heart surgery. One of them even had the audacity to say he only had two hands!"
- reward = 10000
+ reward = 7000
required_count = 3
wanted_types = list(/obj/item/organ/cyberimp/arm/surgery)
/datum/bounty/item/medical/chemmaker
name = "Portable Chem Dispenser"
description = "After a new chemist mixed up some water and a banana, we lost our only chem dispenser. Please send us a replacement and you will be compensated."
- reward = 7000
+ reward = 5000
wanted_types = list(/obj/machinery/chem_dispenser)
/datum/bounty/item/medical/advhealthscaner
name = "Advanced Health Analyzer"
description = "A ERT Medical unit needs the new 'advanced health analyzer', for a mission at a Station 4. Can you send some?."
- reward = 4000
+ reward = 3000
required_count = 5
wanted_types = list(/obj/item/healthanalyzer/advanced)
/datum/bounty/item/medical/wallmounts
name = "Defibrillator wall mounts"
description = "New Space OSHA regulation state that are new cloning medical wing needs a few 'Easy to access defibrillartors'. Can you send a few before we get a lawsuit?"
- reward = 5000
+ reward = 2000
required_count = 3
wanted_types = list(/obj/machinery/defibrillator_mount)
/datum/bounty/item/medical/defibrillator
name = "New defibillators"
description = "After years of storage are defibrillator units have become more liabilities then we want. Please send us some new ones to replace these old ones."
- reward = 5000
+ reward = 2250
required_count = 5
wanted_types = list(/obj/item/defibrillator)
diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm
index 51d93f83..1f3266af 100644
--- a/code/modules/cargo/bounties/mining.dm
+++ b/code/modules/cargo/bounties/mining.dm
@@ -8,58 +8,58 @@
/datum/bounty/item/mining/goliath_boat
name = "Goliath Hide Boat"
description = "Commander Menkov wants to participate in the annual Lavaland Regatta. He is asking your shipwrights to build the swiftest boat known to man."
- reward = 10000
+ reward = 5500
wanted_types = list(/obj/vehicle/ridden/lavaboat)
/datum/bounty/item/mining/bone_oar
name = "Bone Oars"
description = "Commander Menkov requires oars to participate in the annual Lavaland Regatta. Ship a pair over."
- reward = 4000
+ reward = 2000
required_count = 2
wanted_types = list(/obj/item/oar)
/datum/bounty/item/mining/bone_axe
name = "Bone Axe"
description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement."
- reward = 7500
+ reward = 3500
wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe)
/datum/bounty/item/mining/bone_armor
name = "Bone Armor"
description = "Station 14 has volunteered their lizard crew for ballistic armor testing. Ship over some bone armor."
- reward = 5000
+ reward = 2000
wanted_types = list(/obj/item/clothing/suit/armor/bone)
/datum/bounty/item/mining/skull_helmet
name = "Skull Helmet"
description = "Station 42's Head of Security has her birthday tomorrow! We want to suprise her with a fashionable skull helmet."
- reward = 4000
+ reward = 2000
wanted_types = list(/obj/item/clothing/head/helmet/skull)
/datum/bounty/item/mining/bone_talisman
name = "Bone Talismans"
description = "Station 14's Research Director claims that pagan bone talismans protect their wearer. Ship them a few so they can start testing."
- reward = 7500
+ reward = 3500
required_count = 3
wanted_types = list(/obj/item/clothing/accessory/talisman)
/datum/bounty/item/mining/bone_dagger
name = "Bone Daggers"
description = "Central Command's canteen is undergoing budget cuts. Ship over some bone daggers so our Chef can keep working."
- reward = 5000
+ reward = 1000
required_count = 3
wanted_types = list(/obj/item/kitchen/knife/combat/bone)
/datum/bounty/item/mining/basalt
name = "Artificial Basalt Tiles"
description = "Central Command's Ash Walker exhibit needs to be expanded again, we just need some more basalt flooring."
- reward = 5000
+ reward = 2200
required_count = 60
wanted_types = list(/obj/item/stack/tile/basalt)
/datum/bounty/item/mining/fruit
name = "Cactus Fruit"
description = "Central Command's Ash Walker habitat needs more fauna, send us some local fruit seeds!"
- reward = 2000
+ reward = 1000
required_count = 1
wanted_types = list(/obj/item/seeds/lavaland/cactus)
diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm
index e6d2e91a..ee122a11 100644
--- a/code/modules/cargo/bounties/reagent.dm
+++ b/code/modules/cargo/bounties/reagent.dm
@@ -117,11 +117,11 @@ datum/bounty/reagent/complex_drink/New()
wanted_reagent = new reagent_type
name = wanted_reagent.name
description = "CentCom is offering a reward for talented mixologists. Ship a container of [name] to claim the prize."
- reward += rand(0, 4) * 500
+ reward += rand(0, 4) * 300
/datum/bounty/reagent/chemical
name = "Chemical"
- reward = 4000
+ reward = 2750
required_volume = 30
datum/bounty/reagent/chemical/New()
diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm
index 1bf3fda8..b8a01f56 100644
--- a/code/modules/cargo/bounties/science.dm
+++ b/code/modules/cargo/bounties/science.dm
@@ -1,116 +1,116 @@
/datum/bounty/item/science/boh
name = "Bag of Holding"
description = "Centcom would make good use of high-capacity backpacks. If you have any, please ship them."
- reward = 10000
+ reward = 5000
wanted_types = list(/obj/item/storage/backpack/holding)
/datum/bounty/item/science/tboh
name = "Trash Bag of Holding"
description = "Centcom would make good use of high-capacity trash bags. If you have any, please ship them."
- reward = 10000
+ reward = 3000
wanted_types = list(/obj/item/storage/backpack/holding)
/datum/bounty/item/science/bluespace_syringe
name = "Bluespace Syringe"
description = "Centcom would make good use of high-capacity syringes. If you have any, please ship them."
- reward = 10000
+ reward = 1500
wanted_types = list(/obj/item/reagent_containers/syringe/bluespace)
/datum/bounty/item/science/bluespace_body_bag
name = "Bluespace Body Bag"
description = "Centcom would make good use of high-capacity body bags. If you have any, please ship them."
- reward = 10000
+ reward = 5000
wanted_types = list(/obj/item/bodybag/bluespace)
/datum/bounty/item/science/nightvision_goggles
name = "Night Vision Goggles"
description = "An electrical storm has busted all the lights at CentCom. While management is waiting for replacements, perhaps some night vision goggles can be shipped?"
- reward = 10000
+ reward = 1000
wanted_types = list(/obj/item/clothing/glasses/night, /obj/item/clothing/glasses/meson/night, /obj/item/clothing/glasses/hud/health/night, /obj/item/clothing/glasses/hud/security/night, /obj/item/clothing/glasses/hud/diagnostic/night)
/datum/bounty/item/science/experimental_welding_tool
name = "Experimental Welding Tool"
description = "A recent accident has left most of CentCom's welding tools exploded. Ship replacements to be rewarded."
- reward = 10000
+ reward = 5000
required_count = 3
wanted_types = list(/obj/item/weldingtool/experimental)
/datum/bounty/item/science/cryostasis_beaker
name = "Cryostasis Beaker"
description = "Chemists at Central Command have discovered a new chemical that can only be held in cryostasis beakers. The only problem is they don't have any! Rectify this to receive payment."
- reward = 10000
+ reward = 2000
wanted_types = list(/obj/item/reagent_containers/glass/beaker/noreact)
/datum/bounty/item/science/diamond_drill
name = "Diamond Mining Drill"
description = "Central Command is willing to pay three months salary in exchange for one diamond mining drill."
- reward = 15000
+ reward = 5500
wanted_types = list(/obj/item/pickaxe/drill/diamonddrill, /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill)
/datum/bounty/item/science/floor_buffer
name = "Floor Buffer Upgrade"
description = "One of CentCom's janitors made a small fortune betting on carp races. Now they'd like to commission an upgrade to their floor buffer."
- reward = 10000
+ reward = 3000
wanted_types = list(/obj/item/janiupgrade)
/datum/bounty/item/science/advanced_mop
name = "Advanced Mop"
description = "Excuse me. I'd like to request $17 for a push broom rebristling. Either that, or an advanced mop."
- reward = 10000
+ reward = 3000
wanted_types = list(/obj/item/mop/advanced)
/datum/bounty/item/science/advanced_egun
name = "Advanced Energy Gun"
description = "With the price of rechargers on the rise, upper management is interested in purchasing guns that are self-powered. If you ship one, they'll pay."
- reward = 10000
+ reward = 1800
wanted_types = list(/obj/item/gun/energy/e_gun/nuclear)
/datum/bounty/item/science/bscells
name = "Bluespace Power Cells"
description = "Someone in upper management keeps using the excuse that his tablet battery dies when he's in the middle of work. This will be the last time he doesn't have his presentation, I swear to -"
- reward = 7000
+ reward = 3000
required_count = 10 //Easy to make
wanted_types = list(/obj/item/stock_parts/cell/bluespace)
/datum/bounty/item/science/t4manip
name = "Femto-Manipulators"
description = "One of our Chief Engineers has OCD. Can you send us some femto-manipulators so he stops complaining that his ID doesn't fit perfectly in the PDA slot?"
- reward = 7000
+ reward = 2000
required_count = 20 //Easy to make
wanted_types = list(/obj/item/stock_parts/manipulator/femto)
/datum/bounty/item/science/t4bins
name = "Bluespace Matter Bins"
description = "The local Janitorial union has gone on strike. Can you send us some bluespace bins so we don't have to take out our own trash?"
- reward = 7000
+ reward = 2000
required_count = 20 //Easy to make
wanted_types = list(/obj/item/stock_parts/matter_bin/bluespace)
/datum/bounty/item/science/t4capacitor
name = "Quadratic Capacitor"
description = "One of our linguists doesn't understand why they're called Quadratic capacitors. Can you give him a few so he leaves us alone about it?"
- reward = 7000
+ reward = 2000
required_count = 20 //Easy to make
wanted_types = list(/obj/item/stock_parts/capacitor/quadratic)
/datum/bounty/item/science/t4triphasic
name = "Triphasic Scanning Module"
description = "One of our scientists got into the liberty caps and is demanding new scanning modules so he can talk to ghosts. At this point we just want him out of our office."
- reward = 7000
+ reward = 2000
required_count = 20 //Easy to make
wanted_types = list(/obj/item/stock_parts/scanning_module/triphasic)
/datum/bounty/item/science/t4microlaser
name = "Quad-Ultra Micro-Laser"
description = "The cats on Vega 9 are breeding out of control. We need something to corral them into one area so we can saturation bomb it."
- reward = 7000
+ reward = 2000
required_count = 20 //Easy to make
wanted_types = list(/obj/item/stock_parts/micro_laser/quadultra)
/datum/bounty/item/science/fakecrystals
name = "synthetic bluespace crystals"
description = "Don't, uh, tell anyone, but one of our BSA arrays might have had a little... accident. Send us some bluespace crystals so we can recalibrate it before anyone realizes. The whole set uses artificial bluespace crystals, so we need and not any other type of bluespace crystals..."
- reward = 10000
+ reward = 8000
required_count = 5
wanted_types = list(/obj/item/stack/ore/bluespace_crystal/artificial)
exclude_types = list(/obj/item/stack/ore/bluespace_crystal,
diff --git a/code/modules/cargo/bounties/security.dm b/code/modules/cargo/bounties/security.dm
index 34c9856b..3f598eba 100644
--- a/code/modules/cargo/bounties/security.dm
+++ b/code/modules/cargo/bounties/security.dm
@@ -1,54 +1,54 @@
/datum/bounty/item/security/riotshotgun
name = "Riot Shotguns"
description = "Hooligans have boarded CentCom! Ship riot shotguns quick, or things are going to get dirty."
- reward = 5000
+ reward = 2500
required_count = 2
wanted_types = list(/obj/item/gun/ballistic/shotgun/riot)
/datum/bounty/item/security/recharger
name = "Rechargers"
description = "Kinaris PMC is conducting marksmanship exercises. They request that rechargers be shipped."
- reward = 2000
+ reward = 1700
required_count = 3
wanted_types = list(/obj/machinery/recharger)
/datum/bounty/item/security/practice
name = "Practice Laser Gun"
description = "Kinaris PMC is conducting routine marksmanship exercises. The clown hid all the practice lasers, and we're not using live weapons after last time."
- reward = 3000
+ reward = 1500
required_count = 3
wanted_types = list(/obj/item/gun/energy/laser/practice)
/datum/bounty/item/security/flashshield
name = "Strobe Shield"
description = "One of our Emergency Response Agents thinks there's vampires in a local station. Send him something to help with his fear of the dark and protect him, too."
- reward = 5000
+ reward = 3000
wanted_types = list(/obj/item/assembly/flash/shield)
/datum/bounty/item/security/sechuds
name = "Sec HUDs"
description = "Nanotrasen PMC has started to train officers how to use Sec HUDs to the fullest affect. Please send spare Sec HUDs so we can teach the men."
- reward = 3000
+ reward = 1250
required_count = 5
wanted_types = list(/obj/item/clothing/glasses/hud/security)
/datum/bounty/item/security/techslugs
name = "Tech Slugs"
description = "Kinaris PMC is conducting an ammo loading and use lessons, on the new 'Tech Slugs'. Problem is we don't have any, please fix this..."
- reward = 7500
+ reward = 3500
required_count = 15
wanted_types = list(/obj/item/ammo_casing/shotgun/techshell)
-/datum/bounty/item/security/WT550
+/datum/bounty/item/security/wt550
name = "Spare WT-550 clips"
description = "Kinaris Military Academy's ammunition is running low, please send in spare ammo for practice."
- reward = 7500
+ reward = 1500
required_count = 5
wanted_types = list(/obj/item/ammo_box/magazine/wt550m9)
/datum/bounty/item/security/pins
name = "Test range firing pins"
description = "Kinaris PMC just got a new set of guns, sadly they didn't come with any pins. Can you send us some Test range locked firing pins?"
- reward = 5000
+ reward = 2750
required_count = 3
wanted_types = list(/obj/item/firing_pin/test_range)
diff --git a/code/modules/cargo/bounties/slime.dm b/code/modules/cargo/bounties/slime.dm
index 80b2dc4d..a6d5a114 100644
--- a/code/modules/cargo/bounties/slime.dm
+++ b/code/modules/cargo/bounties/slime.dm
@@ -1,10 +1,10 @@
/datum/bounty/item/slime
- reward = 3000
+ reward = 1950
/datum/bounty/item/slime/New()
..()
description = "Kinaris's head xenobiologist team is hunting for the rare and exotic [name]. A bounty has been offered for finding it."
- reward += rand(0, 4) * 500
+ reward += rand(0, 4) * 250
/datum/bounty/item/slime/green
name = "Green Slime Extract"
diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm
index d1b99cae..e020bb48 100644
--- a/code/modules/cargo/bounties/special.dm
+++ b/code/modules/cargo/bounties/special.dm
@@ -1,14 +1,14 @@
/datum/bounty/item/alien_organs
name = "Alien Organs"
description = "Various research divisions are interested in studying Xenomorph biology. Ship a set of organs to be thoroughly compensated."
- reward = 25000
+ reward = 13500
required_count = 3
wanted_types = list(/obj/item/organ/brain/alien, /obj/item/organ/alien, /obj/item/organ/body_egg/alien_embryo)
/datum/bounty/item/syndicate_documents
name = "Syndicate Documents"
description = "Intel regarding the syndicate is highly prized at CentCom. If you find syndicate documents, ship them. You could save lives."
- reward = 15000
+ reward = 10000
wanted_types = list(/obj/item/documents/syndicate, /obj/item/documents/photocopy)
/datum/bounty/item/syndicate_documents/applies_to(obj/O)
@@ -22,15 +22,15 @@
/datum/bounty/item/adamantine
name = "Adamantine"
description = "Centcom's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while."
- reward = 35000
+ reward = 15000
required_count = 10
wanted_types = list(/obj/item/stack/sheet/mineral/adamantine)
/datum/bounty/more_bounties
name = "More Bounties"
description = "Complete enough bounties and CentCom will issue new ones!"
- reward = 3 // number of bounties
- var/required_bounties = 5
+ reward = 8 // number of bounties
+ var/required_bounties = 3
/datum/bounty/more_bounties/can_claim()
return ..() && completed_bounty_count() >= required_bounties
diff --git a/code/modules/cargo/bounties/virus.dm b/code/modules/cargo/bounties/virus.dm
index d514c3e3..13ac2c8a 100644
--- a/code/modules/cargo/bounties/virus.dm
+++ b/code/modules/cargo/bounties/virus.dm
@@ -1,5 +1,5 @@
/datum/bounty/virus
- reward = 5000
+ reward = 3000
var/shipped = FALSE
var/stat_value = 0
var/stat_name = ""
@@ -11,7 +11,7 @@
stat_value *= -1
name = "Virus ([stat_name] of [stat_value])"
description = "Kinaris.Co is interested in a virus with a [stat_name] stat of exactly [stat_value]. Central Command will pay handsomely for such a virus."
- reward += rand(0, 4) * 500
+ reward += rand(0, 4) * 400
/datum/bounty/virus/completion_string()
return shipped ? "Shipped" : "Not Shipped"
diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm
index b7550465..9a99f201 100644
--- a/code/modules/cargo/exports.dm
+++ b/code/modules/cargo/exports.dm
@@ -1,6 +1,6 @@
/* How it works:
The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored.
-
+
Each object in the loop is checked for applies_to() of various export datums, except the invalid ones.
*/
@@ -31,7 +31,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they
setupExports()
var/list/contents = AM.GetAllContents()
-
+
var/datum/export_report/report = external_report
if(!report) //If we don't have any longer transaction going on
report = new
@@ -58,7 +58,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they
var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message
var/message = ""
var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above.
- var/k_elasticity = 1/30 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity"
+ var/k_elasticity = 1/20 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 30 - > 20
var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type.
var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type.
var/list/exclude_types = list() // Types excluded from export
@@ -125,9 +125,9 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they
if(amount <=0 || the_cost <=0)
return FALSE
-
+
report.total_value[src] += the_cost
-
+
if(istype(O, /datum/export/material))
report.total_amount[src] += amount*MINERAL_MATERIAL_AMOUNT
else
@@ -148,7 +148,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they
var/total_value = ex.total_value[src]
var/total_amount = ex.total_amount[src]
-
+
var/msg = "[total_value] credits: Received [total_amount] "
if(total_value > 0)
msg = "+" + msg
diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm
index 125e0f70..ee273935 100644
--- a/code/modules/cargo/exports/gear.dm
+++ b/code/modules/cargo/exports/gear.dm
@@ -1,83 +1,800 @@
/datum/export/gear
+ include_subtypes = FALSE
+
+//blanket
+/datum/export/gear/hat
+ cost = 3
+ unit_name = "clothing"
+ export_types = list(/obj/item/clothing)
+ include_subtypes = TRUE
+
+//Hats
+
+//Blanket
+/datum/export/gear/hat
+ cost = 5
+ unit_name = "hat"
+ export_types = list(/obj/item/clothing/head)
+ include_subtypes = TRUE
/datum/export/gear/sec_helmet
- cost = 100
+ cost = 70
unit_name = "helmet"
export_types = list(/obj/item/clothing/head/helmet/sec)
-/datum/export/gear/sec_armor
- cost = 100
- unit_name = "armor vest"
- export_types = list(/obj/item/clothing/suit/armor/vest)
+/datum/export/gear/sec_soft
+ cost = 50
+ unit_name = "soft sec cap"
+ export_types = list(/obj/item/clothing/head/soft/sec)
-/datum/export/gear/riot_shield
- cost = 100
- unit_name = "riot shield"
- export_types = list(/obj/item/shield/riot)
+/datum/export/gear/sec_helmetalt
+ cost = 50
+ unit_name = "bullet proof helmet"
+ export_types = list(/obj/item/clothing/head/helmet/alt)
+/datum/export/gear/sec_helmetold
+ cost = 10
+ unit_name = "old helmet"
+ export_types = list(/obj/item/clothing/head/helmet/old)
+
+/datum/export/gear/sec_helmetblue
+ cost = 75
+ unit_name = "blue helmet"
+ export_types = list(/obj/item/clothing/head/helmet/blueshirt)
+
+/datum/export/gear/sec_helmetriot
+ cost = 100
+ unit_name = "riot helmet"
+ export_types = list(/obj/item/clothing/head/helmet/riot)
+
+/datum/export/gear/sec_helmet_light
+ cost = 20
+ unit_name = "justice helmet"
+ export_types = list(/obj/item/clothing/head/helmet/justice/escape)
+ include_subtypes = TRUE
+
+/datum/export/gear/syndicate_helmetswat
+ cost = 250
+ unit_name = "syndicate helmet"
+ export_types = list(/obj/item/clothing/head/helmet/swat)
+
+/datum/export/gear/sec_helmetswat
+ cost = 150
+ unit_name = "swat helmet"
+ export_types = list(/obj/item/clothing/head/helmet/swat/nanotrasen)
+
+/datum/export/gear/thunder_helmet
+ cost = 120
+ unit_name = "thunder dome helmet"
+ export_types = list(/obj/item/clothing/head/helmet/thunderdome)
+
+/datum/export/gear/roman_real
+ cost = 30
+ unit_name = "roman helmet"
+ export_types = list(/obj/item/clothing/head/helmet/roman)
+
+/datum/export/gear/roman_realalt
+ cost = 60
+ unit_name = "legionnaire helmet"
+ export_types = list(/obj/item/clothing/head/helmet/roman/legionnaire)
+
+/datum/export/gear/roman_fake
+ cost = 10
+ unit_name = "toy roman helmet"
+ export_types = list(/obj/item/clothing/head/helmet/roman/fake)
+
+/datum/export/gear/roman_fakealt
+ cost = 20
+ unit_name = "toy legionnaire helmet"
+ export_types = list(/obj/item/clothing/head/helmet/roman/legionnaire/fake)
+
+/datum/export/gear/ash_walker_helm
+ cost = 70
+ unit_name = "gladiator helmet"
+ export_types = list(/obj/item/clothing/head/helmet/gladiator)
+
+/datum/export/gear/lasertag
+ cost = 30 //Has armor
+ unit_name = "lasertag helmet"
+ export_types = list(/obj/item/clothing/head/helmet/redtaghelm)
+
+/datum/export/gear/lasertag/blue
+ export_types = list(/obj/item/clothing/head/helmet/bluetaghelm)
+
+/datum/export/gear/knight_helmet
+ cost = 200
+ k_elasticity = 1/5 //Rare, dont flood it
+ unit_name = "knight helmet"
+ export_types = list(/obj/item/clothing/head/helmet/knight, /obj/item/clothing/head/helmet/knight/blue, /obj/item/clothing/head/helmet/knight/yellow, /obj/item/clothing/head/helmet/knight/red)
+
+/datum/export/gear/skull_hat
+ cost = 70
+ k_elasticity = 1/15 //Its just a skull
+ unit_name = "skull"
+ export_types = list(/obj/item/clothing/head/helmet/skull)
+
+/datum/export/gear/durathread_helm
+ cost = 100
+ k_elasticity = 1/15
+ unit_name = "durathread hat"
+ export_types = list(/obj/item/clothing/head/helmet/durathread, /obj/item/clothing/head/beret/durathread, /obj/item/clothing/head/beanie/durathread)
+
+/datum/export/gear/hard_hats
+ cost = 50
+ unit_name = "hard hat"
+ export_types = list(/obj/item/clothing/head/hardhat, /obj/item/clothing/head/hardhat/orange, /obj/item/clothing/head/hardhat/white, /obj/item/clothing/head/hardhat/dblue)
+
+/datum/export/gear/atmos_helm
+ cost = 200 //Armored, fire proof, light, and presser proof
+ unit_name = "atmos hard hat"
+ export_types = list(/obj/item/clothing/head/hardhat/atmos)
+
+/datum/export/gear/crowns
+ cost = 350 //Armored, gold 300cr of gold to make so give them 50 more for working
+ k_elasticity = 1/5 //Anti-floods
+ unit_name = "crown"
+ export_types = list(/obj/item/clothing/head/crown, /obj/item/clothing/head/crown/fancy)
+
+/datum/export/gear/cchat
+ cost = 40
+ unit_name = "centcom hat"
+ export_types = list(/obj/item/clothing/head/centhat)
+
+/datum/export/gear/caphat
+ cost = 150
+ unit_name = "command hat"
+ export_types = list(/obj/item/clothing/head/caphat, /obj/item/clothing/head/caphat/parade, /obj/item/clothing/head/caphat/beret)
+
+/datum/export/gear/hophat
+ cost = 130
+ unit_name = "hop hat"
+ export_types = list(/obj/item/clothing/head/hopcap, /obj/item/clothing/head/hopcap/beret)
+
+/datum/export/gear/dechat
+ cost = 75
+ k_elasticity = 1/8 //Anti-floods
+ unit_name = "fedora"
+ export_types = list(/obj/item/clothing/head/fedora/det_hat, /obj/item/clothing/head/fedora/curator, /obj/item/clothing/head/fedora)
+
+/datum/export/gear/hoshat
+ cost = 140
+ unit_name = "hos hat"
+ export_types = list(/obj/item/clothing/head/HoS, /obj/item/clothing/head/HoS/beret, /obj/item/clothing/head/beret/sec/navyhos)
+
+/datum/export/gear/syndahoshat
+ cost = 300
+ unit_name = "syndicate command hat"
+ export_types = list(/obj/item/clothing/head/HoS/syndicate, /obj/item/clothing/head/HoS/beret/syndicate)
+
+/datum/export/gear/wardenhat
+ cost = 90
+ unit_name = "warden hat"
+ export_types = list(/obj/item/clothing/head/warden, /obj/item/clothing/head/warden/drill, /obj/item/clothing/head/beret/sec/navywarden)
+
+/datum/export/gear/sechats
+ cost = 60
+ unit_name = "sec beret"
+ export_types = list(/obj/item/clothing/head/beret/sec, /obj/item/clothing/head/beret/sec/navyofficer)
+
+/datum/export/gear/berets
+ cost = 30
+ unit_name = "beret"
+ export_types = list(/obj/item/clothing/head/beret/qm, /obj/item/clothing/head/beret/rd, /obj/item/clothing/head/beret/cmo, /obj/item/clothing/head/beret)
+
+/datum/export/gear/berets
+ cost = 30
+ unit_name = "beret"
+ export_types = list(/obj/item/clothing/head/beret/qm, /obj/item/clothing/head/beret/rd, /obj/item/clothing/head/beret/cmo, /obj/item/clothing/head/beret)
+
+/datum/export/gear/collectable
+ cost = 500
+ unit_name = "collectable hat"
+ k_elasticity = 1/10 //dont flood these
+ export_types = list(/obj/item/clothing/head/collectable)
+ include_subtypes = TRUE
+
+/datum/export/gear/fancyhats
+ cost = 75
+ unit_name = "fancy hat"
+ k_elasticity = 1/10 //dont flood these
+ export_types = list(/obj/item/clothing/head/that, /obj/item/clothing/head/bowler, /obj/item/clothing/head/lizard, /obj/item/clothing/head/canada)
+
+/datum/export/gear/welders
+ cost = 30
+ unit_name = "welder helm"
+ k_elasticity = 1/20 //dont flood these
+ export_types = list(/obj/item/clothing/head/welding)
+
+/datum/export/gear/magichat //Magic as is Antags-Wiz/Cults
+ cost = 450
+ unit_name = "magic hat"
+ export_types = list(/obj/item/clothing/head/wizard, /obj/item/clothing/head/culthood, /obj/item/clothing/head/magus, /obj/item/clothing/head/helmet/clockwork)
+ exclude_types = list(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard/marisa/fake)
+ include_subtypes = TRUE
+
+//Shoes
+
+//Blanket
+/datum/export/gear/shoes
+ cost = 1 //Really dont want to sell EVERY SHOE EVER - yet*
+ unit_name = "shoes"
+ export_types = list(/obj/item/clothing/shoes)
+ include_subtypes = TRUE
+
+/datum/export/gear/clown_shoesmk
+ cost = 600
+ unit_name = "mk-honk prototype shoes"
+ export_types = list(/obj/item/clothing/shoes/clown_shoes/banana_shoes)
+
+/datum/export/gear/magboots
+ cost = 50
+ unit_name = "magboots"
+ export_types = list(/obj/item/clothing/shoes/magboots, /obj/item/clothing/shoes/magboots/atmos)
+
+/datum/export/gear/nosellboots
+ cost = -5000 //We DONT want scew antags
+ unit_name = "error shipment stolen"
+ export_types = list(/obj/item/clothing/shoes/magboots/advance, /obj/item/clothing/shoes/magboots/deathsquad)
+
+/datum/export/gear/syndamagboots
+ cost = 250
+ unit_name = "blood-red magboots"
+ export_types = list(/obj/item/clothing/shoes/magboots/syndie)
+
+/datum/export/gear/combatboots
+ cost = 30
+ unit_name = "combat boots"
+ export_types = list(/obj/item/clothing/shoes/combat)
+
+/datum/export/gear/swatboots
+ cost = 45
+ unit_name = "swat boots"
+ export_types = list(/obj/item/clothing/shoes/combat/swat)
+
+/datum/export/gear/galoshes
+ cost = 50
+ unit_name = "galoshes"
+ export_types = list(/obj/item/clothing/shoes/galoshes, /obj/item/clothing/shoes/galoshes/dry)
+
+/datum/export/gear/clown
+ cost = 10
+ unit_name = "clown shoes"
+ export_types = list(/obj/item/clothing/shoes/clown_shoes, /obj/item/clothing/shoes/clown_shoes/jester)
+
+/datum/export/gear/dressshoes
+ cost = 10
+ unit_name = "dress shoes"
+ export_types = list(/obj/item/clothing/shoes/laceup, /obj/item/clothing/shoes/singerb, /obj/item/clothing/shoes/singery)
+
+/datum/export/gear/working
+ cost = 15
+ unit_name = "boots"
+ export_types = list(/obj/item/clothing/shoes/jackboots/fast, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/workboots, /obj/item/clothing/shoes/workboots/mining)
+
+/datum/export/gear/hopboots
+ cost = 350 //costs 1000 credits for miners to get
+ unit_name = "jump boots"
+ export_types = list(/obj/item/clothing/shoes/bhop)
+
+/datum/export/gear/magicboots //Magic as in Antag - Wiz/Cults
+ cost = 450
+ unit_name = "magic shoes"
+ export_types = list(/obj/item/clothing/shoes/sandal/marisa, /obj/item/clothing/shoes/sandal/magic, /obj/item/clothing/shoes/cult, /obj/item/clothing/shoes/clockwork, /obj/item/clothing/shoes/clown_shoes/taeclowndo, /obj/item/clothing/shoes/sandal/slippers)
+ include_subtypes = TRUE
+
+//Headsets/Ears
+
+//Blanket
+/datum/export/gear/ears
+ cost = 2 //We dont want to sell every headset ever
+ unit_name = "ear gear"
+ export_types = list(/obj/item/clothing/ears, /obj/item/radio/headset)
+ include_subtypes = TRUE
+
+//Gloves
+
+//Blanket
+/datum/export/gear/gloves
+ cost = 4 //Glove crafting can be done
+ unit_name = "gloves"
+ export_types = list(/obj/item/clothing/gloves)
+ include_subtypes = TRUE
+
+/datum/export/gear/boxing
+ cost = 10 //Padding as well as a weapon
+ unit_name = "boxing gloves"
+ export_types = list(/obj/item/clothing/gloves/boxing)
+ include_subtypes = TRUE
+
+/datum/export/gear/combatgloves
+ cost = 80
+ unit_name = "combat gloves"
+ export_types = list(/obj/item/clothing/gloves/combat, /obj/item/clothing/gloves/rapid, /obj/item/clothing/gloves/krav_maga)
+ include_subtypes = TRUE
+
+/datum/export/gear/bonegloves
+ cost = 30
+ unit_name = "bone bracers"
+ export_types = list(/obj/item/clothing/gloves/bracer)
+
+/datum/export/gear/yellowgloves
+ cost = 50
+ unit_name = "insulated gloves"
+ export_types = list(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/red/insulated)
+
+/datum/export/gear/leathergloves
+ cost = 20
+ unit_name = "leather gloves"
+ export_types = list(/obj/item/clothing/gloves/botanic_leather)
+
+/datum/export/gear/fancy
+ cost = 25
+ unit_name = "fancy gloves"
+ export_types = list(/obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/color/captain, /obj/item/clothing/gloves/color/white)
+
+/datum/export/gear/magicgloves//Magic as in Antag - Wiz/Cults
+ cost = 400
+ unit_name = "magic gloves"
+ export_types = list(/obj/item/clothing/gloves/clockwork)
+ include_subtypes = TRUE
+
+//Ties/neck
+
+//Blanket
+/datum/export/gear/neck
+ cost = 5 //Fancy!
+ unit_name = "neck based gear"
+ export_types = list(/obj/item/clothing/neck)
+ include_subtypes = TRUE
+
+/datum/export/gear/collar
+ cost = 7
+ unit_name = "collar"
+ export_types = list(/obj/item/clothing/neck/petcollar)
+ include_subtypes = TRUE
+
+/datum/export/gear/bling
+ cost = 15 //Needs a coin
+ unit_name = "gold plated necklace"
+ export_types = list(/obj/item/clothing/neck/necklace/dope)
+
+//masks
+
+//Blanket
+/datum/export/gear/masks
+ cost = 3 //Mostly just fake stuff and clowngear
+ unit_name = "face gear"
+ export_types = list(/obj/item/clothing/mask)
+ include_subtypes = TRUE
+
+/datum/export/gear/gasmask
+ cost = 4
+ unit_name = "gas mask"
+ export_types = list(/obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas/glass)
+
+/datum/export/gear/minermask
+ cost = 10
+ unit_name = "armored mask"
+ export_types = list(/obj/item/clothing/mask/gas/welding, /obj/item/clothing/mask/gas/explorer, /obj/item/clothing/mask/gas/syndicate)
+
+/datum/export/gear/sechailer
+ cost = 6
+ unit_name = "sec hailer"
+ export_types = list(/obj/item/clothing/mask/gas/sechailer)
+ include_subtypes = TRUE
/datum/export/gear/mask/breath
cost = 2
unit_name = "breath mask"
export_types = list(/obj/item/clothing/mask/breath)
-/datum/export/gear/mask/gas
- cost = 10
- unit_name = "gas mask"
- export_types = list(/obj/item/clothing/mask/gas)
- include_subtypes = FALSE
+//Hardsuits //If you steal/fine more they are worth selling
+//Blanket
+/datum/export/gear/hardsuit
+ cost = 250 //Its just metal/plastic after all
+ unit_name = "unknown hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit)
+ include_subtypes = TRUE
-/datum/export/gear/space/helmet
- cost = 75
+/datum/export/gear/engi_hardsuit
+ cost = 500
+ unit_name = "engine hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/engine)
+
+/datum/export/gear/atmos_hardsuit
+ cost = 600
+ unit_name = "atmos hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/engine/atmos)
+
+/datum/export/gear/engi_hardsuit
+ cost = 1000
+ unit_name = "elite engine hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/engine/elite)
+
+/datum/export/gear/mining_hardsuit
+ cost = 350 //common
+ unit_name = "mining hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/mining)
+
+/datum/export/gear/sec_hardsuit
+ cost = 750
+ unit_name = "sec hardsuit"
+ export_types = list(/obj/item/clothing/head/helmet/space/hardsuit/mining, /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl)
+
+/datum/export/gear/syndi_hardsuit
+ cost = 1250
+ unit_name = "syndi hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/syndi)
+
+/datum/export/gear/syndi_hardsuit
+ cost = 2750
+ unit_name = "elite syndi hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/syndi/elite)
+
+/datum/export/gear/medical_hardsuit
+ cost = 350 //Not all that good
+ unit_name = "meidcal hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/medical)
+
+/datum/export/gear/rd_hardsuit
+ cost = 850 //rare
+ unit_name = "prototype hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/rd)
+
+/datum/export/gear/sec_hardsuit
+ cost = 750
+ unit_name = "sec hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/security)
+
+/datum/export/gear/command_hardsuit
+ cost = 1300
+ unit_name = "command hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/security/hos, /obj/item/clothing/suit/space/hardsuit/captain)
+
+/datum/export/gear/magic_hardsuit
+ cost = 3000
+ unit_name = "magic hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/cult)
+ include_subtypes = TRUE
+
+/datum/export/gear/shield_hardsuit
+ cost = 2000
+ unit_name = "shielded hardsuit"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/shielded)
+ include_subtypes = TRUE
+
+/datum/export/gear/rigs
+ cost = 2750
+ unit_name = "RIG"
+ export_types = list(/obj/item/clothing/suit/space/hardsuit/ancient, /obj/item/clothing/suit/space/hardsuit/ancient/mason)
+
+//Soft Suits
+
+//Blanket
+datum/export/gear/space/helmet
+ cost = 55
unit_name = "space helmet"
- export_types = list(/obj/item/clothing/head/helmet/space, /obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/head/helmet/space/nasavoid)
- include_subtypes = FALSE
+ export_types = list(/obj/item/clothing/head/helmet/space)
+ include_subtypes = TRUE
/datum/export/gear/space/suit
- cost = 150
+ cost = 60
unit_name = "space suit"
- export_types = list(/obj/item/clothing/suit/space, /obj/item/clothing/suit/space/eva, /obj/item/clothing/suit/space/nasavoid)
- include_subtypes = FALSE
+ export_types = list(/obj/item/clothing/suit/space)
+ include_subtypes = TRUE
+datum/export/gear/space/helmet/plasma
+ cost = 100
+ unit_name = "plasmaman space helmet"
+ export_types = list(/obj/item/clothing/suit/space/eva/plasmaman)
-/datum/export/gear/space/syndiehelmet
- cost = 150
- unit_name = "Syndicate space helmet"
+/datum/export/gear/space/suit/plasma
+ cost = 100
+ unit_name = "plasmaman space suit"
+ export_types = list(/obj/item/clothing/suit/space/eva/plasmaman)
+
+datum/export/gear/space/helmet/synda
+ cost = 150 //Flash proof
+ unit_name = "syndicate space helmet"
export_types = list(/obj/item/clothing/head/helmet/space/syndicate)
+ include_subtypes = TRUE
-/datum/export/gear/space/syndiesuit
- cost = 300
- unit_name = "Syndicate space suit"
- export_types = list(/obj/item/clothing/suit/space/syndicate)
+/datum/export/gear/space/suit/synda
+ cost = 150
+ unit_name = "syndicate space suit"
+ export_types = list(/obj/item/clothing/head/helmet/space/syndicate)
+ include_subtypes = TRUE
+//Glasses
+
+//Blanket
+datum/export/gear/glasses //glasses are not worth selling
+ cost = 3
+ unit_name = "glasses"
+ export_types = list(/obj/item/clothing/glasses)
+ include_subtypes = TRUE
+
+/datum/export/gear/mesons
+ cost = 6
+ unit_name = "mesons"
+ export_types = list(/obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/material/mining)
+ include_subtypes = TRUE
+
+/datum/export/gear/scigoggles
+ cost = 8
+ unit_name = "chem goggles"
+ export_types = list(/obj/item/clothing/glasses/science)
+ include_subtypes = TRUE
+
+/datum/export/gear/nvgoggles
+ cost = 20
+ unit_name = "night vison goggles"
+ export_types = list(/obj/item/clothing/glasses/night)
+ include_subtypes = TRUE
+
+/datum/export/gear/sunglasses
+ cost = 12
+ unit_name = "sunglasses"
+ export_types = list(/obj/item/clothing/glasses/sunglasses)
+ include_subtypes = TRUE
+
+/datum/export/gear/huds
+ cost = 10
+ unit_name = "huds"
+ export_types = list(/obj/item/clothing/glasses/hud)
+ include_subtypes = TRUE
+
+/datum/export/gear/huds/glasses
+ cost = 22
+ export_types = list(/obj/item/clothing/glasses/hud/health/sunglasses, /obj/item/clothing/glasses/hud/security/sunglasses)
+
+/datum/export/gear/weldinggoggles
+ cost = 20
+ unit_name = "welding goggles"
+ export_types = list(/obj/item/clothing/glasses/welding)
+ include_subtypes = TRUE
+
+/datum/export/gear/thermals
+ cost = 30
+ unit_name = "thermal goggles"
+ export_types = list(/obj/item/clothing/glasses/thermal, /obj/item/clothing/glasses/hud/toggle/thermal)
+ include_subtypes = TRUE
+
+/datum/export/gear/magic_glasses
+ cost = 140
+ unit_name = "magic goggles"
+ export_types = list(/obj/item/clothing/glasses/godeye, /obj/item/clothing/glasses/hud/health/night/cultblind, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor)
+ include_subtypes = TRUE
+
+//////////
+//UNDER///
+//////////
+
+/datum/export/gear/jumpsuit
+ cost = 3
+ unit_name = "jumpsuit"
+ k_elasticity = 1/100 //you can craft white jumpsuits, if someone does that 300 times, they deserve the 800 credits
+ export_types = list(/obj/item/clothing/under)
+ include_subtypes = TRUE
+
+/datum/export/gear/fancy_jumpsuit
+ cost = 10
+ unit_name = "fancy clothing"
+ k_elasticity = 1/90 //These will be what sells
+ export_types = list(/obj/item/clothing/under/scratch, /obj/item/clothing/under/sl_suit, /obj/item/clothing/under/rank/vice, /obj/item/clothing/under/suit_jacket, \
+ /obj/item/clothing/under/burial, /obj/item/clothing/under/skirt/black, /obj/item/clothing/under/captainparade, /obj/item/clothing/under/hosparademale, \
+ /obj/item/clothing/under/hosparadefem, /obj/item/clothing/under/assistantformal, /obj/item/clothing/under/stripeddress, /obj/item/clothing/under/redeveninggown, \
+ /obj/item/clothing/under/plaid_skirt, /obj/item/clothing/under/geisha, /obj/item/clothing/under/trek, /obj/item/clothing/under/wedding, /obj/item/clothing/under/aviatoruniform,\
+ /obj/item/clothing/under/mega, /obj/item/clothing/under/cia, /obj/item/clothing/under/casualwear, /obj/item/clothing/under/rank)
+ include_subtypes = TRUE
+
+/datum/export/gear/armored_jumpsuit
+ cost = 15
+ unit_name = "armored_jumpsuit"
+ k_elasticity = 1/90 //These will be what sells
+ export_types = list(/obj/item/clothing/under/durathread, /obj/item/clothing/under/rank/security, /obj/item/clothing/under/plasmaman, /obj/item/clothing/under/syndicate, \
+ /obj/item/clothing/under/rank/det, /obj/item/clothing/under/rank/head_of_security, /obj/item/clothing/under/rank/security/spacepol)
+ exclude_types = list(/obj/item/clothing/under/syndicate/tacticool, /obj/item/clothing/under/syndicate/tacticool/skirt)
+ include_subtypes = TRUE
+
+/datum/export/gear/jumpsuit_addon
+ cost = 12 //Few and rare as well as quick drop off of vaule
+ unit_name = "jumpsuit addon"
+ k_elasticity = 1/10
+ export_types = list(/obj/item/clothing/accessory)
+ include_subtypes = TRUE
+
+/datum/export/gear/robes_magic
+ cost = 120
+ unit_name = "magic robes"
+ export_types = list(/obj/item/clothing/suit/wizrobe, /obj/item/clothing/suit/cultrobes, /obj/item/clothing/suit/magusred, /obj/item/clothing/suit/hooded/cultrobes)
+ exclude_types = list(/obj/item/clothing/suit/wizrobe/fake)
+ include_subtypes = TRUE
+
+//Amror
+/datum/export/gear/armor
+ cost = 80
+ unit_name = "misc armor"
+ export_types = list(/obj/item/clothing/suit/armor)
+ include_subtypes = TRUE
+
+/datum/export/gear/sec_armor
+ cost = 180
+ unit_name = "sec armor"
+ export_types = list(/obj/item/clothing/suit/armor/vest/leather, /obj/item/clothing/suit/armor/bulletproof, /obj/item/clothing/suit/armor/vest/det_suit)
+ include_subtypes = TRUE
+
+/datum/export/gear/hosarmor
+ cost = 380
+ unit_name = "hos armor"
+ export_types = list(/obj/item/clothing/suit/armor/hos)
+ include_subtypes = TRUE
+
+/datum/export/gear/wardenarmor
+ cost = 280
+ unit_name = "warden armor"
+ export_types = list(/obj/item/clothing/suit/armor/vest/warden)
+ include_subtypes = TRUE
+
+/datum/export/gear/reflector
+ cost = 500
+ unit_name = "reflector armor"
+ export_types = list(/obj/item/clothing/suit/armor/laserproof)
+ include_subtypes = TRUE
+
+/datum/export/gear/heavy_armor
+ cost = 600 //REALY hard to fine/make takes lots of slimes
+ unit_name = "heavy armor"
+ export_types = list(/obj/item/clothing/suit/armor/heavy)
+ include_subtypes = TRUE
+
+/datum/export/gear/plate_armor
+ cost = 200
+ unit_name = "plate armor"
+ export_types = list(/obj/item/clothing/suit/armor/riot/knight)
+ include_subtypes = TRUE
+
+/datum/export/gear/riot_armor
+ cost = 250
+ unit_name = "riot armor"
+ export_types = list(/obj/item/clothing/suit/armor/riot)
+ include_subtypes = TRUE
+
+/datum/export/gear/bone_armor
+ cost = 50
+ unit_name = "bone armor"
+ export_types = list(/obj/item/clothing/suit/armor/bone)
+ include_subtypes = TRUE
+
+/datum/export/gear/swat_armor
+ cost = 350
+ unit_name = "swat mki armor"
+ export_types = list(/obj/item/clothing/suit/space/swat)
+ include_subtypes = TRUE
+
+/datum/export/gear/dragon_armor
+ cost = 750
+ unit_name = "drake bone armor"
+ export_types = list(/obj/item/clothing/suit/hooded/cloak/drake)
+ include_subtypes = TRUE
+
+/datum/export/gear/commandamor
+ cost = 480
+ unit_name = "command armor"
+ export_types = list(/obj/item/clothing/suit/armor/vest/capcarapace, /obj/item/clothing/suit/armor/centcom)
+ include_subtypes = TRUE
+
+/datum/export/gear/reactive_base
+ cost = 600
+ k_elasticity = 1/2 //Lets not go over board
+ unit_name = "hollow reactive armor"
+ export_types = list(/obj/item/reactive_armour_shell, /obj/item/clothing/suit/armor/reactive)
+
+/datum/export/gear/reactive_active
+ cost = 1200
+ k_elasticity = 1/3 //Lets not go over board
+ unit_name = "working reactive armor"
+ export_types = list(/obj/item/clothing/suit/armor/reactive/repulse, /obj/item/clothing/suit/armor/reactive/tesla, /obj/item/clothing/suit/armor/reactive/teleport)
+
+///////////////////////////
+//Bomb/Rad/Bio Suits/Fire//
+///////////////////////////
/datum/export/gear/radhelmet
- cost = 50
+ cost = 20
unit_name = "radsuit hood"
export_types = list(/obj/item/clothing/head/radiation)
/datum/export/gear/radsuit
- cost = 100
+ cost = 40
unit_name = "radsuit"
export_types = list(/obj/item/clothing/suit/radiation)
+/datum/export/gear/firehelmet
+ cost = 10
+ unit_name = "firesuit helmet"
+ export_types = list(/obj/item/clothing/head/hardhat/red)
+
+/datum/export/gear/fireatmos
+ cost = 120
+ unit_name = "atmos firesuit"
+ export_types = list(/obj/item/clothing/suit/fire/atmos)
+
+/datum/export/gear/firesuit
+ cost = 20
+ unit_name = "firesuit"
+ export_types = list(/obj/item/clothing/suit/fire, /obj/item/clothing/suit/fire/firefighter, /obj/item/clothing/suit/fire/heavy)
+
/datum/export/gear/biohood
- cost = 50
+ cost = 40
unit_name = "biosuit hood"
export_types = list(/obj/item/clothing/head/bio_hood)
+ include_subtypes = TRUE
/datum/export/gear/biosuit
- cost = 100
+ cost = 60
unit_name = "biosuit"
export_types = list(/obj/item/clothing/suit/bio_suit)
+ include_subtypes = TRUE
/datum/export/gear/bombhelmet
- cost = 50
+ cost = 40
unit_name = "bomb suit hood"
export_types = list(/obj/item/clothing/head/bomb_hood)
+ include_subtypes = TRUE
/datum/export/gear/bombsuit
- cost = 100
+ cost = 60
unit_name = "bomb suit"
export_types = list(/obj/item/clothing/suit/bomb_suit)
+ include_subtypes = TRUE
+
+////////////////////
+//Cloaks and Coats//
+////////////////////
+
+/datum/export/gear/cloaks
+ cost = 30
+ unit_name = "cloak"
+ export_types = list(/obj/item/clothing/neck/cloak)
+ include_subtypes = TRUE
+
+/datum/export/gear/cloaksmining
+ cost = 90
+ unit_name = "lavaland cloak"
+ export_types = list(/obj/item/clothing/suit/hooded/cloak/goliath)
+ include_subtypes = TRUE
+
+/datum/export/gear/labcoats
+ cost = 15
+ unit_name = "labcoats"
+ export_types = list(/obj/item/clothing/suit/toggle/labcoat)
+ include_subtypes = TRUE
+
+/datum/export/gear/wintercoats
+ cost = 25
+ unit_name = "winter coats"
+ export_types = list(/obj/item/clothing/suit/hooded/wintercoat)
+ include_subtypes = TRUE
+
+//////////
+//SUITS///
+//////////
+
+/datum/export/gear/suits
+ cost = 40
+ unit_name = "suit"
+ export_types = list(/obj/item/clothing/suit)
+ include_subtypes = TRUE
+
+//////////////////////
+//Chameleon Gear//////
+//////////////////////
+/datum/export/gear/chameleon //Selling a full kit is easy money for 2 tc
+ cost = 280
+ unit_name = "chameleon item"
+ export_types = list(/obj/item/clothing/head/chameleon, /obj/item/clothing/mask/chameleon, /obj/item/clothing/under/chameleon, /obj/item/clothing/suit/chameleon, /obj/item/clothing/glasses/chameleon,\
+ /obj/item/clothing/gloves/chameleon, /obj/item/clothing/head/chameleon, /obj/item/clothing/shoes/chameleon, /obj/item/storage/backpack/chameleon, \
+ /obj/item/storage/belt/chameleon, /obj/item/radio/headset/chameleon, /obj/item/pda/chameleon, /obj/item/stamp/chameleon, /obj/item/clothing/neck/cloak/chameleon)
+ include_subtypes = TRUE
diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm
index bf77d836..88ff5f47 100644
--- a/code/modules/cargo/exports/large_objects.dm
+++ b/code/modules/cargo/exports/large_objects.dm
@@ -1,3 +1,6 @@
+/datum/export/large
+ k_elasticity = 0
+
/datum/export/large/crate
cost = 500
k_elasticity = 0
@@ -21,13 +24,13 @@
export_types = list(/obj/structure/ore_box)
/datum/export/large/crate/wood
- cost = 240
+ cost = 140
unit_name = "wooden crate"
export_types = list(/obj/structure/closet/crate/wooden)
exclude_types = list()
/datum/export/large/crate/coffin
- cost = 250//50 wooden crates cost 2000 points, and you can make 10 coffins in seconds with those planks. Each coffin selling for 250 means you can make a net gain of 500 points for wasting your time making coffins.
+ cost = 150
unit_name = "coffin"
export_types = list(/obj/structure/closet/crate/coffin)
@@ -131,16 +134,48 @@
unit_name = "security barrier"
export_types = list(/obj/item/grenade/barrier, /obj/structure/barricade/security)
+/datum/export/large/frame
+ cost = 20
+ unit_name = "structure frame"
+ export_types = list(/obj/structure/frame, /obj/structure/table_frame)
+ include_subtypes = TRUE
+
+/datum/export/large/pacman
+ cost = 125
+ unit_name = "pacman"
+ export_types = list(/obj/machinery/power/port_gen/pacman)
+
+/datum/export/large/pacman
+ cost = 150
+ unit_name = "super pacman"
+ export_types = list(/obj/machinery/power/port_gen/pacman/super)
+
+/datum/export/large/pacman
+ cost = 175
+ unit_name = "mrs super pacman"
+ export_types = list(/obj/machinery/power/port_gen/pacman/mrs)
+
+/datum/export/large/hydroponics
+ cost = 120
+ unit_name = "hydroponics tray"
+ export_types = list(/obj/machinery/hydroponics)
+
+/datum/export/large/nice_chair
+ cost = 12
+ unit_name = "Padded Chair"
+ export_types = list(/obj/structure/chair/comfy)
+
/datum/export/large/gas_canister
cost = 10 //Base cost of canister. You get more for nice gases inside.
unit_name = "Gas Canister"
export_types = list(/obj/machinery/portable_atmospherics/canister)
+
/datum/export/large/gas_canister/get_cost(obj/O)
var/obj/machinery/portable_atmospherics/canister/C = O
var/worth = 10
var/gases = C.air_contents.gases
- worth += gases[/datum/gas/bz]*4
+ worth += gases[/datum/gas/bz]*4
worth += gases[/datum/gas/stimulum]*25
worth += gases[/datum/gas/hypernoblium]*1000
worth += gases[/datum/gas/miasma]*15
@@ -149,86 +184,169 @@
worth += gases[/datum/gas/nitryl]*30
return worth
-/datum/export/large/odysseus
+
+//////////////
+//Matstatues//
+//////////////
+
+/datum/export/large/nukestatue
+ cost = 175
+ unit_name = "Nuke statue"
+ export_types = list(/obj/structure/statue/uranium/nuke)
+
+/datum/export/large/engstatue
+ cost = 175
+ unit_name = "Engine statue"
+ export_types = list(/obj/structure/statue/uranium/eng)
+
+/datum/export/large/plasmastatue
+ cost = 720
+ unit_name = "Scientist statue"
+ export_types = list(/obj/structure/statue/plasma/scientist)
+
+/datum/export/large/hosstatue
+ cost = 225
+ unit_name = "HoS statue"
+ export_types = list(/obj/structure/statue/gold/hos)
+
+/datum/export/large/rdstatue
+ cost = 225
+ unit_name = "RD statue"
+ export_types = list(/obj/structure/statue/gold/rd)
+
+/datum/export/large/hopstatue
+ cost = 225
+ unit_name = "HoP statue"
+ export_types = list(/obj/structure/statue/gold/hop)
+
+/datum/export/large/cmostatue
+ cost = 225
+ unit_name = "CMO statue"
+ export_types = list(/obj/structure/statue/gold/cmo)
+
+/datum/export/large/cestatue
+ cost = 225
+ unit_name = "CE statue"
+ export_types = list(/obj/structure/statue/gold/ce)
+
+/datum/export/large/mdstatue
+ cost = 200
+ unit_name = "MD statue"
+ export_types = list(/obj/structure/statue/silver/md)
+
+/datum/export/large/janitorstatue
+ cost = 200
+ unit_name = "Janitor statue"
+ export_types = list(/obj/structure/statue/silver/janitor)
+
+/datum/export/large/secstatue
+ cost = 200
+ unit_name = "Sec statue"
+ export_types = list(/obj/structure/statue/silver/sec)
+
+/datum/export/large/medborgstatue
+ cost = 200
+ unit_name = "Medborg statue"
+ export_types = list(/obj/structure/statue/silver/medborg)
+
+/datum/export/large/secborgstatue
+ cost = 200
+ unit_name = "Secborg statue"
+ export_types = list(/obj/structure/statue/silver/secborg)
+
+/datum/export/large/capstatue
+ cost = 1200
+ unit_name = "Captain statue"
+ export_types = list(/obj/structure/statue/diamond/captain)
+
+/datum/export/large/aistatue
+ cost = 1200
+ unit_name = "AI statue"
+ export_types = list(/obj/structure/statue/diamond/ai1, /obj/structure/statue/diamond/ai2)
+
+/datum/export/large/clownstatue
+ cost = 2750
+ unit_name = "Clown statue"
+ export_types = list(/obj/structure/statue/bananium/clown)
+
+/datum/export/large/sandstatue
+ cost = 90 //Big cash
+ unit_name = "sandstone statue"
+ export_types = list(/obj/structure/statue/sandstone/assistant)
+
+////////////
+//MECHS/////
+////////////
+
+/datum/export/large/mech
+ include_subtypes = FALSE
+
+/datum/export/large/mech/odysseus
cost = 5500
unit_name = "working odysseus"
export_types = list(/obj/mecha/medical/odysseus)
- include_subtypes = FALSE
-/datum/export/large/ripley
+/datum/export/large/mech/ripley
cost = 6500
unit_name = "working ripley"
export_types = list(/obj/mecha/working/ripley)
- include_subtypes = FALSE
-/datum/export/large/firefighter
+/datum/export/large/mech/firefighter
cost = 9000
unit_name = "working firefighter"
export_types = list(/obj/mecha/working/ripley/firefighter)
- include_subtypes = FALSE
-/datum/export/large/gygax
+/datum/export/large/mech/gygax
cost = 19000
unit_name = "working gygax"
export_types = list(/obj/mecha/combat/gygax)
- include_subtypes = FALSE
-/datum/export/large/durand
+/datum/export/large/mech/durand
cost = 10000
unit_name = "working durand"
export_types = list(/obj/mecha/combat/durand)
- include_subtypes = FALSE
-/datum/export/large/phazon
+/datum/export/large/mech/phazon
cost = 25000 //Little over half do to needing a core
unit_name = "working phazon"
export_types = list(/obj/mecha/combat/phazon)
- include_subtypes = FALSE
-/datum/export/large/marauder
+/datum/export/large/mech/marauder
cost = 15000 //Still a Combat class mech - CC tech as well! 150% "normal" boundy price.
unit_name = "working marauder"
export_types = list(/obj/mecha/combat/marauder)
- include_subtypes = FALSE
-/datum/export/large/deathripley
+/datum/export/large/mech/deathripley
cost = 8500 //Still a "Combat class" mech - Illegal tech as well! 165% "normal" boundy price.
unit_name = "working illegally modified"
export_types = list(/obj/mecha/working/ripley/deathripley)
- include_subtypes = FALSE
-/datum/export/large/gygaxdark
+/datum/export/large/mech/gygaxdark
cost = 28500 //Still a Combat class mech - Illegal tech as well! 150% "normal" boundy price.
unit_name = "working illegally modified gygax"
export_types = list(/obj/mecha/combat/gygax/dark)
- include_subtypes = FALSE
-/datum/export/large/oldripley
+/datum/export/large/mech/oldripley
cost = 6250 //old mech - Scrap metal ! 50% "normal" boundy price.
unit_name = "working miner ripley"
export_types = list(/obj/mecha/working/ripley/mining)
- include_subtypes = FALSE
-/datum/export/large/honk
+/datum/export/large/mech/honk
cost = 12000 //Still a "Combat class" mech - Comats bordem honk!
unit_name = "working honker"
export_types = list(/obj/mecha/combat/honker)
- include_subtypes = FALSE
-/datum/export/large/reticence
+/datum/export/large/mech/reticence
cost = 12000 //Still a "Combat class" mech - Has cloking and lethal weaponds.
unit_name = "working reticence"
export_types = list(/obj/mecha/combat/reticence)
- include_subtypes = FALSE
-/datum/export/large/seraph
+/datum/export/large/mech/seraph
cost = 25500 //Still a Combat class mech - CC tech as well! 150% "normal" boundy price.
unit_name = "working seraph"
export_types = list(/obj/mecha/combat/marauder/seraph)
- include_subtypes = FALSE
-/datum/export/large/mauler
+/datum/export/large/mech/mauler
cost = 12000 //Still a Combat class mech - CC lethal weaponds.
unit_name = "working legally modified marauder"
export_types = list(/obj/mecha/combat/marauder/mauler)
- include_subtypes = FALSE
diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm
index 04dc76fd..cd11660e 100644
--- a/code/modules/cargo/exports/materials.dm
+++ b/code/modules/cargo/exports/materials.dm
@@ -1,4 +1,5 @@
/datum/export/material
+ k_elasticity = 0
cost = 5 // Cost per MINERAL_MATERIAL_AMOUNT, which is 2000cm3 as of April 2016.
message = "cm3 of developer's tears. Please, report this on github"
var/material_id = null
@@ -27,51 +28,56 @@
return round(amount/MINERAL_MATERIAL_AMOUNT)
-// Materials. Nothing but plasma is really worth selling. Better leave it all to RnD and sell some plasma instead.
+// Materials. Selling raw can lead to a big payout but takes a lot of work for miners to get a lot. Best to craft art/rnd gear
/datum/export/material/bananium
- cost = 1000
+ cost = 500
material_id = MAT_BANANIUM
message = "cm3 of bananium"
/datum/export/material/diamond
- cost = 500
+ cost = 250
material_id = MAT_DIAMOND
message = "cm3 of diamonds"
/datum/export/material/plasma
- cost = 200
+ cost = 100
k_elasticity = 0
material_id = MAT_PLASMA
message = "cm3 of plasma"
/datum/export/material/uranium
- cost = 100
+ cost = 50
material_id = MAT_URANIUM
message = "cm3 of uranium"
/datum/export/material/gold
- cost = 125
+ cost = 60
material_id = MAT_GOLD
message = "cm3 of gold"
/datum/export/material/silver
- cost = 50
+ cost = 25
material_id = MAT_SILVER
message = "cm3 of silver"
/datum/export/material/titanium
- cost = 125
+ cost = 60
material_id = MAT_TITANIUM
message = "cm3 of titanium"
/datum/export/material/plastitanium
- cost = 325 // plasma + titanium costs
+ cost = 165 // plasma + titanium costs
material_id = MAT_TITANIUM // code can only check for one material_id; plastitanium is half plasma, half titanium
message = "cm3 of plastitanium"
-/datum/export/material/metal
+/datum/export/material/plastic
cost = 5
+ material_id = MAT_PLASTIC
+ message = "cm3 of plastic"
+
+/datum/export/material/metal
+ cost = 3
message = "cm3 of metal"
material_id = MAT_METAL
export_types = list(
@@ -79,7 +85,7 @@
/obj/item/stack/rods, /obj/item/stack/ore, /obj/item/coin)
/datum/export/material/glass
- cost = 5
+ cost = 3
message = "cm3 of glass"
material_id = MAT_GLASS
export_types = list(/obj/item/stack/sheet/glass, /obj/item/stack/ore,
diff --git a/code/modules/cargo/exports/organs_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm
new file mode 100644
index 00000000..924d27c1
--- /dev/null
+++ b/code/modules/cargo/exports/organs_robotics.dm
@@ -0,0 +1,141 @@
+// Orgains and Robotics exports. Hearts, new lims, implants, etc.
+
+/datum/export/robotics
+ include_subtypes = FALSE
+ k_elasticity = 0 //ALWAYS worth selling upgrades
+
+/datum/export/implant
+ include_subtypes = FALSE
+ k_elasticity = 0 //ALWAYS worth selling upgrades
+
+/datum/export/orgains
+ include_subtypes = TRUE
+ k_elasticity = 0 //ALWAYS worth selling orgains
+
+/datum/export/implant/autodoc
+ cost = 150
+ unit_name = "autsurgeon"
+ export_types = list(/obj/item/autosurgeon)
+ include_subtypes = TRUE
+
+/datum/export/implant/implant
+ cost = 50
+ unit_name = "implant"
+ export_types = list(/obj/item/implant)
+ include_subtypes = TRUE
+
+/datum/export/implant/cnsreboot
+ cost = 350
+ unit_name = "anti drop implant"
+ export_types = list(/obj/item/organ/cyberimp/brain/anti_drop)
+
+/datum/export/implant/antistun
+ cost = 450
+ unit_name = "rebooter implant"
+ export_types = list(/obj/item/organ/cyberimp/brain/anti_stun)
+
+/datum/export/implant/breathtube
+ cost = 150
+ unit_name = "breath implant"
+ export_types = list(/obj/item/organ/cyberimp/mouth/breathing_tube)
+
+/datum/export/implant/hungerbgone
+ cost = 200
+ unit_name = "nutriment implant"
+ export_types = list(/obj/item/organ/cyberimp/chest/nutriment)
+
+/datum/export/implant/hungerbgoneplus
+ cost = 300
+ unit_name = "upgraded nutriment implant"
+ export_types = list(/obj/item/organ/cyberimp/chest/nutriment/plus)
+
+/datum/export/implant/reviver
+ cost = 350
+ unit_name = "reviver implant"
+ export_types = list(/obj/item/organ/cyberimp/chest/reviver)
+
+/datum/export/implant/thrusters
+ cost = 150
+ unit_name = "thrusters set implant"
+ export_types = list(/obj/item/organ/cyberimp/chest/thrusters)
+
+/datum/export/implant/thrusters
+ cost = 150
+ unit_name = "thrusters set implant"
+ export_types = list(/obj/item/organ/cyberimp/chest/thrusters)
+
+/datum/export/implant/arm
+ cost = 200
+ unit_name = "arm set implant"
+ export_types = list(/obj/item/organ/cyberimp/arm/toolset, /obj/item/organ/cyberimp/arm/surgery)
+ include_subtypes = TRUE
+
+/datum/export/implant/combatarm
+ cost = 800
+ unit_name = "combat arm set implant"
+ export_types = list(/obj/item/organ/cyberimp/arm/gun/laser, /obj/item/organ/cyberimp/arm/gun/taser, /obj/item/organ/cyberimp/arm/esword, /obj/item/organ/cyberimp/arm/medibeam, /obj/item/organ/cyberimp/arm/combat, /obj/item/organ/cyberimp/arm/flash, /obj/item/organ/cyberimp/arm/baton)
+ include_subtypes = TRUE
+
+/datum/export/orgains/heart
+ cost = 250
+ unit_name = "heart"
+ export_types = list(/obj/item/organ/heart)
+ exclude_types = list(/obj/item/organ/heart/cursed, /obj/item/organ/heart/cybernetic)
+
+/datum/export/orgains/tongue
+ cost = 75
+ unit_name = "tongue"
+ export_types = list(/obj/item/organ/tongue)
+
+/datum/export/orgains/eyes
+ cost = 50 //So many things take your eyes out anyways
+ unit_name = "eyes"
+ export_types = list(/obj/item/organ/eyes)
+ exclude_types = list(/obj/item/organ/eyes/robotic)
+
+/datum/export/orgains/stomach
+ cost = 50 //can be replaced
+ unit_name = "stomach"
+ export_types = list(/obj/item/organ/stomach)
+
+/datum/export/orgains/lungs
+ cost = 150
+ unit_name = "lungs"
+ export_types = list(/obj/item/organ/lungs)
+ exclude_types = list(/obj/item/organ/lungs/cybernetic, /obj/item/organ/lungs/cybernetic/upgraded)
+
+/datum/export/orgains/liver
+ cost = 175
+ unit_name = "liver"
+ export_types = list(/obj/item/organ/liver)
+ exclude_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/liver/cybernetic/upgraded)
+
+/datum/export/orgains/tail //Shhh
+ cost = 500
+ unit_name = "error shipment failer"
+ export_types = list(/obj/item/organ/tail)
+
+/datum/export/orgains/vocal_cords
+ cost = 500
+ unit_name = "vocal cords"
+ export_types = list(/obj/item/organ/vocal_cords) //These are gotten via different races
+
+/datum/export/robotics/lims
+ cost = 30
+ unit_name = "robotic lim replacement"
+ export_types = list(/obj/item/bodypart/l_arm/robot, /obj/item/bodypart/r_arm/robot, /obj/item/bodypart/l_leg/robot, /obj/item/bodypart/r_leg/robot, /obj/item/bodypart/chest/robot, /obj/item/bodypart/head/robot)
+
+/datum/export/robotics/surpluse
+ cost = 40
+ unit_name = "robotic lim replacement"
+ export_types = list(/obj/item/bodypart/l_arm/robot/surplus, /obj/item/bodypart/r_arm/robot/surplus, /obj/item/bodypart/l_leg/robot/surplus, /obj/item/bodypart/r_leg/robot/surplus)
+
+/datum/export/robotics/surplus_upgraded
+ cost = 50
+ unit_name = "upgraded robotic lim replacement"
+ export_types = list(/obj/item/bodypart/l_arm/robot/surplus_upgraded, /obj/item/bodypart/r_arm/robot/surplus_upgraded, /obj/item/bodypart/l_leg/robot/surplus_upgraded, /obj/item/bodypart/r_leg/robot/surplus_upgraded)
+
+/datum/export/robotics/surgery_gear_basic
+ cost = 5
+ unit_name = "surgery tool"
+ export_types = list(/obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, /obj/item/surgical_drapes)
diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm
index e6fda5f6..335dbadf 100644
--- a/code/modules/cargo/exports/parts.dm
+++ b/code/modules/cargo/exports/parts.dm
@@ -6,16 +6,96 @@
export_types = list(/obj/item/solar_assembly)
/datum/export/solar/tracker_board
- cost = 100
+ cost = 30
unit_name = "solar tracker board"
export_types = list(/obj/item/electronics/tracker)
/datum/export/solar/control_board
- cost = 150
+ cost = 75
unit_name = "solar panel control board"
export_types = list(/obj/item/circuitboard/computer/solar_control)
/datum/export/swarmer
- cost = 2000
+ cost = 500
unit_name = "deactivated alien deconstruction drone"
export_types = list(/obj/item/deactivated_swarmer)
+
+//Board
+
+/datum/export/board
+ cost = 5
+ unit_name = "circuit board"
+ export_types = list(/obj/item/circuitboard)
+ include_subtypes = TRUE
+
+/datum/export/board/SMES
+ cost = 20
+ k_elasticity = 1/2 //Only a few
+ unit_name = "smes board"
+ export_types = list(/obj/item/circuitboard/machine/smes)
+
+//Stock Parts
+
+/datum/export/subspace
+ cost = 3
+ unit_name = "subspace part"
+ export_types = list(/obj/item/stock_parts/subspace)
+ include_subtypes = TRUE
+
+/datum/export/t1
+ cost = 1
+ unit_name = "basic stock part"
+ export_types = list(/obj/item/stock_parts/capacitor, /obj/item/stock_parts/scanning_module, /obj/item/stock_parts/manipulator, /obj/item/stock_parts/micro_laser, /obj/item/stock_parts/matter_bin)
+
+/datum/export/t2
+ cost = 2
+ unit_name = "advanced stock part"
+ export_types = list(/obj/item/stock_parts/capacitor/adv, /obj/item/stock_parts/scanning_module/adv, /obj/item/stock_parts/manipulator/nano, /obj/item/stock_parts/micro_laser/high, /obj/item/stock_parts/matter_bin/adv)
+
+/datum/export/t3
+ cost = 3
+ unit_name = "super stock part"
+ export_types = list(/obj/item/stock_parts/capacitor/super, /obj/item/stock_parts/scanning_module/phasic, /obj/item/stock_parts/manipulator/pico, /obj/item/stock_parts/micro_laser/ultra, /obj/item/stock_parts/matter_bin/super)
+
+/datum/export/t4
+ cost = 4
+ unit_name = "bluespace stock part"
+ export_types = list(/obj/item/stock_parts/capacitor/quadratic, /obj/item/stock_parts/scanning_module/triphasic, /obj/item/stock_parts/manipulator/femto, /obj/item/stock_parts/micro_laser/quadultra, /obj/item/stock_parts/matter_bin/bluespace)
+
+//Cells
+
+/datum/export/cell
+ cost = 5
+ unit_name = "power cell"
+ export_types = list(/obj/item/stock_parts/cell)
+ include_subtypes = TRUE
+
+/datum/export/cell
+ cost = 10
+ unit_name = "upgraded power cell"
+ export_types = list(/obj/item/stock_parts/cell/upgraded, /obj/item/stock_parts/cell/upgraded/plus)
+
+/datum/export/cellhigh
+ cost = 15
+ unit_name = "high power cell"
+ export_types = list(/obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high/plus)
+
+/datum/export/cellhyper
+ cost = 20
+ unit_name = "super-capacity power cell"
+ export_types = list(/obj/item/stock_parts/cell/super, /obj/item/stock_parts/cell/hyper)
+
+/datum/export/cellbs
+ cost = 25
+ unit_name = "bluespace power cell"
+ export_types = list(/obj/item/stock_parts/cell/bluespace)
+
+/datum/export/cellyellow
+ cost = 40
+ unit_name = "slime power cell"
+ export_types = list(/obj/item/stock_parts/cell/high/slime)
+
+/datum/export/cellyellowhyper
+ cost = 120 //Takes a lot to make and is really good
+ unit_name = "hyper slime power cell"
+ export_types = list(/obj/item/stock_parts/cell/high/slime/hypercharged)
diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm
index 708eb341..1072a38f 100644
--- a/code/modules/cargo/exports/sheets.dm
+++ b/code/modules/cargo/exports/sheets.dm
@@ -1,5 +1,6 @@
/datum/export/stack
unit_name = "sheet"
+ k_elasticity = 0
/datum/export/stack/get_amount(obj/O)
var/obj/item/stack/S = O
@@ -9,47 +10,52 @@
// Hides
+/datum/export/stack/leather
+ cost = 30
+ unit_name = "leather"
+ export_types = list(/obj/item/stack/sheet/leather)
+
/datum/export/stack/skin/monkey
- cost = 50
+ cost = 30
unit_name = "monkey hide"
export_types = list(/obj/item/stack/sheet/animalhide/monkey)
/datum/export/stack/skin/human
- cost = 100
+ cost = 70
export_category = EXPORT_CONTRABAND
unit_name = "piece"
message = "of human skin"
export_types = list(/obj/item/stack/sheet/animalhide/human)
/datum/export/stack/skin/goliath_hide
- cost = 200
+ cost = 160
unit_name = "goliath hide"
export_types = list(/obj/item/stack/sheet/animalhide/goliath_hide)
/datum/export/stack/skin/cat
- cost = 150
+ cost = 120
export_category = EXPORT_CONTRABAND
unit_name = "cat hide"
export_types = list(/obj/item/stack/sheet/animalhide/cat)
/datum/export/stack/skin/corgi
- cost = 200
+ cost = 140
export_category = EXPORT_CONTRABAND
unit_name = "corgi hide"
export_types = list(/obj/item/stack/sheet/animalhide/corgi)
/datum/export/stack/skin/lizard
- cost = 150
+ cost = 50
unit_name = "lizard hide"
export_types = list(/obj/item/stack/sheet/animalhide/lizard)
/datum/export/stack/skin/gondola
- cost = 5000
+ cost = 1000
unit_name = "gondola hide"
export_types = list(/obj/item/stack/sheet/animalhide/gondola)
/datum/export/stack/skin/xeno
- cost = 500
+ cost = 300
unit_name = "alien hide"
export_types = list(/obj/item/stack/sheet/animalhide/xeno)
@@ -57,23 +63,23 @@
// For base materials, see materials.dm
/datum/export/stack/plasteel
- cost = 155 // 2000u of plasma + 2000u of metal.
+ cost = 105 // 2000u of plasma + 2000u of metal.
message = "of plasteel"
export_types = list(/obj/item/stack/sheet/plasteel)
// 1 glass + 0.5 metal, cost is rounded up.
/datum/export/stack/rglass
- cost = 8
+ cost = 6
message = "of reinforced glass"
export_types = list(/obj/item/stack/sheet/rglass)
/datum/export/stack/bscrystal
- cost = 300
+ cost = 150
message = "of bluespace crystals"
export_types = list(/obj/item/stack/sheet/bluespace_crystal)
/datum/export/stack/wood
- cost = 30
+ cost = 15
unit_name = "wood plank"
export_types = list(/obj/item/stack/sheet/mineral/wood)
@@ -93,16 +99,50 @@
unit_name = "cable piece"
export_types = list(/obj/item/stack/cable_coil)
+/datum/export/stack/cloth
+ cost = 10
+ unit_name = "sheets"
+ message = "of cloth"
+ export_types = list(/obj/item/stack/sheet/cloth)
+
+/datum/export/stack/duracloth
+ cost = 40
+ unit_name = "sheets"
+ message = "of duracloth"
+ export_types = list(/obj/item/stack/sheet/durathread)
+
// Weird Stuff
/datum/export/stack/abductor
- cost = 1000
+ cost = 400
message = "of alien alloy"
export_types = list(/obj/item/stack/sheet/mineral/abductor)
/datum/export/stack/adamantine
unit_name = "bar"
- cost = 500
+ cost = 250
message = "of adamantine"
export_types = list(/obj/item/stack/sheet/mineral/adamantine)
+/datum/export/stack/bone
+ cost = 20
+ message = "of bones"
+ export_types = list(/obj/item/stack/sheet/bone)
+
+/datum/export/stack/bronze
+ unit_name = "tiles"
+ cost = 5
+ message = "of bronze"
+ export_types = list(/obj/item/stack/tile/bronze)
+
+/datum/export/stack/brass
+ unit_name = "tiles"
+ cost = 50
+ message = "of brass"
+ export_types = list(/obj/item/stack/tile/brass)
+
+/datum/export/stack/paper
+ unit_name = "sheets"
+ cost = 30
+ message = "of paperframes"
+ export_types = list(/obj/item/stack/sheet/paperframes)
diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm
index 9e58e4ba..9e920006 100644
--- a/code/modules/cargo/exports/tools.dm
+++ b/code/modules/cargo/exports/tools.dm
@@ -1,5 +1,5 @@
/datum/export/toolbox
- cost = 4
+ cost = 6
unit_name = "toolbox"
export_types = list(/obj/item/storage/toolbox)
@@ -8,7 +8,80 @@
// electrical toolbox: 36cr
// robust: priceless
+// Adv tools
+
+/datum/export/gear/powerdrill
+ cost = 25
+ k_elasticity = 1/40 //Market can only take so much
+ unit_name = "power tool"
+ export_types = list(/obj/item/crowbar/power, /obj/item/screwdriver/power, \
+ /obj/item/weldingtool/experimental, /obj/item/wirecutters/power, /obj/item/wrench/power)
+ include_subtypes = TRUE
+
+/datum/export/gear/advtool
+ cost = 175
+ k_elasticity = 0 //Only known to be made by 2 station, market is hungery for it
+ unit_name = "adv tool"
+ export_types = list(/obj/item/crowbar/advanced, /obj/item/crowbar/abductor, /obj/item/screwdriver/abductor, /obj/item/screwdriver/advanced, \
+ /obj/item/weldingtool/abductor, /obj/item/weldingtool/advanced, /obj/item/wirecutters/abductor, /obj/item/wirecutters/advanced, \
+ /obj/item/wrench/abductor, /obj/item/wrench/advanced)
+ include_subtypes = TRUE
+
+// Lights/Eletronic
+
+/datum/export/lights
+ cost = 10
+ unit_name = "light fixer"
+ export_types = list(/obj/item/wallframe/light_fixture)
+ include_subtypes = TRUE
+
+/datum/export/apc_board
+ cost = 5
+ unit_name = "apc electronics"
+ export_types = list(/obj/item/electronics/apc)
+ include_subtypes = TRUE
+
+/datum/export/apc_frame
+ cost = 3
+ unit_name = "apc frame"
+ export_types = list(/obj/item/wallframe/apc)
+ include_subtypes = TRUE
+
+/datum/export/floodlights
+ cost = 15
+ unit_name = "floodlight fixer"
+ export_types = list(/obj/structure/floodlight_frame)
+ include_subtypes = TRUE
+
+/datum/export/bolbstubes
+ cost = 1 //Time
+ unit_name = "light replacement"
+ export_types = list(/obj/item/light/tube, /obj/item/light/bulb)
+
+/datum/export/lightreplacer
+ cost = 20
+ unit_name = "light replacer"
+ export_types = list(/obj/item/lightreplacer)
+
// Basic tools
+/datum/export/basicmining
+ cost = 20
+ unit_name = "basic mining tool"
+ export_types = list(/obj/item/pickaxe, /obj/item/pickaxe/mini, /obj/item/shovel, /obj/item/resonator)
+ include_subtypes = FALSE
+
+/datum/export/upgradedmining
+ cost = 50
+ unit_name = "mining tool"
+ export_types = list(/obj/item/pickaxe/silver, /obj/item/pickaxe/drill, /obj/item/gun/energy/plasmacutter, /obj/item/resonator/upgraded)
+ include_subtypes = FALSE
+
+/datum/export/advdmining
+ cost = 150
+ unit_name = "advanced mining tool"
+ export_types = list(/obj/item/pickaxe/diamond, /obj/item/pickaxe/drill/diamonddrill, /obj/item/pickaxe/drill/jackhammer, /obj/item/gun/energy/plasmacutter/adv)
+ include_subtypes = FALSE
+
/datum/export/screwdriver
cost = 2
unit_name = "screwdriver"
@@ -31,7 +104,6 @@
message = "of wirecutters"
export_types = list(/obj/item/wirecutters)
-
/datum/export/weldingtool
cost = 5
unit_name = "welding tool"
@@ -48,9 +120,8 @@
unit_name = "industrial welding tool"
export_types = list(/obj/item/weldingtool/largetank, /obj/item/weldingtool/hugetank)
-
/datum/export/extinguisher
- cost = 15
+ cost = 10
unit_name = "fire extinguisher"
export_types = list(/obj/item/extinguisher)
include_subtypes = FALSE
@@ -60,9 +131,8 @@
unit_name = "pocket fire extinguisher"
export_types = list(/obj/item/extinguisher/mini)
-
/datum/export/flashlight
- cost = 5
+ cost = 3
unit_name = "flashlight"
export_types = list(/obj/item/flashlight)
include_subtypes = FALSE
@@ -73,11 +143,10 @@
export_types = list(/obj/item/flashlight/flare)
/datum/export/flashlight/seclite
- cost = 10
+ cost = 5
unit_name = "seclite"
export_types = list(/obj/item/flashlight/seclite)
-
/datum/export/analyzer
cost = 5
unit_name = "analyzer"
@@ -88,14 +157,12 @@
unit_name = "t-ray scanner"
export_types = list(/obj/item/t_scanner)
-
/datum/export/radio
cost = 5
unit_name = "radio"
export_types = list(/obj/item/radio)
exclude_types = list(/obj/item/radio/mech)
-
/datum/export/rcd
cost = 100
unit_name = "rapid construction device"
@@ -111,6 +178,21 @@
unit_name = "rapid piping device"
export_types = list(/obj/item/pipe_dispenser)
+/datum/export/rld
+ cost = 150
+ unit_name = "rapid light device"
+ export_types = list(/obj/item/construction/rld)
+
+/datum/export/rped
+ cost = 100
+ unit_name = "rapid part exchange device"
+ export_types = list(/obj/item/storage/part_replacer)
+
+/datum/export/bsrped
+ cost = 200
+ unit_name = "bluespace rapid part exchange device"
+ export_types = list(/obj/item/storage/part_replacer/bluespace)
+
/datum/export/singulo //failsafe in case someone decides to ship a live singularity to CentCom without the corresponding bounty
cost = 1
unit_name = "singularity"
diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm
index bad221c3..34c7ff36 100644
--- a/code/modules/cargo/exports/weapons.dm
+++ b/code/modules/cargo/exports/weapons.dm
@@ -3,6 +3,26 @@
/datum/export/weapon
include_subtypes = FALSE
+/datum/export/weapon/makeshift_shield
+ cost = 30
+ unit_name = "unknown shield"
+ export_types = list(/obj/item/shield/riot, /obj/item/shield/riot/roman, /obj/item/shield/riot/buckler, /obj/item/shield/makeshift)
+
+/datum/export/weapon/riot_shield
+ cost = 50
+ unit_name = "riot shield"
+ export_types = list(/obj/item/shield/riot, /obj/item/shield/riot/tower)
+
+/datum/export/weapon/riot_shield
+ cost = 70
+ unit_name = "flash shield"
+ export_types = list(/obj/item/assembly/flash/shield)
+
+/datum/export/weapon/tele_shield
+ cost = 100
+ unit_name = "tele shield"
+ export_types = list(/obj/item/shield/riot/tele, /obj/item/shield/energy)
+
/datum/export/weapon/baton
cost = 100
unit_name = "stun baton"
@@ -15,7 +35,6 @@
unit_name = "combat knife"
export_types = list(/obj/item/kitchen/knife/combat)
-
/datum/export/weapon/taser
cost = 200
unit_name = "advanced taser"
@@ -27,26 +46,25 @@
export_types = list(/obj/item/gun/energy/laser)
/datum/export/weapon/disabler
- cost = 100
+ cost = 50
unit_name = "disabler"
export_types = list(/obj/item/gun/energy/disabler)
/datum/export/weapon/energy_gun
- cost = 300
+ cost = 200
unit_name = "energy gun"
export_types = list(/obj/item/gun/energy/e_gun)
/datum/export/weapon/wt550
- cost = 300
+ cost = 130
unit_name = "WT-550 automatic rifle"
export_types = list(/obj/item/gun/ballistic/automatic/wt550)
/datum/export/weapon/shotgun
- cost = 300
+ cost = 200
unit_name = "combat shotgun"
export_types = list(/obj/item/gun/ballistic/shotgun/automatic/combat)
-
/datum/export/weapon/flashbang
cost = 5
unit_name = "flashbang grenade"
@@ -57,7 +75,6 @@
unit_name = "tear gas grenade"
export_types = list(/obj/item/grenade/chem_grenade/teargas)
-
/datum/export/weapon/flash
cost = 5
unit_name = "handheld flash"
@@ -69,3 +86,271 @@
unit_name = "pair"
message = "of handcuffs"
export_types = list(/obj/item/restraints/handcuffs)
+
+//////////////
+//RND Guns////
+//////////////
+
+/datum/export/weapon/lasercarbine
+ cost = 120
+ unit_name = "laser carbine"
+ export_types = list(/obj/item/gun/energy/laser/carbine)
+ include_subtypes = TRUE
+
+/datum/export/weapon/teslagun
+ cost = 130
+ unit_name = "tesla revolver"
+ export_types = list(/obj/item/gun/energy/tesla_revolver)
+
+/datum/export/weapon/aeg
+ cost = 200 //Endless power
+ unit_name = "advance engery gun"
+ export_types = list(/obj/item/gun/energy/e_gun/nuclear)
+
+/datum/export/weapon/deconer
+ cost = 600
+ unit_name = "deconer"
+ export_types = list(/obj/item/gun/energy/decloner)
+
+/datum/export/weapon/ntsniper
+ cost = 500
+ unit_name = "beam rifle"
+ export_types = list(/obj/item/gun/energy/beam_rifle)
+
+/datum/export/weapon/needle_gun
+ cost = 50
+ unit_name = "syringe revolver"
+ export_types = list(/obj/item/gun/syringe/rapidsyringe)
+
+/datum/export/weapon/temp_gun
+ cost = 175 //Its just smaller
+ unit_name = "small temperature gun"
+ k_elasticity = 1/5 //Its just a smaller temperature gun, easy to mass make
+ export_types = list(/obj/item/gun/energy/temperature)
+
+/datum/export/weapon/flowergun
+ cost = 100
+ unit_name = "floral somatoray"
+ export_types = list(/obj/item/gun/energy/floragun)
+
+/datum/export/weapon/xraygun
+ cost = 300 //Wall hacks
+ unit_name = "xray gun"
+ export_types = list(/obj/item/gun/energy/xray)
+
+/datum/export/weapon/ioncarbine
+ cost = 200
+ k_elasticity = 1/5 //Its just a smaller temperature gun, easy to mass make
+ unit_name = "ion carbine"
+ export_types = list(/obj/item/gun/energy/ionrifle/carbine)
+
+/datum/export/weapon/largeebow
+ cost = 500
+ unit_name = "crossbow"
+ export_types = list(/obj/item/gun/energy/kinetic_accelerator/crossbow/large)
+
+/datum/export/weapon/largebomb
+ cost = 20
+ unit_name = "large grenade"
+ export_types = list(/obj/item/grenade/chem_grenade/large)
+
+/datum/export/weapon/gravworm
+ cost = 150
+ unit_name = "bluespace weapon"
+ export_types = list(/obj/item/gun/energy/wormhole_projector, /obj/item/gun/energy/gravity_gun)
+
+/datum/export/weapon/cryopryo
+ cost = 70
+ unit_name = "heat based grenade"
+ export_types = list(/obj/item/grenade/chem_grenade/pyro, /obj/item/grenade/chem_grenade/cryo)
+
+/datum/export/weapon/advgrenade
+ cost = 80
+ unit_name = "advanced grenade"
+ export_types = list(/obj/item/grenade/chem_grenade/adv_release)
+
+/////////////////
+//Ammo and Pins//
+/////////////////
+
+/datum/export/weapon/wtammo
+ cost = 10
+ unit_name = "WT-550 automatic rifle ammo"
+ export_types = list(/obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9/wtrubber)
+
+/datum/export/weapon/wtammo/advanced
+ cost = 30
+ unit_name = "advanced WT-550 automatic rifle ammo"
+ export_types = list( /obj/item/ammo_box/magazine/wt550m9/wtap, /obj/item/ammo_box/magazine/wt550m9/wttx, /obj/item/ammo_box/magazine/wt550m9/wtic)
+
+/datum/export/weapon/mindshield
+ cost = 80
+ unit_name = "mindshield locked pin"
+ export_types = list(/obj/item/firing_pin/implant/mindshield)
+
+/datum/export/weapon/testrange
+ cost = 20
+ unit_name = "test range pin"
+ export_types = list(/obj/item/firing_pin/test_range)
+
+/datum/export/weapon/techslug
+ cost = 15
+ k_elasticity = 0
+ unit_name = "advanced shotgun shell"
+ export_types = list(/obj/item/ammo_casing/shotgun/dragonsbreath, /obj/item/ammo_casing/shotgun/meteorslug, /obj/item/ammo_casing/shotgun/pulseslug, /obj/item/ammo_casing/shotgun/frag12, /obj/item/ammo_casing/shotgun/ion, /obj/item/ammo_casing/shotgun/laserslug)
+
+/////////////////////////
+//The Traitor Sell Outs//
+/////////////////////////
+
+/datum/export/weapon/pistol
+ cost = 120
+ unit_name = "illegal firearm"
+ export_types = list(/obj/item/gun/ballistic/automatic/pistol)
+
+/datum/export/weapon/revolver
+ cost = 200
+ unit_name = "large handgun"
+ export_types = list(/obj/item/gun/ballistic/revolver/syndie)
+
+/datum/export/weapon/rocketlauncher
+ cost = 1000
+ unit_name = "rocket launcher"
+ export_types = list(/obj/item/gun/ballistic/rocketlauncher)
+
+/datum/export/weapon/antitank
+ cost = 300
+ unit_name = "hand cannon"
+ export_types = list(/obj/item/gun/ballistic/automatic/pistol/antitank/syndicate)
+
+/datum/export/weapon/clownstuff
+ cost = 500
+ unit_name = "clown war tech"
+ export_types = list(/obj/item/pneumatic_cannon/pie/selfcharge, /obj/item/shield/energy/bananium, /obj/item/melee/transforming/energy/sword/bananium, )
+
+/datum/export/weapon/bulldog
+ cost = 400
+ unit_name = "drum loaded shotgun"
+ export_types = list(/obj/item/gun/ballistic/automatic/shotgun/bulldog)
+
+/datum/export/weapon/smg
+ cost = 350
+ unit_name = "automatic c-20r"
+ export_types = list(/obj/item/gun/ballistic/automatic/c20r)
+
+/datum/export/weapon/duelsaber
+ cost = 360 //Get it?
+ unit_name = "energy saber"
+ export_types = list(/obj/item/twohanded/dualsaber)
+
+/datum/export/weapon/esword
+ cost = 130
+ unit_name = "energy sword"
+ export_types = list(/obj/item/melee/transforming/energy/sword/cx/traitor, /obj/item/melee/transforming/energy/sword/saber)
+
+/datum/export/weapon/rapier
+ cost = 150
+ unit_name = "rapier"
+ export_types = list(/obj/item/storage/belt/sabre/rapier)
+
+/datum/export/weapon/flamer
+ cost = 20 //welder + some rods cheap
+ unit_name = "flamethrower"
+ export_types = list(/obj/item/flamethrower)
+
+/datum/export/weapon/gloves
+ cost = 90
+ unit_name = "starstruck gloves"
+ export_types = list(/obj/item/clothing/gloves/rapid)
+
+/datum/export/weapon/l6
+ cost = 500
+ unit_name = "l6 saw"
+ export_types = list(/obj/item/gun/ballistic/automatic/l6_saw)
+
+/datum/export/weapon/m90
+ cost = 400
+ unit_name = "assault class weapon"
+ export_types = list(/obj/item/gun/ballistic/automatic/m90)
+
+/datum/export/weapon/powerglove
+ cost = 100
+ unit_name = "hydraulic glove"
+ export_types = list(/obj/item/melee/powerfist)
+
+/datum/export/weapon/sniper
+ cost = 750
+ unit_name = ".50 sniper"
+ export_types = list(/obj/item/gun/ballistic/automatic/sniper_rifle/syndicate)
+
+/datum/export/weapon/ebow
+ cost = 600
+ unit_name = "mini crossbow"
+ export_types = list(/obj/item/gun/energy/kinetic_accelerator/crossbow)
+
+/datum/export/weapon/m10mm
+ cost = 10
+ unit_name = "10mm magazine"
+ export_types = list(/obj/item/ammo_box/magazine/m10mm)
+ include_subtypes = TRUE
+
+/datum/export/weapon/dj_a_bomb
+ cost = 100
+ unit_name = "40mm shell"
+ export_types = list(/obj/item/ammo_casing/a40mm)
+
+/datum/export/weapon/point50mags
+ cost = 50
+ unit_name = ".50 magazine"
+ export_types = list(/obj/item/ammo_box/magazine/sniper_rounds)
+ include_subtypes = TRUE
+
+/datum/export/weapon/smg_mag
+ cost = 45
+ unit_name = "smg magazine"
+ export_types = list(/obj/item/ammo_box/magazine/smgm45, /obj/item/ammo_box/magazine/m556)
+
+/datum/export/weapon/l6sawammo
+ cost = 60
+ unit_name = "l6 saw ammo box"
+ export_types = list(/obj/item/ammo_box/magazine/mm195x129)
+ include_subtypes = TRUE
+
+/datum/export/weapon/rocket
+ cost = 120
+ unit_name = "rocket"
+ export_types = list(/obj/item/ammo_casing/caseless/rocket)
+ include_subtypes = TRUE
+
+/datum/export/weapon/ninemmammo
+ cost = 20
+ unit_name = "9mm ammo magazine"
+ export_types = list(/obj/item/ammo_box/magazine/pistolm9mm)
+
+/datum/export/weapon/fletcher_ammo
+ cost = 60
+ unit_name = "illegal ammo magazines"
+ export_types = list(/obj/item/ammo_box/magazine/flechette)
+ include_subtypes = TRUE
+
+/datum/export/weapon/dj_a_pizzabomb
+ cost = -6000
+ unit_name = "Repair Costs"
+ export_types = list(/obj/item/pizzabox/bomb, /obj/item/sbeacondrop/bomb)
+
+/datum/export/weapon/real_toolbox
+ cost = 600
+ unit_name = "golden toolbox"
+ export_types = list(/obj/item/storage/toolbox/gold_real)
+
+/datum/export/weapon/melee
+ cost = 30
+ unit_name = "unlisted weapon"
+ export_types = list(/obj/item/melee)
+ include_subtypes = TRUE
+
+/datum/export/weapon/gun
+ cost = 30
+ unit_name = "unlisted weapon"
+ export_types = list(/obj/item/gun)
+ include_subtypes = TRUE
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 69e4e65f..89c463f3 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -36,3296 +36,3 @@
else
for(var/item in contains)
new item(C)
-
-// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Emergency ///////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/emergency
- group = "Emergency"
-
-/datum/supply_pack/emergency/vehicle
- name = "Biker Gang Kit" //TUNNEL SNAKES OWN THIS TOWN
- desc = "TUNNEL SNAKES OWN THIS TOWN. Contains an unbranded All Terrain Vehicle, and a complete gang outfit -- consists of black gloves, a menacing skull bandanna, and a SWEET leather overcoat!"
- cost = 2000
- contraband = TRUE
- contains = list(/obj/vehicle/ridden/atv,
- /obj/item/key,
- /obj/item/clothing/suit/jacket/leather/overcoat,
- /obj/item/clothing/gloves/color/black,
- /obj/item/clothing/head/soft,
- /obj/item/clothing/mask/bandana/skull)//so you can properly #cargoniabikergang
- crate_name = "Biker Kit"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/emergency/equipment
- name = "Emergency Bot/Internals Crate"
- desc = "Explosions got you down? These supplies are guaranteed to patch up holes, in stations and people alike! Comes with two floorbots, two medbots, five oxygen masks and five small oxygen tanks."
- cost = 3500
- contains = list(/mob/living/simple_animal/bot/floorbot,
- /mob/living/simple_animal/bot/floorbot,
- /mob/living/simple_animal/bot/medbot,
- /mob/living/simple_animal/bot/medbot,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas)
- crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/emergency/radiatione_emergency
- name = "Emergency Radiation Protection Crate"
- desc = "Survive the Nuclear Apocalypse and Supermatter Engine alike with two sets of Radiation suits. Each set contains a helmet, suit, and Geiger counter. We'll even throw in a few pill bottles that are able to handles radiation and the affects of the poisoning."
- cost = 2500
- contains = list(/obj/item/clothing/head/radiation,
- /obj/item/clothing/head/radiation,
- /obj/item/clothing/suit/radiation,
- /obj/item/clothing/suit/radiation,
- /obj/item/geiger_counter,
- /obj/item/geiger_counter,
- /obj/item/storage/pill_bottle/mutarad,
- /obj/item/storage/firstaid/radbgone)
- crate_name = "radiation protection crate"
- crate_type = /obj/structure/closet/crate/radiation
-
-/datum/supply_pack/emergency/rcds
- name = "Emergency RCDs"
- desc = "Bombs going off on station? SME blown and now you need to fix the hole it left behind? Well this crate has a pare of Rcds to be able to easily fix up any problem you may have!"
- cost = 1500
- contains = list(/obj/item/construction/rcd,
- /obj/item/construction/rcd)
- crate_name = "emergency rcds"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/emergency/soft_suit
- name = "Emergency Space Suit "
- desc = "Is there bombs going off left and right? Is there meteors shooting around the station? Well we have two fragile space suit for emergencys as well as air and masks."
- cost = 1000
- contains = list(/obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/suit/space/fragile,
- /obj/item/clothing/suit/space/fragile,
- /obj/item/clothing/head/helmet/space/fragile,
- /obj/item/clothing/head/helmet/space/fragile)
- crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/emergency/firefighting
- name = "Firefighting Crate"
- desc = "Only you can prevent station fires. Partner up with two firefighter suits, gas masks, flashlights, large oxygen tanks, extinguishers, and hardhats!"
- cost = 1000
- contains = list(/obj/item/clothing/suit/fire/firefighter,
- /obj/item/clothing/suit/fire/firefighter,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/flashlight,
- /obj/item/flashlight,
- /obj/item/tank/internals/oxygen/red,
- /obj/item/tank/internals/oxygen/red,
- /obj/item/extinguisher/advanced,
- /obj/item/extinguisher/advanced,
- /obj/item/clothing/head/hardhat/red,
- /obj/item/clothing/head/hardhat/red)
- crate_name = "firefighting crate"
-
-/datum/supply_pack/emergency/atmostank
- name = "Firefighting Tank Backpack"
- desc = "Mow down fires with this high-capacity fire fighting tank backpack. Requires Atmospherics access to open."
- cost = 1000
- access = ACCESS_ATMOSPHERICS
- contains = list(/obj/item/watertank/atmos)
- crate_name = "firefighting backpack crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/emergency/internals
- name = "Internals Crate"
- desc = "Master your life energy and control your breathing with three breath masks, three emergency oxygen tanks and three large air tanks."//IS THAT A
- cost = 1000
- contains = list(/obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/breath,
- /obj/item/clothing/mask/breath,
- /obj/item/clothing/mask/breath,
- /obj/item/tank/internals/emergency_oxygen,
- /obj/item/tank/internals/emergency_oxygen,
- /obj/item/tank/internals/emergency_oxygen,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air,
- /obj/item/tank/internals/air)
- crate_name = "internals crate"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/emergency/metalfoam
- name = "Metal Foam Grenade Crate"
- desc = "Seal up those pesky hull breaches with 14 Metal Foam Grenades."
- cost = 2000
- contains = list(/obj/item/storage/box/metalfoam,
- /obj/item/storage/box/metalfoam)
- crate_name = "metal foam grenade crate"
-
-/datum/supply_pack/emergency/syndicate
- name = "NULL_ENTRY"
- desc = "(#@&^$THIS PACKAGE CONTAINS 30TC WORTH OF SOME RANDOM SYNDICATE GEAR WE HAD LYING AROUND THE WAREHOUSE. GIVE EM HELL, OPERATIVE@&!*() "
- hidden = TRUE
- cost = 20000
- contains = list()
- crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/internals
- dangerous = TRUE
-
-/datum/supply_pack/emergency/syndicate/fill(obj/structure/closet/crate/C)
- var/crate_value = 30
- var/list/uplink_items = get_uplink_items(SSticker.mode)
- while(crate_value)
- var/category = pick(uplink_items)
- var/item = pick(uplink_items[category])
- var/datum/uplink_item/I = uplink_items[category][item]
- if(!I.surplus_nullcrates || prob(100 - I.surplus_nullcrates))
- continue
- if(crate_value < I.cost)
- continue
- crate_value -= I.cost
- new I.item(C)
-
-/datum/supply_pack/emergency/plasma_spacesuit
- name = "Plasmaman Space Envirosuits"
- desc = "Contains two space-worthy envirosuits for Plasmamen. Order now and we'll throw in two free helmets! Requires EVA access to open."
- cost = 4000
- access = ACCESS_EVA
- contains = list(/obj/item/clothing/suit/space/eva/plasmaman,
- /obj/item/clothing/suit/space/eva/plasmaman,
- /obj/item/clothing/head/helmet/space/plasmaman,
- /obj/item/clothing/head/helmet/space/plasmaman)
- crate_name = "plasmaman EVA crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/emergency/plasmaman
- name = "Plasmaman Supply Kit"
- desc = "Keep those Plasmamen alive with two sets of Plasmaman outfits. Each set contains a plasmaman jumpsuit, internals tank, and helmet."
- cost = 2000
- contains = list(/obj/item/clothing/under/plasmaman,
- /obj/item/clothing/under/plasmaman,
- /obj/item/tank/internals/plasmaman/belt/full,
- /obj/item/tank/internals/plasmaman/belt/full,
- /obj/item/clothing/head/helmet/space/plasmaman,
- /obj/item/clothing/head/helmet/space/plasmaman)
- crate_name = "plasmaman supply kit"
-
-/datum/supply_pack/emergency/radiation
- name = "Radiation Protection Crate"
- desc = "Survive the Nuclear Apocalypse and Supermatter Engine alike with two sets of Radiation suits. Each set contains a helmet, suit, and Geiger counter. We'll even throw in a bottle of vodka and some glasses too, considering the life-expectancy of people who order this."
- cost = 1000
- contains = list(/obj/item/clothing/head/radiation,
- /obj/item/clothing/head/radiation,
- /obj/item/clothing/suit/radiation,
- /obj/item/clothing/suit/radiation,
- /obj/item/geiger_counter,
- /obj/item/geiger_counter,
- /obj/item/reagent_containers/food/drinks/bottle/vodka,
- /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
- /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass)
- crate_name = "radiation protection crate"
- crate_type = /obj/structure/closet/crate/radiation
-
-/datum/supply_pack/emergency/spacesuit
- name = "Space Suit Crate"
- desc = "Contains two aging suits from Space-Goodwill. Requires EVA access to open."
- cost = 3000
- access = ACCESS_EVA
- contains = list(/obj/item/clothing/suit/space,
- /obj/item/clothing/suit/space,
- /obj/item/clothing/head/helmet/space,
- /obj/item/clothing/head/helmet/space,
- /obj/item/clothing/mask/breath,
- /obj/item/clothing/mask/breath)
- crate_name = "space suit crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/emergency/spacejets
- name = "Spare EVA Jetpacks"
- desc = "Contains three EVA grade jectpaks. Requires EVA access to open."
- cost = 2000
- access = ACCESS_EVA
- contains = list(/obj/item/tank/jetpack/carbondioxide/eva,
- /obj/item/tank/jetpack/carbondioxide/eva,
- /obj/item/tank/jetpack/carbondioxide/eva)
- crate_name = "eva jetpacks crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/emergency/specialops
- name = "Special Ops Supplies"
- desc = "(*!&@#TOO CHEAP FOR THAT NULL_ENTRY, HUH OPERATIVE? WELL, THIS LITTLE ORDER CAN STILL HELP YOU OUT IN A PINCH. CONTAINS A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, AN INCENDIARY GRENADE, AND A \"SLEEPY PEN\" FULL OF NICE TOXINS!#@*$"
- hidden = TRUE
- cost = 2000
- contains = list(/obj/item/storage/box/emps,
- /obj/item/grenade/smokebomb,
- /obj/item/grenade/smokebomb,
- /obj/item/grenade/smokebomb,
- /obj/item/pen/sleepy,
- /obj/item/grenade/chem_grenade/incendiary)
- crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/emergency/weedcontrol
- name = "Weed Control Crate"
- desc = "Keep those invasive species OUT. Contains a scythe, gasmask, two sprays of Plant-B-Gone, and two anti-weed chemical grenades. Warranty void if used on ambrosia. Requires Hydroponics access to open."
- cost = 1500
- access = ACCESS_HYDROPONICS
- contains = list(/obj/item/scythe,
- /obj/item/clothing/mask/gas,
- /obj/item/grenade/chem_grenade/antiweed,
- /obj/item/grenade/chem_grenade/antiweed,
- /obj/item/reagent_containers/spray/plantbgone,
- /obj/item/reagent_containers/spray/plantbgone)
- crate_name = "weed control crate"
- crate_type = /obj/structure/closet/crate/secure/hydroponics
-
-/datum/supply_pack/medical/anitvirus
- name = "Virus Containment Crate"
- desc = "Viro let out a death plague Mk II again? Someone didnt wash their hands? Old plagues born anew? Well this crate is for you! Hope you cure it before it breaks out of the station... This crate needs medical access to open and has two bio suits, a box of needles and beakers, five spaceacillin needles, and a medibot."
- cost = 3000
- access = ACCESS_MEDICAL
- contains = list(/mob/living/simple_animal/bot/medbot,
- /obj/item/clothing/head/bio_hood,
- /obj/item/clothing/head/bio_hood,
- /obj/item/clothing/suit/bio_suit,
- /obj/item/clothing/suit/bio_suit,
- /obj/item/reagent_containers/syringe/antiviral,
- /obj/item/reagent_containers/syringe/antiviral,
- /obj/item/reagent_containers/syringe/antiviral,
- /obj/item/reagent_containers/syringe/antiviral,
- /obj/item/reagent_containers/syringe/antiviral,
- /obj/item/storage/box/syringes,
- /obj/item/storage/box/beakers)
- crate_name = "virus containment unit crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
-
-
-/datum/supply_pack/emergency/medicalemergency
- name = "Emergency Medical Supplies"
- desc = "Emergency supplies for a front-line medic. Contains two boxes of body bags, a medical HUD, a defib unit, medical belt, toxin bottles, epipens, and several types of medical kits."
- cost = 6600
- contains = list(/obj/item/storage/box/bodybags,
- /obj/item/storage/box/bodybags,
- /obj/item/clothing/glasses/hud/health,
- /obj/item/defibrillator/loaded,
- /obj/item/storage/belt/medical,
- /obj/item/storage/firstaid/toxin,
- /obj/item/storage/firstaid/o2,
- /obj/item/storage/firstaid/brute,
- /obj/item/storage/firstaid/fire,
- /obj/item/reagent_containers/glass/bottle/toxin,
- /obj/item/reagent_containers/glass/bottle/toxin,
- /obj/item/storage/box/medipens)
- crate_name = "medical emergency crate"
- crate_type = /obj/structure/closet/crate/medical
-
-/datum/supply_pack/emergency/medemergencylite
- name = "Emergency Medical Supplies (Lite)"
- desc = "A less than optimal, but still effective, set of tools for emergency care. Contains a box of bodybags, a medical HUD, healing sprays, charcoal, some gauze, and some spare medipens."
- cost = 2800
- contains = list(/obj/item/storage/box/bodybags,
- /obj/item/stack/medical/gauze,
- /obj/item/clothing/glasses/hud/health,
- /obj/item/reagent_containers/medspray/styptic,
- /obj/item/reagent_containers/medspray/silver_sulf,
- /obj/item/reagent_containers/medspray/synthflesh,
- /obj/item/reagent_containers/glass/bottle/charcoal,
- /obj/item/reagent_containers/glass/bottle/charcoal,
- /obj/item/reagent_containers/hypospray/medipen,
- /obj/item/reagent_containers/hypospray/medipen,
- /obj/item/reagent_containers/hypospray/medipen)
- crate_name = "medical emergency crate (lite)"
- crate_type = /obj/structure/closet/crate/medical
-
-/datum/supply_pack/emergency/mre
- name = "MRE supply kit (emergency rations)"
- desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
- cost = 2000
- contains = list(/obj/item/storage/box/mre/menu1/safe,
- /obj/item/storage/box/mre/menu1/safe,
- /obj/item/storage/box/mre/menu2/safe,
- /obj/item/storage/box/mre/menu2/safe,
- /obj/item/storage/box/mre/menu3,
- /obj/item/storage/box/mre/menu4/safe)
- crate_name = "MRE crate (emergency rations)"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Security ////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/security
- group = "Security"
- access = ACCESS_SECURITY
- crate_type = /obj/structure/closet/crate/secure/gear
-
-/datum/supply_pack/security/armor
- name = "Armor Crate"
- desc = "Three vests of well-rounded, decently-protective armor. Requires Security access to open."
- cost = 1000
- contains = list(/obj/item/clothing/suit/armor/vest,
- /obj/item/clothing/suit/armor/vest,
- /obj/item/clothing/suit/armor/vest)
- crate_name = "armor crate"
-
-/datum/supply_pack/security/disabler
- name = "Disabler Crate"
- desc = "Three stamina-draining disabler weapons. Requires Security access to open."
- cost = 1500
- contains = list(/obj/item/gun/energy/disabler,
- /obj/item/gun/energy/disabler,
- /obj/item/gun/energy/disabler)
- crate_name = "disabler crate"
-
-/datum/supply_pack/security/forensics
- name = "Forensics Crate"
- desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open."
- cost = 2000
- contains = list(/obj/item/detective_scanner,
- /obj/item/storage/box/evidence,
- /obj/item/camera,
- /obj/item/taperecorder,
- /obj/item/toy/crayon/white,
- /obj/item/clothing/head/fedora/det_hat)
- crate_name = "forensics crate"
-
-/datum/supply_pack/security/helmets
- name = "Helmets Crate"
- desc = "Contains three standard-issue brain buckets. Requires Security access to open."
- cost = 1000
- contains = list(/obj/item/clothing/head/helmet/sec,
- /obj/item/clothing/head/helmet/sec,
- /obj/item/clothing/head/helmet/sec)
- crate_name = "helmet crate"
-
-/datum/supply_pack/security/laser
- name = "Lasers Crate"
- desc = "Contains three lethal, high-energy laser guns. Requires Security access to open."
- cost = 2000
- contains = list(/obj/item/gun/energy/laser,
- /obj/item/gun/energy/laser,
- /obj/item/gun/energy/laser)
- crate_name = "laser crate"
-
-/datum/supply_pack/security/russianclothing
- name = "Russian Surplus Clothing"
- desc = "An old russian crate full of surplus armor that they used to use! Has two sets of bulletproff armor, a few union suits and some warm hats!"
- contraband = TRUE
- cost = 5000 // Its basicly sec suits, good boots/gloves
- contains = list(/obj/item/clothing/suit/security/officer/russian,
- /obj/item/clothing/suit/security/officer/russian,
- /obj/item/clothing/shoes/combat,
- /obj/item/clothing/shoes/combat,
- /obj/item/clothing/head/ushanka,
- /obj/item/clothing/head/ushanka,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas)
- crate_name = "surplus russian clothing"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/security/russianmosin
- name = "Russian Minutemen Gear"
- desc = "An old russian Minutemen crate, comes with a full russian outfit, a mosin and a stripper clip."
- contraband = TRUE
- access = FALSE
- cost = 5000 //
- contains = list(/obj/item/clothing/suit/security/officer/russian,
- /obj/item/clothing/shoes/combat,
- /obj/item/clothing/head/ushanka,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/mask/gas,
- /obj/item/gun/ballistic/shotgun/boltaction,
- /obj/item/ammo_box/a762)
- crate_name = "surplus russian gear"
- crate_type = /obj/structure/closet/crate/internals
-
-/datum/supply_pack/security/sechardsuit
- name = "Sec Hardsuit"
- desc = "One Sec Hardsuit with a small air tank and mask."
- cost = 3000 // half of SWAT gear for have the armor and half the gear
- contains = list(/obj/item/clothing/suit/space/hardsuit/security,
- /obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas)
- crate_name = "sec hardsuit crate"
-
-/datum/supply_pack/security/securitybarriers
- name = "Security Barrier Grenades"
- desc = "Stem the tide with four Security Barrier grenades. Requires Security access to open."
- contains = list(/obj/item/grenade/barrier,
- /obj/item/grenade/barrier,
- /obj/item/grenade/barrier,
- /obj/item/grenade/barrier)
- cost = 2000
- crate_name = "security barriers crate"
-
-/datum/supply_pack/security/securityclothes
- name = "Security Clothing Crate"
- desc = "Contains appropriate outfits for the station's private security force. Contains outfits for the Warden, Head of Security, and two Security Officers. Each outfit comes with a rank-appropriate jumpsuit, suit, and beret. Requires Security access to open."
- cost = 3000
- contains = list(/obj/item/clothing/under/rank/security/navyblue,
- /obj/item/clothing/under/rank/security/navyblue,
- /obj/item/clothing/suit/security/officer,
- /obj/item/clothing/suit/security/officer,
- /obj/item/clothing/head/beret/sec/navyofficer,
- /obj/item/clothing/head/beret/sec/navyofficer,
- /obj/item/clothing/under/rank/warden/navyblue,
- /obj/item/clothing/suit/security/warden,
- /obj/item/clothing/head/beret/sec/navywarden,
- /obj/item/clothing/under/rank/head_of_security/navyblue,
- /obj/item/clothing/suit/security/hos,
- /obj/item/clothing/head/beret/sec/navyhos)
- crate_name = "security clothing crate"
-
-/datum/supply_pack/security/supplies
- name = "Security Supplies Crate"
- desc = "Contains seven flashbangs, seven teargas grenades, six flashes, and seven handcuffs. Requires Security access to open."
- cost = 1000
- contains = list(/obj/item/storage/box/flashbangs,
- /obj/item/storage/box/teargas,
- /obj/item/storage/box/flashes,
- /obj/item/storage/box/handcuffs)
- crate_name = "security supply crate"
-
-/datum/supply_pack/security/firingpins
- name = "Standard Firing Pins Crate"
- desc = "Upgrade your arsenal with 10 standard firing pins. Requires Security access to open."
- cost = 2000
- contains = list(/obj/item/storage/box/firingpins,
- /obj/item/storage/box/firingpins)
- crate_name = "firing pins crate"
-
-/datum/supply_pack/security/justiceinbound
- name = "Standard Justice Enforcer Crate"
- desc = "This is it. The Bee's Knees. The Creme of the Crop. The Pick of the Litter. The best of the best of the best. The Crown Jewel of Nanotrasen. The Alpha and the Omega of security headwear. Guaranteed to strike fear into the hearts of each and every criminal aboard the station. Also comes with a security gasmask. Requires Security access to open."
- cost = 6000 //justice comes at a price. An expensive, noisy price.
- contraband = TRUE
- contains = list(/obj/item/clothing/head/helmet/justice,
- /obj/item/clothing/mask/gas/sechailer)
- crate_name = "security clothing crate"
-
-/datum/supply_pack/security/baton
- name = "Stun Batons Crate"
- desc = "Arm the Civil Protection Forces with three stun batons. Batteries included. Requires Security access to open."
- cost = 1000
- contains = list(/obj/item/melee/baton/loaded,
- /obj/item/melee/baton/loaded,
- /obj/item/melee/baton/loaded)
- crate_name = "stun baton crate"
-
-/datum/supply_pack/security/taser
- name = "Taser Crate"
- desc = "From the depths of stunbased combat, this order rises above, supreme. Contains three hybrid tasers, capable of firing both electrodes and disabling shots. Requires Security access to open."
- cost = 3000
- contains = list(/obj/item/gun/energy/e_gun/advtaser,
- /obj/item/gun/energy/e_gun/advtaser,
- /obj/item/gun/energy/e_gun/advtaser)
- crate_name = "taser crate"
-
-/datum/supply_pack/security/wall_flash
- name = "Wall-Mounted Flash Crate"
- desc = "Contains four wall-mounted flashes. Requires Security access to open."
- cost = 1000
- contains = list(/obj/item/storage/box/wall_flash,
- /obj/item/storage/box/wall_flash,
- /obj/item/storage/box/wall_flash,
- /obj/item/storage/box/wall_flash)
- crate_name = "wall-mounted flash crate"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Armory //////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/security/armory
- group = "Armory"
- access = ACCESS_ARMORY
- crate_type = /obj/structure/closet/crate/secure/weapon
-
-/datum/supply_pack/security/armory/bulletarmor
- name = "Bulletproof Armor Crate"
- desc = "Contains three sets of bulletproof armor. Guaranteed to reduce a bullet's stopping power by over half. Requires Armory access to open."
- cost = 1500
- contains = list(/obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/suit/armor/bulletproof,
- /obj/item/clothing/suit/armor/bulletproof)
- crate_name = "bulletproof armor crate"
-
-/datum/supply_pack/security/armory/bullethelmets
- name = "Bulletproof Helmet Crate"
- desc = "Contains three sets of bulletproof helmets. Guaranteed to reduce a bullet's stopping power by over half. Requires Armory access to open."
- cost = 1500
- contains = list(/obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/head/helmet/alt,
- /obj/item/clothing/head/helmet/alt)
- crate_name = "bulletproof helmet crate"
-
-/datum/supply_pack/security/armory/chemimp
- name = "Chemical Implants Crate"
- desc = "Contains five Remote Chemical implants. Requires Armory access to open."
- cost = 2000
- contains = list(/obj/item/storage/box/chemimp)
- crate_name = "chemical implant crate"
-
-/datum/supply_pack/security/armory/combatknives
- name = "Combat Knives Crate"
- desc = "Contains three sharpened combat knives. Each knife guaranteed to fit snugly inside any Nanotrasen-standard boot. Requires Armory access to open."
- cost = 3000
- contains = list(/obj/item/kitchen/knife/combat,
- /obj/item/kitchen/knife/combat,
- /obj/item/kitchen/knife/combat)
- crate_name = "combat knife crate"
-
-/datum/supply_pack/security/armory/ballistic
- name = "Combat Shotguns Crate"
- desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, with three Shotgun Bandoliers, as well as seven buchshot and 12g shotgun slugs. Requires Armory access to open."
- cost = 8000
- contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat,
- /obj/item/gun/ballistic/shotgun/automatic/combat,
- /obj/item/gun/ballistic/shotgun/automatic/combat,
- /obj/item/storage/belt/bandolier,
- /obj/item/storage/belt/bandolier,
- /obj/item/storage/belt/bandolier,
- /obj/item/storage/box/lethalshot,
- /obj/item/storage/box/lethalslugs)
- crate_name = "combat shotguns crate"
-
-/datum/supply_pack/security/armory/dragnetgun
- name = "DRAGnet gun Crate"
- desc = "Contains two DRAGnet gun. A Dynamic Rapid-Apprehension of the Guilty net the revolution in law enforcement technology that YOU Want! Requires Armory access to open."
- cost = 3500
- contains = list(/obj/item/gun/energy/e_gun/dragnet,
- /obj/item/gun/energy/e_gun/dragnet)
- crate_name = "anti riot net guns crate"
-
-/datum/supply_pack/security/armory/energy
- name = "Energy Guns Crate"
- desc = "Contains three Energy Guns, capable of firing both nonlethal and lethal blasts of light. Requires Armory access to open."
- cost = 3500
- contains = list(/obj/item/gun/energy/e_gun,
- /obj/item/gun/energy/e_gun,
- /obj/item/gun/energy/e_gun)
- crate_name = "energy gun crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
-
-/datum/supply_pack/security/armory/exileimp // Theres boxes in 2 lockers as well as gateway never realy being used sad
- name = "Exile Implants Crate"
- desc = "Contains five Exile implants. Requires Armory access to open."
- cost = 1000
- contains = list(/obj/item/storage/box/exileimp)
- crate_name = "exile implant crate"
-
-/datum/supply_pack/security/armory/mindshield
- name = "Mindshield Implants Crate"
- desc = "Prevent against radical thoughts with three Mindshield implants. Requires Armory access to open."
- cost = 4000
- contains = list(/obj/item/storage/lockbox/loyalty)
- crate_name = "mindshield implant crate"
-
-/datum/supply_pack/security/armory/trackingimp
- name = "Tracking Implants Crate"
- desc = "Contains four tracking implants. Requires Armory access to open."
- cost = 1000
- contains = list(/obj/item/storage/box/trackimp)
- crate_name = "tracking implant crate"
-
-/datum/supply_pack/security/armory/fire
- name = "Incendiary Weapons Crate"
- desc = "Burn, baby burn. Contains three incendiary grenades, seven incendiary slugs, three plasma canisters, and a flamethrower. Requires Brige access to open."
- cost = 1500
- access = ACCESS_HEADS
- contains = list(/obj/item/flamethrower/full,
- /obj/item/tank/internals/plasma,
- /obj/item/tank/internals/plasma,
- /obj/item/tank/internals/plasma,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/storage/box/fireshot)
- crate_name = "incendiary weapons crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
- dangerous = TRUE
-
-/datum/supply_pack/security/armory/miniguns
- name = "Personal Miniature Energy Guns"
- desc = "Contains three miniature energy guns. Each gun has a disabler and a lethal option. Requires Armory access to open."
- cost = 5000
- contains = list(/obj/item/gun/energy/e_gun/mini,
- /obj/item/gun/energy/e_gun/mini,
- /obj/item/gun/energy/e_gun/mini)
- crate_name = "personal energy guns crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
-
-/datum/supply_pack/security/armory/laserarmor
- name = "Reflector Vest Crate"
- desc = "Contains two vests of highly reflective material. Each armor piece diffuses a laser's energy by over half, as well as offering a good chance to reflect the laser entirely. Requires Armory access to open."
- cost = 2000
- contains = list(/obj/item/clothing/suit/armor/laserproof,
- /obj/item/clothing/suit/armor/laserproof)
- crate_name = "reflector vest crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
-
-/datum/supply_pack/security/armory/riotarmor
- name = "Riot Armor Crate"
- desc = "Contains three sets of heavy body armor. Advanced padding protects against close-ranged weaponry, making melee attacks feel only half as potent to the user. Requires Armory access to open."
- cost = 1500
- contains = list(/obj/item/clothing/suit/armor/riot,
- /obj/item/clothing/suit/armor/riot,
- /obj/item/clothing/suit/armor/riot)
- crate_name = "riot armor crate"
-
-/datum/supply_pack/security/armory/riothelmets
- name = "Riot Helmets Crate"
- desc = "Contains three riot helmets. Requires Armory access to open."
- cost = 1500
- contains = list(/obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/head/helmet/riot,
- /obj/item/clothing/head/helmet/riot)
- crate_name = "riot helmets crate"
-
-/datum/supply_pack/security/armory/riotshields
- name = "Riot Shields Crate"
- desc = "For when the greytide gets really uppity. Contains three riot shields. Requires Armory access to open."
- cost = 2000
- contains = list(/obj/item/shield/riot,
- /obj/item/shield/riot,
- /obj/item/shield/riot)
- crate_name = "riot shields crate"
-
-/datum/supply_pack/security/armory/riotshotguns
- name = "Riot Shotgun Crate"
- desc = "For when the greytide gets really uppity. Contains three riot shotguns, seven rubber shot and beanbag shells. Requires Armory access to open."
- cost = 6000
- contains = list(/obj/item/gun/ballistic/shotgun/riot,
- /obj/item/gun/ballistic/shotgun/riot,
- /obj/item/gun/ballistic/shotgun/riot,
- /obj/item/storage/box/rubbershot,
- /obj/item/storage/box/beanbag)
- crate_name = "riot shotgun crate"
-
-/datum/supply_pack/security/armory/swat
- name = "SWAT Crate"
- desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open."
- cost = 6000
- contains = list(/obj/item/clothing/head/helmet/swat/nanotrasen,
- /obj/item/clothing/head/helmet/swat/nanotrasen,
- /obj/item/clothing/suit/space/swat,
- /obj/item/clothing/suit/space/swat,
- /obj/item/clothing/mask/gas/sechailer/swat,
- /obj/item/clothing/mask/gas/sechailer/swat,
- /obj/item/storage/belt/military/assault,
- /obj/item/storage/belt/military/assault,
- /obj/item/clothing/gloves/combat,
- /obj/item/clothing/gloves/combat)
- crate_name = "swat crate"
-
-/datum/supply_pack/security/armory/swattasers //Lesser AEG tbh
- name = "SWAT tatical tasers Crate"
- desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open."
- cost = 8000
- contains = list(/obj/item/gun/energy/e_gun/stun,
- /obj/item/gun/energy/e_gun/stun)
- crate_name = "swat taser crate"
-
-/datum/supply_pack/security/armory/woodstock
- name = "Classic WoodStock Shotguns Crate"
- desc = "Contains three rustic, pumpaction shotguns. Requires Armory access to open."
- cost = 3500
- contains = list(/obj/item/gun/ballistic/shotgun,
- /obj/item/gun/ballistic/shotgun,
- /obj/item/gun/ballistic/shotgun)
- crate_name = "woodstock shotguns crate"
-
-/datum/supply_pack/security/armory/wt550
- name = "WT-550 Semi-Auto Rifle Crate"
- desc = "Contains two high-powered, semiautomatic rifles chambered in 4.6x30mm. Requires Armory access to open."
- cost = 3500
- contains = list(/obj/item/gun/ballistic/automatic/wt550,
- /obj/item/gun/ballistic/automatic/wt550)
- crate_name = "auto rifle crate"
-
-/datum/supply_pack/security/armory/wt550ammo
- name = "WT-550 Semi-Auto SMG Ammo Crate"
- desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
- cost = 2500
- contains = list(/obj/item/ammo_box/magazine/wt550m9,
- /obj/item/ammo_box/magazine/wt550m9,
- /obj/item/ammo_box/magazine/wt550m9,
- /obj/item/ammo_box/magazine/wt550m9)
- crate_name = "auto rifle ammo crate"
-
-/datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stun crit someone
- name = "WT-550 Semi-Auto SMG Non-Lethal Ammo Crate"
- desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
- cost = 1500
- contains = list(/obj/item/ammo_box/magazine/wt550m9/wtrubber,
- /obj/item/ammo_box/magazine/wt550m9/wtrubber,
- /obj/item/ammo_box/magazine/wt550m9/wtrubber,
- /obj/item/ammo_box/magazine/wt550m9/wtrubber)
- crate_name = "auto rifle ammo crate"
-
-/datum/supply_pack/security/armory/wt550ammo_special
- name = "WT-550 Semi-Auto SMG Special Ammo Crate"
- desc = "Contains 2 20-round Armour Piercing and Incendiary magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
- cost = 4500
- contains = list(/obj/item/ammo_box/magazine/wt550m9/wtap,
- /obj/item/ammo_box/magazine/wt550m9/wtap,
- /obj/item/ammo_box/magazine/wt550m9/wtic,
- /obj/item/ammo_box/magazine/wt550m9/wtic)
- crate_name = "auto rifle ammo crate"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Engineering /////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/engineering
- group = "Engineering"
- crate_type = /obj/structure/closet/crate/engineering
-
-/datum/supply_pack/engineering/shieldgen
- name = "Anti-breach Shield Projector Crate"
- desc = "Hull breaches again? Say no more with the Nanotrasen Anti-Breach Shield Projector! Uses forcefield technology to keep the air in, and the space out. Contains two shield projectors."
- cost = 2500
- contains = list(/obj/machinery/shieldgen,
- /obj/machinery/shieldgen)
- crate_name = "anti-breach shield projector crate"
-
-/datum/supply_pack/engineering/conveyor
- name = "Conveyor Assembly Crate"
- desc = "Keep production moving along with six conveyor belts. Conveyor switch included. If you have any questions, check out the enclosed instruction book."
- cost = 750
- contains = list(/obj/item/conveyor_construct,
- /obj/item/conveyor_construct,
- /obj/item/conveyor_construct,
- /obj/item/conveyor_construct,
- /obj/item/conveyor_construct,
- /obj/item/conveyor_construct,
- /obj/item/conveyor_switch_construct,
- /obj/item/paper/guides/conveyor)
- crate_name = "conveyor assembly crate"
-
-/datum/supply_pack/engineering/engiequipment
- name = "Engineering Gear Crate"
- desc = "Gear up with three toolbelts, high-visibility vests, welding helmets, hardhats, and two pairs of meson goggles!"
- cost = 1300
- contains = list(/obj/item/storage/belt/utility,
- /obj/item/storage/belt/utility,
- /obj/item/storage/belt/utility,
- /obj/item/clothing/suit/hazardvest,
- /obj/item/clothing/suit/hazardvest,
- /obj/item/clothing/suit/hazardvest,
- /obj/item/clothing/head/welding,
- /obj/item/clothing/head/welding,
- /obj/item/clothing/head/welding,
- /obj/item/clothing/head/hardhat,
- /obj/item/clothing/head/hardhat,
- /obj/item/clothing/head/hardhat,
- /obj/item/clothing/glasses/meson/engine,
- /obj/item/clothing/glasses/meson/engine)
- crate_name = "engineering gear crate"
-
-/datum/supply_pack/engineering/engihardsuit
- name = "Engineering Hardsuit"
- desc = "Poly 'Who stole all the hardsuits!' Well now you can get more hardsuits if needed! NOTE ONE HARDSUIT IS IN THIS CRATE, as well as one air tank and mask!"
- cost = 2500
- contains = list(/obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/suit/space/hardsuit/engine)
- crate_name = "engineering hardsuit"
-
-/datum/supply_pack/engineering/atmoshardsuit
- name = "Atmospherics Hardsuit"
- desc = "Too many techs and not enough hardsuits? Time to buy some more! Comes with gas mask and air tank. Ask the CE to open."
- cost = 5000
- access = ACCESS_CE
- contains = list(/obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/suit/space/hardsuit/engine/atmos)
- crate_name = "atmospherics hardsuit"
- crate_type = /obj/structure/closet/crate/secure/engineering
-
-/datum/supply_pack/engineering/industrialrcd
- name = "Industrial RCD"
- desc = "A industrial RCD in case the station has gone through more then one meteor storm and the CE needs to bring out the somthing a bit more reliable. Does not contain spare ammo for the industrial RCD or any other RCD modles."
- cost = 4500
- access = ACCESS_CE
- contains = list(/obj/item/construction/rcd/industrial)
- crate_name = "industrial rcd"
- crate_type = /obj/structure/closet/crate/secure/engineering
-
-/datum/supply_pack/engineering/powergamermitts
- name = "Insulated Gloves Crate"
- desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves."
- cost = 2000 //Made of pure-grade bullshittinium
- contains = list(/obj/item/clothing/gloves/color/yellow,
- /obj/item/clothing/gloves/color/yellow,
- /obj/item/clothing/gloves/color/yellow)
- crate_name = "insulated gloves crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/obj/item/stock_parts/cell/inducer_supply
- maxcharge = 5000
- charge = 5000
-
-/datum/supply_pack/engineering/inducers
- name = "NT-75 Electromagnetic Power Inducers Crate"
- desc = "No rechargers? No problem, with the NT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers."
- cost = 2000
- contains = list(/obj/item/inducer/sci {cell_type = /obj/item/stock_parts/cell/inducer_supply; opened = 0}, /obj/item/inducer/sci {cell_type = /obj/item/stock_parts/cell/inducer_supply; opened = 0}) //FALSE doesn't work in modified type paths apparently.
- crate_name = "inducer crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engineering/pacman
- name = "P.A.C.M.A.N Generator Crate"
- desc = "Engineers can't set up the engine? Not an issue for you, once you get your hands on this P.A.C.M.A.N. Generator! Takes in plasma and spits out sweet sweet energy."
- cost = 2500
- contains = list(/obj/machinery/power/port_gen/pacman)
- crate_name = "PACMAN generator crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engineering/power
- name = "Power Cell Crate"
- desc = "Looking for power overwhelming? Look no further. Contains three high-voltage power cells."
- cost = 1000
- contains = list(/obj/item/stock_parts/cell/high,
- /obj/item/stock_parts/cell/high,
- /obj/item/stock_parts/cell/high)
- crate_name = "power cell crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engineering/powertools
- name = "Power Tools Crate"
- desc = "Setting up the aux base? Working out in space? Maybe you just hate doing things by hand. Grab some power tools and slash your workload in half! Contains a hardhat, hazard vest, Hand Drill, and Jaws of Life"
- cost = 6500
- access = ACCESS_ENGINE
- contains = list(/obj/item/clothing/head/hardhat,
- /obj/item/clothing/suit/hazardvest,
- /obj/item/screwdriver/power,
- /obj/item/crowbar/power)
- crate_name = "power tools crate"
- crate_type = /obj/structure/closet/crate/secure/engineering
-
-/datum/supply_pack/engineering/shuttle_engine
- name = "Shuttle Engine Crate"
- desc = "Through advanced bluespace-shenanigans, our engineers have managed to fit an entire shuttle engine into one tiny little crate. Requires CE access to open."
- cost = 5000
- access = ACCESS_CE
- contains = list(/obj/structure/shuttle/engine/propulsion/burst/cargo)
- crate_name = "shuttle engine crate"
- crate_type = /obj/structure/closet/crate/secure/engineering
- special = TRUE
-
-/datum/supply_pack/engineering/tools
- name = "Toolbox Crate"
- desc = "Any robust spaceman is never far from their trusty toolbox. Contains three electrical toolboxes and three mechanical toolboxes."
- contains = list(/obj/item/storage/toolbox/electrical,
- /obj/item/storage/toolbox/electrical,
- /obj/item/storage/toolbox/electrical,
- /obj/item/storage/toolbox/mechanical,
- /obj/item/storage/toolbox/mechanical,
- /obj/item/storage/toolbox/mechanical)
- cost = 1000
- crate_name = "toolbox crate"
-
-/datum/supply_pack/engineering/bsa
- name = "Bluespace Artillery Parts"
- desc = "The pride of Nanotrasen Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. "
- cost = 15000
- special = TRUE
- contains = list(/obj/item/circuitboard/machine/bsa/front,
- /obj/item/circuitboard/machine/bsa/middle,
- /obj/item/circuitboard/machine/bsa/back,
- /obj/item/circuitboard/computer/bsa_control
- )
- crate_name= "bluespace artillery parts crate"
-
-/datum/supply_pack/engineering/dna_vault
- name = "DNA Vault Parts"
- desc = "Secure the longevity of the current state of humanity within this massive library of scientific knowledge, capable of granting superhuman powers and abilities. Highly advanced research is required for proper construction. Also contains five DNA probes."
- cost = 12000
- special = TRUE
- contains = list(
- /obj/item/circuitboard/machine/dna_vault,
- /obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe
- )
- crate_name= "dna vault parts crate"
-
-/datum/supply_pack/engineering/dna_probes
- name = "DNA Vault Samplers"
- desc = "Contains five DNA probes for use in the DNA vault."
- cost = 3000
- special = TRUE
- contains = list(/obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe,
- /obj/item/dna_probe
- )
- crate_name= "dna samplers crate"
-
-
-/datum/supply_pack/engineering/shield_sat
- name = "Shield Generator Satellite"
- desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites."
- cost = 4000
- contains = list(
- /obj/machinery/satellite/meteor_shield,
- /obj/machinery/satellite/meteor_shield,
- /obj/machinery/satellite/meteor_shield
- )
- crate_name= "shield sat crate"
-
-/datum/supply_pack/engineering/shield_sat_control
- name = "Shield System Control Board"
- desc = "A control system for the Shield Generator Satellite system."
- cost = 4000
- contains = list(/obj/item/circuitboard/computer/sat_control)
- crate_name= "shield control board crate"
-
-/datum/supply_pack/engine/energy_harvester
- name = "Energy Harvesting Module"
- desc = "A Device which upon connection to a node, will harvest the energy and send it to engineerless stations in return for credits, derived from a syndicate powersink model."
- cost = 7500
- access = ACCESS_CE
- contains = list(/obj/item/energy_harvester)
- crate_name = "energy harvesting module crate"
- crate_type = /obj/structure/closet/crate/secure/engineering
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////// Engine Construction /////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/engine
- group = "Engine Construction"
- crate_type = /obj/structure/closet/crate/engineering
-
-/datum/supply_pack/engine/am_jar
- name = "Antimatter Containment Jar Crate"
- desc = "Two Antimatter containment jars stuffed into a single crate."
- cost = 2000
- contains = list(/obj/item/am_containment,
- /obj/item/am_containment)
- crate_name = "antimatter jar crate"
-
-/datum/supply_pack/engine/am_core
- name = "Antimatter Control Crate"
- desc = "The brains of the Antimatter engine, this device is sure to teach the station's powergrid the true meaning of real power."
- cost = 5000
- contains = list(/obj/machinery/power/am_control_unit)
- crate_name = "antimatter control crate"
-
-/datum/supply_pack/engine/am_shielding
- name = "Antimatter Shielding Crate"
- desc = "Contains ten Antimatter shields, somehow crammed into a crate."
- cost = 2000
- contains = list(/obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container,
- /obj/item/am_shielding_container) //10 shields: 3x3 containment and a core
- crate_name = "antimatter shielding crate"
-
-/datum/supply_pack/engine/emitter
- name = "Emitter Crate"
- desc = "Useful for powering forcefield generators while destroying locked crates and intruders alike. Contains two high-powered energy emitters. Requires CE access to open."
- cost = 1500
- access = ACCESS_CE
- contains = list(/obj/machinery/power/emitter,
- /obj/machinery/power/emitter)
- crate_name = "emitter crate"
- crate_type = /obj/structure/closet/crate/secure/engineering
- dangerous = TRUE
-
-/datum/supply_pack/engine/field_gen
- name = "Field Generator Crate"
- desc = "Typically the only thing standing between the station and a messy death. Powered by emitters. Contains two field generators."
- cost = 1500
- contains = list(/obj/machinery/field/generator,
- /obj/machinery/field/generator)
- crate_name = "field generator crate"
-
-/datum/supply_pack/engine/grounding_rods
- name = "Grounding Rod Crate"
- desc = "Four grounding rods guaranteed to keep any uppity tesla's lightning under control."
- cost = 1700
- contains = list(/obj/machinery/power/grounding_rod,
- /obj/machinery/power/grounding_rod,
- /obj/machinery/power/grounding_rod,
- /obj/machinery/power/grounding_rod)
- crate_name = "grounding rod crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engine/mason
- name = "M.A.S.O.N RIG Crate"
- desc = "The rare M.A.S.O.N RIG. Requires CE access to open."
- cost = 15000
- access = ACCESS_CE
- contains = list(/obj/item/clothing/suit/space/hardsuit/ancient/mason)
- crate_name = "M.A.S.O.N Rig"
- crate_type = /obj/structure/closet/crate/secure/engineering
-
-/datum/supply_pack/engine/PA
- name = "Particle Accelerator Crate"
- desc = "A supermassive black hole or hyper-powered teslaball are the perfect way to spice up any party! This \"My First Apocalypse\" kit contains everything you need to build your own Particle Accelerator! Ages 10 and up."
- cost = 3000
- contains = list(/obj/structure/particle_accelerator/fuel_chamber,
- /obj/machinery/particle_accelerator/control_box,
- /obj/structure/particle_accelerator/particle_emitter/center,
- /obj/structure/particle_accelerator/particle_emitter/left,
- /obj/structure/particle_accelerator/particle_emitter/right,
- /obj/structure/particle_accelerator/power_box,
- /obj/structure/particle_accelerator/end_cap)
- crate_name = "particle accelerator crate"
-
-/datum/supply_pack/engine/collector
- name = "Radiation Collector Crate"
- desc = "Contains three radiation collectors. Useful for collecting energy off nearby Supermatter Crystals, Singularities or Teslas!"
- cost = 2500
- contains = list(/obj/machinery/power/rad_collector,
- /obj/machinery/power/rad_collector,
- /obj/machinery/power/rad_collector)
- crate_name = "collector crate"
-
-/datum/supply_pack/engine/sing_gen
- name = "Singularity Generator Crate"
- desc = "The key to unlocking the power of Lord Singuloth. Particle Accelerator not included."
- cost = 5000
- contains = list(/obj/machinery/the_singularitygen)
- crate_name = "singularity generator crate"
-
-/datum/supply_pack/engine/solar
- name = "Solar Panel Crate"
- desc = "Go green with this DIY advanced solar array. Contains twenty one solar assemblies, a solar-control circuit board, and tracker. If you have any questions, please check out the enclosed instruction book."
- cost = 2000
- contains = list(/obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/solar_assembly,
- /obj/item/circuitboard/computer/solar_control,
- /obj/item/electronics/tracker,
- /obj/item/paper/guides/jobs/engi/solars)
- crate_name = "solar panel crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engine/supermatter_shard
- name = "Supermatter Shard Crate"
- desc = "The power of the heavens condensed into a single crystal. Requires CE access to open."
- cost = 10000
- access = ACCESS_CE
- contains = list(/obj/machinery/power/supermatter_crystal/shard)
- crate_name = "supermatter shard crate"
- crate_type = /obj/structure/closet/crate/secure/engineering
- dangerous = TRUE
-
-/datum/supply_pack/engine/tesla_coils
- name = "Tesla Coil Crate"
- desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!"
- cost = 2500
- contains = list(/obj/machinery/power/tesla_coil,
- /obj/machinery/power/tesla_coil,
- /obj/machinery/power/tesla_coil,
- /obj/machinery/power/tesla_coil)
- crate_name = "tesla coil crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
-
-/datum/supply_pack/engine/tesla_gen
- name = "Tesla Generator Crate"
- desc = "The key to unlocking the power of the Tesla energy ball. Particle Accelerator not included."
- cost = 5000
- contains = list(/obj/machinery/the_singularitygen/tesla)
- crate_name = "tesla generator crate"
-
-/datum/supply_pack/engine/teg
- name = "Thermoelectric Generator"
- desc = "Contains your very own Thermoelectric Generator. Time to turn cargo into a blazing hellfire, perhaps?"
- cost = 4000
- contains = list(/obj/machinery/power/generator)
- crate_name = "thermoelectric generator crate"
-
-//////////////////////////////////////////////////////////////////////////////
-/////////////////////// Canisters & Materials ////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/materials
- group = "Canisters & Materials"
-
-/datum/supply_pack/materials/cardboard50
- name = "50 Cardboard Sheets"
- desc = "Create a bunch of boxes."
- cost = 1000
- contains = list(/obj/item/stack/sheet/cardboard/fifty)
- crate_name = "cardboard sheets crate"
-
-/datum/supply_pack/materials/glass50
- name = "50 Glass Sheets"
- desc = "Let some nice light in with fifty glass sheets!"
- cost = 1000
- contains = list(/obj/item/stack/sheet/glass/fifty)
- crate_name = "glass sheets crate"
-
-/datum/supply_pack/materials/metal50
- name = "50 Metal Sheets"
- desc = "Any construction project begins with a good stack of fifty metal sheets!"
- cost = 1000
- contains = list(/obj/item/stack/sheet/metal/fifty)
- crate_name = "metal sheets crate"
-
-/datum/supply_pack/materials/plasteel20
- name = "20 Plasteel Sheets"
- desc = "Reinforce the station's integrity with twenty plasteel sheets!"
- cost = 7500
- contains = list(/obj/item/stack/sheet/plasteel/twenty)
- crate_name = "plasteel sheets crate"
-
-/datum/supply_pack/materials/plasteel50
- name = "50 Plasteel Sheets"
- desc = "For when you REALLY have to reinforce something."
- cost = 16500
- contains = list(/obj/item/stack/sheet/plasteel/fifty)
- crate_name = "plasteel sheets crate"
-
-/datum/supply_pack/materials/plastic50
- name = "50 Plastic Sheets"
- desc = "Build a limitless amount of toys with fifty plastic sheets!"
- cost = 1000
- contains = list(/obj/item/stack/sheet/plastic/fifty)
- crate_name = "plastic sheets crate"
-
-/datum/supply_pack/materials/sandstone30
- name = "30 Sandstone Blocks"
- desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
- cost = 1000
- contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
- crate_name = "sandstone blocks crate"
-
-/datum/supply_pack/materials/wood50
- name = "50 Wood Planks"
- desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!"
- cost = 2000
- contains = list(/obj/item/stack/sheet/mineral/wood/fifty)
- crate_name = "wood planks crate"
-
-/datum/supply_pack/materials/rcdammo
- name = "Spare RDC ammo"
- desc = "This crate contains sixteen RCD ammo packs, to help with any holes or projects people mite be working on."
- cost = 3750
- contains = list(/obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo,
- /obj/item/rcd_ammo)
- crate_name = "rcd ammo"
-
-/datum/supply_pack/materials/bz
- name = "BZ Canister Crate"
- desc = "Contains a canister of BZ. Requires Toxins access to open."
- cost = 7500 // Costs 3 credits more than what you can get for selling it.
- access = ACCESS_TOX_STORAGE
- contains = list(/obj/machinery/portable_atmospherics/canister/bz)
- crate_name = "BZ canister crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/materials/carbon_dio
- name = "Carbon Dioxide Canister"
- desc = "Contains a canister of Carbon Dioxide."
- cost = 3000
- contains = list(/obj/machinery/portable_atmospherics/canister/carbon_dioxide)
- crate_name = "carbon dioxide canister crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/nitrogen
- name = "Nitrogen Canister"
- desc = "Contains a canister of Nitrogen."
- cost = 2000
- contains = list(/obj/machinery/portable_atmospherics/canister/nitrogen)
- crate_name = "nitrogen canister crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/nitrous_oxide_canister
- name = "Nitrous Oxide Canister"
- desc = "Contains a canister of Nitrous Oxide. Requires Atmospherics access to open."
- cost = 3000
- access = ACCESS_ATMOSPHERICS
- contains = list(/obj/machinery/portable_atmospherics/canister/nitrous_oxide)
- crate_name = "nitrous oxide canister crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/materials/oxygen
- name = "Oxygen Canister"
- desc = "Contains a canister of Oxygen. Canned in Druidia."
- cost = 1500
- contains = list(/obj/machinery/portable_atmospherics/canister/oxygen)
- crate_name = "oxygen canister crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/water_vapor
- name = "Water Vapor Canister"
- desc = "Contains a canister of Water Vapor. I swear to god if you open this in the halls..."
- cost = 2500
- contains = list(/obj/machinery/portable_atmospherics/canister/water_vapor)
- crate_name = "water vapor canister crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/fueltank
- name = "Fuel Tank Crate"
- desc = "Contains a welding fuel tank. Caution, highly flammable."
- cost = 800
- contains = list(/obj/structure/reagent_dispensers/fueltank)
- crate_name = "fuel tank crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/watertank
- name = "Water Tank Crate"
- desc = "Contains a tank of dihydrogen monoxide... sounds dangerous."
- cost = 600
- contains = list(/obj/structure/reagent_dispensers/watertank)
- crate_name = "water tank crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/foamtank
- name = "Firefighting Foam Tank Crate"
- desc = "Contains a tank of firefighting foam. Also known as \"plasmaman's bane\"."
- cost = 1500
- contains = list(/obj/structure/reagent_dispensers/foamtank)
- crate_name = "foam tank crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/materials/hightank
- name = "Large Water Tank Crate"
- desc = "Contains a high-capacity water tank. Useful for botany or other service jobs."
- cost = 1200
- contains = list(/obj/structure/reagent_dispensers/watertank/high)
- crate_name = "high-capacity water tank crate"
- crate_type = /obj/structure/closet/crate/large
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Medical /////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/medical
- group = "Medical"
- crate_type = /obj/structure/closet/crate/medical
-
-/datum/supply_pack/medical/bodybags
- name = "Bodybags"
- desc = "For when the bodies hit the floor. Contains 4 boxes of bodybags."
- cost = 1200
- contains = list(/obj/item/storage/box/bodybags,
- /obj/item/storage/box/bodybags,
- /obj/item/storage/box/bodybags,
- /obj/item/storage/box/bodybags,)
- crate_name = "bodybag crate"
-
-/datum/supply_pack/medical/firstaidbruises
- name = "Bruise Treatment Kit Crate"
- desc = "Contains three first aid kits focused on healing bruises and broken bones."
- cost = 1000
- contains = list(/obj/item/storage/firstaid/brute,
- /obj/item/storage/firstaid/brute,
- /obj/item/storage/firstaid/brute)
- crate_name = "brute treatment kit crate"
-
-/datum/supply_pack/medical/firstaidburns
- name = "Burn Treatment Kit Crate"
- desc = "Contains three first aid kits focused on healing severe burns."
- cost = 1000
- contains = list(/obj/item/storage/firstaid/fire,
- /obj/item/storage/firstaid/fire,
- /obj/item/storage/firstaid/fire)
- crate_name = "burn treatment kit crate"
-
-/datum/supply_pack/medical/bloodpacks
- name = "Blood Pack Variety Crate"
- desc = "Contains ten different blood packs for reintroducing blood to patients."
- cost = 3000
- contains = list(/obj/item/reagent_containers/blood/random,
- /obj/item/reagent_containers/blood/random,
- /obj/item/reagent_containers/blood/APlus,
- /obj/item/reagent_containers/blood/AMinus,
- /obj/item/reagent_containers/blood/BPlus,
- /obj/item/reagent_containers/blood/BMinus,
- /obj/item/reagent_containers/blood/OPlus,
- /obj/item/reagent_containers/blood/OMinus,
- /obj/item/reagent_containers/blood/lizard,
- /obj/item/reagent_containers/blood/jellyblood,
- /obj/item/reagent_containers/blood/insect)
- crate_name = "blood freezer"
- crate_type = /obj/structure/closet/crate/freezer
-
-/datum/supply_pack/medical/bloodpackssynth
- name = "Synthetics Blood Pack Crate"
- desc = "Contains five synthetics blood packs for reintroducing blood to patients."
- cost = 3000
- contains = list(/obj/item/reagent_containers/blood/synthetics,
- /obj/item/reagent_containers/blood/synthetics,
- /obj/item/reagent_containers/blood/synthetics,
- /obj/item/reagent_containers/blood/synthetics,
- /obj/item/reagent_containers/blood/synthetics)
- crate_name = "blood freezer"
- crate_type = /obj/structure/closet/crate/freezer
-
-/datum/supply_pack/medical/defibs
- name = "Defibrillator Crate"
- desc = "Contains two defibrillators for bringing the recently deceased back to life."
- cost = 2500
- contains = list(/obj/item/defibrillator/loaded,
- /obj/item/defibrillator/loaded)
- crate_name = "defibrillator crate"
-
-/datum/supply_pack/medical/firstaid
- name = "First Aid Kit Crate"
- desc = "Contains four first aid kits for healing most types of wounds."
- cost = 1000
- contains = list(/obj/item/storage/firstaid/regular,
- /obj/item/storage/firstaid/regular,
- /obj/item/storage/firstaid/regular,
- /obj/item/storage/firstaid/regular)
- crate_name = "first aid kit crate"
-
-/datum/supply_pack/medical/iv_drip
- name = "IV Drip Crate"
- desc = "Contains a single IV drip stand for intravenous delivery."
- cost = 700
- contains = list(/obj/machinery/iv_drip)
- crate_name = "iv drip crate"
-
-/datum/supply_pack/science/adv_surgery_tools
- name = "Med-Co Advanced surgery tools"
- desc = "A full set of Med-Co advanced surgery tools, this crate both a can of synthflesh and a can of sterilizine. Requires Surgery access to open."
- cost = 5000
- access = ACCESS_SURGERY
- contains = list(/obj/item/storage/belt/medical/surgery_belt_adv,
- /obj/item/reagent_containers/medspray/synthflesh,
- /obj/item/reagent_containers/medspray/sterilizine)
- crate_name = "medco newest surgery tools"
- crate_type = /obj/structure/closet/crate/medical
-
-/datum/supply_pack/medical/medicalhardsuit
- name = "Medical Hardsuit"
- desc = "Got people being spaced left and right? Hole in the same room as the dead body of Hos or cap? Fear not, now you can buy one medical hardsuit with a mask and air tank to save your fellow crewmembers."
- cost = 2500
- contains = list(/obj/item/tank/internals/air,
- /obj/item/clothing/mask/gas,
- /obj/item/clothing/suit/space/hardsuit/medical)
- crate_name = "medical hardsuit"
-
-/datum/supply_pack/medical/supplies
- name = "Medical Supplies Crate"
- desc = "Contains seven beakers, syringes, and bodybags. Three morphine bottles, four insulin pills. Two charcoal bottles, epinephrine bottles, antitoxin bottles, and large beakers. Finally, a single roll of medical gauze, as well as a bottle of stimulant pills for long, hard work days. German doctor not included."
- cost = 2500
- contains = list(/obj/item/reagent_containers/glass/bottle/charcoal,
- /obj/item/reagent_containers/glass/bottle/charcoal,
- /obj/item/reagent_containers/glass/bottle/epinephrine,
- /obj/item/reagent_containers/glass/bottle/epinephrine,
- /obj/item/reagent_containers/glass/bottle/morphine,
- /obj/item/reagent_containers/glass/bottle/morphine,
- /obj/item/reagent_containers/glass/bottle/morphine,
- /obj/item/reagent_containers/glass/bottle/toxin,
- /obj/item/reagent_containers/glass/bottle/toxin,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/reagent_containers/pill/insulin,
- /obj/item/reagent_containers/pill/insulin,
- /obj/item/reagent_containers/pill/insulin,
- /obj/item/reagent_containers/pill/insulin,
- /obj/item/stack/medical/gauze,
- /obj/item/storage/box/beakers,
- /obj/item/storage/box/medsprays,
- /obj/item/storage/box/syringes,
- /obj/item/storage/box/bodybags,
- /obj/item/storage/pill_bottle/stimulant)
- crate_name = "medical supplies crate"
-
-/datum/supply_pack/medical/vending
- name = "Medical Vending Crate"
- desc = "Contains refills for medical vending machines."
- cost = 2000
- contains = list(/obj/item/vending_refill/medical,
- /obj/item/vending_refill/wallmed)
- crate_name = "medical vending crate"
-
-/datum/supply_pack/medical/sprays
- name = "Medical Sprays"
- desc = "Contains two cans of Styptic Spray, Silver Sulfadiazine Spray, Synthflesh Spray and Sterilizer Compound Spray."
- cost = 2500
- contains = list(/obj/item/reagent_containers/medspray/styptic,
- /obj/item/reagent_containers/medspray/styptic,
- /obj/item/reagent_containers/medspray/silver_sulf,
- /obj/item/reagent_containers/medspray/silver_sulf,
- /obj/item/reagent_containers/medspray/synthflesh,
- /obj/item/reagent_containers/medspray/synthflesh,
- /obj/item/reagent_containers/medspray/sterilizine,
- /obj/item/reagent_containers/medspray/sterilizine)
- crate_name = "medical supplies crate"
-
-/datum/supply_pack/medical/firstaidmixed
- name = "Mixed Medical Kits"
- desc = "Contains one of each medical kits for dealing with a variety of injured crewmembers."
- cost = 1500
- contains = list(/obj/item/storage/firstaid/toxin,
- /obj/item/storage/firstaid/o2,
- /obj/item/storage/firstaid/brute,
- /obj/item/storage/firstaid/fire,
- /obj/item/storage/firstaid/regular)
- crate_name = "medical supplies crate"
-
-/datum/supply_pack/medical/firstaidoxygen
- name = "Oxygen Deprivation Kit Crate"
- desc = "Contains three first aid kits focused on helping oxygen deprivation victims."
- cost = 1000
- contains = list(/obj/item/storage/firstaid/o2,
- /obj/item/storage/firstaid/o2,
- /obj/item/storage/firstaid/o2)
- crate_name = "oxygen deprivation kit crate"
-
-/datum/supply_pack/medical/advrad
- name = "Radiation Treatment Crate Deluxe"
- desc = "A crate for when radiation is out of hand... Contains two rad-b-gone kits, one bottle of anti radiation deluxe pill bottle, as well as a radiation treatment deluxe pill bottle!"
- cost = 3500
- contains = list(/obj/item/storage/pill_bottle/antirad_plus,
- /obj/item/storage/pill_bottle/mutarad,
- /obj/item/storage/firstaid/radbgone,
- /obj/item/storage/firstaid/radbgone,
- /obj/item/geiger_counter,
- /obj/item/geiger_counter)
- crate_name = "radiation protection crate"
- crate_type = /obj/structure/closet/crate/radiation
-
-/datum/supply_pack/medical/surgery
- name = "Surgical Supplies Crate"
- desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
- cost = 1000
- contains = list(/obj/item/storage/backpack/duffelbag/med/surgery,
- /obj/item/reagent_containers/medspray/sterilizine,
- /obj/item/roller)
- crate_name = "surgical supplies crate"
-
-/datum/supply_pack/medical/firstaidtoxins
- name = "Toxin Treatment Kit Crate"
- desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins."
- cost = 1000
- contains = list(/obj/item/storage/firstaid/toxin,
- /obj/item/storage/firstaid/toxin,
- /obj/item/storage/firstaid/toxin)
- crate_name = "toxin treatment kit crate"
-
-/datum/supply_pack/medical/virus
- name = "Virus Crate"
- desc = "Contains twelve different bottles, containing several viral samples for virology research. Also includes seven beakers and syringes. Balled-up jeans not included. Requires CMO access to open."
- cost = 2500
- access = ACCESS_CMO
- contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion,
- /obj/item/reagent_containers/glass/bottle/cold,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/fake_gbs,
- /obj/item/reagent_containers/glass/bottle/magnitis,
- /obj/item/reagent_containers/glass/bottle/pierrot_throat,
- /obj/item/reagent_containers/glass/bottle/brainrot,
- /obj/item/reagent_containers/glass/bottle/anxiety,
- /obj/item/reagent_containers/glass/bottle/beesease,
- /obj/item/storage/box/syringes,
- /obj/item/storage/box/beakers,
- /obj/item/reagent_containers/glass/bottle/mutagen)
- crate_name = "virus crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
- dangerous = TRUE
-
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Science /////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/science
- group = "Science"
- crate_type = /obj/structure/closet/crate/science
-
-/datum/supply_pack/science/aliens
- name = "Advanced Alien Alloy Crate Crate"
- desc = "Hello brothers from the stars!!! Our fellow brethren have made contact at long last and gave us gifts man! They really did build the prymi- Connection Error- Bro we’ll send you a sheet of advanced alien alloy."
- cost = 15000
- contraband = TRUE
- DropPodOnly = TRUE
- contains = list(/obj/item/stack/sheet/mineral/abductor)
- crate_name = "alien bro alloy crate"
-
-/datum/supply_pack/science/beakers
- name = "Chemistry Beakers Crate"
- desc = "Glassware for any chemistry lab! Contains four small beakers, three large, two plastic, and one metamaterial. As well as three droppers and two pairs of latex gloves."
- cost = 2000
- contains = list(/obj/item/reagent_containers/glass/beaker,
- /obj/item/reagent_containers/glass/beaker,
- /obj/item/reagent_containers/glass/beaker,
- /obj/item/reagent_containers/glass/beaker,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/meta,
- /obj/item/reagent_containers/glass/beaker/noreact,
- /obj/item/reagent_containers/dropper,
- /obj/item/reagent_containers/dropper,
- /obj/item/reagent_containers/dropper,
- /obj/item/clothing/gloves/color/latex,
- /obj/item/clothing/gloves/color/latex)
- crate_name = "chemistry beaker crate"
-
-/datum/supply_pack/science/robotics/mecha_odysseus
- name = "Circuit Crate (Odysseus)"
- desc = "Ever wanted to build your own giant medical robot? Well, now you can! Contains the Odysseus main control board and Odysseus peripherals board. Requires Robotics access to open."
- cost = 2500
- access = ACCESS_ROBOTICS
- contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals,
- /obj/item/circuitboard/mecha/odysseus/main)
- crate_name = "\improper Odysseus circuit crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/science/robotics/mecha_ripley
- name = "Circuit Crate (Ripley APLU)"
- desc = "Rip apart rocks and xenomorphs alike with the Ripley APLU. Contains the Main Ripley control board, as well as the Ripley Peripherals board. Requires Robotics access to open."
- cost = 3000
- access = ACCESS_ROBOTICS
- contains = list(/obj/item/book/manual/ripley_build_and_repair,
- /obj/item/circuitboard/mecha/ripley/main,
- /obj/item/circuitboard/mecha/ripley/peripherals)
- crate_name = "\improper APLU Ripley circuit crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/science/circuitry
- name = "Circuitry Starter Pack Crate"
- desc = "Journey into the mysterious world of Circuitry with this starter pack. Contains a circuit printer, analyzer, debugger and wirer. Power cells not included."
- cost = 1000
- contains = list(/obj/item/integrated_electronics/analyzer,
- /obj/item/integrated_circuit_printer,
- /obj/item/integrated_electronics/debugger,
- /obj/item/integrated_electronics/wirer)
- crate_name = "circuitry starter pack crate"
-
-/datum/supply_pack/science/nitrilegloves
- name = "Nitrile Gloves Crate"
- desc = "Handling toxic chemicals? Well worry not, keep your flesh intact with some nitrile made gloves! Contains three pairs of nitrile gloves."
- cost = 1500
- contains = list(/obj/item/clothing/gloves/color/latex/nitrile,
- /obj/item/clothing/gloves/color/latex/nitrile,
- /obj/item/clothing/gloves/color/latex/nitrile)
- crate_name = "nitrile gloves crate"
-
-/datum/supply_pack/science/plasma
- name = "Plasma Assembly Crate"
- desc = "Everything you need to burn something to the ground, this contains three plasma assembly sets. Each set contains a plasma tank, igniter, proximity sensor, and timer! Warranty void if exposed to high temperatures. Requires Toxins access to open."
- cost = 1000
- access = ACCESS_TOX_STORAGE
- contains = list(/obj/item/tank/internals/plasma,
- /obj/item/tank/internals/plasma,
- /obj/item/tank/internals/plasma,
- /obj/item/assembly/igniter,
- /obj/item/assembly/igniter,
- /obj/item/assembly/igniter,
- /obj/item/assembly/prox_sensor,
- /obj/item/assembly/prox_sensor,
- /obj/item/assembly/prox_sensor,
- /obj/item/assembly/timer,
- /obj/item/assembly/timer,
- /obj/item/assembly/timer)
- crate_name = "plasma assembly crate"
- crate_type = /obj/structure/closet/crate/secure/plasma
-
-/datum/supply_pack/science/robotics
- name = "Robotics Assembly Crate"
- desc = "The tools you need to replace those finicky humans with a loyal robot army! Contains three proximity sensors, two high-powered cells, six flashes, and an electrical toolbox. Requires Robotics access to open."
- cost = 1000
- access = ACCESS_ROBOTICS
- contains = list(/obj/item/assembly/prox_sensor,
- /obj/item/assembly/prox_sensor,
- /obj/item/assembly/prox_sensor,
- /obj/item/storage/toolbox/electrical,
- /obj/item/storage/box/flashes,
- /obj/item/stock_parts/cell/high,
- /obj/item/stock_parts/cell/high)
- crate_name = "robotics assembly crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/science/shieldwalls
- name = "Shield Generator Crate"
- desc = "These high powered Shield Wall Generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Contains four shield wall generators. Requires Teleporter access to open."
- cost = 2000
- access = ACCESS_TELEPORTER
- contains = list(/obj/machinery/shieldwallgen,
- /obj/machinery/shieldwallgen,
- /obj/machinery/shieldwallgen,
- /obj/machinery/shieldwallgen)
- crate_name = "shield generators crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/science/slime
- name = "Slime Core Crate"
- desc = "Ran out of slimes? No problem, contains one gray slime core. Requires Xenobio access to open."
- cost = 1000
- access = ACCESS_XENOBIOLOGY
- contains = list(/obj/item/slime_extract/grey)
- crate_name = "slime core crate"
- crate_type = /obj/structure/closet/crate/secure/science
-
-/datum/supply_pack/science/tablets
- name = "Tablet Crate"
- desc = "What's a computer? Contains five cargo tablets."
- cost = 3000
- contains = list(/obj/item/modular_computer/tablet/preset/cargo,
- /obj/item/modular_computer/tablet/preset/cargo,
- /obj/item/modular_computer/tablet/preset/cargo,
- /obj/item/modular_computer/tablet/preset/cargo,
- /obj/item/modular_computer/tablet/preset/cargo)
- crate_name = "tablet crate"
-
-/datum/supply_pack/science/transfer_valves
- name = "Tank Transfer Valves Crate"
- desc = "The key ingredient for making a lot of people very angry very fast. Contains two tank transfer valves. Requires RD access to open."
- cost = 6000
- access = ACCESS_RD
- contains = list(/obj/item/transfer_valve,
- /obj/item/transfer_valve)
- crate_name = "tank transfer valves crate"
- crate_type = /obj/structure/closet/crate/secure/science
- dangerous = TRUE
-
-/datum/supply_pack/science/tech_slugs
- name = "Tech Slug Ammo Shells"
- desc = "A new type of shell that is able to be made into a few different dangerous types. Contains two boxes of tech slugs, 14 shells in all."
- cost = 1000
- contains = list(/obj/item/storage/box/techsslug,
- /obj/item/storage/box/techsslug)
- crate_name = "tech slug crate"
-
-
-//////////////////////////////////////////////////////////////////////////////
-/////////////////////////////// Service //////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/service
- group = "Service"
-
-/datum/supply_pack/service/advlighting
- name = "Advanced Lighting crate"
- desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!"
- cost = 2500 //Fair
- contains = list(/obj/item/construction/rld,
- /obj/item/flashlight/lamp,
- /obj/item/flashlight/lamp,
- /obj/item/flashlight/lamp/green,
- /obj/item/storage/box/lights/mixed)
- crate_name = "advanced lighting crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/service/janitor/advanced
- name = "Advanced Sanitation Crate"
- desc = "Contains all the essentials for an advanced spacefaring cleanup crew. This kit includes a trashbag of holding, an advanced mop, a bottle of space cleaner, a floor buffer, and a holosign projector."
- cost = 5000
- access = ACCESS_JANITOR
- contains = list(/obj/item/storage/bag/trash/bluespace,
- /obj/item/reagent_containers/spray/cleaner,
- /obj/item/mop/advanced,
- /obj/item/lightreplacer,
- /obj/item/janiupgrade,
- /obj/item/holosign_creator)
- crate_name = "advanced santation crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/service/cargo_supples
- name = "Cargo Supplies Crate"
- desc = "Sold everything that wasn't bolted down? You can get right back to work with this crate containing stamps, an export scanner, destination tagger, hand labeler and some package wrapping."
- cost = 1000
- contains = list(/obj/item/stamp,
- /obj/item/stamp/denied,
- /obj/item/export_scanner,
- /obj/item/destTagger,
- /obj/item/hand_labeler,
- /obj/item/stack/packageWrap)
- crate_name = "cargo supplies crate"
-
-/datum/supply_pack/service/food_cart
- name = "Food Cart Crate"
- desc = "Want to sell food on the go? Cook lost their cart? Well we just so happen to have a few carts to spare!"
- cost = 1000
- contains = list(/obj/machinery/food_cart)
- crate_name = "food cart crate"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/service/noslipfloor
- name = "High-traction Floor Tiles"
- desc = "Make slipping a thing of the past with sixty industrial-grade anti-slip floortiles!"
- cost = 2000
- contains = list(/obj/item/stack/tile/noslip/thirty,
- /obj/item/stack/tile/noslip/thirty)
- crate_name = "high-traction floor tiles crate"
-
-/datum/supply_pack/service/icecream_cart
- name = "Ice Cream Cart Crate"
- desc = "Plasma fire a to hot for you, want a nice treat after a hard days work? Well now we have the cart for you! This Ice Cream Vat has everthing you need to make you and your friends so ice cream treats! This cart comes stocked with some ingredients for each type of scoopable icecream."
- cost = 2750 //Comes prestocked with basic ingredients
- contains = list(/obj/machinery/icecream_vat)
- crate_name = "ice cream vat crate"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/service/buildabar
- name = "Build a Bar Crate"
- desc = "Looking to set up your own little safe haven? Maintenance bar too much of a bummer to work on? Maybe you just want to set up shop right in front of the bartender. Whatever your reasons, get a jump-start on this with this handy kit. Contains circuitboards for bar equipment, some parts, and some basic bartending supplies. (Batteries not Included)"
- cost = 3750
- contains = list(/obj/item/storage/box/drinkingglasses,
- /obj/item/storage/box/drinkingglasses,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/matter_bin,
- /obj/item/stock_parts/manipulator,
- /obj/item/stock_parts/manipulator,
- /obj/item/stock_parts/manipulator,
- /obj/item/stock_parts/capacitor,
- /obj/item/stock_parts/capacitor,
- /obj/item/stack/sheet/metal/ten,
- /obj/item/stack/sheet/metal/five,
- /obj/item/stack/sheet/glass/five,
- /obj/item/stack/cable_coil/random,
- /obj/item/reagent_containers/rag,
- /obj/item/book/manual/wiki/barman_recipes,
- /obj/item/book/granter/action/drink_fling,
- /obj/item/reagent_containers/food/drinks/shaker,
- /obj/item/clothing/under/waiter,
- /obj/item/clothing/under/rank/bartender,
- /obj/item/clothing/under/rank/bartender/skirt,
- /obj/item/clothing/accessory/waistcoat,
- /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
- /obj/item/circuitboard/machine/chem_dispenser/drinks,
- /obj/item/circuitboard/machine/dish_drive)
- crate_name = "build a bar crate"
-
-/datum/supply_pack/service/maintgarden
- name = "Maintenance Garden Crate"
- desc = "Set up your own tiny paradise with do-it-yourself botany kit. Contains sandstone for dirt plots, pest spray, ammonia, a portable seed generator, basic botanical tools, and some seeds to start off with."
- cost = 2350
- contains = list(/obj/item/storage/bag/plants/portaseeder,
- /obj/item/reagent_containers/spray/pestspray,
- /obj/item/stack/sheet/mineral/sandstone/twelve,
- /obj/item/reagent_containers/glass/bucket,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/hatchet,
- /obj/item/cultivator,
- /obj/item/plant_analyzer,
- /obj/item/flashlight,
- /obj/item/seeds/carrot,
- /obj/item/seeds/carrot,
- /obj/item/seeds/tower,
- /obj/item/seeds/tower,
- /obj/item/seeds/watermelon,
- /obj/item/seeds/watermelon,
- /obj/item/seeds/grass,
- /obj/item/seeds/grass)
- crate_name = "maint garden crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/service/janitor
- name = "Janitorial Supplies Crate"
- desc = "Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, NT soap and a trash bag."
- cost = 1000
- contains = list(/obj/item/reagent_containers/glass/bucket,
- /obj/item/reagent_containers/glass/bucket,
- /obj/item/reagent_containers/glass/bucket,
- /obj/item/mop,
- /obj/item/caution,
- /obj/item/caution,
- /obj/item/caution,
- /obj/item/storage/bag/trash,
- /obj/item/reagent_containers/spray/cleaner,
- /obj/item/reagent_containers/rag,
- /obj/item/grenade/chem_grenade/cleaner,
- /obj/item/grenade/chem_grenade/cleaner,
- /obj/item/grenade/chem_grenade/cleaner,
- /obj/item/soap/nanotrasen)
- crate_name = "janitorial supplies crate"
-
-/datum/supply_pack/service/janitor/janicart
- name = "Janitorial Cart and Galoshes Crate"
- desc = "The keystone to any successful janitor. As long as you have feet, this pair of galoshes will keep them firmly planted on the ground. Also contains a janitorial cart."
- cost = 2000
- contains = list(/obj/structure/janitorialcart,
- /obj/item/clothing/shoes/galoshes)
- crate_name = "janitorial cart crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/service/janitor/janitank
- name = "Janitor Backpack Crate"
- desc = "Call forth divine judgement upon dirt and grime with this high capacity janitor backpack. Contains 500 units of station-cleansing cleaner. Requires janitor access to open."
- cost = 1000
- access = ACCESS_JANITOR
- contains = list(/obj/item/watertank/janitor)
- crate_name = "janitor backpack crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/service/janitor/janpremium
- name = "Janitor Premium Supplies"
- desc = "Do to the union for better supplies, we have desided to make a deal for you, In this crate you can get a brand new chem, Drying Angent this stuff is the work of slimes or magic! This crate also contains a rag to test out the Drying Angent magic, three wet floor signs, and some spare bottles of ammonia."
- cost = 1750
- access = ACCESS_JANITOR
- contains = list(/obj/item/caution,
- /obj/item/caution,
- /obj/item/caution,
- /obj/item/reagent_containers/rag,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/reagent_containers/spray/drying_agent)
- crate_name = "janitor backpack crate"
-
-/datum/supply_pack/service/janitor/janpimp
- name = "Custodial Cruiser"
- desc = "Clown steal your ride? Assistant lock it in the dorms? Order a new one and get back to cleaning in style!"
- cost = 3000
- access = ACCESS_JANITOR
- contains = list(/obj/vehicle/ridden/janicart,
- /obj/item/key/janitor)
- crate_name = "janitor ride crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/service/mule
- name = "MULEbot Crate"
- desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!"
- cost = 2000
- contains = list(/mob/living/simple_animal/bot/mulebot)
- crate_name = "\improper MULEbot Crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/service/party
- name = "Party Equipment"
- desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!"
- cost = 2000
- contains = list(/obj/item/storage/box/drinkingglasses,
- /obj/item/reagent_containers/food/drinks/shaker,
- /obj/item/reagent_containers/food/drinks/bottle/patron,
- /obj/item/reagent_containers/food/drinks/bottle/goldschlager,
- /obj/item/reagent_containers/food/drinks/ale,
- /obj/item/reagent_containers/food/drinks/ale,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/flashlight/glowstick,
- /obj/item/flashlight/glowstick/red,
- /obj/item/flashlight/glowstick/blue,
- /obj/item/flashlight/glowstick/cyan,
- /obj/item/flashlight/glowstick/orange,
- /obj/item/flashlight/glowstick/yellow,
- /obj/item/flashlight/glowstick/pink)
- crate_name = "party equipment crate"
-
-/datum/supply_pack/service/carpet
- name = "Premium Carpet Crate"
- desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains the classics."
- cost = 1000
- contains = list(/obj/item/stack/tile/carpet/fifty,
- /obj/item/stack/tile/carpet/fifty,
- /obj/item/stack/tile/carpet/black/fifty,
- /obj/item/stack/tile/carpet/black/fifty)
- crate_name = "premium carpet crate"
-
-/datum/supply_pack/service/carpet_exotic
- name = "Exotic Carpet Crate"
- desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 10 different flooring patterns."
- cost = 4000
- contains = list(/obj/item/stack/tile/carpet/blue/fifty,
- /obj/item/stack/tile/carpet/blue/fifty,
- /obj/item/stack/tile/carpet/cyan/fifty,
- /obj/item/stack/tile/carpet/cyan/fifty,
- /obj/item/stack/tile/carpet/green/fifty,
- /obj/item/stack/tile/carpet/green/fifty,
- /obj/item/stack/tile/carpet/orange/fifty,
- /obj/item/stack/tile/carpet/orange/fifty,
- /obj/item/stack/tile/carpet/purple/fifty,
- /obj/item/stack/tile/carpet/purple/fifty,
- /obj/item/stack/tile/carpet/red/fifty,
- /obj/item/stack/tile/carpet/red/fifty,
- /obj/item/stack/tile/carpet/royalblue/fifty,
- /obj/item/stack/tile/carpet/royalblue/fifty,
- /obj/item/stack/tile/carpet/royalblack/fifty,
- /obj/item/stack/tile/carpet/royalblack/fifty,
- /obj/item/stack/tile/carpet/blackred/fifty,
- /obj/item/stack/tile/carpet/blackred/fifty,
- /obj/item/stack/tile/carpet/monochrome/fifty,
- /obj/item/stack/tile/carpet/monochrome/fifty)
- crate_name = "exotic carpet crate"
-
-/datum/supply_pack/service/lightbulbs
- name = "Replacement Lights"
- desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs as well as a light replacer."
- cost = 1200
- contains = list(/obj/item/storage/box/lights/mixed,
- /obj/item/storage/box/lights/mixed,
- /obj/item/storage/box/lights/mixed,
- /obj/item/lightreplacer)
- crate_name = "replacement lights"
-
-/datum/supply_pack/service/minerkit
- name = "Shaft Miner Starter Kit"
- desc = "All the miners died too fast? Assistant wants to get a taste of life off-station? Either way, this kit is the best way to turn a regular crewman into an ore-producing, monster-slaying machine. Contains meson goggles, a pickaxe, advanced mining scanner, cargo headset, ore bag, gasmask, and explorer suit. Requires QM access to open."
- cost = 2500
- access = ACCESS_QM
- contains = list(/obj/item/pickaxe/mini,
- /obj/item/clothing/glasses/meson,
- /obj/item/t_scanner/adv_mining_scanner/lesser,
- /obj/item/radio/headset/headset_cargo/mining,
- /obj/item/storage/bag/ore,
- /obj/item/clothing/suit/hooded/explorer/standard,
- /obj/item/clothing/mask/gas/explorer)
- crate_name = "shaft miner starter kit"
- crate_type = /obj/structure/closet/crate/secure
-
-//////////////////////////////////////////////////////////////////////////////
-/////////////////////////// Vending Restocks /////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/service/vending/bartending
- name = "Bartending Supply Crate"
- desc = "Bring on the booze with vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!"
- cost = 2000
- contains = list(/obj/item/vending_refill/boozeomat,
- /obj/item/vending_refill/coffee,
- /obj/item/book/granter/action/drink_fling)
- crate_name = "bartending supply crate"
-
-/datum/supply_pack/service/vending/cigarette
- name = "Cigarette Supply Crate"
- desc = "Don't believe the reports - smoke today! Contains a cigarette vending machine refill."
- cost = 1500
- contains = list(/obj/item/vending_refill/cigarette)
- crate_name = "cigarette supply crate"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/service/vending/games
- name = "Games Supply Crate"
- desc = "Get your game on with this game vending machine refill."
- cost = 1000
- contains = list(/obj/item/vending_refill/games)
- crate_name = "games supply crate"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/service/vending/snack
- name = "Snack Supply Crate"
- desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!"
- cost = 1500
- contains = list(/obj/item/vending_refill/snack)
- crate_name = "snacks supply crate"
-
-/datum/supply_pack/service/vending/cola
- name = "Softdrinks Supply Crate"
- desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with this soda machine refill, today!"
- cost = 1500
- contains = list(/obj/item/vending_refill/cola)
- crate_name = "soft drinks supply crate"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Organic /////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/organic
- group = "Food & Hydroponics"
- crate_type = /obj/structure/closet/crate/freezer
-
-/datum/supply_pack/organic/hydroponics/beekeeping_suits
- name = "Beekeeper Suit Crate"
- desc = "Bee business booming? Better be benevolent and boost botany by bestowing bi-Beekeeper-suits! Contains two beekeeper suits and matching headwear."
- cost = 1000
- contains = list(/obj/item/clothing/head/beekeeper_head,
- /obj/item/clothing/suit/beekeeper_suit,
- /obj/item/clothing/head/beekeeper_head,
- /obj/item/clothing/suit/beekeeper_suit)
- crate_name = "beekeeper suits"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/hydroponics/beekeeping_fullkit
- name = "Beekeeping Starter Crate"
- desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit and helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!"
- cost = 1500
- contains = list(/obj/structure/beebox/unwrenched,
- /obj/item/honey_frame,
- /obj/item/honey_frame,
- /obj/item/honey_frame,
- /obj/item/queen_bee/bought,
- /obj/item/clothing/head/beekeeper_head,
- /obj/item/clothing/suit/beekeeper_suit,
- /obj/item/melee/flyswatter)
- crate_name = "beekeeping starter crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/candy
- name = "Candy Crate"
- desc = "For people that have a insatiable sweet tooth! Has ten candies to be eaten up.."
- cost = 2500
- var/num_contained = 10 //number of items picked to be contained in a randomised crate
- contains = list(/obj/item/reagent_containers/food/snacks/candy,
- /obj/item/reagent_containers/food/snacks/lollipop,
- /obj/item/reagent_containers/food/snacks/gumball,
- /obj/item/reagent_containers/food/snacks/chocolateegg,
- /obj/item/reagent_containers/food/snacks/donut,
- /obj/item/reagent_containers/food/snacks/cookie,
- /obj/item/reagent_containers/food/snacks/sugarcookie,
- /obj/item/reagent_containers/food/snacks/chococornet,
- /obj/item/reagent_containers/food/snacks/mint,
- /obj/item/reagent_containers/food/snacks/spiderlollipop,
- /obj/item/reagent_containers/food/snacks/chococoin,
- /obj/item/reagent_containers/food/snacks/fudgedice,
- /obj/item/reagent_containers/food/snacks/chocoorange,
- /obj/item/reagent_containers/food/snacks/honeybar,
- /obj/item/reagent_containers/food/snacks/tinychocolate,
- /obj/item/reagent_containers/food/snacks/spacetwinkie,
- /obj/item/reagent_containers/food/snacks/syndicake,
- /obj/item/reagent_containers/food/snacks/cheesiehonkers,
- /obj/item/reagent_containers/food/snacks/sugarcookie/spookyskull,
- /obj/item/reagent_containers/food/snacks/sugarcookie/spookycoffin,
- /obj/item/reagent_containers/food/snacks/candy_corn,
- /obj/item/reagent_containers/food/snacks/candiedapple,
- /obj/item/reagent_containers/food/snacks/chocolatebar,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/storage/fancy/heart_box,
- /obj/item/storage/fancy/donut_box)
- crate_name = "candy crate"
-
-/datum/supply_pack/organic/cutlery
- name = "Kitchen Cutlery Deluxe Set"
- desc = "Need to slice and dice away those ''Tomatos'' well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal."
- cost = 10000
- contraband = TRUE
- contains = list(/obj/item/sharpener,
- /obj/item/kitchen/fork,
- /obj/item/kitchen/fork,
- /obj/item/kitchen/knife,
- /obj/item/kitchen/knife,
- /obj/item/kitchen/knife,
- /obj/item/kitchen/knife,
- /obj/item/kitchen/knife/butcher,
- /obj/item/kitchen/knife/butcher,
- /obj/item/kitchen/rollingpin, //Deluxe for a reason
- /obj/item/trash/plate,
- /obj/item/trash/plate,
- /obj/item/trash/plate,
- /obj/item/trash/plate,
- /obj/item/reagent_containers/food/drinks/drinkingglass,
- /obj/item/reagent_containers/food/drinks/drinkingglass,
- /obj/item/reagent_containers/food/drinks/drinkingglass,
- /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
- /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass)
- crate_name = "kitchen cutlery deluxe set"
-
-/datum/supply_pack/organic/food
- name = "Food Crate"
- desc = "Get things cooking with this crate full of useful ingredients! Contains a two dozen eggs, three bananas, and two bags of flour and rice, two cartons of milk, soymilk, as well as salt and pepper shakers, a enzyme and sugar bottle, and three slabs of monkeymeat."
- cost = 1000
- contains = list(/obj/item/reagent_containers/food/condiment/flour,
- /obj/item/reagent_containers/food/condiment/flour,
- /obj/item/reagent_containers/food/condiment/rice,
- /obj/item/reagent_containers/food/condiment/rice,
- /obj/item/reagent_containers/food/condiment/milk,
- /obj/item/reagent_containers/food/condiment/milk,
- /obj/item/reagent_containers/food/condiment/soymilk,
- /obj/item/reagent_containers/food/condiment/saltshaker,
- /obj/item/reagent_containers/food/condiment/peppermill,
- /obj/item/storage/fancy/egg_box,
- /obj/item/storage/fancy/egg_box,
- /obj/item/reagent_containers/food/condiment/enzyme,
- /obj/item/reagent_containers/food/condiment/sugar,
- /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
- /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
- /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
- /obj/item/reagent_containers/food/snacks/grown/banana,
- /obj/item/reagent_containers/food/snacks/grown/banana,
- /obj/item/reagent_containers/food/snacks/grown/banana)
- crate_name = "food crate"
-
-/datum/supply_pack/organic/fiestatortilla
- name = "Fiesta Crate"
- desc = "Spice up the kitchen with this fiesta themed food order! Contains 8 tortilla based food items, as well as a sombrero, moustache, and cloak!"
- cost = 2750
- contains = list(/obj/item/clothing/head/sombrero,
- /obj/item/clothing/suit/hooded/cloak/david,
- /obj/item/clothing/mask/fakemoustache,
- /obj/item/reagent_containers/food/snacks/taco,
- /obj/item/reagent_containers/food/snacks/taco,
- /obj/item/reagent_containers/food/snacks/taco/plain,
- /obj/item/reagent_containers/food/snacks/taco/plain,
- /obj/item/reagent_containers/food/snacks/enchiladas,
- /obj/item/reagent_containers/food/snacks/enchiladas,
- /obj/item/reagent_containers/food/snacks/carneburrito,
- /obj/item/reagent_containers/food/snacks/cheesyburrito,
- /obj/item/reagent_containers/glass/bottle/capsaicin,
- /obj/item/reagent_containers/glass/bottle/capsaicin)
- crate_name = "fiesta crate"
-
-/datum/supply_pack/organic/cream_piee
- name = "High-yield Clown-grade Cream Pie Crate"
- desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results."
- cost = 6000
- contains = list(/obj/item/storage/backpack/duffelbag/clown/cream_pie)
- crate_name = "party equipment crate"
- contraband = TRUE
- access = ACCESS_THEATRE
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/organic/hunting
- name = "Hunting gear"
- desc = "Even in space, we can find prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a hunting shotgun. "
- cost = 3500
- contraband = TRUE
- contains = list(/obj/item/clothing/head/flatcap,
- /obj/item/clothing/suit/hooded/wintercoat/captain,
- /obj/item/reagent_containers/food/drinks/bottle/cognac,
- /obj/item/storage/fancy/cigarettes/cigars/havana,
- /obj/item/clothing/gloves/color/white,
- /obj/item/clothing/under/rank/curator,
- /obj/item/gun/ballistic/shotgun/lethal)
- access = ACCESS_ARMORY
- crate_name = "sporting crate"
- crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:(
-
-/datum/supply_pack/organic/fakemeat
- name = "Meat Crate"
- desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 4 slabs of meat product, and two slabs of *carp*."
- cost = 1700
- contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
- /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
- /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
- /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
- /obj/item/reagent_containers/food/snacks/carpmeat/imitation,
- /obj/item/reagent_containers/food/snacks/carpmeat/imitation)
- crate_name = "meaty crate"
- crate_type = /obj/structure/closet/crate/freezer
-
-/datum/supply_pack/organic/monkeydripmeat
- name = "*Meat* Crate"
- desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!"
- cost = 2150
- contraband = TRUE
- contains = list(/obj/item/reagent_containers/food/snacks/monkeycube,
- /obj/item/restraints/handcuffs/cable,
- /obj/machinery/iv_drip,
- /obj/item/reagent_containers/glass/beaker/cryoxadone,
- /obj/item/reagent_containers/glass/beaker/cryoxadone)
- crate_name = "monkey meat crate"
-
-/datum/supply_pack/organic/mixedboxes
- name = "Mixed Ingredient Boxes"
- desc = "Get overwhelmed with inspiration by ordering these boxes of surprise ingredients! Get four boxes filled with an assortment of products!"
- cost = 2300
- contains = list(/obj/item/storage/box/ingredients/wildcard,
- /obj/item/storage/box/ingredients/wildcard,
- /obj/item/storage/box/ingredients/wildcard,
- /obj/item/storage/box/ingredients/wildcard)
- crate_name = "wildcard food crate"
- crate_type = /obj/structure/closet/crate/freezer
-
-/datum/supply_pack/organic/hydroponics
- name = "Hydroponics Crate"
- desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron."
- cost = 1500
- contains = list(/obj/item/reagent_containers/spray/plantbgone,
- /obj/item/reagent_containers/spray/plantbgone,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/reagent_containers/glass/bottle/ammonia,
- /obj/item/hatchet,
- /obj/item/cultivator,
- /obj/item/plant_analyzer,
- /obj/item/clothing/gloves/botanic_leather,
- /obj/item/clothing/suit/apron)
- crate_name = "hydroponics crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/hydroponics/hydrotank
- name = "Hydroponics Backpack Crate"
- desc = "Bring on the flood with this high-capacity backpack crate. Contains 500 units of life-giving H2O. Requires hydroponics access to open."
- cost = 1000
- access = ACCESS_HYDROPONICS
- contains = list(/obj/item/watertank)
- crate_name = "hydroponics backpack crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/organic/mre
- name = "MRE supply kit (emergency rations)"
- desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
- cost = 2000
- contains = list(/obj/item/storage/box/mre/menu1/safe,
- /obj/item/storage/box/mre/menu1/safe,
- /obj/item/storage/box/mre/menu2/safe,
- /obj/item/storage/box/mre/menu2/safe,
- /obj/item/storage/box/mre/menu3,
- /obj/item/storage/box/mre/menu4/safe)
- crate_name = "MRE crate (emergency rations)"
-
-/datum/supply_pack/organic/pizza
- name = "Pizza Crate"
- desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!"
- cost = 6000 // Best prices this side of the galaxy.
- contains = list(/obj/item/pizzabox/margherita,
- /obj/item/pizzabox/mushroom,
- /obj/item/pizzabox/meat,
- /obj/item/pizzabox/vegetable,
- /obj/item/pizzabox/pineapple)
- crate_name = "pizza crate"
- var/static/anomalous_box_provided = FALSE
-
-/datum/supply_pack/organic/pizza/fill(obj/structure/closet/crate/C)
- . = ..()
- if(!anomalous_box_provided)
- for(var/obj/item/pizzabox/P in C)
- if(prob(1)) //1% chance for each box, so 4% total chance per order
- var/obj/item/pizzabox/infinite/fourfiveeight = new(C)
- fourfiveeight.boxtag = P.boxtag
- qdel(P)
- anomalous_box_provided = TRUE
- log_game("An anomalous pizza box was provided in a pizza crate at during cargo delivery")
- if(prob(50))
- addtimer(CALLBACK(src, .proc/anomalous_pizza_report), rand(300, 1800))
- else
- message_admins("An anomalous pizza box was silently created with no command report in a pizza crate delivery.")
- break
-
-/datum/supply_pack/organic/pizza/proc/anomalous_pizza_report()
- print_command_report("[station_name()], our anomalous materials divison has reported a missing object that is highly likely to have been sent to your station during a routine cargo \
- delivery. Please search all crates and manifests provided with the delivery and return the object if is located. The object resembles a standard \[DATA EXPUNGED\] and is to be \
- considered \[REDACTED\] and returned at your leisure. Note that objects the anomaly produces are specifically attuned exactly to the individual opening the anomaly; regardless \
- of species, the individual will find the object edible and it will taste great according to their personal definitions, which vary significantly based on person and species.")
-
-/datum/supply_pack/organic/potted_plants
- name = "Potted Plants Crate"
- desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown."
- cost = 700
- contains = list(/obj/item/twohanded/required/kirbyplants/random,
- /obj/item/twohanded/required/kirbyplants/random,
- /obj/item/twohanded/required/kirbyplants/random,
- /obj/item/twohanded/required/kirbyplants/random,
- /obj/item/twohanded/required/kirbyplants/random)
- crate_name = "potted plants crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/seeds
- name = "Seeds Crate"
- desc = "Big things have small beginnings. Contains thirteen different seeds."
- cost = 1000
- contains = list(/obj/item/seeds/chili,
- /obj/item/seeds/berry,
- /obj/item/seeds/corn,
- /obj/item/seeds/eggplant,
- /obj/item/seeds/tomato,
- /obj/item/seeds/soya,
- /obj/item/seeds/wheat,
- /obj/item/seeds/wheat/rice,
- /obj/item/seeds/carrot,
- /obj/item/seeds/sunflower,
- /obj/item/seeds/chanter,
- /obj/item/seeds/potato,
- /obj/item/seeds/sugarcane)
- crate_name = "seeds crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/vday
- name = "Surplus Valentine Crate"
- desc = "Turns out we got warehouses of this love-y dove-y crap. Were sending out small barged buddle of Valentine gear. This crate has two boxes of chocolate, three poppy flowers, five candy hearts, and three cards."
- cost = 3000
- contraband = TRUE
- contains = list(/obj/item/storage/fancy/heart_box,
- /obj/item/storage/fancy/heart_box,
- /obj/item/reagent_containers/food/snacks/grown/poppy,
- /obj/item/reagent_containers/food/snacks/grown/poppy,
- /obj/item/reagent_containers/food/snacks/grown/poppy,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/reagent_containers/food/snacks/candyheart,
- /obj/item/valentine,
- /obj/item/valentine,
- /obj/item/valentine)
- crate_name = "valentine crate"
- crate_type = /obj/structure/closet/crate/secure
-
-/datum/supply_pack/organic/strangeseeds
- name = "Strange Seeds Crate"
- desc = "After our chemical waste mysteriously disappeared we've discovered many strange and interesting species of plants, and they're yours for the taking! Contains 8 packs of strange seeds."
- cost = 4500
- contains = list(/obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random,
- /obj/item/seeds/random)
- crate_name = "strange seeds crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/organic/exoticseeds
- name = "Exotic Seeds Crate"
- desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!"
- cost = 1500
- contains = list(/obj/item/seeds/nettle,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/replicapod,
- /obj/item/seeds/plump,
- /obj/item/seeds/liberty,
- /obj/item/seeds/amanita,
- /obj/item/seeds/reishi,
- /obj/item/seeds/banana,
- /obj/item/seeds/eggplant/eggy,
- /obj/item/seeds/random,
- /obj/item/seeds/random)
- crate_name = "exotic seeds crate"
- crate_type = /obj/structure/closet/crate/hydroponics
-
-//////////////////////////////////////////////////////////////////////////////
-////////////////////////////// Livestock /////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/critter
- group = "Livestock"
- crate_type = /obj/structure/closet/crate/critter
-
-/datum/supply_pack/critter/butterfly
- name = "Butterflies Crate"
- desc = "Not a very dangerous insect, but they do give off a better image than, say, flies or cockroaches."//is that a motherfucking worm reference
- contraband = TRUE
- cost = 5000
- contains = list(/mob/living/simple_animal/butterfly)
- crate_name = "entomology samples crate"
-
-/datum/supply_pack/critter/butterfly/generate()
- . = ..()
- for(var/i in 1 to 49)
- new /mob/living/simple_animal/butterfly(.)
-
-/datum/supply_pack/critter/cat
- name = "Cat Crate"
- desc = "The cat goes meow! Comes with a collar and a nice cat toy! Cheeseburger not included."//i can't believe im making this reference
- cost = 5000 //Cats are worth as much as corgis.
- contains = list(/mob/living/simple_animal/pet/cat,
- /obj/item/clothing/neck/petcollar,
- /obj/item/toy/cattoy)
- crate_name = "cat crate"
-
-/datum/supply_pack/critter/cat/generate()
- . = ..()
- if(prob(50))
- var/mob/living/simple_animal/pet/cat/C = locate() in .
- qdel(C)
- new /mob/living/simple_animal/pet/cat/Proc(.)
-
-/datum/supply_pack/critter/chick
- name = "Chicken Crate"
- desc = "The chicken goes bwaak!"
- cost = 2000
- contains = list( /mob/living/simple_animal/chick)
- crate_name = "chicken crate"
-
-/datum/supply_pack/critter/crab
- name = "Crab Rocket"
- desc = "CRAAAAAAB ROCKET. CRAB ROCKET. CRAB ROCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROCKET. CRAFT. ROCKET. BUY. CRAFT ROCKET. CRAB ROOOCKET. CRAB ROOOOCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROOOOOOOOOOOOOOOOOOOOOOCK EEEEEEEEEEEEEEEEEEEEEEEEE EEEETTTTTTTTTTTTAAAAAAAAA AAAHHHHHHHHHHHHH. CRAB ROCKET. CRAAAB ROCKEEEEEEEEEGGGGHHHHTT CRAB CRAB CRAABROCKET CRAB ROCKEEEET."//fun fact: i actually spent like 10 minutes and transcribed the entire video.
- cost = 5000
- contains = list(/mob/living/simple_animal/crab)
- crate_name = "look sir free crabs"
- DropPodOnly = TRUE
-
-/datum/supply_pack/critter/crab/generate()
- . = ..()
- for(var/i in 1 to 49)
- new /mob/living/simple_animal/crab(.)
-
-/datum/supply_pack/critter/corgi
- name = "Corgi Crate"
- desc = "Considered the optimal dog breed by thousands of research scientists, this Corgi is but one dog from the millions of Ian's noble bloodline. Comes with a cute collar!"
- cost = 5000
- contains = list(/mob/living/simple_animal/pet/dog/corgi,
- /obj/item/clothing/neck/petcollar)
- crate_name = "corgi crate"
-
-/datum/supply_pack/critter/corgi/generate()
- . = ..()
- if(prob(50))
- var/mob/living/simple_animal/pet/dog/corgi/D = locate() in .
- if(D.gender == FEMALE)
- qdel(D)
- new /mob/living/simple_animal/pet/dog/corgi/Lisa(.)
-
-/datum/supply_pack/critter/corgis/exotic
- name = "Exotic Corgi Crate"
- desc = "Corgis fit for a king, these corgis come in a unique color to signify their superiority. Comes with a cute collar!"
- cost = 5500
- contains = list(/mob/living/simple_animal/pet/dog/corgi/exoticcorgi,
- /obj/item/clothing/neck/petcollar)
- crate_name = "exotic corgi crate"
-
-/datum/supply_pack/critter/cow
- name = "Cow Crate"
- desc = "The cow goes moo!"
- cost = 3000
- contains = list(/mob/living/simple_animal/cow)
- crate_name = "cow crate"
-
-/datum/supply_pack/critter/fox
- name = "Fox Crate"
- desc = "The fox goes...? Comes with a collar!"//what does the fox say
- cost = 5000
- contains = list(/mob/living/simple_animal/pet/fox,
- /obj/item/clothing/neck/petcollar)
- crate_name = "fox crate"
-
-/datum/supply_pack/critter/goat
- name = "Goat Crate"
- desc = "The goat goes baa! Warranty void if used as a replacement for Pete."
- cost = 2500
- contains = list(/mob/living/simple_animal/hostile/retaliate/goat)
- crate_name = "goat crate"
-
-/datum/supply_pack/critter/monkey
- name = "Monkey Cube Crate"
- desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!"
- cost = 2000
- contains = list (/obj/item/storage/box/monkeycubes)
- crate_name = "monkey cube crate"
-
-/datum/supply_pack/critter/pug
- name = "Pug Crate"
- desc = "Like a normal dog, but... squished. Comes with a nice collar!"
- cost = 5000
- contains = list(/mob/living/simple_animal/pet/dog/pug,
- /obj/item/clothing/neck/petcollar)
- crate_name = "pug crate"
-
-/datum/supply_pack/organic/critter/kiwi
- name = "Space kiwi Crate"
- cost = 2000
- contains = list( /mob/living/simple_animal/kiwi)
- crate_name = "space kiwi crate"
-
-/datum/supply_pack/critter/snake
- name = "Snake Crate"
- desc = "Tired of these MOTHER FUCKING snakes on this MOTHER FUCKING space station? Then this isn't the crate for you. Contains three poisonous snakes."
- cost = 3000
- contains = list(/mob/living/simple_animal/hostile/retaliate/poison/snake,
- /mob/living/simple_animal/hostile/retaliate/poison/snake,
- /mob/living/simple_animal/hostile/retaliate/poison/snake)
- crate_name = "snake crate"
-
-/datum/supply_pack/critter/mouse
- name = "Mouse Crate"
- desc = "Good for snakes and lizards of all ages. Contains ~12 feeder mice."
- cost = 2000
- contains = list(/mob/living/simple_animal/mouse,)
- crate_name = "mouse crate"
-
-/datum/supply_pack/critter/mouse/generate()
- . = ..()
- for(var/i in 1 to 11)
- new /mob/living/simple_animal/mouse(.)
-
-/datum/supply_pack/critter/secbat
- name = "Security Bat Crate"
- desc = "Contains five security bats, perfect to Bat-up any security officer."
- cost = 2500
- contains = list(/mob/living/simple_animal/hostile/retaliate/bat/secbat,
- /mob/living/simple_animal/hostile/retaliate/bat/secbat,
- /mob/living/simple_animal/hostile/retaliate/bat/secbat,
- /mob/living/simple_animal/hostile/retaliate/bat/secbat,
- /mob/living/simple_animal/hostile/retaliate/bat/secbat)
- crate_name = "security bat crate"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Costumes & Toys /////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/costumes_toys
- group = "Costumes & Toys"
-
-/datum/supply_pack/costumes_toys/randomised
- name = "Collectable Hats Crate"
- desc = "Flaunt your status with three unique, highly-collectable hats!"
- cost = 20000
- var/num_contained = 3 //number of items picked to be contained in a randomised crate
- contains = list(/obj/item/clothing/head/collectable/chef,
- /obj/item/clothing/head/collectable/paper,
- /obj/item/clothing/head/collectable/tophat,
- /obj/item/clothing/head/collectable/captain,
- /obj/item/clothing/head/collectable/beret,
- /obj/item/clothing/head/collectable/welding,
- /obj/item/clothing/head/collectable/flatcap,
- /obj/item/clothing/head/collectable/pirate,
- /obj/item/clothing/head/collectable/kitty,
- /obj/item/clothing/head/collectable/rabbitears,
- /obj/item/clothing/head/collectable/wizard,
- /obj/item/clothing/head/collectable/hardhat,
- /obj/item/clothing/head/collectable/HoS,
- /obj/item/clothing/head/collectable/HoP,
- /obj/item/clothing/head/collectable/thunderdome,
- /obj/item/clothing/head/collectable/swat,
- /obj/item/clothing/head/collectable/slime,
- /obj/item/clothing/head/collectable/police,
- /obj/item/clothing/head/collectable/slime,
- /obj/item/clothing/head/collectable/xenom,
- /obj/item/clothing/head/collectable/petehat)
- crate_name = "collectable hats crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/randomised/contraband
- name = "Contraband Crate"
- desc = "Psst.. bud... want some contraband? I can get you a poster, some nice cigs, dank, even some sponsored items...you know, the good stuff. Just keep it away from the cops, kay?"
- contraband = TRUE
- cost = 3000
- num_contained = 5 //SOME
- contains = list(/obj/item/poster/random_contraband,
- /obj/item/poster/random_contraband,
- /obj/item/reagent_containers/food/snacks/grown/cannabis,
- /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow,
- /obj/item/reagent_containers/food/snacks/grown/cannabis/white,
- /obj/item/storage/pill_bottle/zoom,
- /obj/item/storage/pill_bottle/happy,
- /obj/item/storage/pill_bottle/lsd,
- /obj/item/storage/pill_bottle/aranesp,
- /obj/item/storage/pill_bottle/stimulant,
- /obj/item/toy/cards/deck/syndicate,
- /obj/item/reagent_containers/food/drinks/bottle/absinthe,
- /obj/item/clothing/under/syndicate/tacticool,
- /obj/item/storage/fancy/cigarettes/cigpack_syndicate,
- /obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
- /obj/item/clothing/mask/gas/syndicate,
- /obj/item/clothing/neck/necklace/dope,
- /obj/item/vending_refill/donksoft,
- /obj/item/circuitboard/computer/arcade/amputation)
- crate_name = "crate"
-
-/datum/supply_pack/costumes_toys/foamforce
- name = "Foam Force Crate"
- desc = "Break out the big guns with eight Foam Force shotguns!"
- cost = 1000
- contains = list(/obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy,
- /obj/item/gun/ballistic/shotgun/toy)
- crate_name = "foam force crate"
-
-/datum/supply_pack/costumes_toys/foamforce/bonus
- name = "Foam Force Pistols Crate"
- desc = "Psst.. hey bud... remember those old foam force pistols that got discontinued for being too cool? Well I got two of those right here with your name on em. I'll even throw in a spare mag for each, waddya say?"
- contraband = TRUE
- cost = 4000
- contains = list(/obj/item/gun/ballistic/automatic/toy/pistol,
- /obj/item/gun/ballistic/automatic/toy/pistol,
- /obj/item/ammo_box/magazine/toy/pistol,
- /obj/item/ammo_box/magazine/toy/pistol)
- crate_name = "foam force crate"
-
-/datum/supply_pack/costumes_toys/formalwear
- name = "Formalwear Crate"
- desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing."
- cost = 3000 //Lots of very expensive items. You gotta pay up to look good!
- contains = list(/obj/item/clothing/under/blacktango,
- /obj/item/clothing/under/assistantformal,
- /obj/item/clothing/under/assistantformal,
- /obj/item/clothing/under/lawyer/bluesuit,
- /obj/item/clothing/suit/toggle/lawyer,
- /obj/item/clothing/under/lawyer/purpsuit,
- /obj/item/clothing/suit/toggle/lawyer/purple,
- /obj/item/clothing/under/lawyer/blacksuit,
- /obj/item/clothing/suit/toggle/lawyer/black,
- /obj/item/clothing/accessory/waistcoat,
- /obj/item/clothing/neck/tie/blue,
- /obj/item/clothing/neck/tie/red,
- /obj/item/clothing/neck/tie/black,
- /obj/item/clothing/head/bowler,
- /obj/item/clothing/head/fedora,
- /obj/item/clothing/head/flatcap,
- /obj/item/clothing/head/beret,
- /obj/item/clothing/head/that,
- /obj/item/clothing/shoes/laceup,
- /obj/item/clothing/shoes/laceup,
- /obj/item/clothing/shoes/laceup,
- /obj/item/clothing/under/suit_jacket/charcoal,
- /obj/item/clothing/under/suit_jacket/navy,
- /obj/item/clothing/under/suit_jacket/burgundy,
- /obj/item/clothing/under/suit_jacket/checkered,
- /obj/item/clothing/under/suit_jacket/tan,
- /obj/item/lipstick/random)
- crate_name = "formalwear crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/clownpin
- name = "Hilarious Firing Pin Crate"
- desc = "I uh... I'm not really sure what this does. Wanna buy it?"
- cost = 5000
- contraband = TRUE
- contains = list(/obj/item/firing_pin/clown)
- crate_name = "toy crate" // It's /technically/ a toy. For the clown, at least.
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/lasertag
- name = "Laser Tag Crate"
- desc = "Foam Force is for boys. Laser Tag is for men. Contains three sets of red suits, blue suits, matching helmets, and matching laser tag guns."
- cost = 1500
- contains = list(/obj/item/gun/energy/laser/redtag,
- /obj/item/gun/energy/laser/redtag,
- /obj/item/gun/energy/laser/redtag,
- /obj/item/gun/energy/laser/bluetag,
- /obj/item/gun/energy/laser/bluetag,
- /obj/item/gun/energy/laser/bluetag,
- /obj/item/clothing/suit/redtag,
- /obj/item/clothing/suit/redtag,
- /obj/item/clothing/suit/redtag,
- /obj/item/clothing/suit/bluetag,
- /obj/item/clothing/suit/bluetag,
- /obj/item/clothing/suit/bluetag,
- /obj/item/clothing/head/helmet/redtaghelm,
- /obj/item/clothing/head/helmet/redtaghelm,
- /obj/item/clothing/head/helmet/redtaghelm,
- /obj/item/clothing/head/helmet/bluetaghelm,
- /obj/item/clothing/head/helmet/bluetaghelm,
- /obj/item/clothing/head/helmet/bluetaghelm)
- crate_name = "laser tag crate"
-
-/datum/supply_pack/costumes_toys/lasertag/pins
- name = "Laser Tag Firing Pins Crate"
- desc = "Three laser tag firing pins used in laser-tag units to ensure users are wearing their vests."
- cost = 3000
- contraband = TRUE
- contains = list(/obj/item/storage/box/lasertagpins)
- crate_name = "laser tag crate"
-
-/datum/supply_pack/costumes_toys/costume_original
- name = "Original Costume Crate"
- desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!"
- cost = 1000
- contains = list(/obj/item/clothing/head/snowman,
- /obj/item/clothing/suit/snowman,
- /obj/item/clothing/head/chicken,
- /obj/item/clothing/suit/chickensuit,
- /obj/item/clothing/mask/gas/monkeymask,
- /obj/item/clothing/suit/monkeysuit,
- /obj/item/clothing/head/cardborg,
- /obj/item/clothing/suit/cardborg,
- /obj/item/clothing/head/xenos,
- /obj/item/clothing/suit/xenos,
- /obj/item/clothing/suit/hooded/ian_costume,
- /obj/item/clothing/suit/hooded/carp_costume,
- /obj/item/clothing/suit/hooded/bee_costume)
- crate_name = "original costume crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/costume
- name = "Standard Costume Crate"
- desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing."
- cost = 1000
- access = ACCESS_THEATRE
- contains = list(/obj/item/storage/backpack/clown,
- /obj/item/clothing/shoes/clown_shoes,
- /obj/item/clothing/mask/gas/clown_hat,
- /obj/item/clothing/under/rank/clown,
- /obj/item/bikehorn,
- /obj/item/clothing/under/rank/mime,
- /obj/item/clothing/shoes/sneakers/black,
- /obj/item/clothing/gloves/color/white,
- /obj/item/clothing/mask/gas/mime,
- /obj/item/clothing/head/beret,
- /obj/item/clothing/suit/suspenders,
- /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing,
- /obj/item/storage/backpack/mime)
- crate_name = "standard costume crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/randomised/toys
- name = "Toy Crate"
- desc = "Who cares about pride and accomplishment? Skip the gaming and get straight to the sweet rewards with this product! Contains five random toys. Warranty void if used to prank research directors."
- cost = 1500 // or play the arcade machines ya lazy bum
- num_contained = 5
- contains = list(/obj/item/storage/box/snappops,
- /obj/item/toy/talking/AI,
- /obj/item/toy/talking/codex_gigas,
- /obj/item/clothing/under/syndicate/tacticool,
- /obj/item/toy/sword ,
- /obj/item/toy/gun,
- /obj/item/gun/ballistic/shotgun/toy/crossbow,
- /obj/item/storage/box/fakesyndiesuit,
- /obj/item/storage/crayons,
- /obj/item/toy/spinningtoy,
- /obj/item/toy/prize/ripley,
- /obj/item/toy/prize/fireripley,
- /obj/item/toy/prize/deathripley,
- /obj/item/toy/prize/gygax,
- /obj/item/toy/prize/durand,
- /obj/item/toy/prize/honk,
- /obj/item/toy/prize/marauder,
- /obj/item/toy/prize/seraph,
- /obj/item/toy/prize/mauler,
- /obj/item/toy/prize/odysseus,
- /obj/item/toy/prize/phazon,
- /obj/item/toy/prize/reticence,
- /obj/item/toy/cards/deck,
- /obj/item/toy/nuke,
- /obj/item/toy/minimeteor,
- /obj/item/toy/redbutton,
- /obj/item/toy/talking/owl,
- /obj/item/toy/talking/griffin,
- /obj/item/coin/antagtoken,
- /obj/item/stack/tile/fakespace/loaded,
- /obj/item/stack/tile/fakepit/loaded,
- /obj/item/toy/toy_xeno,
- /obj/item/storage/box/actionfigure,
- /obj/item/restraints/handcuffs/fake,
- /obj/item/grenade/chem_grenade/glitter/pink,
- /obj/item/grenade/chem_grenade/glitter/blue,
- /obj/item/grenade/chem_grenade/glitter/white,
- /obj/item/toy/eightball,
- /obj/item/toy/windupToolbox,
- /obj/item/toy/clockwork_watch,
- /obj/item/toy/toy_dagger,
- /obj/item/extendohand/acme,
- /obj/item/hot_potato/harmless/toy,
- /obj/item/card/emagfake,
- /obj/item/clothing/shoes/wheelys,
- /obj/item/clothing/shoes/kindleKicks,
- /obj/item/storage/belt/military/snack,
- /obj/item/toy/eightball,
- /obj/item/vending_refill/donksoft)
- crate_name = "toy crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/randomised/plush
- name = "Plush Crate"
- desc = "Plush tide station wide. Contains 5 random plushies for you to love. Warranty void if your love violates the terms of use."
- cost = 1500 // or play the arcade machines ya lazy bum
- num_contained = 5
- contains = list(/obj/item/toy/plush/random,
- /obj/item/toy/plush/random,
- /obj/item/toy/plush/random,
- /obj/item/toy/plush/random,
- /obj/item/toy/plush/random) //I'm lazy
- crate_name = "plushie crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/wizard
- name = "Wizard Costume Crate"
- desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life."
- cost = 2000
- contains = list(/obj/item/staff,
- /obj/item/clothing/suit/wizrobe/fake,
- /obj/item/clothing/shoes/sandal,
- /obj/item/clothing/head/wizard/fake)
- crate_name = "wizard costume crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/costumes_toys/randomised/fill(obj/structure/closet/crate/C)
- var/list/L = contains.Copy()
- for(var/i in 1 to num_contained)
- var/item = pick_n_take(L)
- new item(C)
-
-/datum/supply_pack/costumes_toys/wardrobes/autodrobe
- name = "Autodrobe Supply Crate"
- desc = "Autodrobe missing your favorite dress? Solve that issue today with this autodrobe refill."
- cost = 1500
- contains = list(/obj/item/vending_refill/autodrobe)
- crate_name = "autodrobe supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/cargo
- name = "Cargo Wardrobe Supply Crate"
- desc = "This crate contains a refill for the CargoDrobe."
- cost = 750
- contains = list(/obj/item/vending_refill/wardrobe/cargo_wardrobe)
- crate_name = "cargo department supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/engineering
- name = "Engineering Wardrobe Supply Crate"
- desc = "This crate contains refills for the EngiDrobe and AtmosDrobe."
- cost = 1500
- contains = list(/obj/item/vending_refill/wardrobe/engi_wardrobe,
- /obj/item/vending_refill/wardrobe/atmos_wardrobe)
- crate_name = "engineering department wardrobe supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/general
- name = "General Wardrobes Supply Crate"
- desc = "This crate contains refills for the CuraDrobe, BarDrobe, ChefDrobe, JaniDrobe, ChapDrobe."
- cost = 3750
- contains = list(/obj/item/vending_refill/wardrobe/curator_wardrobe,
- /obj/item/vending_refill/wardrobe/bar_wardrobe,
- /obj/item/vending_refill/wardrobe/chef_wardrobe,
- /obj/item/vending_refill/wardrobe/jani_wardrobe,
- /obj/item/vending_refill/wardrobe/chap_wardrobe)
- crate_name = "general wardrobes vendor refills"
-
-/datum/supply_pack/costumes_toys/wardrobes/hydroponics
- name = "Hydrobe Supply Crate"
- desc = "This crate contains a refill for the Hydrobe."
- cost = 750
- contains = list(/obj/item/vending_refill/wardrobe/hydro_wardrobe)
- crate_name = "hydrobe supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/medical
- name = "Medical Wardrobe Supply Crate"
- desc = "This crate contains refills for the MediDrobe, ChemDrobe, GeneDrobe, and ViroDrobe."
- cost = 3000
- contains = list(/obj/item/vending_refill/wardrobe/medi_wardrobe,
- /obj/item/vending_refill/wardrobe/chem_wardrobe,
- /obj/item/vending_refill/wardrobe/gene_wardrobe,
- /obj/item/vending_refill/wardrobe/viro_wardrobe)
- crate_name = "medical department wardrobe supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/science
- name = "Science Wardrobe Supply Crate"
- desc = "This crate contains refills for the SciDrobe and RoboDrobe."
- cost = 1500
- contains = list(/obj/item/vending_refill/wardrobe/robo_wardrobe,
- /obj/item/vending_refill/wardrobe/science_wardrobe)
- crate_name = "science department wardrobe supply crate"
-
-/datum/supply_pack/costumes_toys/wardrobes/security
- name = "Security Wardrobe Supply Crate"
- desc = "This crate contains refills for the SecDrobe and LawDrobe."
- cost = 1500
- contains = list(/obj/item/vending_refill/wardrobe/sec_wardrobe,
- /obj/item/vending_refill/wardrobe/law_wardrobe)
- crate_name = "security department supply crate"
-
-/datum/supply_pack/costumes_toys/kinkmate
- name = "Kinkmate kit"
- cost = 2000
- contraband = TRUE
- contains = list(/obj/item/vending_refill/kink,
- /obj/item/vending_refill/kink,
- /obj/item/vending_refill/kink)
- crate_name = "Kinkmate kit"
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////// Miscellaneous ///////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-/datum/supply_pack/misc
- group = "Miscellaneous Supplies"
-
-/datum/supply_pack/misc/artsupply
- name = "Art Supplies"
- desc = "Make some happy little accidents with six canvasses, two easels, two boxes of crayons, and a rainbow crayon!"
- cost = 800
- contains = list(/obj/structure/easel,
- /obj/structure/easel,
- /obj/item/canvas/nineteenXnineteen,
- /obj/item/canvas/nineteenXnineteen,
- /obj/item/canvas/twentythreeXnineteen,
- /obj/item/canvas/twentythreeXnineteen,
- /obj/item/canvas/twentythreeXtwentythree,
- /obj/item/canvas/twentythreeXtwentythree,
- /obj/item/storage/crayons,
- /obj/item/storage/crayons,
- /obj/item/toy/crayon/rainbow,
- /obj/item/toy/crayon/white,
- /obj/item/toy/crayon/white)
- crate_name = "art supply crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/misc/captain_pen
- name = "Captain Pen"
- desc = "A spare Captain fountain pen."
- access = ACCESS_CAPTAIN
- cost = 10000
- contains = list(/obj/item/pen/fountain/captain)
- crate_name = "captain pen"
- crate_type = /obj/structure/closet/crate/secure/weapon //It is a combat pen
-
-/datum/supply_pack/misc/dueling_stam
- name = "Dueling Pistols"
- desc = "Resolve all your quarrels with some nonlethal fun."
- cost = 2000
- contains = list(/obj/item/storage/lockbox/dueling/hugbox/stamina,
- /obj/item/storage/lockbox/dueling/hugbox/stamina,
- /obj/item/storage/lockbox/dueling/hugbox/stamina,
- /obj/item/storage/lockbox/dueling/hugbox/stamina,
- /obj/item/storage/lockbox/dueling/hugbox/stamina)
- crate_name = "dueling pistols"
-
-/datum/supply_pack/misc/dueling_lethal
- name = "Lethal Dueling Pistols"
- desc = "Settle your differences the true spaceman way."
- cost = 3000
- contraband = TRUE
- contains = list(/obj/item/storage/lockbox/dueling/hugbox,
- /obj/item/storage/lockbox/dueling/hugbox,
- /obj/item/storage/lockbox/dueling/hugbox)
- crate_name = "dueling pistols (lethal)"
-
-/datum/supply_pack/misc/dueling_death
- name = "Elimination Dueling Pistols"
- desc = "It's high noon."
- cost = 5000
- hidden = TRUE
- contains = list(/obj/item/storage/lockbox/dueling)
- crate_name = "dueling pistols (elimination)"
-
-
-/datum/supply_pack/misc/exoticfootwear
- name = "Exotic Footwear Crate"
- desc = "Popularised by lizards and exotic dancers, the footwear included in this shipment is sure to give your feet the breathing room they deserve. Sweet Kicks Inc. is not responsible for any damage, distress, or @r0u$a1 caused by this shipment."
- cost = 3000
- contains = list(/obj/item/clothing/shoes/wraps,
- /obj/item/clothing/shoes/wraps,
- /obj/item/clothing/shoes/wraps/silver,
- /obj/item/clothing/shoes/wraps/silver,
- /obj/item/clothing/shoes/wraps/red,
- /obj/item/clothing/shoes/wraps/red,
- /obj/item/clothing/shoes/wraps/blue,
- /obj/item/clothing/shoes/wraps/blue,
- /obj/item/clothing/shoes/clown_shoes,
- /obj/item/clothing/shoes/kindleKicks)
- crate_name = "footie crate"
-
-/datum/supply_pack/misc/randombedsheets
- name = "Bedsheet Crate (R)"
- desc = "Snuggle up in some sweet sheets with this assorted bedsheet crate. Each set comes with eight random bedsheets for your slumbering pleasure!"
- cost = 2000
- contains = list(/obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random,
- /obj/item/bedsheet/random) //I'm lazy, and I copy paste stuff.
- crate_name = "random bedsheet crate"
-
-/datum/supply_pack/misc/coloredsheets
- name = "Bedsheet Crate (C)"
- desc = "Give your night life a splash of color with this crate filled with bedsheets! Contains a total of nine different-colored sheets."
- cost = 1250
- contains = list(/obj/item/bedsheet/blue,
- /obj/item/bedsheet/green,
- /obj/item/bedsheet/orange,
- /obj/item/bedsheet/purple,
- /obj/item/bedsheet/red,
- /obj/item/bedsheet/yellow,
- /obj/item/bedsheet/brown,
- /obj/item/bedsheet/black,
- /obj/item/bedsheet/rainbow)
- crate_name = "colored bedsheet crate"
-
-/datum/supply_pack/misc/bicycle
- name = "Bicycle"
- desc = "Nanotrasen reminds all employees to never toy with powers outside their control."
- cost = 1000000
- contains = list(/obj/vehicle/ridden/bicycle)
- crate_name = "Bicycle Crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/misc/bigband
- name = "Big Band Instrument Collection"
- desc = "Get your sad station movin' and groovin' with this fine collection! Contains nine different instruments!"
- cost = 5000
- crate_name = "Big band musical instruments collection"
- contains = list(/obj/item/instrument/violin,
- /obj/item/instrument/guitar,
- /obj/item/instrument/glockenspiel,
- /obj/item/instrument/accordion,
- /obj/item/instrument/saxophone,
- /obj/item/instrument/trombone,
- /obj/item/instrument/recorder,
- /obj/item/instrument/harmonica,
- /obj/structure/piano/unanchored)
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/misc/book_crate
- name = "Book Crate"
- desc = "Surplus from the Nanotrasen Archives, these five books are sure to be good reads."
- cost = 1500
- contains = list(/obj/item/book/codex_gigas,
- /obj/item/book/manual/random/,
- /obj/item/book/manual/random/,
- /obj/item/book/manual/random/,
- /obj/item/book/random/triple)
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/misc/cbtpack
- name = "CBT Equipment"
- desc = "(*!&@#CBT is a special term coined by high ranking syndicate operatives for a special form of information extraction. While the training required to use this shipment is highly classified, the distribution of it's contents are not. In addition to this crates unusual contents, we have added a bar of soap.#@*$"
- hidden = TRUE
- cost = 2400
- contains = list(/mob/living/simple_animal/chicken,
- /obj/item/toy/beach_ball/holoball,
- /obj/item/melee/baton/cattleprod,
- /obj/item/soap/syndie)
- crate_name = "cbt crate"
- crate_type = /obj/structure/closet/crate/large
-
-/datum/supply_pack/misc/casinocrate
- name = "Casino Crate"
- desc = "Start up your own grand casino with this crate filled with slot machine and arcade boards!"
- cost = 3000
- contains = list(/obj/item/circuitboard/computer/arcade/battle,
- /obj/item/circuitboard/computer/arcade/battle,
- /obj/item/circuitboard/computer/arcade/orion_trail,
- /obj/item/circuitboard/computer/arcade/orion_trail,
- /obj/item/circuitboard/computer/arcade/minesweeper,
- /obj/item/circuitboard/computer/arcade/minesweeper,
- /obj/item/circuitboard/computer/slot_machine,
- /obj/item/circuitboard/computer/slot_machine,
- /obj/item/circuitboard/computer/slot_machine,
- /obj/item/circuitboard/computer/slot_machine,
- /obj/item/circuitboard/computer/slot_machine,
- /obj/item/circuitboard/computer/slot_machine)
- crate_name = "casino crate"
-
-/datum/supply_pack/misc/paper
- name = "Bureaucracy Crate"
- desc = "High stacks of papers on your desk Are a big problem - make it Pea-sized with these bureaucratic supplies! Contains five pens, some camera film, hand labeler supplies, a paper bin, three folders, two clipboards and two stamps as well as a briefcase."//that was too forced
- cost = 1500
- contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled,
- /obj/item/camera_film,
- /obj/item/hand_labeler,
- /obj/item/hand_labeler_refill,
- /obj/item/hand_labeler_refill,
- /obj/item/paper_bin,
- /obj/item/pen/fourcolor,
- /obj/item/pen/fourcolor,
- /obj/item/pen,
- /obj/item/pen/blue,
- /obj/item/pen/red,
- /obj/item/folder/blue,
- /obj/item/folder/red,
- /obj/item/folder/yellow,
- /obj/item/clipboard,
- /obj/item/clipboard,
- /obj/item/stamp,
- /obj/item/stamp/denied,
- /obj/item/storage/briefcase)
- crate_name = "bureaucracy crate"
-
-/datum/supply_pack/misc/fountainpens
- name = "Calligraphy Crate"
- desc = "Sign death warrants in style with these seven executive fountain pens."
- cost = 700
- contains = list(/obj/item/storage/box/fountainpens,
- /obj/item/paper_bin)
- crate_type = /obj/structure/closet/crate/wooden
- crate_name = "calligraphy crate"
-
-/datum/supply_pack/misc/wrapping_paper
- name = "Festive Wrapping Paper Crate"
- desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, the Clown's severed head? You can do all that, with this crate full of wrapping paper."
- cost = 1000
- contains = list(/obj/item/stack/wrapping_paper)
- crate_type = /obj/structure/closet/crate/wooden
- crate_name = "festive wrapping paper crate"
-
-/datum/supply_pack/misc/paper_work
- name = "Freelance Paper work"
- desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (10) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up.
- cost = 700 // Net of 0 credits
- contains = list(/obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/folder/paperwork,
- /obj/item/pen/fountain,
- /obj/item/pen/fountain,
- /obj/item/pen/fountain,
- /obj/item/pen/fountain,
- /obj/item/pen/fountain)
- crate_name = "Paperwork"
-
-/datum/supply_pack/misc/funeral
- name = "Funeral Supply crate"
- desc = "At the end of the day, someone's gonna want someone dead. Give them a proper send-off with these funeral supplies! Contains a coffin with burial garmets and flowers."
- cost = 600
- contains = list(/obj/item/clothing/under/burial,
- /obj/item/reagent_containers/food/snacks/grown/harebell,
- /obj/item/reagent_containers/food/snacks/grown/poppy/geranium
- )
- crate_name = "coffin"
- crate_type = /obj/structure/closet/crate/coffin
-
-/datum/supply_pack/misc/jukebox
- name = "Jukebox"
- cost = 35000
- contains = list(/obj/machinery/jukebox)
- crate_name = "Jukebox"
-
-/datum/supply_pack/misc/lewd
- name = "Lewd Crate" // OwO
- desc = "Psss want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!"
- cost = 5000
- contraband = TRUE
- contains = list(/obj/item/dildo/custom,
- /obj/item/dildo/custom,
- /obj/item/vending_refill/kink,
- /obj/item/vending_refill/kink,
- /obj/item/vending_refill/kink,
- /obj/item/clothing/under/maid,
- /obj/item/clothing/under/maid,
- /obj/item/electropack/shockcollar,
- /obj/item/electropack/shockcollar,
- /obj/item/restraints/handcuffs/fake/kinky,
- /obj/item/restraints/handcuffs/fake/kinky,
- /obj/item/clothing/head/kitty/genuine, // Why its illegal
- /obj/item/clothing/head/kitty/genuine,
- /obj/item/storage/pill_bottle/penis_enlargement,
- /obj/item/storage/pill_bottle/breast_enlargement,
- /obj/structure/reagent_dispensers/keg/aphro)
- crate_name = "lewd kit"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/misc/lewdkeg
- name = "Lewd Deluxe Keg"
- desc = "That other stuff not getting you ready? Well I have a Chemslut making tons of the good stuff."
- cost = 7000 //It can be a weapon
- contraband = TRUE
- contains = list(/obj/structure/reagent_dispensers/keg/aphro/strong)
- crate_name = "deluxe keg"
- crate_type = /obj/structure/closet/crate
-
-/datum/supply_pack/misc/religious_supplies
- name = "Religious Supplies Crate"
- desc = "Keep your local chaplain happy and well-supplied, lest they call down judgement upon your cargo bay. Contains two bottles of holywater, bibles, chaplain robes, and burial garmets."
- cost = 4000 // it costs so much because the Space Church is ran by Space Jews
- contains = list(/obj/item/reagent_containers/food/drinks/bottle/holywater,
- /obj/item/reagent_containers/food/drinks/bottle/holywater,
- /obj/item/storage/book/bible/booze,
- /obj/item/storage/book/bible/booze,
- /obj/item/clothing/suit/hooded/chaplain_hoodie,
- /obj/item/clothing/suit/hooded/chaplain_hoodie
- )
- crate_name = "religious supplies crate"
-
-/datum/supply_pack/misc/randomised/promiscuous
- name = "Promiscuous Organs"
- desc = "Do YOU want to have more genital? Well we have just the thing for you~. This crate has two autosurgeon, that will let you have a new sex, organ to impress that hot stud and or chick."
- cost = 4000 //Only get 2!
- contraband = TRUE
- var/num_contained = 2
- contains = list(/obj/item/autosurgeon/penis,
- /obj/item/autosurgeon/testicles,
- /obj/item/autosurgeon/vagina,
- /obj/item/autosurgeon/breasts,
- /obj/item/autosurgeon/womb)
- crate_name = "promiscuous organs"
-
-/datum/supply_pack/misc/shower
- name = "Shower Supplies"
- desc = "Everyone needs a bit of R&R. Make sure you get can get yours by ordering this crate filled with towels, rubber duckies, and some soap!"
- cost = 1000
- contains = list(/obj/item/reagent_containers/rag/towel,
- /obj/item/reagent_containers/rag/towel,
- /obj/item/reagent_containers/rag/towel,
- /obj/item/reagent_containers/rag/towel,
- /obj/item/reagent_containers/rag/towel,
- /obj/item/reagent_containers/rag/towel,
- /obj/item/bikehorn/rubberducky,
- /obj/item/bikehorn/rubberducky,
- /obj/item/soap/nanotrasen)
- crate_name = "shower crate"
-
-/datum/supply_pack/misc/spacehermitstarter
- name = "Space Hermit Starter Pack"
- desc = "So sick of the station you wish to leave and never come back? Or perhaps you need to find a place of solitutde and privacy? Jumping out of an external airlock may just be the solution for you! But not before you buy this crate - contains a mining hardsuit, a proto-kinetic accelerator, GPS, luxury bluespace shelter aswell as a deluxe bluespace shelter.(Jetpack not included)"
- cost = 5000
- contraband = TRUE
- contains = list(/obj/item/clothing/suit/space/hardsuit/mining,
- /obj/item/gun/energy/kinetic_accelerator,
- /obj/item/survivalcapsule/deluxe,
- /obj/item/survivalcapsule/luxury,
- /obj/item/gps)
- crate_name = "space hermit crate"
-
-/datum/supply_pack/misc/toner
- name = "Toner Crate"
- desc = "Spent too much ink printing butt pictures? Fret not, with these six toner refills, you'll be printing butts 'till the cows come home!'"
- cost = 1000
- contains = list(/obj/item/toner,
- /obj/item/toner,
- /obj/item/toner,
- /obj/item/toner,
- /obj/item/toner,
- /obj/item/toner)
- crate_name = "toner crate"
-
-/datum/supply_pack/misc/diamondring
- name = "Diamond Ring"
- desc = "Show them your love is like a diamond: unbreakable and forever lasting. Shipped straight from child slave cartels in the space african mines."
- cost = 10000
- contains = list(/obj/item/storage/fancy/ringbox/diamond)
- crate_name = "diamond ring crate"
-
-/datum/supply_pack/misc/jewelry
- name = "Jewelry Crate"
- desc = "Bling out with this crate of jewelry. Includes gold necklace and a set of two rings."
- cost = 5000
- contains = list(/obj/item/clothing/neck/necklace/dope,
- /obj/item/storage/fancy/ringbox,
- /obj/item/storage/fancy/ringbox/silver
- )
- crate_name = "jewelry crate"
diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm
new file mode 100644
index 00000000..4713d941
--- /dev/null
+++ b/code/modules/cargo/packs/armory.dm
@@ -0,0 +1,244 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Armory //////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/security/armory
+ group = "Armory"
+ access = ACCESS_ARMORY
+ crate_type = /obj/structure/closet/crate/secure/weapon
+
+/datum/supply_pack/security/armory/bulletarmor
+ name = "Bulletproof Armor Crate"
+ desc = "Contains three sets of bulletproof armor. Guaranteed to reduce a bullet's stopping power by over half. Requires Armory access to open."
+ cost = 1250
+ contains = list(/obj/item/clothing/suit/armor/bulletproof,
+ /obj/item/clothing/suit/armor/bulletproof,
+ /obj/item/clothing/suit/armor/bulletproof)
+ crate_name = "bulletproof armor crate"
+
+/datum/supply_pack/security/armory/bullethelmets
+ name = "Bulletproof Helmet Crate"
+ desc = "Contains three sets of bulletproof helmets. Guaranteed to reduce a bullet's stopping power by over half. Requires Armory access to open."
+ cost = 1250
+ contains = list(/obj/item/clothing/head/helmet/alt,
+ /obj/item/clothing/head/helmet/alt,
+ /obj/item/clothing/head/helmet/alt)
+ crate_name = "bulletproof helmet crate"
+
+/datum/supply_pack/security/armory/chemimp
+ name = "Chemical Implants Crate"
+ desc = "Contains five Remote Chemical implants. Requires Armory access to open."
+ cost = 1700
+ contains = list(/obj/item/storage/box/chemimp)
+ crate_name = "chemical implant crate"
+
+/datum/supply_pack/security/armory/combatknives
+ name = "Combat Knives Crate"
+ desc = "Contains three sharpened combat knives. Each knife guaranteed to fit snugly inside any Nanotrasen-standard boot. Requires Armory access to open."
+ cost = 3200
+ contains = list(/obj/item/kitchen/knife/combat,
+ /obj/item/kitchen/knife/combat,
+ /obj/item/kitchen/knife/combat)
+ crate_name = "combat knife crate"
+
+/datum/supply_pack/security/armory/ballistic
+ name = "Combat Shotguns Crate"
+ desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, with three Shotgun Bandoliers, as well as seven buchshot and 12g shotgun slugs. Requires Armory access to open."
+ cost = 8000
+ contains = list(/obj/item/gun/ballistic/shotgun/automatic/combat,
+ /obj/item/gun/ballistic/shotgun/automatic/combat,
+ /obj/item/gun/ballistic/shotgun/automatic/combat,
+ /obj/item/storage/belt/bandolier,
+ /obj/item/storage/belt/bandolier,
+ /obj/item/storage/belt/bandolier,
+ /obj/item/storage/box/lethalshot,
+ /obj/item/storage/box/lethalslugs)
+ crate_name = "combat shotguns crate"
+
+/datum/supply_pack/security/armory/dragnetgun
+ name = "DRAGnet gun Crate"
+ desc = "Contains two DRAGnet gun. A Dynamic Rapid-Apprehension of the Guilty net the revolution in law enforcement technology that YOU Want! Requires Armory access to open."
+ cost = 3250
+ contains = list(/obj/item/gun/energy/e_gun/dragnet,
+ /obj/item/gun/energy/e_gun/dragnet)
+ crate_name = "anti riot net guns crate"
+
+/datum/supply_pack/security/armory/energy
+ name = "Energy Guns Crate"
+ desc = "Contains three Energy Guns, capable of firing both nonlethal and lethal blasts of light. Requires Armory access to open."
+ cost = 3250
+ contains = list(/obj/item/gun/energy/e_gun,
+ /obj/item/gun/energy/e_gun,
+ /obj/item/gun/energy/e_gun)
+ crate_name = "energy gun crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/security/armory/exileimp // Theres boxes in 2 lockers as well as gateway never realy being used sad
+ name = "Exile Implants Crate"
+ desc = "Contains five Exile implants. Requires Armory access to open."
+ cost = 1050 //stops endless points
+ contains = list(/obj/item/storage/box/exileimp)
+ crate_name = "exile implant crate"
+
+/datum/supply_pack/security/armory/mindshield
+ name = "Mindshield Implants Crate"
+ desc = "Prevent against radical thoughts with three Mindshield implants. Requires Armory access to open."
+ cost = 4000
+ contains = list(/obj/item/storage/lockbox/loyalty)
+ crate_name = "mindshield implant crate"
+
+/datum/supply_pack/security/armory/trackingimp
+ name = "Tracking Implants Crate"
+ desc = "Contains four tracking implants. Requires Armory access to open."
+ cost = 1050
+ contains = list(/obj/item/storage/box/trackimp)
+ crate_name = "tracking implant crate"
+
+/datum/supply_pack/security/armory/fire
+ name = "Incendiary Weapons Crate"
+ desc = "Burn, baby burn. Contains three incendiary grenades, seven incendiary slugs, three plasma canisters, and a flamethrower. Requires Brige access to open."
+ cost = 1750
+ access = ACCESS_HEADS
+ contains = list(/obj/item/flamethrower/full,
+ /obj/item/tank/internals/plasma,
+ /obj/item/tank/internals/plasma,
+ /obj/item/tank/internals/plasma,
+ /obj/item/grenade/chem_grenade/incendiary,
+ /obj/item/grenade/chem_grenade/incendiary,
+ /obj/item/grenade/chem_grenade/incendiary,
+ /obj/item/storage/box/fireshot)
+ crate_name = "incendiary weapons crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+ dangerous = TRUE
+
+/datum/supply_pack/security/armory/miniguns
+ name = "Personal Miniature Energy Guns"
+ desc = "Contains three miniature energy guns. Each gun has a disabler and a lethal option. Requires Armory access to open."
+ cost = 3000
+ contains = list(/obj/item/gun/energy/e_gun/mini,
+ /obj/item/gun/energy/e_gun/mini,
+ /obj/item/gun/energy/e_gun/mini)
+ crate_name = "personal energy guns crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/security/armory/laserarmor
+ name = "Reflector Vest Crate"
+ desc = "Contains two vests of highly reflective material. Each armor piece diffuses a laser's energy by over half, as well as offering a good chance to reflect the laser entirely. Requires Armory access to open."
+ cost = 2000
+ contains = list(/obj/item/clothing/suit/armor/laserproof,
+ /obj/item/clothing/suit/armor/laserproof)
+ crate_name = "reflector vest crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/security/armory/riotarmor
+ name = "Riot Armor Crate"
+ desc = "Contains three sets of heavy body armor. Advanced padding protects against close-ranged weaponry, making melee attacks feel only half as potent to the user. Requires Armory access to open."
+ cost = 1750
+ contains = list(/obj/item/clothing/suit/armor/riot,
+ /obj/item/clothing/suit/armor/riot,
+ /obj/item/clothing/suit/armor/riot)
+ crate_name = "riot armor crate"
+
+/datum/supply_pack/security/armory/riothelmets
+ name = "Riot Helmets Crate"
+ desc = "Contains three riot helmets. Requires Armory access to open."
+ cost = 1750
+ contains = list(/obj/item/clothing/head/helmet/riot,
+ /obj/item/clothing/head/helmet/riot,
+ /obj/item/clothing/head/helmet/riot)
+ crate_name = "riot helmets crate"
+
+/datum/supply_pack/security/armory/riotshields
+ name = "Riot Shields Crate"
+ desc = "For when the greytide gets really uppity. Contains three riot shields. Requires Armory access to open."
+ cost = 2200
+ contains = list(/obj/item/shield/riot,
+ /obj/item/shield/riot,
+ /obj/item/shield/riot)
+ crate_name = "riot shields crate"
+
+/datum/supply_pack/security/armory/riotshotguns
+ name = "Riot Shotgun Crate"
+ desc = "For when the greytide gets really uppity. Contains three riot shotguns, seven rubber shot and beanbag shells. Requires Armory access to open."
+ cost = 6500
+ contains = list(/obj/item/gun/ballistic/shotgun/riot,
+ /obj/item/gun/ballistic/shotgun/riot,
+ /obj/item/gun/ballistic/shotgun/riot,
+ /obj/item/storage/box/rubbershot,
+ /obj/item/storage/box/beanbag)
+ crate_name = "riot shotgun crate"
+
+/datum/supply_pack/security/armory/swat
+ name = "SWAT Crate"
+ desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open."
+ cost = 6750
+ contains = list(/obj/item/clothing/head/helmet/swat/nanotrasen,
+ /obj/item/clothing/head/helmet/swat/nanotrasen,
+ /obj/item/clothing/suit/space/swat,
+ /obj/item/clothing/suit/space/swat,
+ /obj/item/clothing/mask/gas/sechailer/swat,
+ /obj/item/clothing/mask/gas/sechailer/swat,
+ /obj/item/storage/belt/military/assault,
+ /obj/item/storage/belt/military/assault,
+ /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/gloves/combat)
+ crate_name = "swat crate"
+
+/datum/supply_pack/security/armory/swattasers //Lesser AEG tbh
+ name = "SWAT tatical tasers Crate"
+ desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open."
+ cost = 7000
+ contains = list(/obj/item/gun/energy/e_gun/stun,
+ /obj/item/gun/energy/e_gun/stun)
+ crate_name = "swat taser crate"
+
+/datum/supply_pack/security/armory/woodstock
+ name = "Classic WoodStock Shotguns Crate"
+ desc = "Contains three rustic, pumpaction shotguns. Requires Armory access to open."
+ cost = 3500
+ contains = list(/obj/item/gun/ballistic/shotgun,
+ /obj/item/gun/ballistic/shotgun,
+ /obj/item/gun/ballistic/shotgun)
+ crate_name = "woodstock shotguns crate"
+
+/datum/supply_pack/security/armory/wt550
+ name = "WT-550 Semi-Auto Rifle Crate"
+ desc = "Contains two high-powered, semiautomatic rifles chambered in 4.6x30mm. Requires Armory access to open."
+ cost = 3250
+ contains = list(/obj/item/gun/ballistic/automatic/wt550,
+ /obj/item/gun/ballistic/automatic/wt550)
+ crate_name = "auto rifle crate"
+
+/datum/supply_pack/security/armory/wt550ammo
+ name = "WT-550 Semi-Auto SMG Ammo Crate"
+ desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
+ cost = 2750
+ contains = list(/obj/item/ammo_box/magazine/wt550m9,
+ /obj/item/ammo_box/magazine/wt550m9,
+ /obj/item/ammo_box/magazine/wt550m9,
+ /obj/item/ammo_box/magazine/wt550m9)
+ crate_name = "auto rifle ammo crate"
+
+/datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stun crit someone
+ name = "WT-550 Semi-Auto SMG Non-Lethal Ammo Crate"
+ desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
+ cost = 1200
+ contains = list(/obj/item/ammo_box/magazine/wt550m9/wtrubber,
+ /obj/item/ammo_box/magazine/wt550m9/wtrubber,
+ /obj/item/ammo_box/magazine/wt550m9/wtrubber,
+ /obj/item/ammo_box/magazine/wt550m9/wtrubber)
+ crate_name = "auto rifle ammo crate"
+
+/datum/supply_pack/security/armory/wt550ammo_special
+ name = "WT-550 Semi-Auto SMG Special Ammo Crate"
+ desc = "Contains 2 20-round Armour Piercing and Incendiary magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open."
+ cost = 3500
+ contains = list(/obj/item/ammo_box/magazine/wt550m9/wtap,
+ /obj/item/ammo_box/magazine/wt550m9/wtap,
+ /obj/item/ammo_box/magazine/wt550m9/wtic,
+ /obj/item/ammo_box/magazine/wt550m9/wtic)
+ crate_name = "auto rifle ammo crate"
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
new file mode 100644
index 00000000..f3614b00
--- /dev/null
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -0,0 +1,371 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Costumes & Toys /////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/costumes_toys
+ group = "Costumes & Toys"
+
+/datum/supply_pack/costumes_toys/randomised
+ name = "Collectable Hats Crate"
+ desc = "Flaunt your status with three unique, highly-collectable hats!"
+ cost = 20000
+ var/num_contained = 3 //number of items picked to be contained in a randomised crate
+ contains = list(/obj/item/clothing/head/collectable/chef,
+ /obj/item/clothing/head/collectable/paper,
+ /obj/item/clothing/head/collectable/tophat,
+ /obj/item/clothing/head/collectable/captain,
+ /obj/item/clothing/head/collectable/beret,
+ /obj/item/clothing/head/collectable/welding,
+ /obj/item/clothing/head/collectable/flatcap,
+ /obj/item/clothing/head/collectable/pirate,
+ /obj/item/clothing/head/collectable/kitty,
+ /obj/item/clothing/head/collectable/rabbitears,
+ /obj/item/clothing/head/collectable/wizard,
+ /obj/item/clothing/head/collectable/hardhat,
+ /obj/item/clothing/head/collectable/HoS,
+ /obj/item/clothing/head/collectable/HoP,
+ /obj/item/clothing/head/collectable/thunderdome,
+ /obj/item/clothing/head/collectable/swat,
+ /obj/item/clothing/head/collectable/slime,
+ /obj/item/clothing/head/collectable/police,
+ /obj/item/clothing/head/collectable/slime,
+ /obj/item/clothing/head/collectable/xenom,
+ /obj/item/clothing/head/collectable/petehat)
+ crate_name = "collectable hats crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/randomised/contraband
+ name = "Contraband Crate"
+ desc = "Psst.. bud... want some contraband? I can get you a poster, some nice cigs, dank, even some sponsored items...you know, the good stuff. Just keep it away from the cops, kay?"
+ contraband = TRUE
+ cost = 3000
+ num_contained = 5 //SOME
+ contains = list(/obj/item/poster/random_contraband,
+ /obj/item/poster/random_contraband,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/white,
+ /obj/item/storage/pill_bottle/zoom,
+ /obj/item/storage/pill_bottle/happy,
+ /obj/item/storage/pill_bottle/lsd,
+ /obj/item/storage/pill_bottle/aranesp,
+ /obj/item/storage/pill_bottle/stimulant,
+ /obj/item/toy/cards/deck/syndicate,
+ /obj/item/reagent_containers/food/drinks/bottle/absinthe,
+ /obj/item/clothing/under/syndicate/tacticool,
+ /obj/item/clothing/under/syndicate,
+ /obj/item/suppressor,
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+ /obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
+ /obj/item/clothing/mask/gas/syndicate,
+ /obj/item/clothing/neck/necklace/dope,
+ /obj/item/vending_refill/donksoft,
+ /obj/item/circuitboard/computer/arcade/amputation)
+ crate_name = "crate"
+
+/datum/supply_pack/costumes_toys/foamforce
+ name = "Foam Force Crate"
+ desc = "Break out the big guns with eight Foam Force shotguns!"
+ cost = 1000
+ contains = list(/obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy,
+ /obj/item/gun/ballistic/shotgun/toy)
+ crate_name = "foam force crate"
+
+/datum/supply_pack/costumes_toys/foamforce/bonus
+ name = "Foam Force Pistols Crate"
+ desc = "Psst.. hey bud... remember those old foam force pistols that got discontinued for being too cool? Well I got two of those right here with your name on em. I'll even throw in a spare mag for each, waddya say?"
+ contraband = TRUE
+ cost = 4000
+ contains = list(/obj/item/gun/ballistic/automatic/toy/pistol,
+ /obj/item/gun/ballistic/automatic/toy/pistol,
+ /obj/item/ammo_box/magazine/toy/pistol,
+ /obj/item/ammo_box/magazine/toy/pistol)
+ crate_name = "foam force crate"
+
+/datum/supply_pack/costumes_toys/formalwear
+ name = "Formalwear Crate"
+ desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing."
+ cost = 4750 //Lots of fancy clothing that can be sold back!
+ contains = list(/obj/item/clothing/under/blacktango,
+ /obj/item/clothing/under/assistantformal,
+ /obj/item/clothing/under/assistantformal,
+ /obj/item/clothing/under/lawyer/bluesuit,
+ /obj/item/clothing/suit/toggle/lawyer,
+ /obj/item/clothing/under/lawyer/purpsuit,
+ /obj/item/clothing/suit/toggle/lawyer/purple,
+ /obj/item/clothing/under/lawyer/blacksuit,
+ /obj/item/clothing/suit/toggle/lawyer/black,
+ /obj/item/clothing/accessory/waistcoat,
+ /obj/item/clothing/neck/tie/blue,
+ /obj/item/clothing/neck/tie/red,
+ /obj/item/clothing/neck/tie/black,
+ /obj/item/clothing/head/bowler,
+ /obj/item/clothing/head/fedora,
+ /obj/item/clothing/head/flatcap,
+ /obj/item/clothing/head/beret,
+ /obj/item/clothing/head/that,
+ /obj/item/clothing/shoes/laceup,
+ /obj/item/clothing/shoes/laceup,
+ /obj/item/clothing/shoes/laceup,
+ /obj/item/clothing/under/suit_jacket/charcoal,
+ /obj/item/clothing/under/suit_jacket/navy,
+ /obj/item/clothing/under/suit_jacket/burgundy,
+ /obj/item/clothing/under/suit_jacket/checkered,
+ /obj/item/clothing/under/suit_jacket/tan,
+ /obj/item/lipstick/random)
+ crate_name = "formalwear crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/clownpin
+ name = "Hilarious Firing Pin Crate"
+ desc = "I uh... I'm not really sure what this does. Wanna buy it?"
+ cost = 5000
+ contraband = TRUE
+ contains = list(/obj/item/firing_pin/clown)
+ crate_name = "toy crate" // It's /technically/ a toy. For the clown, at least.
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/lasertag
+ name = "Laser Tag Crate"
+ desc = "Foam Force is for boys. Laser Tag is for men. Contains three sets of red suits, blue suits, matching helmets, and matching laser tag guns."
+ cost = 3500
+ contains = list(/obj/item/gun/energy/laser/redtag,
+ /obj/item/gun/energy/laser/redtag,
+ /obj/item/gun/energy/laser/redtag,
+ /obj/item/gun/energy/laser/bluetag,
+ /obj/item/gun/energy/laser/bluetag,
+ /obj/item/gun/energy/laser/bluetag,
+ /obj/item/clothing/suit/redtag,
+ /obj/item/clothing/suit/redtag,
+ /obj/item/clothing/suit/redtag,
+ /obj/item/clothing/suit/bluetag,
+ /obj/item/clothing/suit/bluetag,
+ /obj/item/clothing/suit/bluetag,
+ /obj/item/clothing/head/helmet/redtaghelm,
+ /obj/item/clothing/head/helmet/redtaghelm,
+ /obj/item/clothing/head/helmet/redtaghelm,
+ /obj/item/clothing/head/helmet/bluetaghelm,
+ /obj/item/clothing/head/helmet/bluetaghelm,
+ /obj/item/clothing/head/helmet/bluetaghelm)
+ crate_name = "laser tag crate"
+
+/datum/supply_pack/costumes_toys/lasertag/pins
+ name = "Laser Tag Firing Pins Crate"
+ desc = "Three laser tag firing pins used in laser-tag units to ensure users are wearing their vests."
+ cost = 3000
+ contraband = TRUE
+ contains = list(/obj/item/storage/box/lasertagpins)
+ crate_name = "laser tag crate"
+
+/datum/supply_pack/costumes_toys/costume_original
+ name = "Original Costume Crate"
+ desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!"
+ cost = 1750
+ contains = list(/obj/item/clothing/head/snowman,
+ /obj/item/clothing/suit/snowman,
+ /obj/item/clothing/head/chicken,
+ /obj/item/clothing/suit/chickensuit,
+ /obj/item/clothing/mask/gas/monkeymask,
+ /obj/item/clothing/suit/monkeysuit,
+ /obj/item/clothing/head/cardborg,
+ /obj/item/clothing/suit/cardborg,
+ /obj/item/clothing/head/xenos,
+ /obj/item/clothing/suit/xenos,
+ /obj/item/clothing/suit/hooded/ian_costume,
+ /obj/item/clothing/suit/hooded/carp_costume,
+ /obj/item/clothing/suit/hooded/bee_costume)
+ crate_name = "original costume crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/costume
+ name = "Standard Costume Crate"
+ desc = "Supply the station's entertainers with the equipment of their trade with these Nanotrasen-approved costumes! Contains a full clown and mime outfit, along with a bike horn and a bottle of nothing."
+ cost = 1300
+ access = ACCESS_THEATRE
+ contains = list(/obj/item/storage/backpack/clown,
+ /obj/item/clothing/shoes/clown_shoes,
+ /obj/item/clothing/mask/gas/clown_hat,
+ /obj/item/clothing/under/rank/clown,
+ /obj/item/bikehorn,
+ /obj/item/clothing/under/rank/mime,
+ /obj/item/clothing/shoes/sneakers/black,
+ /obj/item/clothing/gloves/color/white,
+ /obj/item/clothing/mask/gas/mime,
+ /obj/item/clothing/head/beret,
+ /obj/item/clothing/suit/suspenders,
+ /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing,
+ /obj/item/storage/backpack/mime)
+ crate_name = "standard costume crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/randomised/toys
+ name = "Toy Crate"
+ desc = "Who cares about pride and accomplishment? Skip the gaming and get straight to the sweet rewards with this product! Contains five random toys. Warranty void if used to prank research directors."
+ cost = 1500 // or play the arcade machines ya lazy bum
+ num_contained = 5
+ contains = list(/obj/item/storage/box/snappops,
+ /obj/item/toy/talking/AI,
+ /obj/item/toy/talking/codex_gigas,
+ /obj/item/clothing/under/syndicate/tacticool,
+ /obj/item/toy/sword ,
+ /obj/item/toy/gun,
+ /obj/item/gun/ballistic/shotgun/toy/crossbow,
+ /obj/item/storage/box/fakesyndiesuit,
+ /obj/item/storage/crayons,
+ /obj/item/toy/spinningtoy,
+ /obj/item/toy/prize/ripley,
+ /obj/item/toy/prize/fireripley,
+ /obj/item/toy/prize/deathripley,
+ /obj/item/toy/prize/gygax,
+ /obj/item/toy/prize/durand,
+ /obj/item/toy/prize/honk,
+ /obj/item/toy/prize/marauder,
+ /obj/item/toy/prize/seraph,
+ /obj/item/toy/prize/mauler,
+ /obj/item/toy/prize/odysseus,
+ /obj/item/toy/prize/phazon,
+ /obj/item/toy/prize/reticence,
+ /obj/item/toy/cards/deck,
+ /obj/item/toy/nuke,
+ /obj/item/toy/minimeteor,
+ /obj/item/toy/redbutton,
+ /obj/item/toy/talking/owl,
+ /obj/item/toy/talking/griffin,
+ /obj/item/coin/antagtoken,
+ /obj/item/stack/tile/fakespace/loaded,
+ /obj/item/stack/tile/fakepit/loaded,
+ /obj/item/toy/toy_xeno,
+ /obj/item/storage/box/actionfigure,
+ /obj/item/restraints/handcuffs/fake,
+ /obj/item/grenade/chem_grenade/glitter/pink,
+ /obj/item/grenade/chem_grenade/glitter/blue,
+ /obj/item/grenade/chem_grenade/glitter/white,
+ /obj/item/toy/eightball,
+ /obj/item/toy/windupToolbox,
+ /obj/item/toy/clockwork_watch,
+ /obj/item/toy/toy_dagger,
+ /obj/item/extendohand/acme,
+ /obj/item/hot_potato/harmless/toy,
+ /obj/item/card/emagfake,
+ /obj/item/clothing/shoes/wheelys,
+ /obj/item/clothing/shoes/kindleKicks,
+ /obj/item/storage/belt/military/snack,
+ /obj/item/toy/eightball,
+ /obj/item/vending_refill/donksoft)
+ crate_name = "toy crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/randomised/plush
+ name = "Plush Crate"
+ desc = "Plush tide station wide. Contains 5 random plushies for you to love. Warranty void if your love violates the terms of use."
+ cost = 1500 // or play the arcade machines ya lazy bum
+ num_contained = 5
+ contains = list(/obj/item/toy/plush/random,
+ /obj/item/toy/plush/random,
+ /obj/item/toy/plush/random,
+ /obj/item/toy/plush/random,
+ /obj/item/toy/plush/random) //I'm lazy
+ crate_name = "plushie crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/wizard
+ name = "Wizard Costume Crate"
+ desc = "Pretend to join the Wizard Federation with this full wizard outfit! Nanotrasen would like to remind its employees that actually joining the Wizard Federation is subject to termination of job and life."
+ cost = 2000
+ contains = list(/obj/item/staff,
+ /obj/item/clothing/suit/wizrobe/fake,
+ /obj/item/clothing/shoes/sandal,
+ /obj/item/clothing/head/wizard/fake)
+ crate_name = "wizard costume crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/costumes_toys/randomised/fill(obj/structure/closet/crate/C)
+ var/list/L = contains.Copy()
+ for(var/i in 1 to num_contained)
+ var/item = pick_n_take(L)
+ new item(C)
+
+/datum/supply_pack/costumes_toys/wardrobes/autodrobe
+ name = "Autodrobe Supply Crate"
+ desc = "Autodrobe missing your favorite dress? Solve that issue today with this autodrobe refill."
+ cost = 1500
+ contains = list(/obj/item/vending_refill/autodrobe)
+ crate_name = "autodrobe supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/cargo
+ name = "Cargo Wardrobe Supply Crate"
+ desc = "This crate contains a refill for the CargoDrobe."
+ cost = 750
+ contains = list(/obj/item/vending_refill/wardrobe/cargo_wardrobe)
+ crate_name = "cargo department supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/engineering
+ name = "Engineering Wardrobe Supply Crate"
+ desc = "This crate contains refills for the EngiDrobe and AtmosDrobe."
+ cost = 1500
+ contains = list(/obj/item/vending_refill/wardrobe/engi_wardrobe,
+ /obj/item/vending_refill/wardrobe/atmos_wardrobe)
+ crate_name = "engineering department wardrobe supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/general
+ name = "General Wardrobes Supply Crate"
+ desc = "This crate contains refills for the CuraDrobe, BarDrobe, ChefDrobe, JaniDrobe, ChapDrobe."
+ cost = 3750
+ contains = list(/obj/item/vending_refill/wardrobe/curator_wardrobe,
+ /obj/item/vending_refill/wardrobe/bar_wardrobe,
+ /obj/item/vending_refill/wardrobe/chef_wardrobe,
+ /obj/item/vending_refill/wardrobe/jani_wardrobe,
+ /obj/item/vending_refill/wardrobe/chap_wardrobe)
+ crate_name = "general wardrobes vendor refills"
+
+/datum/supply_pack/costumes_toys/wardrobes/hydroponics
+ name = "Hydrobe Supply Crate"
+ desc = "This crate contains a refill for the Hydrobe."
+ cost = 750
+ contains = list(/obj/item/vending_refill/wardrobe/hydro_wardrobe)
+ crate_name = "hydrobe supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/medical
+ name = "Medical Wardrobe Supply Crate"
+ desc = "This crate contains refills for the MediDrobe, ChemDrobe, GeneDrobe, and ViroDrobe."
+ cost = 3000
+ contains = list(/obj/item/vending_refill/wardrobe/medi_wardrobe,
+ /obj/item/vending_refill/wardrobe/chem_wardrobe,
+ /obj/item/vending_refill/wardrobe/gene_wardrobe,
+ /obj/item/vending_refill/wardrobe/viro_wardrobe)
+ crate_name = "medical department wardrobe supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/science
+ name = "Science Wardrobe Supply Crate"
+ desc = "This crate contains refills for the SciDrobe and RoboDrobe."
+ cost = 1500
+ contains = list(/obj/item/vending_refill/wardrobe/robo_wardrobe,
+ /obj/item/vending_refill/wardrobe/science_wardrobe)
+ crate_name = "science department wardrobe supply crate"
+
+/datum/supply_pack/costumes_toys/wardrobes/security
+ name = "Security Wardrobe Supply Crate"
+ desc = "This crate contains refills for the SecDrobe and LawDrobe."
+ cost = 1500
+ contains = list(/obj/item/vending_refill/wardrobe/sec_wardrobe,
+ /obj/item/vending_refill/wardrobe/law_wardrobe)
+ crate_name = "security department supply crate"
+
+/datum/supply_pack/costumes_toys/kinkmate
+ name = "Kinkmate kit"
+ cost = 2000
+ contraband = TRUE
+ contains = list(/obj/item/vending_refill/kink,
+ /obj/item/vending_refill/kink,
+ /obj/item/vending_refill/kink)
+ crate_name = "Kinkmate kit"
diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm
new file mode 100644
index 00000000..9ae80dff
--- /dev/null
+++ b/code/modules/cargo/packs/emergency.dm
@@ -0,0 +1,324 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Emergency ///////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/emergency
+ group = "Emergency"
+
+/datum/supply_pack/emergency/vehicle
+ name = "Biker Gang Kit" //TUNNEL SNAKES OWN THIS TOWN
+ desc = "TUNNEL SNAKES OWN THIS TOWN. Contains an unbranded All Terrain Vehicle, and a complete gang outfit -- consists of black gloves, a menacing skull bandanna, and a SWEET leather overcoat!"
+ cost = 2800
+ contraband = TRUE
+ contains = list(/obj/vehicle/ridden/atv,
+ /obj/item/key,
+ /obj/item/clothing/suit/jacket/leather/overcoat,
+ /obj/item/clothing/gloves/color/black,
+ /obj/item/clothing/head/soft,
+ /obj/item/clothing/mask/bandana/skull)//so you can properly #cargoniabikergang
+ crate_name = "Biker Kit"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/emergency/equipment
+ name = "Emergency Bot/Internals Crate"
+ desc = "Explosions got you down? These supplies are guaranteed to patch up holes, in stations and people alike! Comes with two floorbots, two medbots, five oxygen masks and five small oxygen tanks."
+ cost = 3750
+ contains = list(/mob/living/simple_animal/bot/floorbot,
+ /mob/living/simple_animal/bot/floorbot,
+ /mob/living/simple_animal/bot/medbot,
+ /mob/living/simple_animal/bot/medbot,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas)
+ crate_name = "emergency crate"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/emergency/radiatione_emergency
+ name = "Emergenc Radiation Protection Crate"
+ desc = "Survive the Nuclear Apocalypse and Supermatter Engine alike with two sets of Radiation suits. Each set contains a helmet, suit, and Geiger counter. We'll even throw in a few pill bottles that are able to handles radiation and the affects of the poisoning."
+ cost = 2500
+ contains = list(/obj/item/clothing/head/radiation,
+ /obj/item/clothing/head/radiation,
+ /obj/item/clothing/suit/radiation,
+ /obj/item/clothing/suit/radiation,
+ /obj/item/geiger_counter,
+ /obj/item/geiger_counter,
+ /obj/item/storage/pill_bottle/mutarad,
+ /obj/item/storage/firstaid/radbgone)
+ crate_name = "radiation protection crate"
+ crate_type = /obj/structure/closet/crate/radiation
+
+/datum/supply_pack/emergency/rcds
+ name = "Emergency RCDs"
+ desc = "Bombs going off on station? SME blown and now you need to fix the hole it left behind? Well this crate has a pare of Rcds to be able to easily fix up any problem you may have!"
+ cost = 1500
+ contains = list(/obj/item/construction/rcd,
+ /obj/item/construction/rcd)
+ crate_name = "emergency rcds"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/emergency/soft_suit
+ name = "Emergency Space Suit "
+ desc = "Is there bombs going off left and right? Is there meteors shooting around the station? Well we have two fragile space suit for emergencys as well as air and masks."
+ cost = 1200
+ contains = list(/obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/suit/space/fragile,
+ /obj/item/clothing/suit/space/fragile,
+ /obj/item/clothing/head/helmet/space/fragile,
+ /obj/item/clothing/head/helmet/space/fragile)
+ crate_name = "emergency crate"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/emergency/firefighting
+ name = "Firefighting Crate"
+ desc = "Only you can prevent station fires. Partner up with two firefighter suits, gas masks, flashlights, large oxygen tanks, extinguishers, and hardhats!"
+ cost = 1200
+ contains = list(/obj/item/clothing/suit/fire/firefighter,
+ /obj/item/clothing/suit/fire/firefighter,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/flashlight,
+ /obj/item/flashlight,
+ /obj/item/tank/internals/oxygen/red,
+ /obj/item/tank/internals/oxygen/red,
+ /obj/item/extinguisher/advanced,
+ /obj/item/extinguisher/advanced,
+ /obj/item/clothing/head/hardhat/red,
+ /obj/item/clothing/head/hardhat/red)
+ crate_name = "firefighting crate"
+
+/datum/supply_pack/emergency/atmostank
+ name = "Firefighting Tank Backpack"
+ desc = "Mow down fires with this high-capacity fire fighting tank backpack. Requires Atmospherics access to open."
+ cost = 1000
+ access = ACCESS_ATMOSPHERICS
+ contains = list(/obj/item/watertank/atmos)
+ crate_name = "firefighting backpack crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/emergency/internals
+ name = "Internals Crate"
+ desc = "Master your life energy and control your breathing with three breath masks, three emergency oxygen tanks and three large air tanks."//IS THAT A
+ cost = 1000
+ contains = list(/obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/breath,
+ /obj/item/clothing/mask/breath,
+ /obj/item/clothing/mask/breath,
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air,
+ /obj/item/tank/internals/air)
+ crate_name = "internals crate"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/emergency/metalfoam
+ name = "Metal Foam Grenade Crate"
+ desc = "Seal up those pesky hull breaches with 14 Metal Foam Grenades."
+ cost = 2000
+ contains = list(/obj/item/storage/box/metalfoam,
+ /obj/item/storage/box/metalfoam)
+ crate_name = "metal foam grenade crate"
+
+/datum/supply_pack/emergency/syndicate
+ name = "NULL_ENTRY"
+ desc = "(#@&^$THIS PACKAGE CONTAINS 30TC WORTH OF SOME RANDOM SYNDICATE GEAR WE HAD LYING AROUND THE WAREHOUSE. GIVE EM HELL, OPERATIVE@&!*() "
+ hidden = TRUE
+ cost = 20000
+ contains = list()
+ crate_name = "emergency crate"
+ crate_type = /obj/structure/closet/crate/internals
+ dangerous = TRUE
+
+/datum/supply_pack/emergency/syndicate/fill(obj/structure/closet/crate/C)
+ var/crate_value = 30
+ var/list/uplink_items = get_uplink_items(SSticker.mode)
+ while(crate_value)
+ var/category = pick(uplink_items)
+ var/item = pick(uplink_items[category])
+ var/datum/uplink_item/I = uplink_items[category][item]
+ if(!I.surplus_nullcrates || prob(100 - I.surplus_nullcrates))
+ continue
+ if(crate_value < I.cost)
+ continue
+ crate_value -= I.cost
+ new I.item(C)
+
+/datum/supply_pack/emergency/plasma_spacesuit
+ name = "Plasmaman Space Envirosuits"
+ desc = "Contains two space-worthy envirosuits for Plasmamen. Order now and we'll throw in two free helmets! Requires EVA access to open."
+ cost = 4000
+ access = ACCESS_EVA
+ contains = list(/obj/item/clothing/suit/space/eva/plasmaman,
+ /obj/item/clothing/suit/space/eva/plasmaman,
+ /obj/item/clothing/head/helmet/space/plasmaman,
+ /obj/item/clothing/head/helmet/space/plasmaman)
+ crate_name = "plasmaman EVA crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/emergency/plasmaman
+ name = "Plasmaman Supply Kit"
+ desc = "Keep those Plasmamen alive with two sets of Plasmaman outfits. Each set contains a plasmaman jumpsuit, internals tank, and helmet."
+ cost = 2000
+ contains = list(/obj/item/clothing/under/plasmaman,
+ /obj/item/clothing/under/plasmaman,
+ /obj/item/tank/internals/plasmaman/belt/full,
+ /obj/item/tank/internals/plasmaman/belt/full,
+ /obj/item/clothing/head/helmet/space/plasmaman,
+ /obj/item/clothing/head/helmet/space/plasmaman)
+ crate_name = "plasmaman supply kit"
+
+/datum/supply_pack/emergency/radiation
+ name = "Radiation Protection Crate"
+ desc = "Survive the Nuclear Apocalypse and Supermatter Engine alike with two sets of Radiation suits. Each set contains a helmet, suit, and Geiger counter. We'll even throw in a bottle of vodka and some glasses too, considering the life-expectancy of people who order this."
+ cost = 1300
+ contains = list(/obj/item/clothing/head/radiation,
+ /obj/item/clothing/head/radiation,
+ /obj/item/clothing/suit/radiation,
+ /obj/item/clothing/suit/radiation,
+ /obj/item/geiger_counter,
+ /obj/item/geiger_counter,
+ /obj/item/reagent_containers/food/drinks/bottle/vodka,
+ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass)
+ crate_name = "radiation protection crate"
+ crate_type = /obj/structure/closet/crate/radiation
+
+/datum/supply_pack/emergency/spacesuit
+ name = "Space Suit Crate"
+ desc = "Contains two aging suits from Space-Goodwill. Requires EVA access to open."
+ cost = 3000
+ access = ACCESS_EVA
+ contains = list(/obj/item/clothing/suit/space,
+ /obj/item/clothing/suit/space,
+ /obj/item/clothing/head/helmet/space,
+ /obj/item/clothing/head/helmet/space,
+ /obj/item/clothing/mask/breath,
+ /obj/item/clothing/mask/breath)
+ crate_name = "space suit crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/emergency/spacejets
+ name = "Spare EVA Jetpacks"
+ desc = "Contains three EVA grade jectpaks. Requires EVA access to open."
+ cost = 2000
+ access = ACCESS_EVA
+ contains = list(/obj/item/tank/jetpack/carbondioxide/eva,
+ /obj/item/tank/jetpack/carbondioxide/eva,
+ /obj/item/tank/jetpack/carbondioxide/eva)
+ crate_name = "eva jetpacks crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/emergency/specialops
+ name = "Special Ops Supplies"
+ desc = "(*!&@#TOO CHEAP FOR THAT NULL_ENTRY, HUH OPERATIVE? WELL, THIS LITTLE ORDER CAN STILL HELP YOU OUT IN A PINCH. CONTAINS A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, AN INCENDIARY GRENADE, AND A \"SLEEPY PEN\" FULL OF NICE TOXINS!#@*$"
+ hidden = TRUE
+ cost = 2200
+ contains = list(/obj/item/storage/box/emps,
+ /obj/item/grenade/smokebomb,
+ /obj/item/grenade/smokebomb,
+ /obj/item/grenade/smokebomb,
+ /obj/item/pen/sleepy,
+ /obj/item/grenade/chem_grenade/incendiary)
+ crate_name = "emergency crate"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/emergency/weedcontrol
+ name = "Weed Control Crate"
+ desc = "Keep those invasive species OUT. Contains a scythe, gasmask, two sprays of Plant-B-Gone, and two anti-weed chemical grenades. Warranty void if used on ambrosia. Requires Hydroponics access to open."
+ cost = 1800
+ access = ACCESS_HYDROPONICS
+ contains = list(/obj/item/scythe,
+ /obj/item/clothing/mask/gas,
+ /obj/item/grenade/chem_grenade/antiweed,
+ /obj/item/grenade/chem_grenade/antiweed,
+ /obj/item/reagent_containers/spray/plantbgone,
+ /obj/item/reagent_containers/spray/plantbgone)
+ crate_name = "weed control crate"
+ crate_type = /obj/structure/closet/crate/secure/hydroponics
+
+/datum/supply_pack/medical/anitvirus
+ name = "Virus Containment Crate"
+ desc = "Viro let out a death plague Mk II again? Someone didnt wash there hands? Old plagues born anew? Well this crate is for you! Hope you cure it before it brakes out of the station... This crate needs medical access to open and has two bio suits, a box of needles and beakers, five spaceacillin needles, and a medibot."
+ cost = 3000
+ access = ACCESS_MEDICAL
+ contains = list(/mob/living/simple_animal/bot/medbot,
+ /obj/item/clothing/head/bio_hood,
+ /obj/item/clothing/head/bio_hood,
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/clothing/suit/bio_suit,
+ /obj/item/reagent_containers/syringe/antiviral,
+ /obj/item/reagent_containers/syringe/antiviral,
+ /obj/item/reagent_containers/syringe/antiviral,
+ /obj/item/reagent_containers/syringe/antiviral,
+ /obj/item/reagent_containers/syringe/antiviral,
+ /obj/item/storage/box/syringes,
+ /obj/item/storage/box/beakers)
+ crate_name = "virus containment unit crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/emergency/medicalemergency
+ name = "Emergency Medical Supplies"
+ desc = "Emergency supplies for a front-line medic. Contains two boxes of body bags, a medical HUD, a defib unit, medical belt, toxin bottles, epipens, and several types of medical kits."
+ cost = 6600
+ contains = list(/obj/item/storage/box/bodybags,
+ /obj/item/storage/box/bodybags,
+ /obj/item/clothing/glasses/hud/health,
+ /obj/item/defibrillator/loaded,
+ /obj/item/storage/belt/medical,
+ /obj/item/storage/firstaid/toxin,
+ /obj/item/storage/firstaid/o2,
+ /obj/item/storage/firstaid/brute,
+ /obj/item/storage/firstaid/fire,
+ /obj/item/reagent_containers/glass/bottle/toxin,
+ /obj/item/reagent_containers/glass/bottle/toxin,
+ /obj/item/storage/box/medipens)
+ crate_name = "medical emergency crate"
+ crate_type = /obj/structure/closet/crate/medical
+
+/datum/supply_pack/emergency/medemergencylite
+ name = "Emergency Medical Supplies (Lite)"
+ desc = "A less than optimal, but still effective, set of tools for emergency care. Contains a box of bodybags, a medical HUD, healing sprays, charcoal, some gauze, and some spare medipens."
+ cost = 2800
+ contains = list(/obj/item/storage/box/bodybags,
+ /obj/item/stack/medical/gauze,
+ /obj/item/clothing/glasses/hud/health,
+ /obj/item/reagent_containers/medspray/styptic,
+ /obj/item/reagent_containers/medspray/silver_sulf,
+ /obj/item/reagent_containers/medspray/synthflesh,
+ /obj/item/reagent_containers/glass/bottle/charcoal,
+ /obj/item/reagent_containers/glass/bottle/charcoal,
+ /obj/item/reagent_containers/hypospray/medipen,
+ /obj/item/reagent_containers/hypospray/medipen,
+ /obj/item/reagent_containers/hypospray/medipen)
+ crate_name = "medical emergency crate (lite)"
+ crate_type = /obj/structure/closet/crate/medical
+
+/datum/supply_pack/emergency/mre
+ name = "MRE supply kit (emergency rations)"
+ desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
+ cost = 2000
+ contains = list(/obj/item/storage/box/mre/menu1/safe,
+ /obj/item/storage/box/mre/menu1/safe,
+ /obj/item/storage/box/mre/menu2/safe,
+ /obj/item/storage/box/mre/menu2/safe,
+ /obj/item/storage/box/mre/menu3,
+ /obj/item/storage/box/mre/menu4/safe)
+ crate_name = "MRE crate (emergency rations)"
diff --git a/code/modules/cargo/packs/engine.dm b/code/modules/cargo/packs/engine.dm
new file mode 100644
index 00000000..fd5c711b
--- /dev/null
+++ b/code/modules/cargo/packs/engine.dm
@@ -0,0 +1,185 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////// Engine Construction /////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/engine
+ group = "Engine Construction"
+ crate_type = /obj/structure/closet/crate/engineering
+
+/datum/supply_pack/engine/am_jar
+ name = "Antimatter Containment Jar Crate"
+ desc = "Two Antimatter containment jars stuffed into a single crate."
+ cost = 2300
+ contains = list(/obj/item/am_containment,
+ /obj/item/am_containment)
+ crate_name = "antimatter jar crate"
+
+/datum/supply_pack/engine/am_core
+ name = "Antimatter Control Crate"
+ desc = "The brains of the Antimatter engine, this device is sure to teach the station's powergrid the true meaning of real power."
+ cost = 5200
+ contains = list(/obj/machinery/power/am_control_unit)
+ crate_name = "antimatter control crate"
+
+/datum/supply_pack/engine/am_shielding
+ name = "Antimatter Shielding Crate"
+ desc = "Contains ten Antimatter shields, somehow crammed into a crate."
+ cost = 2500
+ contains = list(/obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container,
+ /obj/item/am_shielding_container) //10 shields: 3x3 containment and a core
+ crate_name = "antimatter shielding crate"
+
+/datum/supply_pack/engine/emitter
+ name = "Emitter Crate"
+ desc = "Useful for powering forcefield generators while destroying locked crates and intruders alike. Contains two high-powered energy emitters. Requires CE access to open."
+ cost = 1750
+ access = ACCESS_CE
+ contains = list(/obj/machinery/power/emitter,
+ /obj/machinery/power/emitter)
+ crate_name = "emitter crate"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+ dangerous = TRUE
+
+/datum/supply_pack/engine/field_gen
+ name = "Field Generator Crate"
+ desc = "Typically the only thing standing between the station and a messy death. Powered by emitters. Contains two field generators."
+ cost = 1750
+ contains = list(/obj/machinery/field/generator,
+ /obj/machinery/field/generator)
+ crate_name = "field generator crate"
+
+/datum/supply_pack/engine/grounding_rods
+ name = "Grounding Rod Crate"
+ desc = "Four grounding rods guaranteed to keep any uppity tesla's lightning under control."
+ cost = 2200
+ contains = list(/obj/machinery/power/grounding_rod,
+ /obj/machinery/power/grounding_rod,
+ /obj/machinery/power/grounding_rod,
+ /obj/machinery/power/grounding_rod)
+ crate_name = "grounding rod crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engine/mason
+ name = "M.A.S.O.N RIG Crate"
+ desc = "The rare M.A.S.O.N RIG. Requires CE access to open."
+ cost = 15000
+ access = ACCESS_CE
+ contains = list(/obj/item/clothing/suit/space/hardsuit/ancient/mason)
+ crate_name = "M.A.S.O.N Rig"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+
+/datum/supply_pack/engine/PA
+ name = "Particle Accelerator Crate"
+ desc = "A supermassive black hole or hyper-powered teslaball are the perfect way to spice up any party! This \"My First Apocalypse\" kit contains everything you need to build your own Particle Accelerator! Ages 10 and up."
+ cost = 3750
+ contains = list(/obj/structure/particle_accelerator/fuel_chamber,
+ /obj/machinery/particle_accelerator/control_box,
+ /obj/structure/particle_accelerator/particle_emitter/center,
+ /obj/structure/particle_accelerator/particle_emitter/left,
+ /obj/structure/particle_accelerator/particle_emitter/right,
+ /obj/structure/particle_accelerator/power_box,
+ /obj/structure/particle_accelerator/end_cap)
+ crate_name = "particle accelerator crate"
+
+/datum/supply_pack/engine/collector
+ name = "Radiation Collector Crate"
+ desc = "Contains three radiation collectors. Useful for collecting energy off nearby Supermatter Crystals, Singularities or Teslas!"
+ cost = 2750
+ contains = list(/obj/machinery/power/rad_collector,
+ /obj/machinery/power/rad_collector,
+ /obj/machinery/power/rad_collector)
+ crate_name = "collector crate"
+
+/datum/supply_pack/engine/sing_gen
+ name = "Singularity Generator Crate"
+ desc = "The key to unlocking the power of Lord Singuloth. Particle Accelerator not included."
+ cost = 6000
+ contains = list(/obj/machinery/the_singularitygen)
+ crate_name = "singularity generator crate"
+
+/datum/supply_pack/engine/solar
+ name = "Solar Panel Crate"
+ desc = "Go green with this DIY advanced solar array. Contains twenty one solar assemblies, a solar-control circuit board, and tracker. If you have any questions, please check out the enclosed instruction book."
+ cost = 2850
+ contains = list(/obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/solar_assembly,
+ /obj/item/circuitboard/computer/solar_control,
+ /obj/item/electronics/tracker,
+ /obj/item/paper/guides/jobs/engi/solars)
+ crate_name = "solar panel crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engine/supermatter_shard
+ name = "Supermatter Shard Crate"
+ desc = "The power of the heavens condensed into a single crystal. Requires CE access to open."
+ cost = 10000
+ access = ACCESS_CE
+ contains = list(/obj/machinery/power/supermatter_crystal/shard)
+ crate_name = "supermatter shard crate"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+ dangerous = TRUE
+
+/datum/supply_pack/engine/tesla_coils
+ name = "Tesla Coil Crate"
+ desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!"
+ cost = 3500
+ contains = list(/obj/machinery/power/tesla_coil,
+ /obj/machinery/power/tesla_coil,
+ /obj/machinery/power/tesla_coil,
+ /obj/machinery/power/tesla_coil)
+ crate_name = "tesla coil crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engine/tesla_gen
+ name = "Tesla Generator Crate"
+ desc = "The key to unlocking the power of the Tesla energy ball. Particle Accelerator not included."
+ cost = 7000
+ contains = list(/obj/machinery/the_singularitygen/tesla)
+ crate_name = "tesla generator crate"
+
+/datum/supply_pack/engine/teg
+ name = "Thermoelectric Generator"
+ desc = "Contains your very own Thermoelectric Generator. Time to turn cargo into a blazing hellfire, perhaps?"
+ cost = 4000
+ contains = list(/obj/machinery/power/generator)
+ crate_name = "thermoelectric generator crate"
+
+/datum/supply_pack/engine/energy_harvester
+ name = "Energy Harvesting Module"
+ desc = "A Device which upon connection to a node, will harvest the energy and send it to engineerless stations in return for credits, derived from a syndicate powersink model."
+ cost = 7500
+ access = ACCESS_CE
+ contains = list(/obj/item/energy_harvester)
+ crate_name = "energy harvesting module crate"
+ crate_type = /obj/structure/closet/crate/secure/engineering
diff --git a/code/modules/cargo/packs/engineering.dm b/code/modules/cargo/packs/engineering.dm
new file mode 100644
index 00000000..0503b04e
--- /dev/null
+++ b/code/modules/cargo/packs/engineering.dm
@@ -0,0 +1,215 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Engineering /////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/engineering
+ group = "Engineering"
+ crate_type = /obj/structure/closet/crate/engineering
+
+/datum/supply_pack/engineering/shieldgen
+ name = "Anti-breach Shield Projector Crate"
+ desc = "Hull breaches again? Say no more with the Nanotrasen Anti-Breach Shield Projector! Uses forcefield technology to keep the air in, and the space out. Contains two shield projectors."
+ cost = 2500
+ contains = list(/obj/machinery/shieldgen,
+ /obj/machinery/shieldgen)
+ crate_name = "anti-breach shield projector crate"
+
+/datum/supply_pack/engineering/conveyor
+ name = "Conveyor Assembly Crate"
+ desc = "Keep production moving along with six conveyor belts. Conveyor switch included. If you have any questions, check out the enclosed instruction book."
+ cost = 750
+ contains = list(/obj/item/conveyor_construct,
+ /obj/item/conveyor_construct,
+ /obj/item/conveyor_construct,
+ /obj/item/conveyor_construct,
+ /obj/item/conveyor_construct,
+ /obj/item/conveyor_construct,
+ /obj/item/conveyor_switch_construct,
+ /obj/item/paper/guides/conveyor)
+ crate_name = "conveyor assembly crate"
+
+/datum/supply_pack/engineering/engiequipment
+ name = "Engineering Gear Crate"
+ desc = "Gear up with three toolbelts, high-visibility vests, welding helmets, hardhats, and two pairs of meson goggles!"
+ cost = 1500
+ contains = list(/obj/item/storage/belt/utility,
+ /obj/item/storage/belt/utility,
+ /obj/item/storage/belt/utility,
+ /obj/item/clothing/suit/hazardvest,
+ /obj/item/clothing/suit/hazardvest,
+ /obj/item/clothing/suit/hazardvest,
+ /obj/item/clothing/head/welding,
+ /obj/item/clothing/head/welding,
+ /obj/item/clothing/head/welding,
+ /obj/item/clothing/head/hardhat,
+ /obj/item/clothing/head/hardhat,
+ /obj/item/clothing/head/hardhat,
+ /obj/item/clothing/glasses/meson/engine,
+ /obj/item/clothing/glasses/meson/engine)
+ crate_name = "engineering gear crate"
+
+/datum/supply_pack/engineering/engihardsuit
+ name = "Engineering Hardsuit"
+ desc = "Poly 'Who stole all the hardsuits!' Well now you can get more hardsuits if needed! NOTE ONE HARDSUIT IS IN THIS CRATE, as well as one air tank and mask!"
+ cost = 2750
+ contains = list(/obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/suit/space/hardsuit/engine)
+ crate_name = "engineering hardsuit"
+
+/datum/supply_pack/engineering/atmoshardsuit
+ name = "Atmospherics Hardsuit"
+ desc = "Too many techs and not enough hardsuits? Time to buy some more! Comes with gas mask and air tank. Ask the CE to open."
+ cost = 5000
+ access = ACCESS_CE
+ contains = list(/obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/suit/space/hardsuit/engine/atmos)
+ crate_name = "atmospherics hardsuit"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+
+/datum/supply_pack/engineering/industrialrcd
+ name = "Industrial RCD"
+ desc = "A industrial RCD in case the station has gone through more then one meteor storm and the CE needs to bring out the somthing a bit more reliable. Dose not contain spare ammo for the industrial RCD or any other RCD modles."
+ cost = 4500
+ access = ACCESS_CE
+ contains = list(/obj/item/construction/rcd/industrial)
+ crate_name = "industrial rcd"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+
+/datum/supply_pack/engineering/powergamermitts
+ name = "Insulated Gloves Crate"
+ desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves."
+ cost = 2750 //Made of pure-grade bullshittinium
+ contains = list(/obj/item/clothing/gloves/color/yellow,
+ /obj/item/clothing/gloves/color/yellow,
+ /obj/item/clothing/gloves/color/yellow)
+ crate_name = "insulated gloves crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/obj/item/stock_parts/cell/inducer_supply
+ maxcharge = 5000
+ charge = 5000
+
+/datum/supply_pack/engineering/inducers
+ name = "NT-75 Electromagnetic Power Inducers Crate"
+ desc = "No rechargers? No problem, with the NT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers."
+ cost = 2300
+ contains = list(/obj/item/inducer/sci {cell_type = /obj/item/stock_parts/cell/inducer_supply; opened = 0}, /obj/item/inducer/sci {cell_type = /obj/item/stock_parts/cell/inducer_supply; opened = 0}) //FALSE doesn't work in modified type paths apparently.
+ crate_name = "inducer crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engineering/pacman
+ name = "P.A.C.M.A.N Generator Crate"
+ desc = "Engineers can't set up the engine? Not an issue for you, once you get your hands on this P.A.C.M.A.N. Generator! Takes in plasma and spits out sweet sweet energy."
+ cost = 2250
+ contains = list(/obj/machinery/power/port_gen/pacman)
+ crate_name = "PACMAN generator crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engineering/power
+ name = "Power Cell Crate"
+ desc = "Looking for power overwhelming? Look no further. Contains three high-voltage power cells."
+ cost = 1000
+ contains = list(/obj/item/stock_parts/cell/high,
+ /obj/item/stock_parts/cell/high,
+ /obj/item/stock_parts/cell/high)
+ crate_name = "power cell crate"
+ crate_type = /obj/structure/closet/crate/engineering/electrical
+
+/datum/supply_pack/engineering/powertools
+ name = "Power Tools Crate"
+ desc = "Setting up the aux base? Working out in space? Maybe you just hate doing things by hand. Grab some power tools and slash your workload in half! Contains a hardhat, hazard vest, Hand Drill, and Jaws of Life"
+ cost = 6500
+ access = ACCESS_ENGINE
+ contains = list(/obj/item/clothing/head/hardhat,
+ /obj/item/clothing/suit/hazardvest,
+ /obj/item/screwdriver/power,
+ /obj/item/crowbar/power)
+ crate_name = "power tools crate"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+
+/datum/supply_pack/engineering/shuttle_engine
+ name = "Shuttle Engine Crate"
+ desc = "Through advanced bluespace-shenanigans, our engineers have managed to fit an entire shuttle engine into one tiny little crate. Requires CE access to open."
+ cost = 5000
+ access = ACCESS_CE
+ contains = list(/obj/structure/shuttle/engine/propulsion/burst/cargo)
+ crate_name = "shuttle engine crate"
+ crate_type = /obj/structure/closet/crate/secure/engineering
+ special = TRUE
+
+/datum/supply_pack/engineering/tools
+ name = "Toolbox Crate"
+ desc = "Any robust spaceman is never far from their trusty toolbox. Contains three electrical toolboxes and three mechanical toolboxes."
+ contains = list(/obj/item/storage/toolbox/electrical,
+ /obj/item/storage/toolbox/electrical,
+ /obj/item/storage/toolbox/electrical,
+ /obj/item/storage/toolbox/mechanical,
+ /obj/item/storage/toolbox/mechanical,
+ /obj/item/storage/toolbox/mechanical)
+ cost = 1200
+ crate_name = "toolbox crate"
+
+/datum/supply_pack/engineering/bsa
+ name = "Bluespace Artillery Parts"
+ desc = "The pride of Nanotrasen Naval Command. The legendary Bluespace Artillery Cannon is a devastating feat of human engineering and testament to wartime determination. Highly advanced research is required for proper construction. "
+ cost = 15000
+ special = TRUE
+ contains = list(/obj/item/circuitboard/machine/bsa/front,
+ /obj/item/circuitboard/machine/bsa/middle,
+ /obj/item/circuitboard/machine/bsa/back,
+ /obj/item/circuitboard/computer/bsa_control
+ )
+ crate_name= "bluespace artillery parts crate"
+
+/datum/supply_pack/engineering/dna_vault
+ name = "DNA Vault Parts"
+ desc = "Secure the longevity of the current state of humanity within this massive library of scientific knowledge, capable of granting superhuman powers and abilities. Highly advanced research is required for proper construction. Also contains five DNA probes."
+ cost = 12000
+ special = TRUE
+ contains = list(
+ /obj/item/circuitboard/machine/dna_vault,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe
+ )
+ crate_name= "dna vault parts crate"
+
+/datum/supply_pack/engineering/dna_probes
+ name = "DNA Vault Samplers"
+ desc = "Contains five DNA probes for use in the DNA vault."
+ cost = 3000
+ special = TRUE
+ contains = list(/obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe,
+ /obj/item/dna_probe
+ )
+ crate_name= "dna samplers crate"
+
+
+/datum/supply_pack/engineering/shield_sat
+ name = "Shield Generator Satellite"
+ desc = "Protect the very existence of this station with these Anti-Meteor defenses. Contains three Shield Generator Satellites."
+ cost = 4000
+ contains = list(
+ /obj/machinery/satellite/meteor_shield,
+ /obj/machinery/satellite/meteor_shield,
+ /obj/machinery/satellite/meteor_shield
+ )
+ crate_name= "shield sat crate"
+
+/datum/supply_pack/engineering/shield_sat_control
+ name = "Shield System Control Board"
+ desc = "A control system for the Shield Generator Satellite system."
+ cost = 4000
+ contains = list(/obj/item/circuitboard/computer/sat_control)
+ crate_name= "shield control board crate"
diff --git a/code/modules/cargo/packs/livestock.dm b/code/modules/cargo/packs/livestock.dm
new file mode 100644
index 00000000..ca0c308d
--- /dev/null
+++ b/code/modules/cargo/packs/livestock.dm
@@ -0,0 +1,166 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+////////////////////////////// Livestock /////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/critter
+ group = "Livestock"
+ crate_type = /obj/structure/closet/crate/critter
+
+/datum/supply_pack/critter/butterfly
+ name = "Butterflies Crate"
+ desc = "Not a very dangerous insect, but they do give off a better image than, say, flies or cockroaches."//is that a motherfucking worm reference
+ contraband = TRUE
+ cost = 5000
+ contains = list(/mob/living/simple_animal/butterfly)
+ crate_name = "entomology samples crate"
+
+/datum/supply_pack/critter/butterfly/generate()
+ . = ..()
+ for(var/i in 1 to 49)
+ new /mob/living/simple_animal/butterfly(.)
+
+/datum/supply_pack/critter/cat
+ name = "Cat Crate"
+ desc = "The cat goes meow! Comes with a collar and a nice cat toy! Cheeseburger not included."//i can't believe im making this reference
+ cost = 5000 //Cats are worth as much as corgis.
+ contains = list(/mob/living/simple_animal/pet/cat,
+ /obj/item/clothing/neck/petcollar,
+ /obj/item/toy/cattoy)
+ crate_name = "cat crate"
+
+/datum/supply_pack/critter/cat/generate()
+ . = ..()
+ if(prob(50))
+ var/mob/living/simple_animal/pet/cat/C = locate() in .
+ qdel(C)
+ new /mob/living/simple_animal/pet/cat/Proc(.)
+
+/datum/supply_pack/critter/chick
+ name = "Chicken Crate"
+ desc = "The chicken goes bwaak!"
+ cost = 2000
+ contains = list( /mob/living/simple_animal/chick)
+ crate_name = "chicken crate"
+
+/datum/supply_pack/critter/crab
+ name = "Crab Rocket"
+ desc = "CRAAAAAAB ROCKET. CRAB ROCKET. CRAB ROCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROCKET. CRAFT. ROCKET. BUY. CRAFT ROCKET. CRAB ROOOCKET. CRAB ROOOOCKET. CRAB CRAB CRAB CRAB CRAB CRAB CRAB CRAB ROOOOOOOOOOOOOOOOOOOOOOCK EEEEEEEEEEEEEEEEEEEEEEEEE EEEETTTTTTTTTTTTAAAAAAAAA AAAHHHHHHHHHHHHH. CRAB ROCKET. CRAAAB ROCKEEEEEEEEEGGGGHHHHTT CRAB CRAB CRAABROCKET CRAB ROCKEEEET."//fun fact: i actually spent like 10 minutes and transcribed the entire video.
+ cost = 5000
+ contains = list(/mob/living/simple_animal/crab)
+ crate_name = "look sir free crabs"
+ DropPodOnly = TRUE
+
+/datum/supply_pack/critter/crab/generate()
+ . = ..()
+ for(var/i in 1 to 49)
+ new /mob/living/simple_animal/crab(.)
+
+/datum/supply_pack/critter/corgi
+ name = "Corgi Crate"
+ desc = "Considered the optimal dog breed by thousands of research scientists, this Corgi is but one dog from the millions of Ian's noble bloodline. Comes with a cute collar!"
+ cost = 5000
+ contains = list(/mob/living/simple_animal/pet/dog/corgi,
+ /obj/item/clothing/neck/petcollar)
+ crate_name = "corgi crate"
+
+/datum/supply_pack/critter/corgi/generate()
+ . = ..()
+ if(prob(50))
+ var/mob/living/simple_animal/pet/dog/corgi/D = locate() in .
+ if(D.gender == FEMALE)
+ qdel(D)
+ new /mob/living/simple_animal/pet/dog/corgi/Lisa(.)
+
+/datum/supply_pack/critter/corgis/exotic
+ name = "Exotic Corgi Crate"
+ desc = "Corgis fit for a king, these corgis come in a unique color to signify their superiority. Comes with a cute collar!"
+ cost = 5500
+ contains = list(/mob/living/simple_animal/pet/dog/corgi/exoticcorgi,
+ /obj/item/clothing/neck/petcollar)
+ crate_name = "exotic corgi crate"
+
+/datum/supply_pack/critter/cow
+ name = "Cow Crate"
+ desc = "The cow goes moo!"
+ cost = 3000
+ contains = list(/mob/living/simple_animal/cow)
+ crate_name = "cow crate"
+
+/datum/supply_pack/critter/fox
+ name = "Fox Crate"
+ desc = "The fox goes...? Comes with a collar!"//what does the fox say
+ cost = 5000
+ contains = list(/mob/living/simple_animal/pet/fox,
+ /obj/item/clothing/neck/petcollar)
+ crate_name = "fox crate"
+
+/datum/supply_pack/critter/goat
+ name = "Goat Crate"
+ desc = "The goat goes baa! Warranty void if used as a replacement for Pete."
+ cost = 2500
+ contains = list(/mob/living/simple_animal/hostile/retaliate/goat)
+ crate_name = "goat crate"
+
+/datum/supply_pack/critter/goose
+ name = "Goose Crate"
+ desc = "Angry and violent birds. Evil, evil creatures."
+ cost = 2500
+ contains = list(/mob/living/simple_animal/hostile/retaliate/goose)
+ crate_name = "goose crate"
+
+/datum/supply_pack/critter/monkey
+ name = "Monkey Cube Crate"
+ desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!"
+ cost = 2000
+ contains = list (/obj/item/storage/box/monkeycubes)
+ crate_name = "monkey cube crate"
+
+/datum/supply_pack/critter/pug
+ name = "Pug Crate"
+ desc = "Like a normal dog, but... squished. Comes with a nice collar!"
+ cost = 5000
+ contains = list(/mob/living/simple_animal/pet/dog/pug,
+ /obj/item/clothing/neck/petcollar)
+ crate_name = "pug crate"
+
+/datum/supply_pack/organic/critter/kiwi
+ name = "Space kiwi Crate"
+ cost = 2000
+ contains = list( /mob/living/simple_animal/kiwi)
+ crate_name = "space kiwi crate"
+
+/datum/supply_pack/critter/snake
+ name = "Snake Crate"
+ desc = "Tired of these MOTHER FUCKING snakes on this MOTHER FUCKING space station? Then this isn't the crate for you. Contains three poisonous snakes."
+ cost = 3000
+ contains = list(/mob/living/simple_animal/hostile/retaliate/poison/snake,
+ /mob/living/simple_animal/hostile/retaliate/poison/snake,
+ /mob/living/simple_animal/hostile/retaliate/poison/snake)
+ crate_name = "snake crate"
+
+/datum/supply_pack/critter/mouse
+ name = "Mouse Crate"
+ desc = "Good for snakes and lizards of all ages. Contains ~12 feeder mice."
+ cost = 2000
+ contains = list(/mob/living/simple_animal/mouse,)
+ crate_name = "mouse crate"
+
+/datum/supply_pack/critter/mouse/generate()
+ . = ..()
+ for(var/i in 1 to 11)
+ new /mob/living/simple_animal/mouse(.)
+
+/datum/supply_pack/critter/secbat
+ name = "Security Bat Crate"
+ desc = "Contains five security bats, perfect to Bat-up any security officer."
+ cost = 2500
+ contains = list(/mob/living/simple_animal/hostile/retaliate/bat/secbat,
+ /mob/living/simple_animal/hostile/retaliate/bat/secbat,
+ /mob/living/simple_animal/hostile/retaliate/bat/secbat,
+ /mob/living/simple_animal/hostile/retaliate/bat/secbat,
+ /mob/living/simple_animal/hostile/retaliate/bat/secbat)
+ crate_name = "security bat crate"
diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm
new file mode 100644
index 00000000..0a82aa0b
--- /dev/null
+++ b/code/modules/cargo/packs/materials.dm
@@ -0,0 +1,170 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+/////////////////////// Canisters & Materials ////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/materials
+ group = "Canisters & Materials"
+
+/datum/supply_pack/materials/cardboard50
+ name = "50 Cardboard Sheets"
+ desc = "Create a bunch of boxes."
+ cost = 1000
+ contains = list(/obj/item/stack/sheet/cardboard/fifty)
+ crate_name = "cardboard sheets crate"
+
+/datum/supply_pack/materials/glass50
+ name = "50 Glass Sheets"
+ desc = "Let some nice light in with fifty glass sheets!"
+ cost = 850
+ contains = list(/obj/item/stack/sheet/glass/fifty)
+ crate_name = "glass sheets crate"
+
+/datum/supply_pack/materials/metal50
+ name = "50 Metal Sheets"
+ desc = "Any construction project begins with a good stack of fifty metal sheets!"
+ cost = 850
+ contains = list(/obj/item/stack/sheet/metal/fifty)
+ crate_name = "metal sheets crate"
+
+/datum/supply_pack/materials/plasteel20
+ name = "20 Plasteel Sheets"
+ desc = "Reinforce the station's integrity with twenty plasteel sheets!"
+ cost = 4700
+ contains = list(/obj/item/stack/sheet/plasteel/twenty)
+ crate_name = "plasteel sheets crate"
+
+/datum/supply_pack/materials/plasteel50
+ name = "50 Plasteel Sheets"
+ desc = "For when you REALLY have to reinforce something."
+ cost = 9050
+ contains = list(/obj/item/stack/sheet/plasteel/fifty)
+ crate_name = "plasteel sheets crate"
+
+/datum/supply_pack/materials/plastic50
+ name = "50 Plastic Sheets"
+ desc = "Build a limitless amount of toys with fifty plastic sheets!"
+ cost = 950
+ contains = list(/obj/item/stack/sheet/plastic/fifty)
+ crate_name = "plastic sheets crate"
+
+/datum/supply_pack/materials/sandstone30
+ name = "30 Sandstone Blocks"
+ desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
+ cost = 800
+ contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
+ crate_name = "sandstone blocks crate"
+
+/datum/supply_pack/materials/wood50
+ name = "50 Wood Planks"
+ desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!"
+ cost = 1450
+ contains = list(/obj/item/stack/sheet/mineral/wood/fifty)
+ crate_name = "wood planks crate"
+
+/datum/supply_pack/materials/rcdammo
+ name = "Spare RCD ammo"
+ desc = "This crate contains sixteen RCD ammo packs, to help with any holes or projects people might be working on."
+ cost = 3750
+ contains = list(/obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo,
+ /obj/item/rcd_ammo)
+ crate_name = "rcd ammo"
+
+/datum/supply_pack/materials/bz
+ name = "BZ Canister Crate"
+ desc = "Contains a canister of BZ. Requires Toxins access to open."
+ cost = 7500 // Costs 3 credits more than what you can get for selling it.
+ access = ACCESS_TOX_STORAGE
+ contains = list(/obj/machinery/portable_atmospherics/canister/bz)
+ crate_name = "BZ canister crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/materials/carbon_dio
+ name = "Carbon Dioxide Canister"
+ desc = "Contains a canister of Carbon Dioxide."
+ cost = 3000
+ contains = list(/obj/machinery/portable_atmospherics/canister/carbon_dioxide)
+ crate_name = "carbon dioxide canister crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/nitrogen
+ name = "Nitrogen Canister"
+ desc = "Contains a canister of Nitrogen."
+ cost = 2000
+ contains = list(/obj/machinery/portable_atmospherics/canister/nitrogen)
+ crate_name = "nitrogen canister crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/nitrous_oxide_canister
+ name = "Nitrous Oxide Canister"
+ desc = "Contains a canister of Nitrous Oxide. Requires Atmospherics access to open."
+ cost = 3000
+ access = ACCESS_ATMOSPHERICS
+ contains = list(/obj/machinery/portable_atmospherics/canister/nitrous_oxide)
+ crate_name = "nitrous oxide canister crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/materials/oxygen
+ name = "Oxygen Canister"
+ desc = "Contains a canister of Oxygen. Canned in Druidia."
+ cost = 1500
+ contains = list(/obj/machinery/portable_atmospherics/canister/oxygen)
+ crate_name = "oxygen canister crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/water_vapor
+ name = "Water Vapor Canister"
+ desc = "Contains a canister of Water Vapor. I swear to god if you open this in the halls..."
+ cost = 2500
+ contains = list(/obj/machinery/portable_atmospherics/canister/water_vapor)
+ crate_name = "water vapor canister crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/fueltank
+ name = "Fuel Tank Crate"
+ desc = "Contains a welding fuel tank. Caution, highly flammable."
+ cost = 800
+ contains = list(/obj/structure/reagent_dispensers/fueltank)
+ crate_name = "fuel tank crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/watertank
+ name = "Water Tank Crate"
+ desc = "Contains a tank of dihydrogen monoxide... sounds dangerous."
+ cost = 600
+ contains = list(/obj/structure/reagent_dispensers/watertank)
+ crate_name = "water tank crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/foamtank
+ name = "Firefighting Foam Tank Crate"
+ desc = "Contains a tank of firefighting foam. Also known as \"plasmaman's bane\"."
+ cost = 1500
+ contains = list(/obj/structure/reagent_dispensers/foamtank)
+ crate_name = "foam tank crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/materials/hightank
+ name = "Large Water Tank Crate"
+ desc = "Contains a high-capacity water tank. Useful for botany or other service jobs."
+ cost = 1200
+ contains = list(/obj/structure/reagent_dispensers/watertank/high)
+ crate_name = "high-capacity water tank crate"
+ crate_type = /obj/structure/closet/crate/large
diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm
new file mode 100644
index 00000000..5bda9173
--- /dev/null
+++ b/code/modules/cargo/packs/medical.dm
@@ -0,0 +1,238 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Medical /////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/medical
+ group = "Medical"
+ crate_type = /obj/structure/closet/crate/medical
+
+/datum/supply_pack/medical/bodybags
+ name = "Bodybags"
+ desc = "For when the bodies hit the floor. Contains 4 boxes of bodybags."
+ cost = 1200
+ contains = list(/obj/item/storage/box/bodybags,
+ /obj/item/storage/box/bodybags,
+ /obj/item/storage/box/bodybags,
+ /obj/item/storage/box/bodybags,)
+ crate_name = "bodybag crate"
+
+/datum/supply_pack/medical/firstaidbruises
+ name = "Bruise Treatment Kit Crate"
+ desc = "Contains three first aid kits focused on healing bruises and broken bones."
+ cost = 1000
+ contains = list(/obj/item/storage/firstaid/brute,
+ /obj/item/storage/firstaid/brute,
+ /obj/item/storage/firstaid/brute)
+ crate_name = "brute treatment kit crate"
+
+/datum/supply_pack/medical/firstaidburns
+ name = "Burn Treatment Kit Crate"
+ desc = "Contains three first aid kits focused on healing severe burns."
+ cost = 1000
+ contains = list(/obj/item/storage/firstaid/fire,
+ /obj/item/storage/firstaid/fire,
+ /obj/item/storage/firstaid/fire)
+ crate_name = "burn treatment kit crate"
+
+/datum/supply_pack/medical/bloodpacks
+ name = "Blood Pack Variety Crate"
+ desc = "Contains ten different blood packs for reintroducing blood to patients."
+ cost = 3000
+ contains = list(/obj/item/reagent_containers/blood/random,
+ /obj/item/reagent_containers/blood/random,
+ /obj/item/reagent_containers/blood/APlus,
+ /obj/item/reagent_containers/blood/AMinus,
+ /obj/item/reagent_containers/blood/BPlus,
+ /obj/item/reagent_containers/blood/BMinus,
+ /obj/item/reagent_containers/blood/OPlus,
+ /obj/item/reagent_containers/blood/OMinus,
+ /obj/item/reagent_containers/blood/lizard,
+ /obj/item/reagent_containers/blood/jellyblood,
+ /obj/item/reagent_containers/blood/insect)
+ crate_name = "blood freezer"
+ crate_type = /obj/structure/closet/crate/freezer
+
+/datum/supply_pack/medical/bloodpackssynth
+ name = "Synthetics Blood Pack Crate"
+ desc = "Contains five synthetics blood packs for reintroducing blood to patients."
+ cost = 3000
+ contains = list(/obj/item/reagent_containers/blood/synthetics,
+ /obj/item/reagent_containers/blood/synthetics,
+ /obj/item/reagent_containers/blood/synthetics,
+ /obj/item/reagent_containers/blood/synthetics,
+ /obj/item/reagent_containers/blood/synthetics)
+ crate_name = "blood freezer"
+ crate_type = /obj/structure/closet/crate/freezer
+
+/datum/supply_pack/medical/defibs
+ name = "Defibrillator Crate"
+ desc = "Contains two defibrillators for bringing the recently deceased back to life."
+ cost = 2500
+ contains = list(/obj/item/defibrillator/loaded,
+ /obj/item/defibrillator/loaded)
+ crate_name = "defibrillator crate"
+
+/datum/supply_pack/medical/firstaid
+ name = "First Aid Kit Crate"
+ desc = "Contains four first aid kits for healing most types of wounds."
+ cost = 1000
+ contains = list(/obj/item/storage/firstaid/regular,
+ /obj/item/storage/firstaid/regular,
+ /obj/item/storage/firstaid/regular,
+ /obj/item/storage/firstaid/regular)
+ crate_name = "first aid kit crate"
+
+/datum/supply_pack/medical/iv_drip
+ name = "IV Drip Crate"
+ desc = "Contains a single IV drip stand for intravenous delivery."
+ cost = 800
+ contains = list(/obj/machinery/iv_drip)
+ crate_name = "iv drip crate"
+
+/datum/supply_pack/science/adv_surgery_tools
+ name = "Med-Co Advanced surgery tools"
+ desc = "A full set of Med-Co advanced surgery tools, this crate both a can of synthflesh and a can of sterilizine. Requires Surgery access to open."
+ cost = 5500
+ access = ACCESS_SURGERY
+ contains = list(/obj/item/storage/belt/medical/surgery_belt_adv,
+ /obj/item/reagent_containers/medspray/synthflesh,
+ /obj/item/reagent_containers/medspray/sterilizine)
+ crate_name = "medco newest surgery tools"
+ crate_type = /obj/structure/closet/crate/medical
+
+/datum/supply_pack/medical/medicalhardsuit
+ name = "Medical Hardsuit"
+ desc = "Got people being spaced left and right? Hole in the same room as the dead body of Hos or cap? Fear not, now you can buy one medical hardsuit with a mask and air tank to save your fellow crewmembers."
+ cost = 2750
+ contains = list(/obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/suit/space/hardsuit/medical)
+ crate_name = "medical hardsuit"
+
+/datum/supply_pack/medical/supplies
+ name = "Medical Supplies Crate"
+ desc = "Contains seven beakers, syringes, and bodybags. Three morphine bottles, four insulin pills. Two charcoal bottles, epinephrine bottles, antitoxin bottles, and large beakers. Finally, a single roll of medical gauze, as well as a bottle of stimulant pills for long, hard work days. German doctor not included."
+ cost = 2500
+ contains = list(/obj/item/reagent_containers/glass/bottle/charcoal,
+ /obj/item/reagent_containers/glass/bottle/charcoal,
+ /obj/item/reagent_containers/glass/bottle/epinephrine,
+ /obj/item/reagent_containers/glass/bottle/epinephrine,
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ /obj/item/reagent_containers/glass/bottle/toxin,
+ /obj/item/reagent_containers/glass/bottle/toxin,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/reagent_containers/pill/insulin,
+ /obj/item/reagent_containers/pill/insulin,
+ /obj/item/reagent_containers/pill/insulin,
+ /obj/item/reagent_containers/pill/insulin,
+ /obj/item/stack/medical/gauze,
+ /obj/item/storage/box/beakers,
+ /obj/item/storage/box/medsprays,
+ /obj/item/storage/box/syringes,
+ /obj/item/storage/box/bodybags,
+ /obj/item/storage/pill_bottle/stimulant)
+ crate_name = "medical supplies crate"
+
+/datum/supply_pack/medical/vending
+ name = "Medical Vending Crate"
+ desc = "Contains refills for medical vending machines."
+ cost = 2000
+ contains = list(/obj/item/vending_refill/medical,
+ /obj/item/vending_refill/wallmed)
+ crate_name = "medical vending crate"
+
+/datum/supply_pack/medical/sprays
+ name = "Medical Sprays"
+ desc = "Contains two cans of Styptic Spray, Silver Sulfadiazine Spray, Synthflesh Spray and Sterilizer Compound Spray."
+ cost = 2250
+ contains = list(/obj/item/reagent_containers/medspray/styptic,
+ /obj/item/reagent_containers/medspray/styptic,
+ /obj/item/reagent_containers/medspray/silver_sulf,
+ /obj/item/reagent_containers/medspray/silver_sulf,
+ /obj/item/reagent_containers/medspray/synthflesh,
+ /obj/item/reagent_containers/medspray/synthflesh,
+ /obj/item/reagent_containers/medspray/sterilizine,
+ /obj/item/reagent_containers/medspray/sterilizine)
+ crate_name = "medical supplies crate"
+
+/datum/supply_pack/medical/firstaidmixed
+ name = "Mixed Medical Kits"
+ desc = "Contains one of each medical kits for dealing with a variety of injured crewmembers."
+ cost = 1250
+ contains = list(/obj/item/storage/firstaid/toxin,
+ /obj/item/storage/firstaid/o2,
+ /obj/item/storage/firstaid/brute,
+ /obj/item/storage/firstaid/fire,
+ /obj/item/storage/firstaid/regular)
+ crate_name = "medical supplies crate"
+
+/datum/supply_pack/medical/firstaidoxygen
+ name = "Oxygen Deprivation Kit Crate"
+ desc = "Contains three first aid kits focused on helping oxygen deprivation victims."
+ cost = 1000
+ contains = list(/obj/item/storage/firstaid/o2,
+ /obj/item/storage/firstaid/o2,
+ /obj/item/storage/firstaid/o2)
+ crate_name = "oxygen deprivation kit crate"
+
+/datum/supply_pack/medical/advrad
+ name = "Radiation Treatment Crate Deluxe"
+ desc = "A crate for when radiation is out of hand... Contains two rad-b-gone kits, one bottle of anti radiation deluxe pill bottle, as well as a radiation treatment deluxe pill bottle!"
+ cost = 3500
+ contains = list(/obj/item/storage/pill_bottle/antirad_plus,
+ /obj/item/storage/pill_bottle/mutarad,
+ /obj/item/storage/firstaid/radbgone,
+ /obj/item/storage/firstaid/radbgone,
+ /obj/item/geiger_counter,
+ /obj/item/geiger_counter)
+ crate_name = "radiation protection crate"
+ crate_type = /obj/structure/closet/crate/radiation
+
+/datum/supply_pack/medical/surgery
+ name = "Surgical Supplies Crate"
+ desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
+ cost = 1300
+ contains = list(/obj/item/storage/backpack/duffelbag/med/surgery,
+ /obj/item/reagent_containers/medspray/sterilizine,
+ /obj/item/roller)
+ crate_name = "surgical supplies crate"
+
+/datum/supply_pack/medical/firstaidtoxins
+ name = "Toxin Treatment Kit Crate"
+ desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins."
+ cost = 1000
+ contains = list(/obj/item/storage/firstaid/toxin,
+ /obj/item/storage/firstaid/toxin,
+ /obj/item/storage/firstaid/toxin)
+ crate_name = "toxin treatment kit crate"
+
+/datum/supply_pack/medical/virus
+ name = "Virus Crate"
+ desc = "Contains twelve different bottles, containing several viral samples for virology research. Also includes seven beakers and syringes. Balled-up jeans not included. Requires CMO access to open."
+ cost = 2500
+ access = ACCESS_CMO
+ contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion,
+ /obj/item/reagent_containers/glass/bottle/cold,
+ /obj/item/reagent_containers/glass/bottle/random_virus,
+ /obj/item/reagent_containers/glass/bottle/random_virus,
+ /obj/item/reagent_containers/glass/bottle/random_virus,
+ /obj/item/reagent_containers/glass/bottle/random_virus,
+ /obj/item/reagent_containers/glass/bottle/fake_gbs,
+ /obj/item/reagent_containers/glass/bottle/magnitis,
+ /obj/item/reagent_containers/glass/bottle/pierrot_throat,
+ /obj/item/reagent_containers/glass/bottle/brainrot,
+ /obj/item/reagent_containers/glass/bottle/anxiety,
+ /obj/item/reagent_containers/glass/bottle/beesease,
+ /obj/item/storage/box/syringes,
+ /obj/item/storage/box/beakers,
+ /obj/item/reagent_containers/glass/bottle/mutagen)
+ crate_name = "virus crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+ dangerous = TRUE
diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm
new file mode 100644
index 00000000..56b69440
--- /dev/null
+++ b/code/modules/cargo/packs/misc.dm
@@ -0,0 +1,374 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Miscellaneous ///////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/misc
+ group = "Miscellaneous Supplies"
+
+/datum/supply_pack/misc/artsupply
+ name = "Art Supplies"
+ desc = "Make some happy little accidents with six canvasses, two easels, two boxes of crayons, and a rainbow crayon!"
+ cost = 800
+ contains = list(/obj/structure/easel,
+ /obj/structure/easel,
+ /obj/item/canvas/nineteenXnineteen,
+ /obj/item/canvas/nineteenXnineteen,
+ /obj/item/canvas/twentythreeXnineteen,
+ /obj/item/canvas/twentythreeXnineteen,
+ /obj/item/canvas/twentythreeXtwentythree,
+ /obj/item/canvas/twentythreeXtwentythree,
+ /obj/item/storage/crayons,
+ /obj/item/storage/crayons,
+ /obj/item/toy/crayon/rainbow,
+ /obj/item/toy/crayon/white,
+ /obj/item/toy/crayon/white)
+ crate_name = "art supply crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/misc/captain_pen
+ name = "Captain Pen"
+ desc = "A spare Captain fountain pen."
+ access = ACCESS_CAPTAIN
+ cost = 10000
+ contains = list(/obj/item/pen/fountain/captain)
+ crate_name = "captain pen"
+ crate_type = /obj/structure/closet/crate/secure/weapon //It is a combat pen
+
+/datum/supply_pack/misc/dueling_stam
+ name = "Dueling Pistols"
+ desc = "Resolve all your quarrels with some nonlethal fun."
+ cost = 2000
+ contains = list(/obj/item/storage/lockbox/dueling/hugbox/stamina,
+ /obj/item/storage/lockbox/dueling/hugbox/stamina,
+ /obj/item/storage/lockbox/dueling/hugbox/stamina,
+ /obj/item/storage/lockbox/dueling/hugbox/stamina,
+ /obj/item/storage/lockbox/dueling/hugbox/stamina)
+ crate_name = "dueling pistols"
+
+/datum/supply_pack/misc/dueling_lethal
+ name = "Lethal Dueling Pistols"
+ desc = "Settle your differences the true spaceman way."
+ cost = 3000
+ contraband = TRUE
+ contains = list(/obj/item/storage/lockbox/dueling/hugbox,
+ /obj/item/storage/lockbox/dueling/hugbox,
+ /obj/item/storage/lockbox/dueling/hugbox)
+ crate_name = "dueling pistols (lethal)"
+
+/datum/supply_pack/misc/dueling_death
+ name = "Elimination Dueling Pistols"
+ desc = "It's high noon."
+ cost = 5000
+ hidden = TRUE
+ contains = list(/obj/item/storage/lockbox/dueling)
+ crate_name = "dueling pistols (elimination)"
+
+
+/datum/supply_pack/misc/exoticfootwear
+ name = "Exotic Footwear Crate"
+ desc = "Popularised by lizards and exotic dancers, the footwear included in this shipment is sure to give your feet the breathing room they deserve. Sweet Kicks Inc. is not responsible for any damage, distress, or @r0u$a1 caused by this shipment."
+ cost = 3000
+ contains = list(/obj/item/clothing/shoes/wraps,
+ /obj/item/clothing/shoes/wraps,
+ /obj/item/clothing/shoes/wraps/silver,
+ /obj/item/clothing/shoes/wraps/silver,
+ /obj/item/clothing/shoes/wraps/red,
+ /obj/item/clothing/shoes/wraps/red,
+ /obj/item/clothing/shoes/wraps/blue,
+ /obj/item/clothing/shoes/wraps/blue,
+ /obj/item/clothing/shoes/clown_shoes,
+ /obj/item/clothing/shoes/kindleKicks)
+ crate_name = "footie crate"
+
+/datum/supply_pack/misc/randombedsheets
+ name = "Bedsheet Crate (R)"
+ desc = "Snuggle up in some sweet sheets with this assorted bedsheet crate. Each set comes with eight random bedsheets for your slumbering pleasure!"
+ cost = 2000
+ contains = list(/obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random,
+ /obj/item/bedsheet/random) //I'm lazy, and I copy paste stuff.
+ crate_name = "random bedsheet crate"
+
+/datum/supply_pack/misc/coloredsheets
+ name = "Bedsheet Crate (C)"
+ desc = "Give your night life a splash of color with this crate filled with bedsheets! Contains a total of nine different-colored sheets."
+ cost = 1250
+ contains = list(/obj/item/bedsheet/blue,
+ /obj/item/bedsheet/green,
+ /obj/item/bedsheet/orange,
+ /obj/item/bedsheet/purple,
+ /obj/item/bedsheet/red,
+ /obj/item/bedsheet/yellow,
+ /obj/item/bedsheet/brown,
+ /obj/item/bedsheet/black,
+ /obj/item/bedsheet/rainbow)
+ crate_name = "colored bedsheet crate"
+
+/datum/supply_pack/misc/bicycle
+ name = "Bicycle"
+ desc = "Nanotrasen reminds all employees to never toy with powers outside their control."
+ cost = 1000000
+ contains = list(/obj/vehicle/ridden/bicycle)
+ crate_name = "Bicycle Crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/misc/bigband
+ name = "Big Band Instrument Collection"
+ desc = "Get your sad station movin' and groovin' with this fine collection! Contains nine different instruments!"
+ cost = 5000
+ crate_name = "Big band musical instruments collection"
+ contains = list(/obj/item/instrument/violin,
+ /obj/item/instrument/guitar,
+ /obj/item/instrument/glockenspiel,
+ /obj/item/instrument/accordion,
+ /obj/item/instrument/saxophone,
+ /obj/item/instrument/trombone,
+ /obj/item/instrument/recorder,
+ /obj/item/instrument/harmonica,
+ /obj/structure/piano/unanchored)
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/misc/book_crate
+ name = "Book Crate"
+ desc = "Surplus from the Nanotrasen Archives, these five books are sure to be good reads."
+ cost = 1500
+ contains = list(/obj/item/book/codex_gigas,
+ /obj/item/book/manual/random/,
+ /obj/item/book/manual/random/,
+ /obj/item/book/manual/random/,
+ /obj/item/book/random/triple)
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/misc/cbtpack
+ name = "CBT Equipment"
+ desc = "(*!&@#CBT is a special term coined by high ranking syndicate operatives for a special form of information extraction. While the training required to use this shipment is highly classified, the distribution of it's contents are not. In addition to this crates unusual contents, we have added a bar of soap.#@*$"
+ hidden = TRUE
+ cost = 2400
+ contains = list(/mob/living/simple_animal/chicken,
+ /obj/item/toy/beach_ball/holoball,
+ /obj/item/melee/baton/cattleprod,
+ /obj/item/soap/syndie)
+ crate_name = "cbt crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/misc/casinocrate
+ name = "Casino Crate"
+ desc = "Start up your own grand casino with this crate filled with slot machine and arcade boards!"
+ cost = 3000
+ contains = list(/obj/item/circuitboard/computer/arcade/battle,
+ /obj/item/circuitboard/computer/arcade/battle,
+ /obj/item/circuitboard/computer/arcade/orion_trail,
+ /obj/item/circuitboard/computer/arcade/orion_trail,
+ /obj/item/circuitboard/computer/arcade/minesweeper,
+ /obj/item/circuitboard/computer/arcade/minesweeper,
+ /obj/item/circuitboard/computer/slot_machine,
+ /obj/item/circuitboard/computer/slot_machine,
+ /obj/item/circuitboard/computer/slot_machine,
+ /obj/item/circuitboard/computer/slot_machine,
+ /obj/item/circuitboard/computer/slot_machine,
+ /obj/item/circuitboard/computer/slot_machine)
+ crate_name = "casino crate"
+
+/datum/supply_pack/misc/paper
+ name = "Bureaucracy Crate"
+ desc = "High stacks of papers on your desk Are a big problem - make it Pea-sized with these bureaucratic supplies! Contains five pens, some camera film, hand labeler supplies, a paper bin, three folders, two clipboards and two stamps as well as a briefcase."//that was too forced
+ cost = 1500
+ contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled,
+ /obj/item/camera_film,
+ /obj/item/hand_labeler,
+ /obj/item/hand_labeler_refill,
+ /obj/item/hand_labeler_refill,
+ /obj/item/paper_bin,
+ /obj/item/pen/fourcolor,
+ /obj/item/pen/fourcolor,
+ /obj/item/pen,
+ /obj/item/pen/blue,
+ /obj/item/pen/red,
+ /obj/item/folder/blue,
+ /obj/item/folder/red,
+ /obj/item/folder/yellow,
+ /obj/item/clipboard,
+ /obj/item/clipboard,
+ /obj/item/stamp,
+ /obj/item/stamp/denied,
+ /obj/item/storage/briefcase)
+ crate_name = "bureaucracy crate"
+
+/datum/supply_pack/misc/fountainpens
+ name = "Calligraphy Crate"
+ desc = "Sign death warrants in style with these seven executive fountain pens."
+ cost = 730
+ contains = list(/obj/item/storage/box/fountainpens,
+ /obj/item/paper_bin)
+ crate_type = /obj/structure/closet/crate/wooden
+ crate_name = "calligraphy crate"
+
+/datum/supply_pack/misc/wrapping_paper
+ name = "Festive Wrapping Paper Crate"
+ desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, the Clown's severed head? You can do all that, with this crate full of wrapping paper."
+ cost = 1000
+ contains = list(/obj/item/stack/wrapping_paper)
+ crate_type = /obj/structure/closet/crate/wooden
+ crate_name = "festive wrapping paper crate"
+
+/datum/supply_pack/misc/paper_work
+ name = "Freelance Paper work"
+ desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (10) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up.
+ cost = 700 // Net of 0 credits
+ contains = list(/obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/folder/paperwork,
+ /obj/item/pen/fountain,
+ /obj/item/pen/fountain,
+ /obj/item/pen/fountain,
+ /obj/item/pen/fountain,
+ /obj/item/pen/fountain)
+ crate_name = "Paperwork"
+
+/datum/supply_pack/misc/funeral
+ name = "Funeral Supply crate"
+ desc = "At the end of the day, someone's gonna want someone dead. Give them a proper send-off with these funeral supplies! Contains a coffin with burial garmets and flowers."
+ cost = 800
+ contains = list(/obj/item/clothing/under/burial,
+ /obj/item/reagent_containers/food/snacks/grown/harebell,
+ /obj/item/reagent_containers/food/snacks/grown/poppy/geranium
+ )
+ crate_name = "coffin"
+ crate_type = /obj/structure/closet/crate/coffin
+
+/datum/supply_pack/misc/jukebox
+ name = "Jukebox"
+ cost = 15000
+ contains = list(/obj/machinery/jukebox)
+ crate_name = "Jukebox"
+
+/datum/supply_pack/misc/lewd
+ name = "Lewd Crate" // OwO
+ desc = "Psss want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!"
+ cost = 5000
+ contraband = TRUE
+ contains = list(/obj/item/dildo/custom,
+ /obj/item/dildo/custom,
+ /obj/item/vending_refill/kink,
+ /obj/item/vending_refill/kink,
+ /obj/item/vending_refill/kink,
+ /obj/item/clothing/under/maid,
+ /obj/item/clothing/under/maid,
+ /obj/item/electropack/shockcollar,
+ /obj/item/electropack/shockcollar,
+ /obj/item/restraints/handcuffs/fake/kinky,
+ /obj/item/restraints/handcuffs/fake/kinky,
+ /obj/item/clothing/head/kitty/genuine, // Why its illegal
+ /obj/item/clothing/head/kitty/genuine,
+ /obj/item/storage/pill_bottle/penis_enlargement,
+ /obj/item/storage/pill_bottle/breast_enlargement,
+ /obj/structure/reagent_dispensers/keg/aphro)
+ crate_name = "lewd kit"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/misc/lewdkeg
+ name = "Lewd Deluxe Keg"
+ desc = "That other stuff not getting you ready? Well I have a Chemslut making tons of the good stuff."
+ cost = 7500 //It can be a weapon
+ contraband = TRUE
+ contains = list(/obj/structure/reagent_dispensers/keg/aphro/strong)
+ crate_name = "deluxe keg"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/misc/religious_supplies
+ name = "Religious Supplies Crate"
+ desc = "Keep your local chaplain happy and well-supplied, lest they call down judgement upon your cargo bay. Contains two bottles of holywater, bibles, chaplain robes, and burial garmets."
+ cost = 4000 // it costs so much because the Space Church is ran by Space Jews
+ contains = list(/obj/item/reagent_containers/food/drinks/bottle/holywater,
+ /obj/item/reagent_containers/food/drinks/bottle/holywater,
+ /obj/item/storage/book/bible/booze,
+ /obj/item/storage/book/bible/booze,
+ /obj/item/clothing/suit/hooded/chaplain_hoodie,
+ /obj/item/clothing/suit/hooded/chaplain_hoodie
+ )
+ crate_name = "religious supplies crate"
+
+/datum/supply_pack/misc/randomised/promiscuous
+ name = "Promiscuous Organs"
+ desc = "Do YOU want to have more genital? Well we have just the thing for you~. This crate has two autosurgeon, that will let you have a new sex, organ to impress that hot stud and or chick."
+ cost = 4000 //Only get 2!
+ contraband = TRUE
+ var/num_contained = 2
+ contains = list(/obj/item/autosurgeon/penis,
+ /obj/item/autosurgeon/testicles,
+ /obj/item/autosurgeon/vagina,
+ /obj/item/autosurgeon/breasts,
+ /obj/item/autosurgeon/womb)
+ crate_name = "promiscuous organs"
+
+/datum/supply_pack/misc/shower
+ name = "Shower Supplies"
+ desc = "Everyone needs a bit of R&R. Make sure you get can get yours by ordering this crate filled with towels, rubber duckies, and some soap!"
+ cost = 1000
+ contains = list(/obj/item/reagent_containers/rag/towel,
+ /obj/item/reagent_containers/rag/towel,
+ /obj/item/reagent_containers/rag/towel,
+ /obj/item/reagent_containers/rag/towel,
+ /obj/item/reagent_containers/rag/towel,
+ /obj/item/reagent_containers/rag/towel,
+ /obj/item/bikehorn/rubberducky,
+ /obj/item/bikehorn/rubberducky,
+ /obj/item/soap/nanotrasen)
+ crate_name = "shower crate"
+
+/datum/supply_pack/misc/spacehermitstarter
+ name = "Space Hermit Starter Pack"
+ desc = "So sick of the station you wish to leave and never come back? Or perhaps you need to find a place of solitutde and privacy? Jumping out of an external airlock may just be the solution for you! But not before you buy this crate - contains a mining hardsuit, a proto-kinetic accelerator, GPS, luxury bluespace shelter aswell as a deluxe bluespace shelter.(Jetpack not included)"
+ cost = 5000
+ contraband = TRUE
+ contains = list(/obj/item/clothing/suit/space/hardsuit/mining,
+ /obj/item/gun/energy/kinetic_accelerator,
+ /obj/item/survivalcapsule/deluxe,
+ /obj/item/survivalcapsule/luxury,
+ /obj/item/gps)
+ crate_name = "space hermit crate"
+
+/datum/supply_pack/misc/toner
+ name = "Toner Crate"
+ desc = "Spent too much ink printing butt pictures? Fret not, with these six toner refills, you'll be printing butts 'till the cows come home!'"
+ cost = 1000
+ contains = list(/obj/item/toner,
+ /obj/item/toner,
+ /obj/item/toner,
+ /obj/item/toner,
+ /obj/item/toner,
+ /obj/item/toner)
+ crate_name = "toner crate"
+
+/datum/supply_pack/misc/diamondring
+ name = "Diamond Ring"
+ desc = "Show them your love is like a diamond: unbreakable and forever lasting. Shipped straight from child slave cartels in the space african mines."
+ cost = 10000
+ contains = list(/obj/item/storage/fancy/ringbox/diamond)
+ crate_name = "diamond ring crate"
+
+/datum/supply_pack/misc/jewelry
+ name = "Jewelry Crate"
+ desc = "Bling out with this crate of jewelry. Includes gold necklace and a set of two rings."
+ cost = 5000
+ contains = list(/obj/item/clothing/neck/necklace/dope,
+ /obj/item/storage/fancy/ringbox,
+ /obj/item/storage/fancy/ringbox/silver
+ )
+ crate_name = "jewelry crate"
diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm
new file mode 100644
index 00000000..cf3bf865
--- /dev/null
+++ b/code/modules/cargo/packs/organic.dm
@@ -0,0 +1,360 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Organic /////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/organic
+ group = "Food & Hydroponics"
+ crate_type = /obj/structure/closet/crate/freezer
+
+/datum/supply_pack/organic/hydroponics/beekeeping_suits
+ name = "Beekeeper Suit Crate"
+ desc = "Bee business booming? Better be benevolent and boost botany by bestowing bi-Beekeeper-suits! Contains two beekeeper suits and matching headwear."
+ cost = 1300
+ contains = list(/obj/item/clothing/head/beekeeper_head,
+ /obj/item/clothing/suit/beekeeper_suit,
+ /obj/item/clothing/head/beekeeper_head,
+ /obj/item/clothing/suit/beekeeper_suit)
+ crate_name = "beekeeper suits"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/hydroponics/beekeeping_fullkit
+ name = "Beekeeping Starter Crate"
+ desc = "BEES BEES BEES. Contains three honey frames, a beekeeper suit and helmet, flyswatter, bee house, and, of course, a pure-bred Nanotrasen-Standardized Queen Bee!"
+ cost = 1800
+ contains = list(/obj/structure/beebox/unwrenched,
+ /obj/item/honey_frame,
+ /obj/item/honey_frame,
+ /obj/item/honey_frame,
+ /obj/item/queen_bee/bought,
+ /obj/item/clothing/head/beekeeper_head,
+ /obj/item/clothing/suit/beekeeper_suit,
+ /obj/item/melee/flyswatter)
+ crate_name = "beekeeping starter crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/candy/randomised
+ name = "Candy Crate"
+ desc = "For people that have a insatiable sweet tooth! Has ten candies to be eaten up.."
+ cost = 2500
+ var/num_contained = 10 //number of items picked to be contained in a randomised crate
+ contains = list(/obj/item/reagent_containers/food/snacks/candy,
+ /obj/item/reagent_containers/food/snacks/lollipop,
+ /obj/item/reagent_containers/food/snacks/gumball,
+ /obj/item/reagent_containers/food/snacks/chocolateegg,
+ /obj/item/reagent_containers/food/snacks/donut,
+ /obj/item/reagent_containers/food/snacks/cookie,
+ /obj/item/reagent_containers/food/snacks/sugarcookie,
+ /obj/item/reagent_containers/food/snacks/chococornet,
+ /obj/item/reagent_containers/food/snacks/mint,
+ /obj/item/reagent_containers/food/snacks/spiderlollipop,
+ /obj/item/reagent_containers/food/snacks/chococoin,
+ /obj/item/reagent_containers/food/snacks/fudgedice,
+ /obj/item/reagent_containers/food/snacks/chocoorange,
+ /obj/item/reagent_containers/food/snacks/honeybar,
+ /obj/item/reagent_containers/food/snacks/tinychocolate,
+ /obj/item/reagent_containers/food/snacks/spacetwinkie,
+ /obj/item/reagent_containers/food/snacks/syndicake,
+ /obj/item/reagent_containers/food/snacks/cheesiehonkers,
+ /obj/item/reagent_containers/food/snacks/sugarcookie/spookyskull,
+ /obj/item/reagent_containers/food/snacks/sugarcookie/spookycoffin,
+ /obj/item/reagent_containers/food/snacks/candy_corn,
+ /obj/item/reagent_containers/food/snacks/candiedapple,
+ /obj/item/reagent_containers/food/snacks/chocolatebar,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/storage/fancy/heart_box,
+ /obj/item/storage/fancy/donut_box)
+ crate_name = "candy crate"
+
+/datum/supply_pack/organic/cutlery
+ name = "Kitchen Cutlery Deluxe Set"
+ desc = "Need to slice and dice away those ''Tomatos'' well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal."
+ cost = 10000
+ contraband = TRUE
+ contains = list(/obj/item/sharpener,
+ /obj/item/kitchen/fork,
+ /obj/item/kitchen/fork,
+ /obj/item/kitchen/knife,
+ /obj/item/kitchen/knife,
+ /obj/item/kitchen/knife,
+ /obj/item/kitchen/knife,
+ /obj/item/kitchen/knife/butcher,
+ /obj/item/kitchen/knife/butcher,
+ /obj/item/kitchen/rollingpin, //Deluxe for a reason
+ /obj/item/trash/plate,
+ /obj/item/trash/plate,
+ /obj/item/trash/plate,
+ /obj/item/trash/plate,
+ /obj/item/reagent_containers/food/drinks/drinkingglass,
+ /obj/item/reagent_containers/food/drinks/drinkingglass,
+ /obj/item/reagent_containers/food/drinks/drinkingglass,
+ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass)
+ crate_name = "kitchen cutlery deluxe set"
+
+/datum/supply_pack/organic/food
+ name = "Food Crate"
+ desc = "Get things cooking with this crate full of useful ingredients! Contains a two dozen eggs, three bananas, and two bags of flour and rice, two cartons of milk, soymilk, as well as salt and pepper shakers, a enzyme and sugar bottle, and three slabs of monkeymeat."
+ cost = 1000
+ contains = list(/obj/item/reagent_containers/food/condiment/flour,
+ /obj/item/reagent_containers/food/condiment/flour,
+ /obj/item/reagent_containers/food/condiment/rice,
+ /obj/item/reagent_containers/food/condiment/rice,
+ /obj/item/reagent_containers/food/condiment/milk,
+ /obj/item/reagent_containers/food/condiment/milk,
+ /obj/item/reagent_containers/food/condiment/soymilk,
+ /obj/item/reagent_containers/food/condiment/saltshaker,
+ /obj/item/reagent_containers/food/condiment/peppermill,
+ /obj/item/storage/fancy/egg_box,
+ /obj/item/storage/fancy/egg_box,
+ /obj/item/reagent_containers/food/condiment/enzyme,
+ /obj/item/reagent_containers/food/condiment/sugar,
+ /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
+ /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
+ /obj/item/reagent_containers/food/snacks/meat/slab/monkey,
+ /obj/item/reagent_containers/food/snacks/grown/banana,
+ /obj/item/reagent_containers/food/snacks/grown/banana,
+ /obj/item/reagent_containers/food/snacks/grown/banana)
+ crate_name = "food crate"
+
+/datum/supply_pack/organic/fiestatortilla
+ name = "Fiesta Crate"
+ desc = "Spice up the kitchen with this fiesta themed food order! Contains 8 tortilla based food items, as well as a sombrero, moustache, and cloak!"
+ cost = 2750
+ contains = list(/obj/item/clothing/head/sombrero,
+ /obj/item/clothing/suit/hooded/cloak/david,
+ /obj/item/clothing/mask/fakemoustache,
+ /obj/item/reagent_containers/food/snacks/taco,
+ /obj/item/reagent_containers/food/snacks/taco,
+ /obj/item/reagent_containers/food/snacks/taco/plain,
+ /obj/item/reagent_containers/food/snacks/taco/plain,
+ /obj/item/reagent_containers/food/snacks/enchiladas,
+ /obj/item/reagent_containers/food/snacks/enchiladas,
+ /obj/item/reagent_containers/food/snacks/carneburrito,
+ /obj/item/reagent_containers/food/snacks/cheesyburrito,
+ /obj/item/reagent_containers/glass/bottle/capsaicin,
+ /obj/item/reagent_containers/glass/bottle/capsaicin)
+ crate_name = "fiesta crate"
+
+/datum/supply_pack/organic/cream_piee
+ name = "High-yield Clown-grade Cream Pie Crate"
+ desc = "Designed by Aussec's Advanced Warfare Research Division, these high-yield, Clown-grade cream pies are powered by a synergy of performance and efficiency. Guaranteed to provide maximum results."
+ cost = 6000
+ contains = list(/obj/item/storage/backpack/duffelbag/clown/cream_pie)
+ crate_name = "party equipment crate"
+ contraband = TRUE
+ access = ACCESS_THEATRE
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/organic/hunting
+ name = "Hunting gear"
+ desc = "Even in space, we can find prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a hunting shotgun. "
+ cost = 3500
+ contraband = TRUE
+ contains = list(/obj/item/clothing/head/flatcap,
+ /obj/item/clothing/suit/hooded/wintercoat/captain,
+ /obj/item/reagent_containers/food/drinks/bottle/cognac,
+ /obj/item/storage/fancy/cigarettes/cigars/havana,
+ /obj/item/clothing/gloves/color/white,
+ /obj/item/clothing/under/rank/curator,
+ /obj/item/gun/ballistic/shotgun/lethal)
+ access = ACCESS_ARMORY
+ crate_name = "sporting crate"
+ crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:(
+
+/datum/supply_pack/organic/fakemeat
+ name = "Meat Crate"
+ desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 4 slabs of meat product, and two slabs of *carp*."
+ cost = 1700
+ contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
+ /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
+ /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
+ /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct,
+ /obj/item/reagent_containers/food/snacks/carpmeat/imitation,
+ /obj/item/reagent_containers/food/snacks/carpmeat/imitation)
+ crate_name = "meaty crate"
+ crate_type = /obj/structure/closet/crate/freezer
+
+/datum/supply_pack/organic/monkeydripmeat
+ name = "*Meat* Crate"
+ desc = "Need some meat? With this do-it-yourself kit you'll be swimming in it! Contains a monkey cube, an IV drip, and some cryoxadone!"
+ cost = 2150
+ contraband = TRUE
+ contains = list(/obj/item/reagent_containers/food/snacks/monkeycube,
+ /obj/item/restraints/handcuffs/cable,
+ /obj/machinery/iv_drip,
+ /obj/item/reagent_containers/glass/beaker/cryoxadone,
+ /obj/item/reagent_containers/glass/beaker/cryoxadone)
+ crate_name = "monkey meat crate"
+
+/datum/supply_pack/organic/mixedboxes
+ name = "Mixed Ingredient Boxes"
+ desc = "Get overwhelmed with inspiration by ordering these boxes of surprise ingredients! Get four boxes filled with an assortment of products!"
+ cost = 2300
+ contains = list(/obj/item/storage/box/ingredients/wildcard,
+ /obj/item/storage/box/ingredients/wildcard,
+ /obj/item/storage/box/ingredients/wildcard,
+ /obj/item/storage/box/ingredients/wildcard)
+ crate_name = "wildcard food crate"
+ crate_type = /obj/structure/closet/crate/freezer
+
+/datum/supply_pack/organic/hydroponics
+ name = "Hydroponics Crate"
+ desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron."
+ cost = 1750
+ contains = list(/obj/item/reagent_containers/spray/plantbgone,
+ /obj/item/reagent_containers/spray/plantbgone,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/hatchet,
+ /obj/item/cultivator,
+ /obj/item/plant_analyzer,
+ /obj/item/clothing/gloves/botanic_leather,
+ /obj/item/clothing/suit/apron)
+ crate_name = "hydroponics crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/hydroponics/hydrotank
+ name = "Hydroponics Backpack Crate"
+ desc = "Bring on the flood with this high-capacity backpack crate. Contains 500 units of life-giving H2O. Requires hydroponics access to open."
+ cost = 1200
+ access = ACCESS_HYDROPONICS
+ contains = list(/obj/item/watertank)
+ crate_name = "hydroponics backpack crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/organic/mre
+ name = "MRE supply kit (emergency rations)"
+ desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
+ cost = 2000
+ contains = list(/obj/item/storage/box/mre/menu1/safe,
+ /obj/item/storage/box/mre/menu1/safe,
+ /obj/item/storage/box/mre/menu2/safe,
+ /obj/item/storage/box/mre/menu2/safe,
+ /obj/item/storage/box/mre/menu3,
+ /obj/item/storage/box/mre/menu4/safe)
+ crate_name = "MRE crate (emergency rations)"
+
+/datum/supply_pack/organic/pizza
+ name = "Pizza Crate"
+ desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!"
+ cost = 6000 // Best prices this side of the galaxy.
+ contains = list(/obj/item/pizzabox/margherita,
+ /obj/item/pizzabox/mushroom,
+ /obj/item/pizzabox/meat,
+ /obj/item/pizzabox/vegetable,
+ /obj/item/pizzabox/pineapple)
+ crate_name = "pizza crate"
+ var/static/anomalous_box_provided = FALSE
+
+/datum/supply_pack/organic/pizza/fill(obj/structure/closet/crate/C)
+ . = ..()
+ if(!anomalous_box_provided)
+ for(var/obj/item/pizzabox/P in C)
+ if(prob(1)) //1% chance for each box, so 4% total chance per order
+ var/obj/item/pizzabox/infinite/fourfiveeight = new(C)
+ fourfiveeight.boxtag = P.boxtag
+ qdel(P)
+ anomalous_box_provided = TRUE
+ log_game("An anomalous pizza box was provided in a pizza crate at during cargo delivery")
+ if(prob(50))
+ addtimer(CALLBACK(src, .proc/anomalous_pizza_report), rand(300, 1800))
+ else
+ message_admins("An anomalous pizza box was silently created with no command report in a pizza crate delivery.")
+ break
+
+/datum/supply_pack/organic/pizza/proc/anomalous_pizza_report()
+ print_command_report("[station_name()], our anomalous materials divison has reported a missing object that is highly likely to have been sent to your station during a routine cargo \
+ delivery. Please search all crates and manifests provided with the delivery and return the object if is located. The object resembles a standard \[DATA EXPUNGED\] and is to be \
+ considered \[REDACTED\] and returned at your leisure. Note that objects the anomaly produces are specifically attuned exactly to the individual opening the anomaly; regardless \
+ of species, the individual will find the object edible and it will taste great according to their personal definitions, which vary significantly based on person and species.")
+
+/datum/supply_pack/organic/potted_plants
+ name = "Potted Plants Crate"
+ desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown."
+ cost = 730
+ contains = list(/obj/item/twohanded/required/kirbyplants/random,
+ /obj/item/twohanded/required/kirbyplants/random,
+ /obj/item/twohanded/required/kirbyplants/random,
+ /obj/item/twohanded/required/kirbyplants/random,
+ /obj/item/twohanded/required/kirbyplants/random)
+ crate_name = "potted plants crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/seeds
+ name = "Seeds Crate"
+ desc = "Big things have small beginnings. Contains thirteen different seeds."
+ cost = 1250
+ contains = list(/obj/item/seeds/chili,
+ /obj/item/seeds/berry,
+ /obj/item/seeds/corn,
+ /obj/item/seeds/eggplant,
+ /obj/item/seeds/tomato,
+ /obj/item/seeds/soya,
+ /obj/item/seeds/wheat,
+ /obj/item/seeds/wheat/rice,
+ /obj/item/seeds/carrot,
+ /obj/item/seeds/sunflower,
+ /obj/item/seeds/chanter,
+ /obj/item/seeds/potato,
+ /obj/item/seeds/sugarcane)
+ crate_name = "seeds crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/vday
+ name = "Surplus Valentine Crate"
+ desc = "Turns out we got warehouses of this love-y dove-y crap. Were sending out small barged buddle of Valentine gear. This crate has two boxes of chocolate, three poppy flowers, five candy hearts, and three cards."
+ cost = 3000
+ contraband = TRUE
+ contains = list(/obj/item/storage/fancy/heart_box,
+ /obj/item/storage/fancy/heart_box,
+ /obj/item/reagent_containers/food/snacks/grown/poppy,
+ /obj/item/reagent_containers/food/snacks/grown/poppy,
+ /obj/item/reagent_containers/food/snacks/grown/poppy,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/reagent_containers/food/snacks/candyheart,
+ /obj/item/valentine,
+ /obj/item/valentine,
+ /obj/item/valentine)
+ crate_name = "valentine crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/organic/strangeseeds
+ name = "Strange Seeds Crate"
+ desc = "After our chemical waste mysteriously disappeared we've discovered many strange and interesting species of plants, and they're yours for the taking! Contains 8 packs of strange seeds."
+ cost = 4500
+ contains = list(/obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random)
+ crate_name = "strange seeds crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/organic/exoticseeds
+ name = "Exotic Seeds Crate"
+ desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!"
+ cost = 1500
+ contains = list(/obj/item/seeds/nettle,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/replicapod,
+ /obj/item/seeds/plump,
+ /obj/item/seeds/liberty,
+ /obj/item/seeds/amanita,
+ /obj/item/seeds/reishi,
+ /obj/item/seeds/banana,
+ /obj/item/seeds/eggplant/eggy,
+ /obj/item/seeds/random,
+ /obj/item/seeds/random)
+ crate_name = "exotic seeds crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm
new file mode 100644
index 00000000..fa6ef393
--- /dev/null
+++ b/code/modules/cargo/packs/science.dm
@@ -0,0 +1,168 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Science /////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/science
+ group = "Science"
+ crate_type = /obj/structure/closet/crate/science
+
+/datum/supply_pack/science/aliens
+ name = "Advanced Alien Alloy Crate Crate"
+ desc = "Hello brothers from the stars!!! Our fellow brethren have made contact at long last and gave us gifts man! They really did build the prymi- Connection Error- Bro we’ll send you a sheet of advanced alien alloy."
+ cost = 15000
+ contraband = TRUE
+ DropPodOnly = TRUE
+ contains = list(/obj/item/stack/sheet/mineral/abductor)
+ crate_name = "alien bro alloy crate"
+
+/datum/supply_pack/science/beakers
+ name = "Chemistry Beakers Crate"
+ desc = "Glassware for any chemistry lab! Contains four small beakers, three large, two plastic, and one metamaterial. As well as three droppers and two pairs of latex gloves."
+ cost = 2000
+ contains = list(/obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/meta,
+ /obj/item/reagent_containers/glass/beaker/noreact,
+ /obj/item/reagent_containers/dropper,
+ /obj/item/reagent_containers/dropper,
+ /obj/item/reagent_containers/dropper,
+ /obj/item/clothing/gloves/color/latex,
+ /obj/item/clothing/gloves/color/latex)
+ crate_name = "chemistry beaker crate"
+
+/datum/supply_pack/science/robotics/mecha_odysseus
+ name = "Circuit Crate (Odysseus)"
+ desc = "Ever wanted to build your own giant medical robot? Well, now you can! Contains the Odysseus main control board and Odysseus peripherals board. Requires Robotics access to open."
+ cost = 2500
+ access = ACCESS_ROBOTICS
+ contains = list(/obj/item/circuitboard/mecha/odysseus/peripherals,
+ /obj/item/circuitboard/mecha/odysseus/main)
+ crate_name = "\improper Odysseus circuit crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/science/robotics/mecha_ripley
+ name = "Circuit Crate (Ripley APLU)"
+ desc = "Rip apart rocks and xenomorphs alike with the Ripley APLU. Contains the Main Ripley control board, as well as the Ripley Peripherals board. Requires Robotics access to open."
+ cost = 3000
+ access = ACCESS_ROBOTICS
+ contains = list(/obj/item/book/manual/ripley_build_and_repair,
+ /obj/item/circuitboard/mecha/ripley/main,
+ /obj/item/circuitboard/mecha/ripley/peripherals)
+ crate_name = "\improper APLU Ripley circuit crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/science/circuitry
+ name = "Circuitry Starter Pack Crate"
+ desc = "Journey into the mysterious world of Circuitry with this starter pack. Contains a circuit printer, analyzer, debugger and wirer. Power cells not included."
+ cost = 1000
+ contains = list(/obj/item/integrated_electronics/analyzer,
+ /obj/item/integrated_circuit_printer,
+ /obj/item/integrated_electronics/debugger,
+ /obj/item/integrated_electronics/wirer)
+ crate_name = "circuitry starter pack crate"
+
+/datum/supply_pack/science/nitrilegloves
+ name = "Nitrile Gloves Crate"
+ desc = "Handling toxic chemicals? Well worry not, keep your flesh intact with some nitrile made gloves! Contains three pairs of nitrile gloves."
+ cost = 1500
+ contains = list(/obj/item/clothing/gloves/color/latex/nitrile,
+ /obj/item/clothing/gloves/color/latex/nitrile,
+ /obj/item/clothing/gloves/color/latex/nitrile)
+ crate_name = "nitrile gloves crate"
+
+/datum/supply_pack/science/plasma
+ name = "Plasma Assembly Crate"
+ desc = "Everything you need to burn something to the ground, this contains three plasma assembly sets. Each set contains a plasma tank, igniter, proximity sensor, and timer! Warranty void if exposed to high temperatures. Requires Toxins access to open."
+ cost = 1800
+ access = ACCESS_TOX_STORAGE
+ contains = list(/obj/item/tank/internals/plasma,
+ /obj/item/tank/internals/plasma,
+ /obj/item/tank/internals/plasma,
+ /obj/item/assembly/igniter,
+ /obj/item/assembly/igniter,
+ /obj/item/assembly/igniter,
+ /obj/item/assembly/prox_sensor,
+ /obj/item/assembly/prox_sensor,
+ /obj/item/assembly/prox_sensor,
+ /obj/item/assembly/timer,
+ /obj/item/assembly/timer,
+ /obj/item/assembly/timer)
+ crate_name = "plasma assembly crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/science/robotics
+ name = "Robotics Assembly Crate"
+ desc = "The tools you need to replace those finicky humans with a loyal robot army! Contains three proximity sensors, two high-powered cells, six flashes, and an electrical toolbox. Requires Robotics access to open."
+ cost = 1500
+ access = ACCESS_ROBOTICS
+ contains = list(/obj/item/assembly/prox_sensor,
+ /obj/item/assembly/prox_sensor,
+ /obj/item/assembly/prox_sensor,
+ /obj/item/storage/toolbox/electrical,
+ /obj/item/storage/box/flashes,
+ /obj/item/stock_parts/cell/high,
+ /obj/item/stock_parts/cell/high)
+ crate_name = "robotics assembly crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/science/shieldwalls
+ name = "Shield Generator Crate"
+ desc = "These high powered Shield Wall Generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Contains four shield wall generators. Requires Teleporter access to open."
+ cost = 2000
+ access = ACCESS_TELEPORTER
+ contains = list(/obj/machinery/shieldwallgen,
+ /obj/machinery/shieldwallgen,
+ /obj/machinery/shieldwallgen,
+ /obj/machinery/shieldwallgen)
+ crate_name = "shield generators crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/science/slime
+ name = "Slime Core Crate"
+ desc = "Ran out of slimes? No problem, contains one gray slime core. Requires Xenobio access to open."
+ cost = 1000
+ access = ACCESS_XENOBIOLOGY
+ contains = list(/obj/item/slime_extract/grey)
+ crate_name = "slime core crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+
+/datum/supply_pack/science/tablets
+ name = "Tablet Crate"
+ desc = "What's a computer? Contains five cargo tablets."
+ cost = 3000
+ contains = list(/obj/item/modular_computer/tablet/preset/cargo,
+ /obj/item/modular_computer/tablet/preset/cargo,
+ /obj/item/modular_computer/tablet/preset/cargo,
+ /obj/item/modular_computer/tablet/preset/cargo,
+ /obj/item/modular_computer/tablet/preset/cargo)
+ crate_name = "tablet crate"
+
+/datum/supply_pack/science/transfer_valves
+ name = "Tank Transfer Valves Crate"
+ desc = "The key ingredient for making a lot of people very angry very fast. Contains two tank transfer valves. Requires RD access to open."
+ cost = 6000
+ access = ACCESS_RD
+ contains = list(/obj/item/transfer_valve,
+ /obj/item/transfer_valve)
+ crate_name = "tank transfer valves crate"
+ crate_type = /obj/structure/closet/crate/secure/science
+ dangerous = TRUE
+
+/datum/supply_pack/science/tech_slugs
+ name = "Tech Slug Ammo Shells"
+ desc = "A new type of shell that is able to be made into a few different dangerous types. Contains two boxes of tech slugs, 14 shells in all."
+ cost = 1700
+ contains = list(/obj/item/storage/box/techsslug,
+ /obj/item/storage/box/techsslug)
+ crate_name = "tech slug crate"
diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm
new file mode 100644
index 00000000..3c68fe7f
--- /dev/null
+++ b/code/modules/cargo/packs/security.dm
@@ -0,0 +1,192 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////// Security ////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/security
+ group = "Security"
+ access = ACCESS_SECURITY
+ crate_type = /obj/structure/closet/crate/secure/gear
+
+/datum/supply_pack/security/armor
+ name = "Armor Crate"
+ desc = "Three vests of well-rounded, decently-protective armor. Requires Security access to open."
+ cost = 1200
+ contains = list(/obj/item/clothing/suit/armor/vest,
+ /obj/item/clothing/suit/armor/vest,
+ /obj/item/clothing/suit/armor/vest)
+ crate_name = "armor crate"
+
+/datum/supply_pack/security/disabler
+ name = "Disabler Crate"
+ desc = "Three stamina-draining disabler weapons. Requires Security access to open."
+ cost = 1300
+ contains = list(/obj/item/gun/energy/disabler,
+ /obj/item/gun/energy/disabler,
+ /obj/item/gun/energy/disabler)
+ crate_name = "disabler crate"
+
+/datum/supply_pack/security/forensics
+ name = "Forensics Crate"
+ desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open."
+ cost = 1800
+ contains = list(/obj/item/detective_scanner,
+ /obj/item/storage/box/evidence,
+ /obj/item/camera,
+ /obj/item/taperecorder,
+ /obj/item/toy/crayon/white,
+ /obj/item/clothing/head/fedora/det_hat)
+ crate_name = "forensics crate"
+
+/datum/supply_pack/security/helmets
+ name = "Helmets Crate"
+ desc = "Contains three standard-issue brain buckets. Requires Security access to open."
+ cost = 1200
+ contains = list(/obj/item/clothing/head/helmet/sec,
+ /obj/item/clothing/head/helmet/sec,
+ /obj/item/clothing/head/helmet/sec)
+ crate_name = "helmet crate"
+
+/datum/supply_pack/security/laser
+ name = "Lasers Crate"
+ desc = "Contains three lethal, high-energy laser guns. Requires Security access to open."
+ cost = 1750
+ contains = list(/obj/item/gun/energy/laser,
+ /obj/item/gun/energy/laser,
+ /obj/item/gun/energy/laser)
+ crate_name = "laser crate"
+
+/datum/supply_pack/security/russianclothing
+ name = "Russian Surplus Clothing"
+ desc = "An old russian crate full of surplus armor that they used to use! Has two sets of bulletproff armor, a few union suits and some warm hats!"
+ contraband = TRUE
+ cost = 5750 // Its basicly sec suits, good boots/gloves
+ contains = list(/obj/item/clothing/suit/security/officer/russian,
+ /obj/item/clothing/suit/security/officer/russian,
+ /obj/item/clothing/shoes/combat,
+ /obj/item/clothing/shoes/combat,
+ /obj/item/clothing/head/ushanka,
+ /obj/item/clothing/head/ushanka,
+ /obj/item/clothing/suit/armor/bulletproof,
+ /obj/item/clothing/suit/armor/bulletproof,
+ /obj/item/clothing/head/helmet/alt,
+ /obj/item/clothing/head/helmet/alt,
+ /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/mask/gas,
+ /obj/item/clothing/mask/gas)
+ crate_name = "surplus russian clothing"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/security/russianmosin
+ name = "Russian Minutemen Gear"
+ desc = "An old russian Minutemen crate, comes with a full russian outfit, a mosin and a stripper clip."
+ contraband = TRUE
+ access = FALSE
+ cost = 5500 //
+ contains = list(/obj/item/clothing/suit/security/officer/russian,
+ /obj/item/clothing/shoes/combat,
+ /obj/item/clothing/head/ushanka,
+ /obj/item/clothing/suit/armor/bulletproof,
+ /obj/item/clothing/head/helmet/alt,
+ /obj/item/clothing/gloves/combat,
+ /obj/item/clothing/mask/gas,
+ /obj/item/gun/ballistic/shotgun/boltaction,
+ /obj/item/ammo_box/a762)
+ crate_name = "surplus russian gear"
+ crate_type = /obj/structure/closet/crate/internals
+
+/datum/supply_pack/security/sechardsuit
+ name = "Sec Hardsuit"
+ desc = "One Sec Hardsuit with a small air tank and mask."
+ cost = 3000 // half of SWAT gear for have the armor and half the gear
+ contains = list(/obj/item/clothing/suit/space/hardsuit/security,
+ /obj/item/tank/internals/air,
+ /obj/item/clothing/mask/gas)
+ crate_name = "sec hardsuit crate"
+
+/datum/supply_pack/security/securitybarriers
+ name = "Security Barrier Grenades"
+ desc = "Stem the tide with four Security Barrier grenades. Requires Security access to open."
+ contains = list(/obj/item/grenade/barrier,
+ /obj/item/grenade/barrier,
+ /obj/item/grenade/barrier,
+ /obj/item/grenade/barrier)
+ cost = 2000
+ crate_name = "security barriers crate"
+
+/datum/supply_pack/security/securityclothes
+ name = "Security Clothing Crate"
+ desc = "Contains appropriate outfits for the station's private security force. Contains outfits for the Warden, Head of Security, and two Security Officers. Each outfit comes with a rank-appropriate jumpsuit, suit, and beret. Requires Security access to open."
+ cost = 3250
+ contains = list(/obj/item/clothing/under/rank/security/navyblue,
+ /obj/item/clothing/under/rank/security/navyblue,
+ /obj/item/clothing/suit/security/officer,
+ /obj/item/clothing/suit/security/officer,
+ /obj/item/clothing/head/beret/sec/navyofficer,
+ /obj/item/clothing/head/beret/sec/navyofficer,
+ /obj/item/clothing/under/rank/warden/navyblue,
+ /obj/item/clothing/suit/security/warden,
+ /obj/item/clothing/head/beret/sec/navywarden,
+ /obj/item/clothing/under/rank/head_of_security/navyblue,
+ /obj/item/clothing/suit/security/hos,
+ /obj/item/clothing/head/beret/sec/navyhos)
+ crate_name = "security clothing crate"
+
+/datum/supply_pack/security/supplies
+ name = "Security Supplies Crate"
+ desc = "Contains seven flashbangs, seven teargas grenades, six flashes, and seven handcuffs. Requires Security access to open."
+ cost = 1200
+ contains = list(/obj/item/storage/box/flashbangs,
+ /obj/item/storage/box/teargas,
+ /obj/item/storage/box/flashes,
+ /obj/item/storage/box/handcuffs)
+ crate_name = "security supply crate"
+
+/datum/supply_pack/security/firingpins
+ name = "Standard Firing Pins Crate"
+ desc = "Upgrade your arsenal with 10 standard firing pins. Requires Security access to open."
+ cost = 2000
+ contains = list(/obj/item/storage/box/firingpins,
+ /obj/item/storage/box/firingpins)
+ crate_name = "firing pins crate"
+
+/datum/supply_pack/security/justiceinbound
+ name = "Standard Justice Enforcer Crate"
+ desc = "This is it. The Bee's Knees. The Creme of the Crop. The Pick of the Litter. The best of the best of the best. The Crown Jewel of Nanotrasen. The Alpha and the Omega of security headwear. Guaranteed to strike fear into the hearts of each and every criminal aboard the station. Also comes with a security gasmask. Requires Security access to open."
+ cost = 6000 //justice comes at a price. An expensive, noisy price.
+ contraband = TRUE
+ contains = list(/obj/item/clothing/head/helmet/justice,
+ /obj/item/clothing/mask/gas/sechailer)
+ crate_name = "security clothing crate"
+
+/datum/supply_pack/security/baton
+ name = "Stun Batons Crate"
+ desc = "Arm the Civil Protection Forces with three stun batons. Batteries included. Requires Security access to open."
+ cost = 1200
+ contains = list(/obj/item/melee/baton/loaded,
+ /obj/item/melee/baton/loaded,
+ /obj/item/melee/baton/loaded)
+ crate_name = "stun baton crate"
+
+/datum/supply_pack/security/taser
+ name = "Taser Crate"
+ desc = "From the depths of stunbased combat, this order rises above, supreme. Contains three hybrid tasers, capable of firing both electrodes and disabling shots. Requires Security access to open."
+ cost = 3500
+ contains = list(/obj/item/gun/energy/e_gun/advtaser,
+ /obj/item/gun/energy/e_gun/advtaser,
+ /obj/item/gun/energy/e_gun/advtaser)
+ crate_name = "taser crate"
+
+/datum/supply_pack/security/wall_flash
+ name = "Wall-Mounted Flash Crate"
+ desc = "Contains four wall-mounted flashes. Requires Security access to open."
+ cost = 1000
+ contains = list(/obj/item/storage/box/wall_flash,
+ /obj/item/storage/box/wall_flash,
+ /obj/item/storage/box/wall_flash,
+ /obj/item/storage/box/wall_flash)
+ crate_name = "wall-mounted flash crate"
diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm
new file mode 100644
index 00000000..59cc97f3
--- /dev/null
+++ b/code/modules/cargo/packs/service.dm
@@ -0,0 +1,339 @@
+
+//Reminders-
+// If you add something to this list, please group it by type and sort it alphabetically instead of just jamming it in like an animal
+// cost = 700- Minimum cost, or infinite points are possible.
+//////////////////////////////////////////////////////////////////////////////
+/////////////////////////////// Service //////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/service
+ group = "Service"
+
+/datum/supply_pack/service/advlighting
+ name = "Advanced Lighting crate"
+ desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!"
+ cost = 2750
+ contains = list(/obj/item/construction/rld,
+ /obj/item/flashlight/lamp,
+ /obj/item/flashlight/lamp,
+ /obj/item/flashlight/lamp/green,
+ /obj/item/storage/box/lights/mixed)
+ crate_name = "advanced lighting crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/service/janitor/advanced
+ name = "Advanced Sanitation Crate"
+ desc = "Contains all the essentials for an advanced spacefaring cleanup crew. This kit includes a trashbag of holding, an advanced mop, a bottle of space cleaner, a floor buffer, and a holosign projector."
+ cost = 5000
+ access = ACCESS_JANITOR
+ contains = list(/obj/item/storage/bag/trash/bluespace,
+ /obj/item/reagent_containers/spray/cleaner,
+ /obj/item/mop/advanced,
+ /obj/item/lightreplacer,
+ /obj/item/janiupgrade,
+ /obj/item/holosign_creator)
+ crate_name = "advanced santation crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/service/cargo_supples
+ name = "Cargo Supplies Crate"
+ desc = "Sold everything that wasn't bolted down? You can get right back to work with this crate containing stamps, an export scanner, destination tagger, hand labeler and some package wrapping."
+ cost = 1000
+ contains = list(/obj/item/stamp,
+ /obj/item/stamp/denied,
+ /obj/item/export_scanner,
+ /obj/item/destTagger,
+ /obj/item/hand_labeler,
+ /obj/item/stack/packageWrap)
+ crate_name = "cargo supplies crate"
+
+/datum/supply_pack/service/carpet_exotic
+ name = "Exotic Carpet Crate"
+ desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 10 different flooring patterns."
+ cost = 4000
+ contains = list(/obj/item/stack/tile/carpet/blue/fifty,
+ /obj/item/stack/tile/carpet/blue/fifty,
+ /obj/item/stack/tile/carpet/cyan/fifty,
+ /obj/item/stack/tile/carpet/cyan/fifty,
+ /obj/item/stack/tile/carpet/green/fifty,
+ /obj/item/stack/tile/carpet/green/fifty,
+ /obj/item/stack/tile/carpet/orange/fifty,
+ /obj/item/stack/tile/carpet/orange/fifty,
+ /obj/item/stack/tile/carpet/purple/fifty,
+ /obj/item/stack/tile/carpet/purple/fifty,
+ /obj/item/stack/tile/carpet/red/fifty,
+ /obj/item/stack/tile/carpet/red/fifty,
+ /obj/item/stack/tile/carpet/royalblue/fifty,
+ /obj/item/stack/tile/carpet/royalblue/fifty,
+ /obj/item/stack/tile/carpet/royalblack/fifty,
+ /obj/item/stack/tile/carpet/royalblack/fifty,
+ /obj/item/stack/tile/carpet/blackred/fifty,
+ /obj/item/stack/tile/carpet/blackred/fifty,
+ /obj/item/stack/tile/carpet/monochrome/fifty,
+ /obj/item/stack/tile/carpet/monochrome/fifty)
+ crate_name = "exotic carpet crate"
+
+/datum/supply_pack/service/food_cart
+ name = "Food Cart Crate"
+ desc = "Want to sell food on the go? Cook lost their cart? Well we just so happen to have a few carts to spare!"
+ cost = 1000
+ contains = list(/obj/machinery/food_cart)
+ crate_name = "food cart crate"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/service/noslipfloor
+ name = "High-traction Floor Tiles"
+ desc = "Make slipping a thing of the past with sixty industrial-grade anti-slip floortiles!"
+ cost = 2000
+ contains = list(/obj/item/stack/tile/noslip/thirty,
+ /obj/item/stack/tile/noslip/thirty)
+ crate_name = "high-traction floor tiles crate"
+
+/datum/supply_pack/service/icecream_cart
+ name = "Ice Cream Cart Crate"
+ desc = "Plasma fire a to hot for you, want a nice treat after a hard days work? Well now we have the cart for you! This Ice Cream Vat has everthing you need to make you and your friends so ice cream treats! This cart comes stocked with some ingredients for each type of scoopable icecream."
+ cost = 2750 //Comes prestocked with basic ingredients
+ contains = list(/obj/machinery/icecream_vat)
+ crate_name = "ice cream vat crate"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/service/buildabar
+ name = "Build a Bar Crate"
+ desc = "Looking to set up your own little safe haven? Maintenance bar too much of a bummer to work on? Maybe you just want to set up shop right in front of the bartender. Whatever your reasons, get a jump-start on this with this handy kit. Contains circuitboards for bar equipment, some parts, and some basic bartending supplies. (Batteries not Included)"
+ cost = 3750
+ contains = list(/obj/item/storage/box/drinkingglasses,
+ /obj/item/storage/box/drinkingglasses,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/manipulator,
+ /obj/item/stock_parts/manipulator,
+ /obj/item/stock_parts/manipulator,
+ /obj/item/stock_parts/capacitor,
+ /obj/item/stock_parts/capacitor,
+ /obj/item/stack/sheet/metal/ten,
+ /obj/item/stack/sheet/metal/five,
+ /obj/item/stack/sheet/glass/five,
+ /obj/item/stack/cable_coil/random,
+ /obj/item/reagent_containers/rag,
+ /obj/item/book/manual/wiki/barman_recipes,
+ /obj/item/book/granter/action/drink_fling,
+ /obj/item/reagent_containers/food/drinks/shaker,
+ /obj/item/clothing/under/waiter,
+ /obj/item/clothing/under/rank/bartender,
+ /obj/item/clothing/under/rank/bartender/skirt,
+ /obj/item/clothing/accessory/waistcoat,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks,
+ /obj/item/circuitboard/machine/dish_drive)
+ crate_name = "build a bar crate"
+
+/datum/supply_pack/service/maintgarden
+ name = "Maintenance Garden Crate"
+ desc = "Set up your own tiny paradise with do-it-yourself botany kit. Contains sandstone for dirt plots, pest spray, ammonia, a portable seed generator, basic botanical tools, and some seeds to start off with."
+ cost = 2350
+ contains = list(/obj/item/storage/bag/plants/portaseeder,
+ /obj/item/reagent_containers/spray/pestspray,
+ /obj/item/stack/sheet/mineral/sandstone/twelve,
+ /obj/item/reagent_containers/glass/bucket,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/hatchet,
+ /obj/item/cultivator,
+ /obj/item/plant_analyzer,
+ /obj/item/flashlight,
+ /obj/item/seeds/carrot,
+ /obj/item/seeds/carrot,
+ /obj/item/seeds/tower,
+ /obj/item/seeds/tower,
+ /obj/item/seeds/watermelon,
+ /obj/item/seeds/watermelon,
+ /obj/item/seeds/grass,
+ /obj/item/seeds/grass)
+ crate_name = "maint garden crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
+/datum/supply_pack/service/janitor
+ name = "Janitorial Supplies Crate"
+ desc = "Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, spray cleaner, rag, NT soap and a trash bag."
+ cost = 1300
+ contains = list(/obj/item/reagent_containers/glass/bucket,
+ /obj/item/reagent_containers/glass/bucket,
+ /obj/item/reagent_containers/glass/bucket,
+ /obj/item/mop,
+ /obj/item/caution,
+ /obj/item/caution,
+ /obj/item/caution,
+ /obj/item/storage/bag/trash,
+ /obj/item/reagent_containers/spray/cleaner,
+ /obj/item/reagent_containers/rag,
+ /obj/item/grenade/chem_grenade/cleaner,
+ /obj/item/grenade/chem_grenade/cleaner,
+ /obj/item/grenade/chem_grenade/cleaner,
+ /obj/item/soap/nanotrasen)
+ crate_name = "janitorial supplies crate"
+
+/datum/supply_pack/service/janitor/janicart
+ name = "Janitorial Cart and Galoshes Crate"
+ desc = "The keystone to any successful janitor. As long as you have feet, this pair of galoshes will keep them firmly planted on the ground. Also contains a janitorial cart."
+ cost = 2000
+ contains = list(/obj/structure/janitorialcart,
+ /obj/item/clothing/shoes/galoshes)
+ crate_name = "janitorial cart crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/service/janitor/janitank
+ name = "Janitor Backpack Crate"
+ desc = "Call forth divine judgement upon dirt and grime with this high capacity janitor backpack. Contains 500 units of station-cleansing cleaner. Requires janitor access to open."
+ cost = 1000
+ access = ACCESS_JANITOR
+ contains = list(/obj/item/watertank/janitor)
+ crate_name = "janitor backpack crate"
+ crate_type = /obj/structure/closet/crate/secure
+
+/datum/supply_pack/service/janitor/janpremium
+ name = "Janitor Premium Supplies"
+ desc = "Do to the union for better supplies, we have desided to make a deal for you, In this crate you can get a brand new chem, Drying Angent this stuff is the work of slimes or magic! This crate also contains a rag to test out the Drying Angent magic, three wet floor signs, and some spare bottles of ammonia."
+ cost = 1750
+ access = ACCESS_JANITOR
+ contains = list(/obj/item/caution,
+ /obj/item/caution,
+ /obj/item/caution,
+ /obj/item/reagent_containers/rag,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/spray/drying_agent)
+ crate_name = "janitor backpack crate"
+
+/datum/supply_pack/service/janitor/janpimp
+ name = "Custodial Cruiser"
+ desc = "Clown steal your ride? Assistant lock it in the dorms? Order a new one and get back to cleaning in style!"
+ cost = 3000
+ access = ACCESS_JANITOR
+ contains = list(/obj/vehicle/ridden/janicart,
+ /obj/item/key/janitor)
+ crate_name = "janitor ride crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/service/mule
+ name = "MULEbot Crate"
+ desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!"
+ cost = 2000
+ contains = list(/mob/living/simple_animal/bot/mulebot)
+ crate_name = "\improper MULEbot Crate"
+ crate_type = /obj/structure/closet/crate/large
+
+/datum/supply_pack/service/party
+ name = "Party Equipment"
+ desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!"
+ cost = 2000
+ contains = list(/obj/item/storage/box/drinkingglasses,
+ /obj/item/reagent_containers/food/drinks/shaker,
+ /obj/item/reagent_containers/food/drinks/bottle/patron,
+ /obj/item/reagent_containers/food/drinks/bottle/goldschlager,
+ /obj/item/reagent_containers/food/drinks/ale,
+ /obj/item/reagent_containers/food/drinks/ale,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/flashlight/glowstick,
+ /obj/item/flashlight/glowstick/red,
+ /obj/item/flashlight/glowstick/blue,
+ /obj/item/flashlight/glowstick/cyan,
+ /obj/item/flashlight/glowstick/orange,
+ /obj/item/flashlight/glowstick/yellow,
+ /obj/item/flashlight/glowstick/pink)
+ crate_name = "party equipment crate"
+
+/datum/supply_pack/service/carpet
+ name = "Premium Carpet Crate"
+ desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains the classics."
+ cost = 1000
+ contains = list(/obj/item/stack/tile/carpet/fifty,
+ /obj/item/stack/tile/carpet/fifty,
+ /obj/item/stack/tile/carpet/black/fifty,
+ /obj/item/stack/tile/carpet/black/fifty)
+ crate_name = "premium carpet crate"
+
+/datum/supply_pack/service/carpet2
+ name = "Premium Carpet Crate #2"
+ desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains red, and monochrome"
+ cost = 1000
+ contains = list(/obj/item/stack/tile/carpet/blackred/fifty,
+ /obj/item/stack/tile/carpet/blackred/fifty,
+ /obj/item/stack/tile/carpet/monochrome/fifty,
+ /obj/item/stack/tile/carpet/monochrome/fifty)
+ crate_name = "premium carpet crate #2"
+
+/datum/supply_pack/service/lightbulbs
+ name = "Replacement Lights"
+ desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs as well as a light replacer."
+ cost = 1200
+ contains = list(/obj/item/storage/box/lights/mixed,
+ /obj/item/storage/box/lights/mixed,
+ /obj/item/storage/box/lights/mixed,
+ /obj/item/lightreplacer)
+ crate_name = "replacement lights"
+
+/datum/supply_pack/service/minerkit
+ name = "Shaft Miner Starter Kit"
+ desc = "All the miners died too fast? Assistant wants to get a taste of life off-station? Either way, this kit is the best way to turn a regular crewman into an ore-producing, monster-slaying machine. Contains meson goggles, a pickaxe, advanced mining scanner, cargo headset, ore bag, gasmask, and explorer suit. Requires QM access to open."
+ cost = 2500
+ access = ACCESS_QM
+ contains = list(/obj/item/pickaxe/mini,
+ /obj/item/clothing/glasses/meson,
+ /obj/item/t_scanner/adv_mining_scanner/lesser,
+ /obj/item/radio/headset/headset_cargo/mining,
+ /obj/item/storage/bag/ore,
+ /obj/item/clothing/suit/hooded/explorer/standard,
+ /obj/item/clothing/mask/gas/explorer)
+ crate_name = "shaft miner starter kit"
+ crate_type = /obj/structure/closet/crate/secure
+
+//////////////////////////////////////////////////////////////////////////////
+/////////////////////////// Vending Restocks /////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+/datum/supply_pack/service/vending/bartending
+ name = "Bartending Supply Crate"
+ desc = "Bring on the booze with vending machine refills, as well as a free book containing the well-kept secrets to the bartending trade!"
+ cost = 2000
+ contains = list(/obj/item/vending_refill/boozeomat,
+ /obj/item/vending_refill/coffee,
+ /obj/item/book/granter/action/drink_fling)
+ crate_name = "bartending supply crate"
+
+/datum/supply_pack/service/vending/cigarette
+ name = "Cigarette Supply Crate"
+ desc = "Don't believe the reports - smoke today! Contains a cigarette vending machine refill."
+ cost = 1500
+ contains = list(/obj/item/vending_refill/cigarette)
+ crate_name = "cigarette supply crate"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/service/vending/games
+ name = "Games Supply Crate"
+ desc = "Get your game on with this game vending machine refill."
+ cost = 1000
+ contains = list(/obj/item/vending_refill/games)
+ crate_name = "games supply crate"
+ crate_type = /obj/structure/closet/crate
+
+/datum/supply_pack/service/vending/snack
+ name = "Snack Supply Crate"
+ desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!"
+ cost = 1500
+ contains = list(/obj/item/vending_refill/snack)
+ crate_name = "snacks supply crate"
+
+/datum/supply_pack/service/vending/cola
+ name = "Softdrinks Supply Crate"
+ desc = "Got whacked by a toolbox, but you still have those pesky teeth? Get rid of those pearly whites with this soda machine refill, today!"
+ cost = 1500
+ contains = list(/obj/item/vending_refill/cola)
+ crate_name = "soft drinks supply crate"
diff --git a/tgstation.dme b/tgstation.dme
index 034eb157..2b66c708 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1506,11 +1506,25 @@
#include "code\modules\cargo\exports\large_objects.dm"
#include "code\modules\cargo\exports\manifest.dm"
#include "code\modules\cargo\exports\materials.dm"
+#include "code\modules\cargo\exports\organs_robotics.dm"
#include "code\modules\cargo\exports\parts.dm"
#include "code\modules\cargo\exports\seeds.dm"
#include "code\modules\cargo\exports\sheets.dm"
#include "code\modules\cargo\exports\tools.dm"
#include "code\modules\cargo\exports\weapons.dm"
+#include "code\modules\cargo\packs\armory.dm"
+#include "code\modules\cargo\packs\costumes_toys.dm"
+#include "code\modules\cargo\packs\emergency.dm"
+#include "code\modules\cargo\packs\engine.dm"
+#include "code\modules\cargo\packs\engineering.dm"
+#include "code\modules\cargo\packs\livestock.dm"
+#include "code\modules\cargo\packs\materials.dm"
+#include "code\modules\cargo\packs\medical.dm"
+#include "code\modules\cargo\packs\misc.dm"
+#include "code\modules\cargo\packs\organic.dm"
+#include "code\modules\cargo\packs\science.dm"
+#include "code\modules\cargo\packs\security.dm"
+#include "code\modules\cargo\packs\service.dm"
#include "code\modules\chatter\chatter.dm"
#include "code\modules\client\asset_cache.dm"
#include "code\modules\client\client_colour.dm"