diff --git a/aurorastation.dme b/aurorastation.dme
index 35638a18c3f..be603f98add 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -3148,6 +3148,7 @@
#include "code\modules\reagents\reagent_containers\pill.dm"
#include "code\modules\reagents\reagent_containers\spray.dm"
#include "code\modules\reagents\reagent_containers\syringes.dm"
+#include "code\modules\reagents\reagent_containers\teapot.dm"
#include "code\modules\reagents\reagent_containers\tooth_paste.dm"
#include "code\modules\reagents\reagent_containers\welding_backpack.dm"
#include "code\modules\reagents\reagent_containers\food\cans.dm"
diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm
index 4063cf10820..c9374a3c674 100644
--- a/code/game/machinery/vending_types.dm
+++ b/code/game/machinery/vending_types.dm
@@ -1054,6 +1054,7 @@
/obj/item/reagent_containers/glass/rag = 8,
/obj/item/evidencebag/plasticbag = 20,
/obj/item/tray = 12,
+ /obj/item/tray/tea = 2,
/obj/item/tray/plate = 10,
/obj/item/reagent_containers/bowl = 10,
/obj/item/reagent_containers/bowl/plate = 10,
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 87ee2bf5c17..f25ff107354 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -1263,3 +1263,36 @@
/obj/item/landmine/claymore = 5,
/obj/item/device/assembly/signaler = 6
)
+
+/obj/item/storage/box/tea
+ name = "sencha cha-tin"
+ desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of sencha, a type of green tea."
+ desc_info = "A subsidiary of Gwok Group, the Konyang-cha tea company is the spur's foremost vendor of artisanal loose leaf tea, \
+ selling blends sourced from independent Konyanger farmers. Popular both on Konyang and off-world, it is considered a symbol of Konyang's culture."
+ icon = 'icons/obj/item/reagent_containers/teaware.dmi'
+ icon_state = "can"
+ item_state = "can"
+ contained_sprite = TRUE
+ max_storage_space = 1
+ can_hold = list(
+ /obj/item/reagent_containers/food/snacks/grown/konyang_tea
+ )
+ starts_with = list(
+ /obj/item/reagent_containers/food/snacks/grown/konyang_tea = 7
+ )
+
+/obj/item/storage/box/tea/tieguanyin
+ name = "tieguanyin cha-tin"
+ desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of tieguanyin, a type of oolong tea."
+ icon_state = "can_tie"
+ starts_with = list(
+ /obj/item/reagent_containers/food/snacks/grown/konyang_tea/tieguanyin = 7
+ )
+
+/obj/item/storage/box/tea/jaekseol
+ name = "jaekseol cha-tin"
+ desc = "A tin bearing the logo of the Konyang-cha tea company. This one contains a bag of jaekseol, a type of black tea."
+ icon_state = "can_jaek"
+ starts_with = list(
+ /obj/item/reagent_containers/food/snacks/grown/konyang_tea/jaekseol = 7
+ )
diff --git a/code/modules/client/preference_setup/loadout/items/general.dm b/code/modules/client/preference_setup/loadout/items/general.dm
index 5a47009eec9..809919549a9 100644
--- a/code/modules/client/preference_setup/loadout/items/general.dm
+++ b/code/modules/client/preference_setup/loadout/items/general.dm
@@ -125,6 +125,59 @@
if(istype(spawned_cup) && spawned_cup.reagents)
spawned_cup.reagents.set_temperature(T0C + 45)
+/datum/gear/teacup
+ display_name = "tea cups"
+ description = "Tea cups in various designs."
+ cost = 1
+ path = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup
+
+/datum/gear/teacup/New()
+ ..()
+ var/list/teacups = list()
+ teacups["plain tea cup"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup
+ teacups["clay yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang
+ teacups["grey yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/grey
+ teacups["glazed pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/pattern
+ teacups["manila pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/manila
+ teacups["nature pattern yunomi"] = /obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/nature
+
+ gear_tweaks += new /datum/gear_tweak/path(teacups)
+ gear_tweaks += new /datum/gear_tweak/reagents(lunchables_drink_reagents())
+
+/datum/gear/teacup/spawn_item(var/location, var/metadata)
+ . = ..()
+ var/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/coffeecup/teacup/spawned_cup = .
+ if(istype(spawned_cup) && spawned_cup.reagents)
+ spawned_cup.reagents.set_temperature(T0C + 45)
+
+/datum/gear/chatins
+ display_name = "konyang-cha tins"
+ description = "Tins of tea leaves made by Konyang-cha."
+ cost = 1
+ path = /obj/item/storage/box/tea
+
+/datum/gear/chatins/New()
+ ..()
+ var/list/chatins = list()
+ chatins["sencha cha-tin"] = /obj/item/storage/box/tea
+ chatins["tieguanyin cha-tin"] = /obj/item/storage/box/tea/tieguanyin
+ chatins["jaekseol cha-tin"] = /obj/item/storage/box/tea/jaekseol
+ gear_tweaks += new /datum/gear_tweak/path(chatins)
+
+/datum/gear/teapots
+ display_name = "teapots"
+ description = "A selection of teapots."
+ cost = 1
+ path = /obj/item/reagent_containers/glass/beaker/teapot
+
+/datum/gear/teapots/New()
+ ..()
+ var/list/teapots = list()
+ teapots["teapot"] = /obj/item/reagent_containers/glass/beaker/teapot
+ teapots["gaiwan"] = /obj/item/reagent_containers/glass/beaker/teapot/lidded
+ teapots["kyusu"] = /obj/item/reagent_containers/glass/beaker/teapot/lidded/kyusu
+ gear_tweaks += new /datum/gear_tweak/path(teapots)
+
/datum/gear/banner
display_name = "banner selection"
path = /obj/item/flag
diff --git a/code/modules/cooking/trays.dm b/code/modules/cooking/trays.dm
index b16298c8b6d..cf8c263c4bc 100644
--- a/code/modules/cooking/trays.dm
+++ b/code/modules/cooking/trays.dm
@@ -219,3 +219,15 @@
matter = list(DEFAULT_TABLE_MATERIAL = 1000)
recyclable = TRUE
max_carry = 7 // That's 3 dishes, a knife, spoon and fork and a glass
+
+/obj/item/tray/tea
+ name = "tea tray"
+ desc = "A tray for serving tea."
+ icon_state = "teatray"
+ force = 3
+ throwforce = 3
+ atom_flags = 0
+ matter = list(DEFAULT_TABLE_MATERIAL = 1000)
+ recyclable = TRUE
+ max_carry = 6
+ contained_sprite = TRUE
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 02e0563ce84..2fee75dfcc7 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -367,3 +367,35 @@ var/list/fruit_icon_cache = list()
I.color = flesh_colour
fruit_icon_cache["slice-[rind_colour]"] = I
add_overlay(fruit_icon_cache["slice-[rind_colour]"])
+
+/obj/item/reagent_containers/food/snacks/grown/konyang_tea
+ name = "sencha leaves"
+ desc = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \
+ It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. On Konyang, it is most popular in Aoyama."
+ plantname = "sencha"
+ icon = 'icons/obj/item/reagent_containers/teaware.dmi'
+ icon_state = "sencha"
+
+/obj/item/reagent_containers/food/snacks/grown/konyang_tea/afterattack(atom/target, mob/user, proximity, params)
+ if(proximity && target.is_open_container() && target.reagents)
+ if(!target.reagents.total_volume)
+ to_chat(user, SPAN_WARNING("You can't steep tea inside of an empty pot!"))
+ return
+ to_chat(user, SPAN_NOTICE("You steep \the [src] inside \the [target]."))
+
+ reagents.trans_to(target, reagents.total_volume)
+ qdel(src)
+
+/obj/item/reagent_containers/food/snacks/grown/konyang_tea/tieguanyin
+ name = "tieguanyin leaves"
+ desc = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \
+ It has a nutty, peppery, and floral flavor profile. On Konyang, it is most popular in Ganzaodeng and New Hong Kong."
+ plantname = "tieguanyin"
+ icon_state = "tieguanyin"
+
+/obj/item/reagent_containers/food/snacks/grown/konyang_tea/jaekseol
+ name = "jaekseol leaves"
+ desc = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \
+ On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general."
+ plantname = "jaekseol"
+ icon_state = "jaekseol"
diff --git a/code/modules/hydroponics/seed_datums/herbs.dm b/code/modules/hydroponics/seed_datums/herbs.dm
index b48615c5b3e..7c713497233 100644
--- a/code/modules/hydroponics/seed_datums/herbs.dm
+++ b/code/modules/hydroponics/seed_datums/herbs.dm
@@ -43,6 +43,66 @@
/obj/item/seeds/teaseed
seed_type = "tea"
+/datum/seed/sencha
+ name = "sencha"
+ seed_name = "sencha leaves"
+ display_name = "sencha plant"
+ chems = list(/singleton/reagent/nutriment/teagrounds/sencha = list(4,9))
+
+/datum/seed/sencha/setup_traits()
+ ..()
+ set_trait(TRAIT_MATURATION,3)
+ set_trait(TRAIT_PRODUCTION,3)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_POTENCY,2)
+ set_trait(TRAIT_PRODUCT_ICON,"herb")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#0E1F0E")
+ set_trait(TRAIT_PLANT_ICON,"herb")
+ set_trait(TRAIT_IDEAL_LIGHT, 6)
+
+/obj/item/seeds/sencha
+ seed_type = "sencha"
+
+/datum/seed/tieguanyin
+ name = "tieguanyin"
+ seed_name = "tieguanyin leaves"
+ display_name = "tieguanyin plant"
+ chems = list(/singleton/reagent/nutriment/teagrounds/tieguanyin = list(3,8))
+
+/datum/seed/tieguanyin/setup_traits()
+ ..()
+ set_trait(TRAIT_MATURATION,3)
+ set_trait(TRAIT_PRODUCTION,3)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_POTENCY,2)
+ set_trait(TRAIT_PRODUCT_ICON,"herb")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#5C6447")
+ set_trait(TRAIT_PLANT_ICON,"herb")
+ set_trait(TRAIT_IDEAL_LIGHT, 6)
+
+/obj/item/seeds/tieguanyin
+ seed_type = "tieguanyin"
+
+/datum/seed/jaekseol
+ name = "jaekseol"
+ seed_name = "jaekseol leaves"
+ display_name = "jaekseol plant"
+ chems = list(/singleton/reagent/nutriment/teagrounds/jaekseol = list(4,7))
+
+/datum/seed/jaekseol/setup_traits()
+ ..()
+ set_trait(TRAIT_MATURATION,3)
+ set_trait(TRAIT_PRODUCTION,3)
+ set_trait(TRAIT_YIELD, 2)
+ set_trait(TRAIT_POTENCY,2)
+ set_trait(TRAIT_PRODUCT_ICON,"herb")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#534337")
+ set_trait(TRAIT_PLANT_ICON,"herb")
+ set_trait(TRAIT_IDEAL_LIGHT, 6)
+
+/obj/item/seeds/jaekseol
+ seed_type = "jaekseol"
+
/datum/seed/coca
name = "coca"
seed_name = "coca leaf"
diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm
index 243367a5a61..b2f1fb2a1da 100644
--- a/code/modules/hydroponics/seed_storage.dm
+++ b/code/modules/hydroponics/seed_storage.dm
@@ -18,7 +18,7 @@
return FALSE
/obj/machinery/seed_storage
- name = "Seed storage"
+ name = "seed storage"
desc = "It stores, sorts, and dispenses seeds."
icon = 'icons/obj/vending.dmi'
icon_state = SEED_NOUN_SEEDS
@@ -34,12 +34,12 @@
var/list/scanner = list() // What properties we can view
/obj/machinery/seed_storage/random // This is mostly for testing, but I guess admins could spawn it
- name = "Random seed storage"
+ name = "random seed storage"
scanner = list("stats", "produce", "soil", "temperature", "light")
starting_seeds = list(/obj/item/seeds/random = 50)
/obj/machinery/seed_storage/garden
- name = "Garden seed storage"
+ name = "garden seed storage"
scanner = list("stats")
starting_seeds = list(
/obj/item/seeds/aghrasshseed = 3,
@@ -72,6 +72,7 @@
/obj/item/seeds/grassseed = 3,
/obj/item/seeds/guamiseed = 2,
/obj/item/seeds/gukheseed = 3,
+ /obj/item/seeds/jaekseol = 3,
/obj/item/seeds/lemonseed = 3,
/obj/item/seeds/limeseed = 3,
/obj/item/seeds/mossseed = 2,
@@ -98,6 +99,7 @@
/obj/item/seeds/richcoffeeseed = 3,
/obj/item/seeds/sarezhiseed = 3,
/obj/item/seeds/seaweed = 3,
+ /obj/item/seeds/ = 3,
/obj/item/seeds/serkiflowerseed = 1,
/obj/item/seeds/shandseed = 2,
/obj/item/seeds/soyaseed = 3,
@@ -107,6 +109,7 @@
/obj/item/seeds/sugartree = 2,
/obj/item/seeds/sunflowerseed = 3,
/obj/item/seeds/teaseed = 3,
+ /obj/item/seeds/tieguanyin = 3,
/obj/item/seeds/tobaccoseed = 3,
/obj/item/seeds/tomatoseed = 3,
/obj/item/seeds/towermycelium = 3,
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 8e7f474b016..7d8333d7e57 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -514,6 +514,30 @@
M.adjustToxLoss(1.5 * removed)
//Copied from tea. though i feel it should be stronger as its not diluted with water
+/singleton/reagent/nutriment/teagrounds/sencha
+ name = "Sencha Leaves"
+ description = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \
+ It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. On Konyang, it is most popular in Aoyama."
+ color = "#0E1F0E"
+ taste_description = "bitter seaweed and even more bitter grass"
+ condiment_name = "ground sencha"
+
+/singleton/reagent/nutriment/teagrounds/tieguanyin
+ name = "Tieguanyin Leaves"
+ description = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \
+ It has a nutty, peppery, and floral flavor profile. On Konyang, it is most popular in Ganzaodeng and New Hong Kong."
+ color = "#5C6447"
+ taste_description = "rough floral peppercorns"
+ condiment_name = "ground tieguanyin"
+
+/singleton/reagent/nutriment/teagrounds/jaekseol
+ name = "jaekseol Leaves"
+ description = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \
+ On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general."
+ color = "#534337"
+ taste_description = "harsh burnt toast"
+ condiment_name = "ground jaekseol"
+
/singleton/reagent/nutriment/cocagrounds
name = "Coca Grounds"
description = "Enjoy the great taste of tea."
@@ -1460,6 +1484,40 @@
metabolism = REM * 0.33
M.adjustToxLoss(1.5 * removed)
+/singleton/reagent/drink/tea/sencha
+ name = "Sencha"
+ description = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \
+ It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. \
+ On Konyang, it is most popular in Aoyama."
+ taste_description = "seaweed and bitter grass"
+ glass_name = "cup of sencha"
+ glass_desc = "A type of green tea originating from Japan on Earth, sencha is unique in that it is steamed instead of pan-roasted like most teas. \
+ It has a fresh flavor profile as a result, with flavors like seaweed, grass, or spinach greens predominant. \
+ On Konyang, it is most popular in Aoyama."
+ color = "#0E1F0E"
+
+/singleton/reagent/drink/tea/tieguanyin
+ name = "Tieguanyin"
+ description = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \
+ It has a nutty, peppery, and floral flavor profile. \
+ On Konyang, it is most popular in Ganzaodeng and New Hong Kong."
+ taste_description = "floral peppercorns"
+ glass_name = "cup of tieguanyin"
+ glass_desc = "A type of oolong tea originating from China on Earth. Like most oolongs, its flavor is somewhere between green and black tea. \
+ It has a nutty, peppery, and floral flavor profile. \
+ On Konyang, it is most popular in Ganzaodeng and New Hong Kong."
+ color = "#5C6447"
+
+/singleton/reagent/drink/tea/jaekseol
+ name = "jaekseol"
+ description = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \
+ On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general."
+ taste_description = "sweet burnt toast"
+ glass_name = "cup of jaekseol"
+ glass_desc = "A type of black tea originating from Korea on Earth. It has a relatively typical flavor for a black tea, with a sweet, toasty flavor. \
+ On Konyang, it is most popular in Suwon, although coffee is still a more popular beverage in general."
+ color = "#534337"
+
/singleton/reagent/drink/icetea
name = "Iced Tea"
description = "No relation to a certain rap artist/ actor."
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 8b3ebfb948b..f71bd534878 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -2007,6 +2007,27 @@
required_reagents = list(/singleton/reagent/nutriment/teagrounds = 1, /singleton/reagent/water = 5)
result_amount = 5
+/datum/chemical_reaction/drink/sencha
+ name = "Sencha"
+ id = "sencha"
+ result = /singleton/reagent/drink/tea/sencha
+ required_reagents = list(/singleton/reagent/nutriment/teagrounds/sencha = 1, /singleton/reagent/water = 5)
+ result_amount = 5
+
+/datum/chemical_reaction/drink/tieguanyin
+ name = "Tieguanyin"
+ id = "tieguanyin"
+ result = /singleton/reagent/drink/tea/tieguanyin
+ required_reagents = list(/singleton/reagent/nutriment/teagrounds/tieguanyin = 1, /singleton/reagent/water = 5)
+ result_amount = 5
+
+/datum/chemical_reaction/drink/jaekseol
+ name = "jaekseol"
+ id = "jaekseol"
+ result = /singleton/reagent/drink/tea/jaekseol
+ required_reagents = list(/singleton/reagent/nutriment/teagrounds/jaekseol = 1, /singleton/reagent/water = 5)
+ result_amount = 5
+
/datum/chemical_reaction/drink/cocatea
name = "Mate de Coca"
id = "cocatea"
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 6cbd8df4a18..962f78a0ddf 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -60,13 +60,13 @@
return additional_evidence
-/obj/item/reagent_containers/glass/attack_self()
+/obj/item/reagent_containers/glass/attack_self(mob/user)
..()
if(is_open_container())
- to_chat(usr, "You put the lid on \the [src].")
+ to_chat(user, "You put the lid on \the [src].")
atom_flags ^= ATOM_FLAG_OPEN_CONTAINER
else
- to_chat(usr, "You take the lid off \the [src].")
+ to_chat(user, "You take the lid off \the [src].")
atom_flags |= ATOM_FLAG_OPEN_CONTAINER
update_icon()
@@ -213,15 +213,6 @@
/obj/item/reagent_containers/glass/beaker/sulphuric/reagents_to_add = list(/singleton/reagent/acid = 60)
-/obj/item/reagent_containers/glass/beaker/teapot
- name = "teapot"
- desc = "An elegant teapot. It simply oozes class."
- icon_state = "teapot"
- item_state = "teapot"
- unacidable = TRUE
- amount_per_transfer_from_this = 10
- volume = 120
-
/obj/item/reagent_containers/glass/beaker/pitcher
name = "pitcher"
desc = "Everyone's best friend in the morning."
@@ -294,8 +285,8 @@
to_chat(user, "You drink heavily from \the [src].")
/obj/item/reagent_containers/glass/bucket/wood
- desc = "An old wooden bucket."
name = "wooden bucket"
+ desc = "An old wooden bucket."
icon = 'icons/obj/janitor.dmi'
icon_state = "woodbucket"
item_state = "woodbucket"
@@ -309,5 +300,4 @@
if(isprox(D))
to_chat(user, "This wooden bucket doesn't play well with electronics.")
return
-
..()
diff --git a/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm b/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm
index 0ed903ef425..631bb9f7261 100644
--- a/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm
+++ b/code/modules/reagents/reagent_containers/glass/newdrinkingglas.dm
@@ -129,3 +129,44 @@
icon_state = "goblet"
icon = 'icons/obj/drink_glasses/goblet.dmi'
volume = 25
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang
+ name = "yunomi"
+ desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \
+ This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \
+ This one is unglazed and the plain brownish-gray of the clay most often used on Konyang."
+ icon = 'icons/obj/item/reagent_containers/teaware.dmi'
+ icon_state = "yunomi"
+ item_state = "yunomi"
+ contained_sprite = TRUE
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/update_icon()
+ if(reagents?.total_volume)
+ var/mutable_appearance/filling = mutable_appearance(icon, "yunomi-[get_filling_state()]")
+ filling.color = reagents.get_color()
+ add_overlay(filling)
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/grey
+ desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \
+ This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \
+ This one is unglazed and a plain stone grey color."
+ icon_state = "yunomi-grey"
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/pattern
+ desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \
+ This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \
+ This one is glazed and has a simple abstract pattern."
+ icon_state = "yunomi-pattern"
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/manila
+ desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \
+ This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \
+ This one is glazed and a plain manila color."
+ icon_state = "yunomi-manila"
+
+/obj/item/reagent_containers/food/drinks/drinkingglass/newglass/konyang/nature
+ desc = "A ceramic teacup of Japanese origin, most frequently used for teas brewed at a lower temperature because of its lack of a handle. \
+ This sort of teacup is popular on Konyang, owing to the Japanese origins of some of its population. \
+ This one is glazed and depicts a nature scene, showing trees native to Konyang."
+ icon_state = "yunomi-nature"
+
diff --git a/code/modules/reagents/reagent_containers/teapot.dm b/code/modules/reagents/reagent_containers/teapot.dm
new file mode 100644
index 00000000000..acb238c0b63
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/teapot.dm
@@ -0,0 +1,75 @@
+/obj/item/reagent_containers/glass/beaker/teapot
+ name = "teapot"
+ desc = "An elegant teapot. It simply oozes class."
+ icon_state = "teapot"
+ item_state = "teapot"
+ unacidable = TRUE
+ amount_per_transfer_from_this = 10
+ volume = 120
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded
+ name = "gaiwan"
+ desc = "A lidded ceramic bowl of Chinese origin. Used to infuse a large amount of tea into a small amount of water. \
+ To pour, the lid is pinched down into the bowl with a small gap left open for the tea. Traditionally used across the Alliance."
+ icon = 'icons/obj/item/reagent_containers/teaware.dmi'
+ icon_state = "gaiwan"
+ item_state = "gaiwan"
+ contained_sprite = TRUE
+ drop_sound = 'sound/items/drop/bottle.ogg'
+ pickup_sound = 'sound/items/pickup/bottle.ogg'
+ volume = 60
+ fragile = 0
+ var/lid_type = /obj/item/teapot_lid
+ var/obj/item/teapot_lid/lid
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/Initialize()
+ . = ..()
+ lid = new lid_type()
+ update_icon()
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/update_icon()
+ if(lid)
+ icon_state = initial(icon_state) + "_lid"
+ cut_overlays()
+ else
+ ..()
+ icon_state = initial(icon_state)
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/attackby(obj/item/W, mob/user)
+ . = ..()
+ if(istype(W, lid_type) && !lid)
+ user.drop_from_inventory(W, src)
+ lid = W
+ to_chat(user, SPAN_NOTICE("You slide the lid onto \the [src]."))
+ update_icon()
+ return TRUE
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/attack_self(mob/user)
+ if(lid)
+ if(user.put_in_hands(lid))
+ lid = null
+ to_chat(user, SPAN_NOTICE("You slide off \the [src]'s lid."))
+ update_icon()
+ return TRUE
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/is_open_container()
+ return lid ? FALSE : TRUE
+
+/obj/item/reagent_containers/glass/beaker/teapot/lidded/kyusu
+ name = "kyusu"
+ desc = "A ceramic yokode kyusu - or side-handle teapot. This sort of teapot is popular on Konyang, owing to the Japanese origins of some of its population. \
+ To pour, one grasps the handle while holding the lid down with the index finger."
+ icon_state = "kyusu"
+ item_state = "kyusu"
+ lid_type = /obj/item/teapot_lid/kyusu
+
+/obj/item/teapot_lid
+ name = "gaiwan lid"
+ desc = "A lid for a gaiwan."
+ icon = 'icons/obj/item/reagent_containers/teaware.dmi'
+ icon_state = "gaiwan-lid"
+
+/obj/item/teapot_lid/kyusu
+ name = "kyusu lid"
+ desc = "A lid for a yokode kyusu."
+ icon_state = "kyusu-lid"
diff --git a/html/changelogs/mattatlas-teaware.yml b/html/changelogs/mattatlas-teaware.yml
new file mode 100644
index 00000000000..239c3107447
--- /dev/null
+++ b/html/changelogs/mattatlas-teaware.yml
@@ -0,0 +1,45 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: MattAtlas (Code), Atteria (Sprites)
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added Konyang teapots with removable lids to the loadout."
+ - rscadd: "Added Konyang teacups to the loadout."
+ - rscadd: "Added sencha, tieguanyin and jaekseol leaves, along with the relevant seeds and reagents. These leaves can also be gotten from Konyang-cha tins in the loadout."
+ - rscadd: "Added Konyang-cha tea tins to the bar backroom and the Command break room."
+ - rscadd: "Added tea trays to the Dinnerware vending machines."
diff --git a/icons/obj/item/reagent_containers/teaware.dmi b/icons/obj/item/reagent_containers/teaware.dmi
new file mode 100644
index 00000000000..6dfb23f5f96
Binary files /dev/null and b/icons/obj/item/reagent_containers/teaware.dmi differ
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 4973f956e42..858a567c0a5 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ
diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
index 83c0db7b90e..e8be5987d8a 100644
--- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
+++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
@@ -11200,7 +11200,28 @@
req_one_access = list(24,11,55)
},
/obj/structure/table/stone/marble,
-/obj/item/reagent_containers/glass/beaker/teapot,
+/obj/item/storage/box/tea{
+ pixel_x = -9;
+ pixel_y = 17
+ },
+/obj/item/storage/box/tea{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/storage/box/tea/jaekseol{
+ pixel_y = 17
+ },
+/obj/item/storage/box/tea/jaekseol{
+ pixel_y = 9
+ },
+/obj/item/storage/box/tea/tieguanyin{
+ pixel_x = 10;
+ pixel_y = 18
+ },
+/obj/item/storage/box/tea/tieguanyin{
+ pixel_x = 10;
+ pixel_y = 9
+ },
/turf/simulated/floor/tiled/dark/full,
/area/horizon/bar)
"flS" = (
@@ -43424,6 +43445,7 @@
/obj/machinery/light{
dir = 1
},
+/obj/item/reagent_containers/glass/beaker/teapot,
/turf/simulated/floor/tiled/dark/full,
/area/horizon/bar)
"uwP" = (
diff --git a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
index 9bea6fce71a..9e89ab11959 100644
--- a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
+++ b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm
@@ -30014,6 +30014,20 @@
dir = 5
},
/obj/structure/table/stone/marble,
+/obj/item/storage/box/tea{
+ pixel_x = -9;
+ pixel_y = 8
+ },
+/obj/item/storage/box/tea/jaekseol{
+ pixel_y = 8
+ },
+/obj/item/storage/box/tea/tieguanyin{
+ pixel_x = 10;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/glass/beaker/teapot/lidded{
+ pixel_y = -8
+ },
/turf/simulated/floor/marble/dark,
/area/bridge/minibar)
"vfv" = (