diff --git a/code/game/content/factions/fey_forest/fey_flora.dm b/code/game/content/factions/fey_forest/fey_flora.dm
index 05979d5bb5a..76d076c82ef 100644
--- a/code/game/content/factions/fey_forest/fey_flora.dm
+++ b/code/game/content/factions/fey_forest/fey_flora.dm
@@ -130,6 +130,75 @@
desc = "A cluster of bushes and grass."
density = 0
+// Colfer change, these randomizations are for grass buildings in tile_types.dm
+/obj/structure/flora/grass/fey/bush/florarandom
+ icon_state = "busha1"
+
+/obj/structure/flora/grass/fey/bush/florarandom/Initialize(mapload)
+ . = ..()
+ icon_state = "busha[rand(1, 3)]"
+
+/obj/structure/flora/grass/fey/bush/bushrandom
+ icon_state = "bushb1"
+
+/obj/structure/flora/grass/fey/bush/bushrandom/Initialize(mapload)
+ . = ..()
+ icon_state = "bushb[rand(1, 3)]"
+
+/obj/structure/flora/grass/fey/bush/lowbushrandom
+ icon_state = "bushc1"
+
+/obj/structure/flora/grass/fey/bush/lowbushrandom/Initialize(mapload)
+ . = ..()
+ icon_state = "bushc[rand(1, 3)]"
+
+/obj/structure/flora/grass/fey/bush/grassrandom
+ icon_state = "grassa1"
+
+/obj/structure/flora/grass/fey/bush/grassrandom/Initialize(mapload)
+ . = ..()
+ icon_state = "grassa[rand(1, 5)]"
+
+/obj/structure/flora/grass/fey/bush/sparcegrassrandom
+ icon_state = "grassb1"
+
+/obj/structure/flora/grass/fey/bush/sparcegrassrandom/Initialize(mapload)
+ . = ..()
+ icon_state = "grassb[rand(1, 2)]"
+
+/obj/structure/flora/fey/large/randombush
+ icon_state = "bush1"
+ pixel_x = -16
+
+/obj/structure/flora/fey/large/randombush/Initialize(mapload)
+ . = ..()
+ icon_state = "bush[rand(1, 3)]"
+// This makes it so you can tear them apart
+/obj/structure/flora/grass/fey/bush/attackby(obj/item/W as obj, mob/user as mob)
+ // Dismantle
+ if(user.a_intent == INTENT_HARM) // who said you CAN'T touch grass (violently)?
+ return ..()
+ if(istype(W, /obj/item/shovel))
+ playsound(src.loc, W.tool_sound, 50, 1)
+ if(do_after(user, 10, src))
+ user.visible_message("\The [user] digs up \the [src].", "You dig up \the [src].")
+ new /obj/item/stack/tile/grass(get_turf(usr), 1)
+ qdel(src)
+ return
+// Also have to do the large ones too, but seperately
+/obj/structure/flora/fey/large/attackby(obj/item/W as obj, mob/user as mob)
+ // Dismantle
+ if(user.a_intent == INTENT_HARM) // who said you CAN'T touch grass (violently)?
+ return ..()
+ if(istype(W, /obj/item/shovel))
+ playsound(src.loc, W.tool_sound, 50, 1)
+ if(do_after(user, 10, src))
+ user.visible_message("\The [user] digs up \the [src].", "You dig up \the [src].")
+ new /obj/item/stack/tile/grass(get_turf(usr), 1)
+ qdel(src)
+ return
+
+// Still colfer here, I don't want to touch these down here because I don't know if maps use these
/obj/structure/flora/grass/fey/bush/bush1
icon_state = "busha1"
@@ -195,6 +264,7 @@
name = "Large Flora"
desc = "Giganticism at its finest. This part of the endless forest has been alive for centuries, if not thousands of years."
density = 0
+ pixel_x = -16
/obj/structure/flora/fey/large/bush1
icon_state = "bush1"
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index b0b1e5db320..f0ca7d142af 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -59,6 +59,13 @@
. += create_stack_recipe_datum(name = "lush grass", product = /obj/structure/flora/ausbushes/grassybush, cost = 1)
. += create_stack_recipe_datum(name = "grass", product = /obj/structure/flora/ausbushes/fullgrass, cost = 1)
. += create_stack_recipe_datum(name = "sparse grass", product = /obj/structure/flora/ausbushes/sparsegrass, cost = 1)
+ . += create_stack_recipe_datum(name = "soil bed", product = /obj/machinery/portable_atmospherics/hydroponics/soil/grassy, cost = 15)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Fey Foliage", product = /obj/structure/flora/grass/fey/bush/florarandom, cost = 1)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Fey Bush", product = /obj/structure/flora/grass/fey/bush/bushrandom, cost = 1)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Fey Low Bush", product = /obj/structure/flora/grass/fey/bush/lowbushrandom, cost = 1)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Big Fey Grass", product = /obj/structure/flora/fey/large/randombush, cost = 1)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Fey Grass", product = /obj/structure/flora/grass/fey/bush/grassrandom, cost = 1)
+ . += create_stack_recipe_datum(category = "fey flora", name = "Fey Sparce Grass", product = /obj/structure/flora/grass/fey/bush/sparcegrassrandom, cost = 1)
/*
* Wood
diff --git a/code/global.dm b/code/global.dm
index 4e794d8c827..81f893bb6e0 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -131,46 +131,81 @@ var/list/eventdestinations = list() // List of scatter landmarks for event porta
var/global/list/acceptable_fruit_types = list(
"ambrosia",
+ "amanita",
+ "ambrosiadeus",
+ "ambrosiagaia",
"apple",
+ "goldapple",
"banana",
"berries",
+ "bloodrose",
+ "bloodtomato",
+ "bentars",
"cabbage",
+ "carpet",
"carrot",
"celery",
"cherry",
"chili",
+ "coconut",
"cocoa",
"corn",
+ "cersut",
"durian",
+ "disho",
+ "brickdisho",
+ "thatchdisho",
"eggplant",
+ "egg-plant",
"grapes",
"grass",
+ "glowshroom",
+ "glowberries",
"greengrapes",
"harebells",
- "jahtak",
+ "icechili",
+ "ironwood",
+ "juhtak",
+ "jurlmah",
"lavender",
"lemon",
"lettuce",
"lime",
+ "libertycap",
+ "mtear",
+ "nettle",
"onion",
"orange",
+ "peas",
"peanut",
"poppies",
+ "pokalea",
"potato",
"pumpkin",
+ "plastic",
+ "plumphelmet",
"pyrrhlea",
"rice",
"rose",
+ "reishi",
"rhubarb",
+ "shimash",
+ "shand",
"soybean",
+ "siflettuce",
"spineapple",
"sugarcane",
"sunflowers",
+ "taro",
+ "telriis",
"tomato",
+ "tobacco",
+ "towercap",
"vanilla",
"watermelon",
"wheat",
"whitebeet",
+ "whitewabback",
)
var/global/list/acceptable_nectar_types= list(
diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm
index 12c44948964..71a20cc2f00 100644
--- a/code/modules/hydroponics/trays/tray_soil.dm
+++ b/code/modules/hydroponics/trays/tray_soil.dm
@@ -67,3 +67,7 @@
/obj/machinery/portable_atmospherics/hydroponics/soil/ashlander
name = "ashen soil"
hostile_soil = 1
+
+/obj/machinery/portable_atmospherics/hydroponics/soil/grassy
+ waterlevel = 40 //Soil made out of grass isn't great, good for maybe 1 harvest
+ nutrilevel = 4