diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index f64e11096eb..055c792d684 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -224,3 +224,10 @@
icon = 'icons/effects/confetti_and_decor.dmi'
icon_state = "confetti"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT //the confetti itself might be annoying enough
+
+/obj/effect/decal/cleanable/plastic
+ name = "plastic shreds"
+ desc = "Bits of torn, broken, worthless plastic."
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "shards"
+ color = "#c6f4ff"
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 3f73590ebb9..b33220b2df4 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -1202,6 +1202,15 @@
)
generate_items_inside(items_inside,src)
+/obj/item/storage/box/plastic
+ name = "plastic box"
+ desc = "It's a solid, plastic shell box."
+ icon_state = "plasticbox"
+ foldable = null
+ illustration = "writing"
+ custom_materials = list(/datum/material/plastic = 1000) //You lose most if recycled.
+
+
/obj/item/storage/box/fireworks
name = "box of fireworks"
desc = "Contains an assortment of fireworks."
diff --git a/code/game/objects/items/storage/sixpack.dm b/code/game/objects/items/storage/sixpack.dm
new file mode 100644
index 00000000000..c93a015d228
--- /dev/null
+++ b/code/game/objects/items/storage/sixpack.dm
@@ -0,0 +1,52 @@
+/obj/item/storage/cans
+ name = "can ring"
+ desc = "Holds up to six drink cans, and select bottles."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "canholder"
+ item_state = "cola"
+ lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
+ custom_materials = list(/datum/material/plastic = 1200)
+ max_integrity = 500
+
+/obj/item/storage/cans/suicide_act(mob/living/carbon/user)
+ user.visible_message("[user] begins popping open a final cold one with the boys! It looks like [user.p_theyre()] trying to commit suicide!")
+ return BRUTELOSS
+
+/obj/item/storage/cans/update_icon()
+ var/icon_status = 0
+ icon_status = contents.len
+ icon_state = "[initial(icon_state)][icon_status]"
+
+/obj/item/storage/cans/Initialize()
+ . = ..()
+ update_icon()
+
+/obj/item/storage/cans/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_w_class = WEIGHT_CLASS_SMALL
+ STR.max_combined_w_class = 12
+ STR.max_items = 6
+ STR.set_holdable(list(
+ /obj/item/reagent_containers/food/drinks/soda_cans,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/reagent_containers/food/drinks/ale,
+ /obj/item/reagent_containers/food/drinks/waterbottle
+ ))
+
+/obj/item/storage/cans/sixsoda
+ name = "soda bottle ring"
+ desc = "Holds six soda cans. Remember to recycle when you're done!"
+
+/obj/item/storage/cans/sixsoda/PopulateContents()
+ for(var/i in 1 to 6)
+ new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src)
+
+/obj/item/storage/cans/sixbeer
+ name = "beer bottle ring"
+ desc = "Holds six beer bottles. Remember to recycle when you're done!"
+
+/obj/item/storage/cans/sixbeer/PopulateContents()
+ for(var/i in 1 to 6)
+ new /obj/item/reagent_containers/food/drinks/beer(src)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index ae45aa74da5..c21f5d6d2cc 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -464,6 +464,7 @@
to_chat(Mob, "The chair begins to pop and crack, you're too heavy!")
if(do_after(Mob, 60, 1, Mob, 0))
Mob.visible_message("The plastic chair snaps under [Mob]'s weight!")
+ new /obj/effect/decal/cleanable/plastic(loc)
qdel(src)
/obj/item/chair/plastic
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index 2cf7c125a2b..e6da6eaf8a0 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -354,6 +354,15 @@
light_color = "#2cb2e8"
light_range = 3
+/obj/item/twohanded/required/kirbyplants/fullysynthetic
+ name = "plastic potted plant"
+ desc = "A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch."
+ icon_state = "plant-26"
+ custom_materials = (list(/datum/material/plastic = 8000))
+
+/obj/item/twohanded/required/kirbyplants/fullysynthetic/Initialize()
+ . = ..()
+ icon_state = "plant-[rand(26, 29)]"
//a rock is flora according to where the icon file is
//and now these defines
@@ -438,3 +447,4 @@
/obj/structure/flora/rock/pile/largejungle/Initialize()
. = ..()
icon_state = "[initial(icon_state)][rand(1,3)]"
+
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index ecde111fb6c..83adbbe1e5d 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -1486,18 +1486,16 @@
/datum/supply_pack/service/party
name = "Party Equipment"
- desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!"
- cost = 2000
+ desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, six beers, six sodas, two ales, and a bottle of patron, goldschlager, and shaker!"
+ cost = 2500
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/reagent_containers/food/drinks/bottle/patron,
/obj/item/reagent_containers/food/drinks/bottle/goldschlager,
/obj/item/reagent_containers/food/drinks/ale,
/obj/item/reagent_containers/food/drinks/ale,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/storage/cans/sixbeer,
+ /obj/item/storage/cans/sixsoda,
/obj/item/flashlight/glowstick,
/obj/item/flashlight/glowstick/red,
/obj/item/flashlight/glowstick/blue,
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 021cda5e9a5..211909016ec 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -257,3 +257,16 @@
user.visible_message("You untie [oldName] back into a [newBand.name].", "[user] unties [oldName] back into a [newBand.name].")
else
to_chat(user, "You must be holding [src] in order to untie it!")
+
+/obj/item/clothing/neck/beads
+ name = "plastic bead necklace"
+ desc = "A cheap, plastic bead necklace. Show team spirit! Collect them! Throw them away! The posibilites are endless!"
+ icon = 'icons/obj/clothing/neck.dmi'
+ icon_state = "beads"
+ color = "#ffffff"
+ custom_price = 10
+ custom_materials = (list(/datum/material/plastic = 500))
+
+/obj/item/clothing/neck/beads/Initialize()
+ . = ..()
+ color = color = pick("#ff0077","#d400ff","#2600ff","#00ccff","#00ff2a","#e5ff00","#ffae00","#ff0000", "#ffffff")
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index c9605324fe8..7bf7214d737 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -22,6 +22,8 @@
maxHealth = 25
health = 25
spacewalk = TRUE
+ search_objects = 1
+ wanted_objects = list(/obj/item/storage/cans)
harm_intent_damage = 8
obj_damage = 50
@@ -43,6 +45,7 @@
var/random_color = TRUE //if the carp uses random coloring
var/rarechance = 1 //chance for rare color variant
+ var/snack_distance = 0
var/static/list/carp_colors = list(\
"lightpurple" = "#c3b9f1", \
@@ -96,6 +99,21 @@
base_dead_overlay.appearance_flags = RESET_COLOR
add_overlay(base_dead_overlay)
+/mob/living/simple_animal/hostile/carp/proc/chomp_plastic()
+ var/obj/item/storage/cans/tasty_plastic = locate(/obj/item/storage/cans) in oview(src, 9)
+ if(tasty_plastic)
+ snack_distance = get_dist(src.loc,tasty_plastic.loc)
+ if(snack_distance <= 1)
+ src.visible_message("[src] gets its head stuck in [tasty_plastic], and gets cut breaking free from it!", "You try to avoid [tasty_plastic], but it looks so... delicious... Ow! It cuts the inside of your mouth!")
+ new /obj/effect/decal/cleanable/plastic(src.loc)
+ adjustBruteLoss(5)
+ qdel(tasty_plastic)
+
+/mob/living/simple_animal/hostile/carp/Life()
+ . = ..()
+ if(stat == CONSCIOUS)
+ chomp_plastic()
+
/mob/living/simple_animal/hostile/carp/death(gibbed)
. = ..()
cut_overlays()
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index a0536d60bd7..f64e94aedee 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -1028,3 +1028,35 @@
materials = list(/datum/material/iron = 20, /datum/material/glass = 5)
build_path = /obj/item/toy/ammo/gun
category = list("hacked", "Misc")
+
+/datum/design/plastic_tree
+ name = "Plastic Potted Plant"
+ id = "plastic_trees"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/plastic = 8000)
+ build_path = /obj/item/twohanded/required/kirbyplants/fullysynthetic
+ category = list("initial", "Misc")
+
+/datum/design/beads
+ name = "Plastic Bead Necklace"
+ id = "plastic_necklace"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/plastic = 500)
+ build_path = /obj/item/clothing/neck/beads
+ category = list("initial", "Misc")
+
+/datum/design/plastic_ring
+ name = "Plastic Can Rings"
+ id = "ring_holder"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/plastic = 1200)
+ build_path = /obj/item/storage/cans
+ category = list("initial", "Dinnerware")
+
+/datum/design/plastic_box
+ name = "Plastic Box"
+ id = "plastic_box"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/plastic = 1000)
+ build_path = /obj/item/storage/box/plastic
+ category = list("initial", "Misc")
diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi
index 276945f23f9..9bd6467e2d2 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi
index 15f6f05b7d6..cf2769dc1ce 100644
Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ
diff --git a/icons/obj/flora/plants.dmi b/icons/obj/flora/plants.dmi
index dd3fa2b2c70..acd62631f94 100644
Binary files a/icons/obj/flora/plants.dmi and b/icons/obj/flora/plants.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 26adb318523..816c1d767ce 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 4d60850a027..e0d41b67d10 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1060,6 +1060,7 @@
#include "code\game\objects\items\storage\firstaid.dm"
#include "code\game\objects\items\storage\lockbox.dm"
#include "code\game\objects\items\storage\secure.dm"
+#include "code\game\objects\items\storage\sixpack.dm"
#include "code\game\objects\items\storage\storage.dm"
#include "code\game\objects\items\storage\toolbox.dm"
#include "code\game\objects\items\storage\uplink_kits.dm"