diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm
index 3d03c2adbd..e0a23b0209 100644
--- a/code/datums/components/storage/concrete/pockets.dm
+++ b/code/datums/components/storage/concrete/pockets.dm
@@ -19,6 +19,22 @@
max_items = 1
attack_hand_interact = FALSE
+/datum/component/storage/concrete/pockets/small/collar
+ max_items = 1
+
+/datum/component/storage/concrete/pockets/small/collar/Initialize()
+ . = ..()
+ can_hold = typecacheof(list(
+ /obj/item/reagent_containers/food/snacks/cookie,
+ /obj/item/reagent_containers/food/snacks/sugarcookie))
+
+/datum/component/storage/concrete/pockets/small/collar/locked/Initialize()
+ . = ..()
+ can_hold = typecacheof(list(
+ /obj/item/reagent_containers/food/snacks/cookie,
+ /obj/item/reagent_containers/food/snacks/sugarcookie,
+ /obj/item/key/collar))
+
/datum/component/storage/concrete/pockets/tiny
max_items = 1
max_w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 8245148096..d4cfbd1a84 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -171,17 +171,57 @@
icon_state = "stripedbluescarf"
item_color = "stripedbluescarf"
-/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys
+///////////
+//COLLARS//
+///////////
+
+/obj/item/clothing/neck/petcollar
name = "pet collar"
desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
icon_state = "petcollar"
item_color = "petcollar"
+ pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar
var/tagname = null
/obj/item/clothing/neck/petcollar/attack_self(mob/user)
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
+/obj/item/clothing/neck/petcollar/locked
+ name = "locked collar"
+ desc = "A collar that has a small lock on it to keep it from being removed."
+ pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked
+ var/lock = FALSE
+
+/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params)
+ if(lock != FALSE)
+ to_chat(user, "With a click the collar unlocks!")
+ lock = FALSE
+ item_flags = NONE
+ else
+ to_chat(user, "With a click the collar locks!")
+ lock = TRUE
+ item_flags = NODROP
+ return
+
+/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user)
+ if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE)
+ to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!")
+ return
+ ..()
+
+/obj/item/key/collar
+ name = "Collar Key"
+ desc = "A key for a tiny lock on a collar or bag."
+
+/obj/item/clothing/neck/petcollar/Initialize()
+ . = ..()
+ new /obj/item/reagent_containers/food/snacks/cookie(src)
+
+/obj/item/clothing/neck/petcollar/locked/Initialize()
+ . = ..()
+ new /obj/item/key/collar(src)
+
//////////////
//DOPE BLING//
//////////////
@@ -191,4 +231,4 @@
desc = "Damn, it feels good to be a gangster."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bling"
- item_color = "bling"
\ No newline at end of file
+ item_color = "bling"
diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm
index 213dd8a17a..bdca91b0e6 100755
--- a/modular_citadel/code/game/machinery/vending.dm
+++ b/modular_citadel/code/game/machinery/vending.dm
@@ -54,8 +54,11 @@
/obj/item/clothing/neck/petcollar = 5,
/obj/item/clothing/under/mankini = 1,
/obj/item/dildo/flared/huge = 1
- )
- premium = list(/obj/item/electropack/shockcollar = 3)
+ )
+ premium = list(
+ /obj/item/electropack/shockcollar = 3,
+ /obj/item/clothing/neck/petcollar/locked = 1
+ )
refill_canister = /obj/item/vending_refill/kink
/*
/obj/machinery/vending/nazivend