diff --git a/code/datums/supplypacks/hospitality.dm b/code/datums/supplypacks/hospitality.dm
index 83d46edde1..f3de751f23 100644
--- a/code/datums/supplypacks/hospitality.dm
+++ b/code/datums/supplypacks/hospitality.dm
@@ -61,3 +61,17 @@
cost = 15
containertype = /obj/structure/closet/crate/freezer
containername = "Pizza crate"
+
+/datum/supply_packs/hospitality/gifts
+ name = "Gift crate"
+ contains = list(
+ /obj/item/toy/bouquet = 3,
+ /obj/item/weapon/storage/fancy/heartbox = 2,
+ /obj/item/weapon/paper/card/smile,
+ /obj/item/weapon/paper/card/heart,
+ /obj/item/weapon/paper/card/cat,
+ /obj/item/weapon/paper/card/flower
+ )
+ cost = 10
+ containertype = /obj/structure/closet/crate
+ containername = "crate of gifts"
\ No newline at end of file
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index d546ef4676..df2387e71f 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -27,7 +27,8 @@
/obj/item/toy/waterflower = 1,
/obj/random/action_figure = 1,
/obj/random/plushie = 1,
- /obj/item/toy/cultsword = 1
+ /obj/item/toy/cultsword = 1,
+ /obj/item/toy/bouquet/fake = 1
)
/obj/machinery/computer/arcade/New()
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 62f02816ed..c86993fa31 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -16,6 +16,7 @@
* Action figures
* Plushies
* Toy cult sword
+ * Bouquets
*/
@@ -872,6 +873,19 @@
w_class = ITEMSIZE_LARGE
attack_verb = list("attacked", "slashed", "stabbed", "poked")
+//Flowers fake & real
+
+/obj/item/toy/bouquet
+ name = "bouquet"
+ desc = "A lovely bouquet of flowers. Smells nice!"
+ icon = 'icons/obj/items.dmi'
+ icon_state = "bouquet"
+ w_class = ITEMSIZE_SMALL
+
+/obj/item/toy/bouquet/fake
+ name = "plastic bouquet"
+ desc = "A cheap plastic bouquet of flowers. Smells like cheap, toxic plastic."
+
/* NYET.
/obj/item/weapon/toddler
icon_state = "toddler"
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 3df73b9793..8cc10444ef 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -10,6 +10,8 @@
* Candle Box
* Crayon Box
* Cigarette Box
+ * Vial Box
+ * Box of Chocolates
*/
/obj/item/weapon/storage/fancy/
@@ -313,3 +315,34 @@
/obj/item/weapon/storage/lockbox/vials/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
update_icon()
+
+/*
+ * Box of Chocolates/Heart Box
+ */
+
+/obj/item/weapon/storage/fancy/heartbox
+ icon_state = "heartbox"
+ name = "box of chocolates"
+ var/startswith = 6
+ max_storage_space = ITEMSIZE_COST_SMALL * 6
+ can_hold = list(
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece,
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white,
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle
+ )
+
+/obj/item/weapon/storage/fancy/heartbox/New()
+ ..()
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle(src)
+ update_icon()
+ return
+
+/obj/item/weapon/storage/fancy/heartbox/update_icon(var/itemremoved = 0)
+ if (contents.len == 0)
+ icon_state = "heartbox_empty"
+ return
\ No newline at end of file
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index b708e58253..4fd94901cc 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -35,6 +35,50 @@
var/const/signfont = "Times New Roman"
var/const/crayonfont = "Comic Sans MS"
+/obj/item/weapon/paper/card
+ name = "blank card"
+ desc = "A gift card with space to write on the cover."
+ icon_state = "greetingcard"
+ slot_flags = null //no fun allowed!!!!
+
+/obj/item/weapon/paper/card/AltClick() //No fun allowed
+ return
+
+/obj/item/weapon/paper/card/update_icon()
+ return
+
+/obj/item/weapon/paper/card/smile
+ name = "happy card"
+ desc = "A gift card with a smiley face on the cover."
+ icon_state = "greetingcard_smile"
+
+/obj/item/weapon/paper/card/cat
+ name = "cat card"
+ desc = "A gift card with a cat on the cover."
+ icon_state = "greetingcard_cat"
+
+/obj/item/weapon/paper/card/flower
+ name = "flower card"
+ desc = "A gift card with a flower on the cover."
+ icon_state = "greetingcard_flower"
+
+/obj/item/weapon/paper/card/heart
+ name = "heart card"
+ desc = "A gift card with a heart on the cover."
+ icon_state = "greetingcard_heart"
+
+/obj/item/weapon/paper/card/New()
+ ..()
+ pixel_y = rand(-8, 8)
+ pixel_x = rand(-9, 9)
+ stamps = null
+
+ if(info != initial(info))
+ info = html_encode(info)
+ info = replacetext(info, "\n", "
")
+ info = parsepencode(info)
+ return
+
/obj/item/weapon/paper/alien
name = "alien tablet"
desc = "It looks highly advanced"
@@ -319,7 +363,7 @@
if(P.lit && !user.restrained())
if(istype(P, /obj/item/weapon/flame/lighter/zippo))
class = "rose"
-
+
user.visible_message("[user] holds \the [P] up to \the [src], it looks like [TU.hes] trying to burn it!", \
"You hold \the [P] up to \the [src], burning it slowly.")
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 9fb6314829..51f675ec7d 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -376,6 +376,29 @@
reagents.add_reagent("coco", 2)
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece
+ name = "chocolate piece"
+ desc = "A luscious milk chocolate piece filled with gooey caramel."
+ icon_state = "chocolatepiece"
+ filling_color = "#7D5F46"
+ center_of_mass = list("x"=15, "y"=15)
+ nutriment_amt = 1
+ nutriment_desc = list("chocolate" = 3, "caramel" = 2, "lusciousness" = 1)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white
+ name = "white chocolate piece"
+ desc = "A creamy white chocolate piece drizzled in milk chocolate."
+ icon_state = "chocolatepiece_white"
+ filling_color = "#E2DAD3"
+ nutriment_desc = list("white chocolate" = 3, "creaminess" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle
+ name = "chocolate truffle"
+ desc = "A bite-sized milk chocolate truffle that could buy anyone's love."
+ icon_state = "chocolatepiece_truffle"
+ nutriment_desc = list("chocolate" = 3, "undying devotion" = 3)
+
/obj/item/weapon/reagent_containers/food/snacks/chocolateegg
name = "Chocolate Egg"
desc = "Such sweet, fattening food."
diff --git a/html/changelogs/schnayy-giftcrates.yml b/html/changelogs/schnayy-giftcrates.yml
new file mode 100644
index 0000000000..08c0668df5
--- /dev/null
+++ b/html/changelogs/schnayy-giftcrates.yml
@@ -0,0 +1,9 @@
+author: Schnayy
+
+delete-after: True
+
+changes:
+ - rscadd: "Adds bouquets. Can be ordered via 'gift crate' in cargo."
+ - rscadd: "Adds fake bouquets for the cheap. Can currently be won from arcade machines."
+ - rscadd: "Adds chocolate heart-shaped boxes. Can be ordered via 'gift crate' in cargo."
+ - rscadd: "Adds gift cards with four cover variations. Function like paper. Can be ordered via 'gift crate' in cargo."
\ No newline at end of file
diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi
index a7628b6aeb..a42fe56547 100644
Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ
diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi
index 4dd154277e..54720b1f6d 100644
Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index e8d3946b34..e32b870d99 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 14f54fb5dc..d282fb3e6a 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index bebe9efbee..b8dc87695a 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ