diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 1635f7dabfb..e61a0a8ad49 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -112,7 +112,7 @@
max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class
max_w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_TINY
- can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora,/obj/item/weapon/reagent_containers/honeycomb)
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/honeycomb)
resistance_flags = FLAMMABLE
////////
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index c614aa423b3..00d2e099a1c 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -368,6 +368,7 @@
seed.genes += disk.gene.Copy()
if(istype(disk.gene, /datum/plant_gene/reagent))
seed.reagents_from_genes()
+ disk.gene.apply_vars(seed)
repaint_seed()
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index 3f89618c09c..4581f676feb 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -154,3 +154,15 @@
playsound(src, 'sound/effects/fuse.ogg', seed.potency, 0)
reagents.chem_temp = 1000 //Sets off the black powder
reagents.handle_reactions()
+
+// Lavaland cactus
+
+/obj/item/seeds/lavaland/cactus
+ name = "pack of fruiting cactus seeds"
+ desc = "These seeds grow into fruiting cacti."
+ icon_state = "seed-cactus"
+ species = "cactus"
+ plantname = "Fruiting Cactus"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
+ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
+ growthstages = 2
\ No newline at end of file
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index fc34fbad835..7b52562ff03 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -308,3 +308,66 @@
if(.)
investigate_log("was planted by [key_name(user)] at [COORD(user)]", INVESTIGATE_BOTANY)
+//// LAVALAND MUSHROOMS ////
+
+// Bracket (Shaving mushroom)
+
+/obj/item/seeds/lavaland
+ name = "lavaland seeds"
+ desc = "You should never see this."
+ lifespan = 50
+ endurance = 25
+ maturation = 7
+ production = 4
+ yield = 4
+ potency = 15
+ growthstages = 3
+ rarity = 20
+ reagents_add = list("nutriment" = 0.1)
+ resistance_flags = FIRE_PROOF
+
+/obj/item/seeds/lavaland/polypore
+ name = "pack of polypore mycelium"
+ desc = "This mycelium grows into bracket mushrooms, also known as polypores. Woody and firm, shaft miners often use them for makeshift crafts."
+ icon_state = "mycelium-polypore"
+ species = "polypore"
+ plantname = "Polypore Mushrooms"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+
+// Porcini (Leafy mushroom)
+
+/obj/item/seeds/lavaland/porcini
+ name = "pack of porcini mycelium"
+ desc = "This mycelium grows into Boletus edulus, also known as porcini. Native to the late Earth, but discovered on Lavaland. Has culinary, medicinal and relaxant effects."
+ icon_state = "mycelium-porcini"
+ species = "porcini"
+ plantname = "Porcini Mushrooms"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+
+// Inocybe (Mushroom caps)
+
+/obj/item/seeds/lavaland/inocybe
+ name = "pack of inocybe mycelium"
+ desc = "This mycelium grows into an inocybe mushroom, a species of Lavaland origin with hallucinatory and toxic effects."
+ icon_state = "mycelium-inocybe"
+ species = "inocybe"
+ plantname = "Inocybe Mushrooms"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+
+// Embershroom (Mushroom stem)
+
+/obj/item/seeds/lavaland/ember
+ name = "pack of embershroom mycelium"
+ desc = "This mycelium grows into embershrooms, a species of bioluminescent mushrooms native to Lavaland."
+ icon_state = "mycelium-ember"
+ species = "ember"
+ plantname = "Embershroom Mushrooms"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
\ No newline at end of file
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 9fc6b27d94a..2e011565c07 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -601,9 +601,10 @@
// why, just why
if(S.has_reagent("napalm", 1))
- adjustHealth(-round(S.get_reagent_amount("napalm") * 6))
- adjustToxic(round(S.get_reagent_amount("napalm") * 7))
- adjustWeeds(-rand(5,9))
+ if(!(myseed.resistance_flags & FIRE_PROOF))
+ adjustHealth(-round(S.get_reagent_amount("napalm") * 6))
+ adjustToxic(round(S.get_reagent_amount("napalm") * 7))
+ adjustWeeds(-rand(5,9))
//Weed Spray
if(S.has_reagent("weedkiller", 1))
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index 0842d9a7bbb..5b6c91bccd7 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -10,8 +10,8 @@
/datum/plant_gene/proc/Copy()
return new type
-
-
+/datum/plant_gene/proc/apply_vars(obj/item/seeds/S) // currently used for fire resist, can prob. be further refactored
+ return
// Core plant genes store 5 main variables: lifespan, endurance, production, yield, potency
/datum/plant_gene/core
@@ -410,6 +410,17 @@
S.start()
G.reagents.clear_reagents()
+/datum/plant_gene/trait/fire_resistance // Lavaland
+ name = "Fire Resistance"
+
+/datum/plant_gene/trait/fire_resistance/apply_vars(obj/item/seeds/S)
+ if(!(S.resistance_flags & FIRE_PROOF))
+ S.resistance_flags |= FIRE_PROOF
+
+/datum/plant_gene/trait/fire_resistance/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc)
+ if(!(G.resistance_flags & FIRE_PROOF))
+ G.resistance_flags |= FIRE_PROOF
+
/datum/plant_gene/trait/plant_type // Parent type
name = "you shouldn't see this"
trait_id = "plant_type"
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index e426bb368f0..1551adc2181 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -8,7 +8,7 @@
var/harvested_name = "shortened mushrooms"
var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
var/needs_sharp_harvest = TRUE
- var/harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings
+ var/harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings
var/harvest_amount_low = 1
var/harvest_amount_high = 3
var/harvest_time = 60
@@ -80,7 +80,7 @@
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
harvested_name = "leafless mushrooms"
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
- harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf
+ harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
needs_sharp_harvest = FALSE
harvest_amount_high = 4
harvest_time = 20
@@ -96,7 +96,7 @@
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
harvested_name = "small mushrooms"
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
- harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap
+ harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
harvest_amount_high = 4
harvest_time = 50
harvest_message_low = "You slice the cap off a mushroom."
@@ -112,7 +112,7 @@
luminosity = 1
harvested_name = "tiny mushrooms"
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
- harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem
+ harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
harvest_amount_high = 4
harvest_time = 40
harvest_message_low = "You pick and slice the cap off a mushroom, leaving the stem."
@@ -127,7 +127,7 @@
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
harvested_name = "cacti"
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
- harvest = /obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit
+ harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
needs_sharp_harvest = FALSE
harvest_amount_high = 2
harvest_time = 10
@@ -150,7 +150,7 @@
H.visible_message("[H] steps on a cactus!", \
"You step on a cactus!")
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora
name = "mushroom shavings"
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
icon = 'icons/obj/lavaland/ash_flora.dmi'
@@ -160,43 +160,46 @@
resistance_flags = FLAMMABLE
obj_integrity = 100
max_integrity = 100
+ seed = /obj/item/seeds/lavaland/polypore
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/New()
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/New()
..()
pixel_x = rand(-4, 4)
pixel_y = rand(-4, 4)
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings //for actual crafting
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
-
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_leaf
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
name = "mushroom leaf"
desc = "A leaf, from a mushroom."
list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2)
icon_state = "mushroom_leaf"
+ seed = /obj/item/seeds/lavaland/porcini
-
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_cap
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
name = "mushroom cap"
desc = "The cap of a large mushroom."
list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2)
icon_state = "mushroom_cap"
+ seed = /obj/item/seeds/lavaland/inocybe
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/mushroom_stem
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
name = "mushroom stem"
desc = "A long mushroom stem. It's slightly glowing."
list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1)
icon_state = "mushroom_stem"
luminosity = 1
+ seed = /obj/item/seeds/lavaland/ember
-/obj/item/weapon/reagent_containers/food/snacks/ash_flora/cactus_fruit
+/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
name = "cactus fruit"
list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4)
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
icon_state = "cactus_fruit"
+ seed = /obj/item/seeds/lavaland/cactus
/obj/item/mushroom_bowl
@@ -213,6 +216,6 @@
/datum/crafting_recipe/mushroom_bowl
name = "Mushroom Bowl"
result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
- reqs = list(/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings = 5)
+ reqs = list(/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
time = 30
category = CAT_PRIMAL
diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi
index ac8adc5a069..7207733b14f 100644
Binary files a/icons/obj/hydroponics/growing_fruits.dmi and b/icons/obj/hydroponics/growing_fruits.dmi differ
diff --git a/icons/obj/hydroponics/growing_mushrooms.dmi b/icons/obj/hydroponics/growing_mushrooms.dmi
index 7a0eedbdae7..3a10c0dab84 100644
Binary files a/icons/obj/hydroponics/growing_mushrooms.dmi and b/icons/obj/hydroponics/growing_mushrooms.dmi differ
diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi
index 18bd0cc4e94..8ce90d87d47 100644
Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ
diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi
index b9ebfbfb662..9a9382ce1ea 100644
Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ