diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index e93bfb9976..ec60515192 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -81,3 +81,14 @@
return
loc.visible_message("[user] suddenly appears in front of [loc]!", "[user] breaks free of [src]!")
qdel(src)
+
+// Containment bodybag
+
+/obj/item/bodybag/containment
+ name = "radiation containment body bag"
+ desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation."
+ icon = 'icons/obj/bodybag.dmi'
+ icon_state = "radbodybag_folded"
+ unfoldedbag_path = /obj/structure/closet/body_bag/containment
+ w_class = WEIGHT_CLASS_NORMAL
+ item_flags = NO_MAT_REDEMPTION | RAD_NO_CONTAMINATE
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 2bd7dd0d38..40618d1cbf 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -154,8 +154,21 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
GLOBAL_LIST_INIT(plasteel_recipes, list ( \
new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \
new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \
- new/datum/stack_recipe("crate", /obj/structure/closet/crate, 5, time = 90, one_per_turf = TRUE), \
- null, \
+ new /datum/stack_recipe_list("crates", list( \
+ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("trash cart", /obj/structure/closet/crate/trashcart, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("medical crate", /obj/structure/closet/crate/medical, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("freezer crate", /obj/structure/closet/crate/freezer, 8, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("blood bag crate", /obj/structure/closet/crate/freezer/blood, 8, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("surplus limbs crate", /obj/structure/closet/crate/freezer/surplus_limbs, 8, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 20, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("RCD storge crate", /obj/structure/closet/crate/rcd, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ new /datum/stack_recipe("science crate", /obj/structure/closet/crate/science, 5, time = 50, one_per_turf = 1, on_floor = 1), \
+ )), \
new /datum/stack_recipe_list("airlock assemblies", list( \
new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 6, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1), \
diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
index 1c34850274..6dd3ac4a08 100644
--- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
@@ -100,3 +100,12 @@
if(isliving(A))
to_chat(A, "You're suddenly forced into a tiny, compressed space!")
qdel(src)
+
+/obj/structure/closet/body_bag/containment
+ name = "containment body bag"
+ desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation."
+ icon = 'icons/obj/bodybag.dmi'
+ icon_state = "radbodybag"
+ mob_storage_capacity = 1
+ foldedbag_path = /obj/item/bodybag/containment
+ rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index f6b2b6cd51..6d129c2623 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -169,6 +169,7 @@
desc = "A crate with a radiation sign on it."
name = "radiation crate"
icon_state = "radiation"
+ rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
/obj/structure/closet/crate/hydroponics
name = "hydroponics crate"
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index bef25456ca..35e420e857 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -122,16 +122,6 @@
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
-/datum/design/bluespacebodybag
- name = "Bluespace Body Bag"
- desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures."
- id = "bluespacebodybag"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500)
- build_path = /obj/item/bodybag/bluespace
- category = list("Medical Designs")
- departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/plasmarefiller
name = "Plasma-Man Jumpsuit Refill"
desc = "A refill pack for the auto-extinguisher on Plasma-man suits."
@@ -232,6 +222,40 @@
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
+////////////////////////////////////////
+//////////Body Bags/////////////////////
+////////////////////////////////////////
+
+/datum/design/bodybag
+ name = "Body Bag"
+ desc = "A normal body bag used for storge of dead crew."
+ id = "bodybag"
+ build_type = PROTOLATHE
+ materials = list(MAT_PLASTIC = 4000)
+ build_path = /obj/item/bodybag
+ category = list("Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
+
+/datum/design/bluespacebodybag
+ name = "Bluespace Body Bag"
+ desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures."
+ id = "bluespacebodybag"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500)
+ build_path = /obj/item/bodybag/bluespace
+ category = list("Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
+
+/datum/design/containmentbodybag
+ name = "Containment Body Bag"
+ desc = "A containment body bag, heavy and radiation proof."
+ id = "containmentbodybag"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 6000, MAT_PLASTIC = 4000, MAT_TITANIUM = 2000)
+ build_path = /obj/item/bodybag/containment
+ category = list("Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
+
////////////////////////////////////////
//////////Defibrillator Tech////////////
////////////////////////////////////////
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index c02fdc7c72..d0ce943da2 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -75,12 +75,20 @@
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
+/datum/techweb_node/aftercare
+ id = "aftercare"
+ display_name = "Aftercare"
+ description = "What you use when its to late."
+ prereq_ids = list("biotech", "adv_engi")
+ design_ids = list("bodybag", "containmentbodybag", "harvester")
+ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
+
/datum/techweb_node/adv_biotech
id = "adv_biotech"
display_name = "Advanced Biotechnology"
description = "Advanced Biotechnology"
prereq_ids = list("biotech")
- design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter")
+ design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -239,17 +247,16 @@
prereq_ids = list("adv_engi", "high_efficiency")
design_ids = list("meteor_defence", "meteor_console")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
- export_price = 5000
-*/
-//datum/techweb_node/adv_meteor_defense
- //id = "adv_meteor_defense"
- //display_name = "Meteor Defense Research"
- //description = "New and improved coding and lock on tech for meteor defence!"
- //prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv")
- //design_ids = list("meteor_disk")
- //research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
- //export_price = 5000
+/datum/techweb_node/adv_meteor_defense
+ id = "adv_meteor_defense"
+ display_name = "Meteor Defense Research"
+ description = "New and improved coding and lock on tech for meteor defence!"
+ prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv")
+ design_ids = list("meteor_disk")
+ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
+
+*/
/datum/techweb_node/computer_board_gaming
id = "computer_board_gaming"
diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi
index 7fcc193ad6..c3267d3fc9 100644
Binary files a/icons/obj/bodybag.dmi and b/icons/obj/bodybag.dmi differ