diff --git a/code/datums/hydroponics/plants_alien.dm b/code/datums/hydroponics/plants_alien.dm
index c12323c3..97f6c13a 100644
--- a/code/datums/hydroponics/plants_alien.dm
+++ b/code/datums/hydroponics/plants_alien.dm
@@ -97,6 +97,47 @@
endurance = 20
assoc_reagents = list("omnizine")
+/datum/plant/artifact/cat
+ name = "Synthetic Cat"
+ special_icon = "cat"
+ crop = /obj/critter/cat/synth
+ unique_seed = /obj/item/seed/alien/cat
+ starthealth = 90 // 9 lives
+ growtime = 100
+ harvtime = 150
+ endurance = 30
+ special_proc = 1
+ attacked_proc = 1
+ harvestable = 0
+
+ HYPspecial_proc(var/obj/machinery/plantpot/POT)
+ ..()
+ if (.) return
+ var/datum/plant/P = POT.current
+ var/datum/plantgenes/DNA = POT.plantgenes
+
+ if (POT.growth > (P.growtime + DNA.growtime) && prob(16))
+ playsound(get_turf(POT),'sound/effects/cat.ogg',30,1,-1)
+ POT.visible_message("[POT.name] meows!")
+
+ if (POT.growth > (P.harvtime + DNA.harvtime + 10))
+ var/obj/critter/cat/synth/C = new(POT.loc)
+ C.health = POT.health
+ POT.visible_message("The synthcat climbs out of the tray!")
+ POT.HYPdestroyplant()
+ return
+
+ HYPattacked_proc(var/obj/machinery/plantpot/POT,var/mob/user)
+ ..()
+ if (.) return
+ var/datum/plant/P = POT.current
+ var/datum/plantgenes/DNA = POT.plantgenes
+
+ if (POT.growth < (P.growtime + DNA.growtime)) return 0
+
+ playsound(get_turf(POT),'sound/effects/cat_hiss.ogg',30,1,-1)
+ POT.visible_message("[POT.name] hisses!")
+
// Weird Shit
/datum/plant/maneater
diff --git a/code/datums/hydroponics/plants_flower.dm b/code/datums/hydroponics/plants_flower.dm
new file mode 100644
index 00000000..c74a97ed
--- /dev/null
+++ b/code/datums/hydroponics/plants_flower.dm
@@ -0,0 +1,15 @@
+/datum/plant/rose
+ name = "Rose"
+ category = "Flower" //????
+ seedcolor = "#AA2222"
+ crop = /obj/item/plant/flower/rose
+ starthealth = 20
+ growtime = 30
+ harvtime = 100
+ cropsize = 5
+ harvests = 1
+ endurance = 0
+ nectarlevel = 12
+ genome = 7
+ mutations = list()
+ commuts = list(/datum/plant_gene_strain/immunity_radiation,/datum/plant_gene_strain/damage_res/bad)
\ No newline at end of file
diff --git a/code/datums/hydroponics/plants_fruit.dm b/code/datums/hydroponics/plants_fruit.dm
index 4e260f53..13b90ff2 100644
--- a/code/datums/hydroponics/plants_fruit.dm
+++ b/code/datums/hydroponics/plants_fruit.dm
@@ -231,4 +231,36 @@
endurance = 1
genome = 18
nectarlevel = 10
- assoc_reagents = list("juice_strawberry")
\ No newline at end of file
+ assoc_reagents = list("juice_strawberry")
+
+/datum/plant/pear
+ name = "Pear"
+ category = "Fruit"
+ seedcolor = "#3FB929"
+ crop = /obj/item/reagent_containers/food/snacks/plant/pear
+ starthealth = 40
+ growtime = 200
+ harvtime = 260
+ cropsize = 3
+ harvests = 10
+ endurance = 5
+ genome = 19
+ nectarlevel = 10
+ commuts = list(/datum/plant_gene_strain/quality)
+
+/datum/plant/peach
+ name = "Peach"
+ category = "Fruit"
+ seedcolor = "#DEBA5F"
+ crop = /obj/item/reagent_containers/food/snacks/plant/peach
+ starthealth = 40
+ growtime = 200
+ harvtime = 260
+ cropsize = 3
+ harvests = 10
+ endurance = 5
+ genome = 19
+ nectarlevel = 10
+ assoc_reagents = list("juice_peach")
+ commuts = list(/datum/plant_gene_strain/quality)
+
diff --git a/code/obj/critter/pets_small_animals.dm b/code/obj/critter/pets_small_animals.dm
index 4cc84fe4..60abc0d0 100644
--- a/code/obj/critter/pets_small_animals.dm
+++ b/code/obj/critter/pets_small_animals.dm
@@ -375,6 +375,17 @@ var/list/cat_names = list("Gary", "Mittens", "Mr. Jingles", "Rex", "Jasmine", "L
spawn(10)
src.attacking = 0
+/obj/critter/cat/synth
+ icon_state = "catsynth"
+ cattype = "synth"
+ randomize_cat = 0
+ generic = 0
+ desc = "Although this cat is vegan, it's still a carnivore."
+
+ New()
+ name = pick(cat_names)
+ ..()
+
/obj/critter/dog/george
name = "George"
desc = "Good dog."
diff --git a/code/obj/item/food/plants.dm b/code/obj/item/food/plants.dm
index a95effd2..426f43b1 100644
--- a/code/obj/item/food/plants.dm
+++ b/code/obj/item/food/plants.dm
@@ -414,6 +414,33 @@
food_color = "#FF2244"
plant_reagent = "juice_strawberry"
+/obj/item/reagent_containers/food/snacks/plant/pear/
+ name = "pear"
+ desc = "Whether or not you like the taste, its freshness is appearant."
+ icon_state = "pear"
+ planttype = /datum/plant/pear
+ amount = 1
+ heal_amt = 2
+ brewable = 1
+ brew_result = "cider" // pear cider is delicious, fuck you.
+ food_color = "#3FB929"
+
+/obj/item/reagent_containers/food/snacks/plant/peach/
+ name = "peach"
+ desc = "Feelin' peachy now, but after you eat it it's the pits."
+ icon_state = "peach"
+ planttype = /datum/plant/peach
+ amount = 1
+ heal_amt = 2
+ food_color = "#DEBA5F"
+
+ New()
+ ..()
+ if(prob(10)) // For Sartorius
+ src.desc = pick("These peaches do not come from a can, they were not put there by a man.",
+ "Millions of peaches, peaches for me. Millions of peaches, peaches for free.",
+ "If I had my little way, I'd each peaches every day.", "Nature's candy in my hand, or a can, or a pie")
+
/obj/item/reagent_containers/food/snacks/plant/apple/
name = "apple"
desc = "Implied by folklore to repel medical staff."
diff --git a/code/obj/item/plants.dm b/code/obj/item/plants.dm
index 09740650..067c5651 100644
--- a/code/obj/item/plants.dm
+++ b/code/obj/item/plants.dm
@@ -198,3 +198,45 @@
brew_result = "catdrugs"
module_research = list("vice" = 3)
module_research_type = /obj/item/plant/herb/cannabis
+
+// FLOWERS //
+
+/obj/item/plant/flower
+ // PLACEHOLDER FOR FLOURISH'S PLANT PLOT STUFF
+
+/obj/item/plant/flower/rose
+ name = "rose"
+ desc = "By any other name, would smell just as sweet. This one likes to be called "
+ icon_state = "rose"
+ var/thorned = 1
+ var/list/names = list("Emma", "Olivia", "Ava", "Isabella", "Sophia", "Charlotte", "Mia", "Amelia",
+ "Harper", "Evelyn", "Abigail", "Emily", "Elizabeth", "Mila", "Dakota", "Avery",
+ "Sofia", "Camila", "Aria", "Scarlett", "Liam", "Noah", "William", "James",
+ "Oliver", "Benjamin", "Elijah", "Lucas", "Mason", "Logan", "Alexander", "Ethan",
+ "Jacob", "Michael", "Daniel", "Henry", "Jackson", "Sebastian", "Aiden", "Matthew")
+
+ New()
+ ..()
+ desc = desc + pick(names) + "."
+
+ attack_hand(mob/user as mob)
+ var/mob/living/carbon/human/H = user
+ if(src.thorned)
+ if(istype(H))
+ if(H.gloves)
+ ..()
+ return
+ boutput(user, "You prick yourself on [src]'s thorns trying to pick it up!")
+ random_brute_damage(user, 3)
+ take_bleeding_damage(user,null,3,DAMAGE_STAB)
+ else
+ ..()
+
+ attackby(obj/item/W as obj, mob/user as mob)
+ if (istype(W, /obj/item/wirecutters/) && src.thorned)
+ boutput(user, "You snip off [src]'s thorns.")
+ src.thorned = 0
+ src.desc += " Its thorns have been snipped off."
+ return
+ ..()
+ return
\ No newline at end of file
diff --git a/code/obj/item/seeds.dm b/code/obj/item/seeds.dm
index 801093bf..5215c778 100644
--- a/code/obj/item/seeds.dm
+++ b/code/obj/item/seeds.dm
@@ -127,12 +127,13 @@
New()
if (src.type == /obj/item/seed/alien)
// let's make the base seed randomise itself for fun and also for functionality
- switch(rand(1,5))
+ switch(rand(1,6))
if (1) src.planttype = HY_get_species_from_path(/datum/plant/artifact/pukeplant)
if (2) src.planttype = HY_get_species_from_path(/datum/plant/artifact/dripper)
if (3) src.planttype = HY_get_species_from_path(/datum/plant/artifact/rocks)
if (4) src.planttype = HY_get_species_from_path(/datum/plant/artifact/litelotus)
if (5) src.planttype = HY_get_species_from_path(/datum/plant/artifact/peeker)
+ if (6) src.planttype = HY_get_species_from_path(/datum/plant/artifact/cat)
..()
/obj/item/seed/alien/pukeplant
@@ -159,3 +160,8 @@
New()
..()
src.planttype = HY_get_species_from_path(/datum/plant/artifact/peeker)
+
+/obj/item/seed/alien/cat
+ New()
+ ..()
+ src.planttype = HY_get_species_from_path(/datum/plant/artifact/cat)
\ No newline at end of file
diff --git a/code/obj/submachine/seed.dm b/code/obj/submachine/seed.dm
index a5c9bee1..6787acdf 100644
--- a/code/obj/submachine/seed.dm
+++ b/code/obj/submachine/seed.dm
@@ -999,7 +999,7 @@
if(href_list["category"])
if (src.category) src.category = null
else
- var/filter = input(usr, "Filter by which category?", "[src.name]", 0) in list("Fruit","Vegetable","Herb","Miscellaneous")
+ var/filter = input(usr, "Filter by which category?", "[src.name]", 0) in list("Fruit","Vegetable","Herb","Flower","Miscellaneous")
if(!filter) return
src.category = filter
src.updateUsrDialog()
diff --git a/goonstation.dme b/goonstation.dme
index c49da5f1..79eb7eff 100644
--- a/goonstation.dme
+++ b/goonstation.dme
@@ -460,6 +460,7 @@ var/datum/preMapLoad/preMapLoad = new
#include "code\datums\hydroponics\plants.dm"
#include "code\datums\hydroponics\plants_alien.dm"
#include "code\datums\hydroponics\plants_crop.dm"
+#include "code\datums\hydroponics\plants_flower.dm"
#include "code\datums\hydroponics\plants_fruit.dm"
#include "code\datums\hydroponics\plants_herb.dm"
#include "code\datums\hydroponics\plants_veg.dm"
@@ -1199,7 +1200,6 @@ var/datum/preMapLoad/preMapLoad = new
#include "libs\Base64\hexadecimal.dm"
#include "libs\Base64\text.dm"
#include "maps\_disposaltester.dm"
-#include "maps\adv_test.dmm"
#include "maps\config\map.dm"
#include "maps\placeholders\map_placeholders.dm"
// END_INCLUDE
diff --git a/icons/misc/critter.dmi b/icons/misc/critter.dmi
index fac7e0ea..19b3ea18 100644
Binary files a/icons/misc/critter.dmi and b/icons/misc/critter.dmi differ
diff --git a/icons/obj/foodNdrink/food_produce.dmi b/icons/obj/foodNdrink/food_produce.dmi
index f11585aa..89b4e975 100644
Binary files a/icons/obj/foodNdrink/food_produce.dmi and b/icons/obj/foodNdrink/food_produce.dmi differ
diff --git a/icons/obj/hydroponics/hydro_alien.dmi b/icons/obj/hydroponics/hydro_alien.dmi
index 9915b54b..7f19c1ad 100644
Binary files a/icons/obj/hydroponics/hydro_alien.dmi and b/icons/obj/hydroponics/hydro_alien.dmi differ
diff --git a/icons/obj/hydroponics/hydromisc.dmi b/icons/obj/hydroponics/hydromisc.dmi
index 03d618af..866e7b76 100644
Binary files a/icons/obj/hydroponics/hydromisc.dmi and b/icons/obj/hydroponics/hydromisc.dmi differ
diff --git a/icons/obj/hydroponics/hydroponics.dmi b/icons/obj/hydroponics/hydroponics.dmi
index d67ee845..b22062ee 100644
Binary files a/icons/obj/hydroponics/hydroponics.dmi and b/icons/obj/hydroponics/hydroponics.dmi differ