diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index a38d3d2f..e3955fa2 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -12,6 +12,7 @@
* Cigarette Box
* Cigar Case
* Heart Shaped Box w/ Chocolates
+ * Ring Box
*/
/obj/item/storage/fancy
@@ -350,3 +351,33 @@
GET_COMPONENT(STR, /datum/component/storage)
STR.max_items = 8
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/tinychocolate))
+
+/*
+ * Ring Box
+ */
+
+/obj/item/storage/fancy/ringbox
+ name = "ring box"
+ desc = "A tiny box covered in soft red felt made for holding rings."
+ icon = 'icons/obj/ring.dmi'
+ icon_state = "gold ringbox"
+ icon_type = "gold ring"
+ w_class = WEIGHT_CLASS_TINY
+ spawn_type = /obj/item/clothing/gloves/ring
+
+/obj/item/storage/fancy/ringbox/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_items = 1
+ STR.can_hold = typecacheof(list(/obj/item/clothing/gloves/ring))
+
+/obj/item/storage/fancy/ringbox/diamond
+ icon_state = "diamond ringbox"
+ icon_type = "diamond ring"
+ spawn_type = /obj/item/clothing/gloves/ring/diamond
+
+/obj/item/storage/fancy/ringbox/silver
+ icon_state = "silver ringbox"
+ icon_type = "silver ring"
+ spawn_type = /obj/item/clothing/gloves/ring/silver
+
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 149416bf..861c122a 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -3283,3 +3283,20 @@
/obj/item/toner,
/obj/item/toner)
crate_name = "toner crate"
+
+/datum/supply_pack/misc/diamondring
+ name = "Diamond Ring"
+ desc = "Show them your love is like a diamond: unbreakable and forever lasting. Shipped straight from child slave cartels in the space african mines."
+ cost = 10000
+ contains = list(/obj/item/storage/fancy/ringbox/diamond)
+ crate_name = "diamond ring crate"
+
+/datum/supply_pack/misc/jewelry
+ name = "Jewelry Crate"
+ desc = "Bling out with this crate of jewelry. Includes gold necklace and a set of two rings."
+ cost = 5000
+ contains = list(/obj/item/clothing/neck/necklace/dope,
+ /obj/item/storage/fancy/ringbox,
+ /obj/item/storage/fancy/ringbox/silver
+ )
+ crate_name = "jewelry crate"
diff --git a/code/modules/clothing/gloves/ring.dm b/code/modules/clothing/gloves/ring.dm
new file mode 100644
index 00000000..d4728493
--- /dev/null
+++ b/code/modules/clothing/gloves/ring.dm
@@ -0,0 +1,32 @@
+/obj/item/clothing/gloves/ring
+ name = "gold ring"
+ desc = "A tiny gold ring, sized to wrap around a finger."
+ gender = NEUTER
+ w_class = WEIGHT_CLASS_TINY
+ icon = 'icons/obj/ring.dmi'
+ icon_state = "ringgold"
+ item_state = "gring"
+ body_parts_covered = 0
+ attack_verb = list("proposed")
+ transfer_prints = TRUE
+ strip_delay = 40
+
+/obj/item/clothing/gloves/ring/suicide_act(mob/living/carbon/user)
+ user.visible_message("\[user] is putting the [src] in [user.p_their()] mouth! It looks like [user] is trying to choke on the [src]!")
+ return OXYLOSS
+
+
+/obj/item/clothing/gloves/ring/diamond
+ name = "diamond ring"
+ item_state = "dring"
+
+/obj/item/clothing/gloves/ring/diamond/attack_self(mob/user)
+ user.visible_message("\The [user] gets down on one knee, presenting \the [src].","You get down on one knee, presenting \the [src].")
+ desc = "An expensive ring, studded with a diamond. Cultures have used these rings in courtship for a millenia."
+ icon_state = "ringdiamond"
+
+/obj/item/clothing/gloves/ring/silver
+ name = "silver ring"
+ desc = "A tiny silver ring, sized to wrap around a finger."
+ icon_state = "ringsilver"
+ item_state = "sring"
\ No newline at end of file
diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi
index b69c6c88..63263b83 100644
Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ
diff --git a/icons/obj/ring.dmi b/icons/obj/ring.dmi
new file mode 100644
index 00000000..3b985fa2
Binary files /dev/null and b/icons/obj/ring.dmi differ
diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm
index 0a2922f7..1c0b40f4 100644
--- a/modular_citadel/code/modules/client/loadout/backpack.dm
+++ b/modular_citadel/code/modules/client/loadout/backpack.dm
@@ -120,4 +120,22 @@
name = "A fancy pen"
category = SLOT_IN_BACKPACK
path = /obj/item/pen/fountain
- cost = 2
\ No newline at end of file
+ cost = 2
+
+/datum/gear/ringbox_gold
+ name = "A gold ring box"
+ category = SLOT_IN_BACKPACK
+ path = /obj/item/storage/fancy/ringbox
+ cost = 3
+
+/datum/gear/ringbox_silver
+ name = "A silver ring box"
+ category = SLOT_IN_BACKPACK
+ path = /obj/item/storage/fancy/ringbox/silver
+ cost = 3
+
+/datum/gear/ringbox_diamond
+ name = "A diamond ring box"
+ category = SLOT_IN_BACKPACK
+ path = /obj/item/storage/fancy/ringbox/diamond
+ cost = 5
\ No newline at end of file
diff --git a/modular_citadel/code/modules/client/loadout/gloves.dm b/modular_citadel/code/modules/client/loadout/gloves.dm
index 826e8096..641d4f2e 100644
--- a/modular_citadel/code/modules/client/loadout/gloves.dm
+++ b/modular_citadel/code/modules/client/loadout/gloves.dm
@@ -2,3 +2,21 @@
name = "Fingerless Gloves"
category = SLOT_GLOVES
path = /obj/item/clothing/gloves/fingerless
+
+/datum/gear/goldring
+ name = "A gold ring"
+ category = SLOT_GLOVES
+ path = /obj/item/clothing/gloves/ring
+ cost = 2
+
+/datum/gear/silverring
+ name = "A silver ring"
+ category = SLOT_GLOVES
+ path = /obj/item/clothing/gloves/ring/silver
+ cost = 2
+
+/datum/gear/diamondring
+ name = "A diamond ring"
+ category = SLOT_GLOVES
+ path = /obj/item/clothing/gloves/ring/diamond
+ cost = 4
\ No newline at end of file
diff --git a/tgstation.dme b/tgstation.dme
index 9fd96b62..cf10f10c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1509,6 +1509,7 @@
#include "code\modules\clothing\gloves\boxing.dm"
#include "code\modules\clothing\gloves\color.dm"
#include "code\modules\clothing\gloves\miscellaneous.dm"
+#include "code\modules\clothing\gloves\ring.dm"
#include "code\modules\clothing\gloves\vg_gloves.dm"
#include "code\modules\clothing\head\_head.dm"
#include "code\modules\clothing\head\beanie.dm"