diff --git a/code/datums/chemistry/Reagents-FoodDrink.dm b/code/datums/chemistry/Reagents-FoodDrink.dm
index 7db5ea6a..8b6e6194 100644
--- a/code/datums/chemistry/Reagents-FoodDrink.dm
+++ b/code/datums/chemistry/Reagents-FoodDrink.dm
@@ -2268,6 +2268,16 @@ datum
reagent_state = LIQUID
thirst_value = 1.5
+ fooddrink/juice_blueberry
+ name = "blueberry juice"
+ id = "juice_blueberry"
+ fluid_r = 97
+ fluid_g = 64
+ fluid_b = 73
+ description = "Don't get it on your hands or it'll be there forever."
+ reagent_state = LIQUID
+ thirst_value = 1.5
+
fooddrink/juice_cherry
name = "cherry juice"
id = "juice_cherry"
diff --git a/code/datums/chemistry/tools/food_and_drink.dm b/code/datums/chemistry/tools/food_and_drink.dm
index 28ececbc..394a4af9 100644
--- a/code/datums/chemistry/tools/food_and_drink.dm
+++ b/code/datums/chemistry/tools/food_and_drink.dm
@@ -178,7 +178,7 @@
user.visible_message("[user] spits out a seed.",\
"You spit out a seed.")
user.u_equip(src)
- on_finish(M)
+ on_finish(M, user) // popsicles use user to put the popsicle stick in their hand
qdel(src)
return 1
else
@@ -209,7 +209,7 @@
M.visible_message("[M] finishes eating [src].",\
"You finish eating [src].")
user.u_equip(src)
- on_finish(M)
+ on_finish(M,user) // popsicles use user to put the popsicle stick in their hand
qdel(src)
return 1
diff --git a/code/datums/hydroponics/plants_fruit.dm b/code/datums/hydroponics/plants_fruit.dm
index 4e260f53..401302ec 100644
--- a/code/datums/hydroponics/plants_fruit.dm
+++ b/code/datums/hydroponics/plants_fruit.dm
@@ -231,4 +231,19 @@
endurance = 1
genome = 18
nectarlevel = 10
- assoc_reagents = list("juice_strawberry")
\ No newline at end of file
+ assoc_reagents = list("juice_strawberry")
+
+/datum/plant/blueberry
+ name = "Blueberry"
+ category = "Fruit"
+ seedcolor = "#0000FF"
+ crop = /obj/item/reagent_containers/food/snacks/plant/blueberry
+ starthealth = 10
+ growtime = 60
+ harvtime = 120
+ cropsize = 2
+ harvests = 3
+ endurance = 1
+ genome = 18
+ nectarlevel = 10
+ assoc_reagents = list("juice_blueberry")
\ No newline at end of file
diff --git a/code/obj/item/food/plants.dm b/code/obj/item/food/plants.dm
index a95effd2..810bcd36 100644
--- a/code/obj/item/food/plants.dm
+++ b/code/obj/item/food/plants.dm
@@ -414,6 +414,16 @@
food_color = "#FF2244"
plant_reagent = "juice_strawberry"
+/obj/item/reagent_containers/food/snacks/plant/blueberry/
+ name = "blueberry"
+ desc = "A freshly picked blueberry."
+ icon_state = "blueberry"
+ planttype = /datum/plant/blueberry
+ amount = 1
+ heal_amt = 1
+ food_color = "#0000FF"
+ plant_reagent = "juice_blueberry"
+
/obj/item/reagent_containers/food/snacks/plant/apple/
name = "apple"
desc = "Implied by folklore to repel medical staff."
diff --git a/code/obj/item/food/popsicles.dm b/code/obj/item/food/popsicles.dm
new file mode 100644
index 00000000..606b8ad9
--- /dev/null
+++ b/code/obj/item/food/popsicles.dm
@@ -0,0 +1,127 @@
+/obj/item/stick
+ name = "popsicle stick"
+ desc = "You made a house out of these once in kindergarten."
+ icon = 'icons/obj/foodNdrink/popsicles.dmi'
+ icon_state = "stick"
+ throwforce = 1
+ w_class = 1.0
+ throw_speed = 4
+ throw_range = 5
+ w_class = 1.0
+ stamina_damage = 1
+ stamina_cost = 1
+
+
+
+/obj/item/reagent_containers/food/snacks/popsicle
+ name = "popsicle"
+ desc = "A popsicle. It's in a wrapper right now."
+ icon = 'icons/obj/foodNdrink/popsicles.dmi'
+ icon_state = "popsiclewrapper"
+ amount = 4
+ heal_amt = 4
+ food_color = null
+ initial_volume = 40
+ var/opened = 0
+ var/flavor = ""
+
+ New()
+ ..()
+ var/datum/reagents/R = reagents
+ if(prob(1))
+ src.flavor = "orangecreamsicle"
+ R.add_reagent("juice_orange", 5)
+ R.add_reagent("omnizine", 5)
+ R.add_reagent("oculine", 5)
+ R.add_reagent("vanilla", 5)
+ R.add_reagent("water_holy", 5)
+ else
+ src.flavor = pick("orange","grape","lemon","cherry","apple","blueberry")
+
+
+ switch(flavor)
+ if("orange")
+ R.add_reagent("juice_orange", 5)
+ R.add_reagent("oculine", 5)
+ R.add_reagent("chickensoup", 5)
+ R.add_reagent("screwdriver", 5)
+ R.add_reagent("honey_tea", 5)
+ if("grape")
+ R.add_reagent("wine", 5)
+ R.add_reagent("robustissin", 5) //?
+ R.add_reagent("coffee", 5)
+ R.add_reagent("bread", 5)
+ R.add_reagent("milk", 5)
+ if("lemon")
+ R.add_reagent("juice_lemon", 5)
+ R.add_reagent("juice_lime", 5)
+ R.add_reagent("luminol", 5)
+ R.add_reagent("chalk", 5)
+ R.add_reagent("urine", 5)
+ if("cherry")
+ R.add_reagent("juice_strawberry", 5)
+ R.add_reagent("juice_cherry", 5)
+ R.add_reagent("blood", 5)
+ R.add_reagent("crank", 5)
+ R.add_reagent("aranesp", 5)
+ if("apple")
+ R.add_reagent("juice_apple", 5)
+ R.add_reagent("cider", 5)
+ R.add_reagent("space_ipecac", 5) //?
+ R.add_reagent("gcheese", 5)
+ R.add_reagent("hunchback", 5)
+ if("blueberry")
+ R.add_reagent("juice_blueberry", 5)
+ R.add_reagent("mannitol", 5)
+ R.add_reagent("haloperidol", 5)
+ R.add_reagent("expresso", 5) //?
+ R.add_reagent("krokodil", 5)
+
+ heal(var/mob/M)
+ ..()
+ M.bodytemperature = min(M.base_body_temp, M.bodytemperature-20)
+ return
+
+ attack_self(var/mob/user)
+ if(opened)
+ ..()
+ else
+ boutput(user,"You unwrap [src].")
+ src.open_wrapper(user)
+
+ proc/open_wrapper(var/mob/user)
+ src.icon_state = src.flavor
+ switch(src.flavor)
+ if("orangecreamsicle")
+ src.desc = "An orange popsicle, which appears to be \"Oecumenical Orange Creamsicle\" fla- wait, it's a creamsicle? HELL. YES."
+ if("orange")
+ src.desc = "An orange popsicle, which appears to be \"Cold Case Citrus\" flavor, for opening your sinuses again when you're having a sick day."
+ if("grape")
+ src.desc = "A purple popsicle, which appears to be \"Raisin' Hell Raisin\" flavor, which features a boost of \"Super Energy Raisin Juice,\" whatever that is."
+ if("lemon")
+ src.desc = "A yellowish popsicle, which appears to be \"Lemon-Lime Violent Crime\" flavor, with a tang so good it's a crime to sell this cheap."
+ if("cherry")
+ src.desc = "A red popsicle, which appears to be \"'Roid Rage Redberry\" flavor, guaranteed to put you into a rage until you taste more."
+ if("apple")
+ src.desc = "A green popsicle, which appears to be \"Green Apple Gastroenteritis\" flavor, which boasts a more active digestive system."
+ if("blueberry")
+ src.desc = "A blue popsicle, which appears to be \"Batshit Blueberry Brain Hemorrhage\" flavor, which allegedly tastes so good it fries your brain."
+ src.opened = 1
+
+ if(prob(8))
+ src.melt(user)
+
+ on_finish(mob/eater, var/mob/user)
+ var/obj/item/stick/S = new
+ user.put_in_hand_or_drop(S)
+ ..()
+
+ proc/melt(var/mob/user)
+ boutput(user,"[src] has already melted! Damn!")
+ src.reagents.reaction(get_turf(src))
+ user.u_equip(src)
+ src.set_loc(get_turf(user))
+ qdel(src)
+ var/obj/item/stick/S = new
+ user.put_in_hand_or_drop(S)
+ return
\ No newline at end of file
diff --git a/code/obj/item/storage/food.dm b/code/obj/item/storage/food.dm
index ea524170..e33e69ed 100644
--- a/code/obj/item/storage/food.dm
+++ b/code/obj/item/storage/food.dm
@@ -75,3 +75,9 @@
var/obj/item/reagent_containers/food/snacks/candy/newcandy = new newcandy_path(src)
if (prob(5))
newcandy.razor_blade = 1
+
+/obj/item/storage/box/popsicles
+ name = "popsicles"
+ desc = "A box of generic unbranded popsicles."
+ icon_state = "popsiclebox"
+ spawn_contents = list(/obj/item/reagent_containers/food/snacks/popsicle = 7)
\ No newline at end of file
diff --git a/code/obj/machinery/vending.dm b/code/obj/machinery/vending.dm
index 8d4bc300..92163fca 100644
--- a/code/obj/machinery/vending.dm
+++ b/code/obj/machinery/vending.dm
@@ -152,6 +152,7 @@
product_list += new/datum/data/vending_product("/obj/item/reagent_containers/food/snacks/fries", 20, cost=3)
product_list += new/datum/data/vending_product("/obj/item/reagent_containers/food/drinks/noodlecup", 20, cost=2)
product_list += new/datum/data/vending_product("/obj/item/reagent_containers/food/snacks/burrito", 20, cost=3)
+ product_list += new/datum/data/vending_product("/obj/item/reagent_containers/food/snacks/popsicle",5,cost=5)
// Go away, every flavor beans...
//product_list += new/datum/data/vending_product("/obj/item/kitchen/everyflavor_box", 20, cost=15)
diff --git a/code/obj/storage/secure_closets.dm b/code/obj/storage/secure_closets.dm
index 61b2f09c..9c8b59ef 100644
--- a/code/obj/storage/secure_closets.dm
+++ b/code/obj/storage/secure_closets.dm
@@ -539,7 +539,8 @@
/obj/item/reagent_containers/food/drinks/milk = 5,\
/obj/item/kitchen/food_box/egg_box = 2,\
/obj/item/storage/box/donkpocket_kit,\
- /obj/item/storage/box/bacon_kit = 2)
+ /obj/item/storage/box/bacon_kit = 2,\
+ /obj/item/storage/box/popsicles)
make_my_stuff()
..()
if (prob(25))
diff --git a/icons/obj/foodNdrink/food_produce.dmi b/icons/obj/foodNdrink/food_produce.dmi
index f11585aa..753fb545 100644
Binary files a/icons/obj/foodNdrink/food_produce.dmi and b/icons/obj/foodNdrink/food_produce.dmi differ
diff --git a/icons/obj/foodNdrink/popsicles.dmi b/icons/obj/foodNdrink/popsicles.dmi
new file mode 100644
index 00000000..2a94c9be
Binary files /dev/null and b/icons/obj/foodNdrink/popsicles.dmi differ
diff --git a/icons/obj/hydroponics/hydroponics.dmi b/icons/obj/hydroponics/hydroponics.dmi
index d67ee845..712a7348 100644
Binary files a/icons/obj/hydroponics/hydroponics.dmi and b/icons/obj/hydroponics/hydroponics.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 28d3dc8d..710343b9 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ