diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm
index fdf88b15088..4a8b4f2d3c7 100644
--- a/code/game/machinery/biogenerator.dm
+++ b/code/game/machinery/biogenerator.dm
@@ -115,6 +115,7 @@
dat += "Utility belt ([round(300/build_eff)])
"
dat += "Leather Satchel ([round(400/build_eff)])
"
dat += "Cash Bag ([round(400/build_eff)])
"
+ dat += "Chemistry Bag ([round(400/build_eff)])
"
dat += "Workboots ([round(400/build_eff)])
"
dat += "Leather Shoes ([round(400/build_eff)])
"
@@ -219,6 +220,8 @@
new/obj/item/weapon/storage/backpack/satchel(loc)
if("cashbag")
new/obj/item/weapon/storage/bag/cash(loc)
+ if("chembag")
+ new/obj/item/weapon/storage/bag/chemistry(loc)
if("monkey")
new/mob/living/carbon/human/monkey(loc)
if("workboots")
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 519fff3d50c..3d8a9f0b5cb 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -248,3 +248,16 @@
max_w_class = ITEMSIZE_NORMAL
w_class = ITEMSIZE_SMALL
can_hold = list(/obj/item/weapon/coin,/obj/item/weapon/spacecash)
+
+ // -----------------------------
+ // Chemistry Bag
+ // -----------------------------
+/obj/item/weapon/storage/bag/chemistry
+ name = "chemistry bag"
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "chembag"
+ desc = "A bag for storing pills, patches, and bottles."
+ max_storage_space = 200
+ w_class = ITEMSIZE_LARGE
+ slowdown = 1
+ can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/bottle)
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index c21b5d5fbb7..87afb34fa4e 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -425,6 +425,8 @@
new /obj/item/weapon/storage/backpack/chemistry(src)
new /obj/item/weapon/storage/backpack/satchel/chem(src)
new /obj/item/weapon/storage/backpack/satchel/chem(src)
+ new /obj/item/weapon/storage/bag/chemistry(src)
+ new /obj/item/weapon/storage/bag/chemistry(src)
return
@@ -682,4 +684,4 @@
new /obj/item/clothing/under/gimmick/rank/captain/suit(src)
new /obj/item/clothing/under/gimmick/rank/captain/suit/skirt(src)
new /obj/item/clothing/glasses/sunglasses(src)
- return
\ No newline at end of file
+ return
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 7835b56d7dd..44dce0a7ad2 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -112,6 +112,8 @@
user << "You set the label to \"[tmp_label]\"."
label_text = tmp_label
update_name_label()
+ if(istype(W,/obj/item/weapon/storage/bag))
+ ..()
/obj/item/weapon/reagent_containers/glass/proc/update_name_label()
if(label_text == "")
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 30d846ddafb..6af3f710710 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ