diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 4209d22c90..aaf5454458 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -372,18 +372,6 @@
volume = 30
spillable = TRUE
-///Lavaland bowls and bottles///
-
-/obj/item/reagent_containers/food/drinks/mushroom_bowl
- name = "mushroom bowl"
- desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
- icon = 'icons/obj/lavaland/ash_flora.dmi'
- icon_state = "mushroom_bowl"
- w_class = WEIGHT_CLASS_SMALL
- resistance_flags = NONE
- isGlass = FALSE
-
-
//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/grenade/ghettobomb.dm
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index 4c5deddc5d..be12f87fe8 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -191,20 +191,54 @@
icon_state = "cactus_fruit"
seed = /obj/item/seeds/lavaland/cactus
-
-/obj/item/mushroom_bowl
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl
name = "mushroom bowl"
desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "mushroom_bowl"
- w_class = WEIGHT_CLASS_SMALL
- resistance_flags = FLAMMABLE
- max_integrity = 200
+
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon()
+ cut_overlays()
+ if(reagents && reagents.total_volume)
+ var/mutable_appearance/filling = mutable_appearance('icons/obj/lavaland/ash_flora.dmi', "fullbowl")
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ add_overlay(filling)
+ else
+ icon_state = "mushroom_bowl"
+
+/obj/item/reagent_containers/glass/bowl/mushroom_bowl/attackby(obj/item/I,mob/user, params)
+ if(istype(I, /obj/item/reagent_containers/food/snacks))
+ var/obj/item/reagent_containers/food/snacks/S = I
+ if(I.w_class > WEIGHT_CLASS_SMALL)
+ to_chat(user, "The ingredient is too big for [src]!")
+ else if(contents.len >= 20)
+ to_chat(user, "You can't add more ingredients to [src]!")
+ else
+ if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad?
+ var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup(get_turf(src))
+ A.initialize_custom_food(src, S, user)
+ else
+ var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad(get_turf(src))
+ A.initialize_custom_food(src, S, user)
+ else
+ . = ..()
//what you can craft with these things
/datum/crafting_recipe/mushroom_bowl
name = "Mushroom Bowl"
- result = /obj/item/reagent_containers/food/drinks/mushroom_bowl
+ result = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
time = 30
category = CAT_PRIMAL
+
+/obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad
+ desc = "Very ashy."
+ trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
+ icon = 'icons/obj/lavaland/ash_flora.dmi'
+ icon_state = "mushroom_bowl"
+
+/obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup
+ desc = "A bowl with ash and... stuff in it."
+ trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
+ icon = 'icons/obj/lavaland/ash_flora.dmi'
+ icon_state = "mushroom_soup"
diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi
index 9a9382ce1e..c8c128a0ab 100644
Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ