diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index a04087603ad..c0e85013ccd 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -1,11 +1,13 @@
/obj/item/weapon/reagent_containers/blood
name = "BloodPack"
+ var/base_name = "BloodPack"
desc = "Contains blood used for transfusion."
icon = 'icons/obj/bloodpack.dmi'
icon_state = "empty"
volume = 200
var/blood_type = null
+ var/label_text = ""
/obj/item/weapon/reagent_containers/blood/New()
..()
@@ -16,6 +18,7 @@
/obj/item/weapon/reagent_containers/blood/on_reagent_change()
update_icon()
+ update_name_label()
/obj/item/weapon/reagent_containers/blood/update_icon()
var/percent = round((reagents.total_volume / volume) * 100)
@@ -27,27 +30,55 @@
if(51 to INFINITY)
icon_state = "full"
+/obj/item/weapon/reagent_containers/blood/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/weapon/pen) || istype(I, /obj/item/device/flashlight/pen))
+ var/tmp_label = sanitize(input(user, "Enter a label for [name]","Label",label_text))
+ if(length(tmp_label) > MAX_NAME_LEN)
+ to_chat(user, "The label can be at most [MAX_NAME_LEN] characters long.")
+ else
+ to_chat(user, "You set the label to \"[tmp_label]\".")
+ label_text = tmp_label
+ update_name_label()
+
+/obj/item/weapon/reagent_containers/blood/proc/update_name_label()
+ if(reagents.total_volume == 0)
+ base_name = "Empty BloodPack"
+ desc = "Seems pretty useless... Maybe if there were a way to fill it?"
+ else
+ base_name = "BloodPack"
+ desc = "Contains blood used for transfusion."
+ if(label_text == "")
+ name = base_name
+ else
+ name = "[base_name] ([label_text])"
+
/obj/item/weapon/reagent_containers/blood/random/New()
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-")
..()
/obj/item/weapon/reagent_containers/blood/APlus
blood_type = "A+"
+ label_text = "A+"
/obj/item/weapon/reagent_containers/blood/AMinus
blood_type = "A-"
+ label_text = "A-"
/obj/item/weapon/reagent_containers/blood/BPlus
blood_type = "B+"
+ label_text = "B+"
/obj/item/weapon/reagent_containers/blood/BMinus
blood_type = "B-"
+ label_text = "B-"
/obj/item/weapon/reagent_containers/blood/OPlus
blood_type = "O+"
+ label_text = "O+"
/obj/item/weapon/reagent_containers/blood/OMinus
blood_type = "O-"
+ label_text = "O-"
/obj/item/weapon/reagent_containers/blood/empty
name = "Empty BloodPack"