diff --git a/modular_ss220/food/code/drinks.dm b/modular_ss220/food/code/drinks.dm
index 94c440c790e2..80eff331c1b0 100644
--- a/modular_ss220/food/code/drinks.dm
+++ b/modular_ss220/food/code/drinks.dm
@@ -4,13 +4,15 @@
icon = initial(icon)
return
var/datum/reagent/reagent = reagents.get_master_reagent()
- if(!istype(reagent, /datum/reagent/consumable/ethanol))
+ if(!istype(reagent, /datum/reagent/consumable))
icon = initial(icon)
- return
- var/datum/reagent/consumable/ethanol/booze = reagent
- icon = booze.drinking_glass_icon
+ else
+ var/datum/reagent/consumable/drink = reagent
+ icon = drink.drinking_glass_icon
+ if(!reagent.drink_icon)
+ icon_state = "glass_empty"
-/datum/reagent/consumable/ethanol
+/datum/reagent/consumable
var/drinking_glass_icon = 'icons/obj/drinks.dmi'
/obj/machinery/chem_dispenser/beer/Initialize(mapload)
@@ -584,3 +586,78 @@
required_reagents = list("trinary" = 1, "codelibre" = 1, "rewriter" = 1, "irishempbomb" = 1, "synthanol" = 1 )
result_amount = 5
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
+
+/datum/reagent/consumable/ethanol/kvass
+ name = "Alcoholic Kvass"
+ id = "alco_kvass"
+ description = "Алкогольный напиток, полученный путём ферментации хлеба"
+ color = "#775a1c"
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ alcohol_perc = 0.2
+ drink_icon = "alco_kvass"
+ drinking_glass_icon = 'modular_ss220/food/icons/drinks.dmi'
+ drink_name = "Стакан алкогольного кваса"
+ drink_desc = "Освежающий горьковато-сладкий напиток прямиком из СССП"
+ taste_description = "квас"
+
+/datum/reagent/consumable/drink/kvass
+ name = "Kvass"
+ id = "kvass"
+ description = "Квас без алкоголя. Что отличает его от обычной газировки?"
+ color = "#574113"
+ adj_sleepy = -4 SECONDS
+ drink_icon = "kvass"
+ drinking_glass_icon = 'modular_ss220/food/icons/drinks.dmi'
+ drink_name = "Стакан безалкогольного кваса"
+ drink_desc = "Квас без алкоголя. Освежает, но по вкусу как-то... блекло?"
+ harmless = FALSE
+ taste_description = "скучный квас"
+
+/datum/chemical_reaction/kvass
+ name = "Kvass"
+ id = "kvass"
+ result = "kvass"
+ required_reagents = list("alco_kvass" = 5, "antihol" = 1)
+ result_amount = 5
+ mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
+
+// fermenting_barrel don't have behavior for non-plant food, so we need some proc for bread
+/obj/structure/fermenting_barrel/proc/make_drink(obj/item/I, drink_id, amount)
+ reagents.add_reagent(drink_id, amount)
+ qdel(I)
+ playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
+
+/obj/structure/fermenting_barrel/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/food/snacks/sliceable/bread))
+ if(!user.drop_item())
+ to_chat(user, "[I] is stuck to your hand!")
+ return FALSE
+ I.forceMove(src)
+ to_chat(user, "You place [I] into [src] to start the fermentation process.")
+ addtimer(CALLBACK(src, PROC_REF(make_drink), I, "alco_kvass", 35), rand(80, 120) * speed_multiplier)
+ return
+ return ..()
+
+/obj/item/reagent_containers/drinks/cans/kvass
+ name = "Квас"
+ desc = "Банка кваса. На этикетке написано \"Сделано в СССП\""
+ icon_state = "kvass_can"
+ icon = 'modular_ss220/food/icons/drinks.dmi'
+ list_reagents = list("kvass" = 50)
+
+/obj/machinery/chem_dispenser/soda/Initialize(mapload)
+ dispensable_reagents += "kvass"
+ return ..()
+
+/obj/item/handheld_chem_dispenser/soda/Initialize(mapload)
+ dispensable_reagents += "kvass"
+ return ..()
+
+/obj/machinery/economy/vending/boozeomat/Initialize(mapload)
+ products += list(/obj/item/reagent_containers/drinks/cans/kvass = 8)
+ return ..()
+
+/obj/machinery/economy/vending/cola/Initialize(mapload)
+ products += list(/obj/item/reagent_containers/drinks/cans/kvass = 10)
+ prices += list(/obj/item/reagent_containers/drinks/cans/kvass = 50)
+ return ..()
diff --git a/modular_ss220/food/icons/drinks.dmi b/modular_ss220/food/icons/drinks.dmi
index b9a162df1e1b..5b0b7c51eabd 100644
Binary files a/modular_ss220/food/icons/drinks.dmi and b/modular_ss220/food/icons/drinks.dmi differ