diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 2df9ca60a26..d404bb10692 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -256,6 +256,8 @@
var/trophy_message = ""
var/placer_key = ""
var/added_roundstart = TRUE
+ var/is_locked = TRUE
+
alert = TRUE
integrity_failure = 0
@@ -278,8 +280,16 @@
if(!user.Adjacent(src)) //no TK museology
return
- if(!(user.mind && user.mind.assigned_role == "Curator"))
- to_chat(user, "You're not sure how to work this. Maybe you should ask the curator for help.")
+ if(user.is_holding_item_of_type(/obj/item/key/displaycase))
+ if(added_roundstart)
+ is_locked = !is_locked
+ to_chat(user, "You [!is_locked ? "un" : ""]lock the case.")
+ else
+ to_chat(user, "The lock is stuck shut!")
+ return
+
+ if(is_locked)
+ to_chat(user, "The case is shut tight with an old fashioned physical lock. Maybe you should ask the curator for the key?")
return
if(!added_roundstart)
@@ -336,6 +346,10 @@
else
..()
+/obj/item/key/displaycase
+ name = "display case key"
+ desc = "The key to the curator's display cases."
+
/obj/item/showpiece_dummy
name = "Cheap replica"
diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm
index 3561e0e60cd..7ae392e55a9 100644
--- a/code/modules/jobs/job_types/civilian.dm
+++ b/code/modules/jobs/job_types/civilian.dm
@@ -137,11 +137,12 @@ Curator
belt = /obj/item/device/pda/curator
uniform = /obj/item/clothing/under/rank/curator
l_hand = /obj/item/weapon/storage/bag/books
- r_pocket = /obj/item/weapon/barcodescanner
+ r_pocket = /obj/item/key/displaycase
l_pocket = /obj/item/device/laser_pointer
backpack_contents = list(
/obj/item/weapon/melee/curator_whip = 1,
- /obj/item/soapstone = 1
+ /obj/item/soapstone = 1,
+ /obj/item/weapon/barcodescanner = 1
)