diff --git a/code/game/objects/items/weapons/material/material_armor.dm b/code/game/objects/items/weapons/material/material_armor.dm
index 990ae376591..ecd328f3ab0 100644
--- a/code/game/objects/items/weapons/material/material_armor.dm
+++ b/code/game/objects/items/weapons/material/material_armor.dm
@@ -233,6 +233,10 @@ Protectiveness | Armor %
icon_state = "bucket"
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
+/obj/item/clothing/head/helmet/bucket/wood
+ name = "wooden bucket"
+ icon_state = "woodbucket"
+
/obj/item/clothing/head/helmet/bucket/attackby(var/obj/O, mob/user)
if(istype(O, /obj/item/stack/material))
var/obj/item/stack/material/S = O
diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm
index 3328d578e2b..12e264135eb 100644
--- a/code/modules/materials/material_recipes.dm
+++ b/code/modules/materials/material_recipes.dm
@@ -133,6 +133,7 @@
recipes += new/datum/stack_recipe("beehive frame", /obj/item/honey_frame, 1)
recipes += new/datum/stack_recipe("book shelf", /obj/structure/bookcase, 5, time = 15, one_per_turf = 1, on_floor = 1)
recipes += new/datum/stack_recipe("noticeboard frame", /obj/item/frame/noticeboard, 4, time = 5, one_per_turf = 0, on_floor = 1)
+ recipes += new/datum/stack_recipe("wooden bucket", /obj/item/weapon/reagent_containers/glass/bucket/wood, 2, time = 4, one_per_turf = 0, on_floor = 0)
/material/cardboard/generate_recipes()
..()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index ba1df210385..3c3e4562b45 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -265,6 +265,41 @@
var/image/lid = image(icon, src, "lid_[initial(icon_state)]")
overlays += lid
+obj/item/weapon/reagent_containers/glass/bucket/wood
+ desc = "An old wooden bucket."
+ name = "wooden bucket"
+ icon = 'icons/obj/janitor.dmi'
+ icon_state = "woodbucket"
+ item_state = "woodbucket"
+ matter = list("wood" = 50)
+ w_class = ITEMSIZE_LARGE
+ amount_per_transfer_from_this = 20
+ possible_transfer_amounts = list(10,20,30,60,120)
+ volume = 120
+ flags = OPENCONTAINER
+ unacidable = 0
+
+/obj/item/weapon/reagent_containers/glass/bucket/wood/attackby(var/obj/D, mob/user as mob)
+ if(isprox(D))
+ user << "This wooden bucket doesn't play well with electronics."
+ return
+ else if(istype(D, /obj/item/weapon/material/hatchet))
+ to_chat(user, "You cut a big hole in \the [src] with \the [D]. It's kinda useless as a bucket now.")
+ user.put_in_hands(new /obj/item/clothing/head/helmet/bucket/wood)
+ user.drop_from_inventory(src)
+ qdel(src)
+ return
+ else if(istype(D, /obj/item/weapon/mop))
+ if(reagents.total_volume < 1)
+ user << "\The [src] is empty!"
+ else
+ reagents.trans_to_obj(D, 5)
+ user << "You wet \the [D] in \the [src]."
+ playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
+ return
+ else
+ return ..()
+
/obj/item/weapon/reagent_containers/glass/cooler_bottle
desc = "A bottle for a water-cooler."
name = "water-cooler bottle"
diff --git a/html/changelogs/Belsima-WoodBucket.yml b/html/changelogs/Belsima-WoodBucket.yml
new file mode 100644
index 00000000000..af50df6e2eb
--- /dev/null
+++ b/html/changelogs/Belsima-WoodBucket.yml
@@ -0,0 +1,36 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Belsima
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added wood buckets, craftable with hydropnoics."
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 44f920fe30c..cf745532374 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index ef18c7bf49c..5ba6b502fc8 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index f0ec440fa02..2a08fc2a8d4 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ