diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index ad752ba14a..6109f6b0d0 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -9,6 +9,7 @@
* Paper Frames
* Runed Metal (cult)
* Brass (clockwork cult)
+ * Bronze (bake brass)
*/
/*
@@ -421,6 +422,53 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
/obj/item/stack/tile/brass/fifty
amount = 50
+/*
+ * Bronze
+ */
+
+GLOBAL_LIST_INIT(bronze_recipes, list ( \
+ new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
+ null,
+ new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \
+ new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \
+ new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \
+ null,
+ new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
+))
+
+/obj/item/stack/tile/bronze
+ name = "brass"
+ desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze."
+ singular_name = "bronze sheet"
+ icon_state = "sheet-brass"
+ item_state = "sheet-brass"
+ icon = 'icons/obj/stack_objects.dmi'
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ throwforce = 10
+ max_amount = 50
+ throw_speed = 1
+ throw_range = 3
+ turf_type = /turf/open/floor/bronze
+ novariants = FALSE
+ grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing
+
+/obj/item/stack/tile/bronze/attack_self(mob/living/user)
+ if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message
+ to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!")
+ ..()
+
+/obj/item/stack/tile/bronze/Initialize(mapload, new_amount, merge = TRUE)
+ recipes = GLOB.bronze_recipes
+ . = ..()
+ pixel_x = 0
+ pixel_y = 0
+
+/obj/item/stack/tile/bronze/thirty
+ amount = 30
+
+/*
+ * Lesser and Greater gems - unused
+ */
/obj/item/stack/sheet/lessergem
name = "lesser gems"
desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects."
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index 120fe15a00..54b10a6203 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -391,3 +391,17 @@
user.visible_message("[user] stops [src]'s uncontrollable spinning.", \
"You grab [src] and stop its wild spinning.")
STOP_PROCESSING(SSfastprocess, src)
+
+/obj/structure/chair/bronze
+ name = "brass chair"
+ desc = "A spinny chair made of bronze. It has little cogs for wheels!"
+ anchored = FALSE
+ icon_state = "brass_chair"
+ buildstacktype = /obj/item/stack/tile/bronze
+ buildstackamount = 1
+ item_chair = null
+
+/obj/structure/chair/bronze/Moved()
+ . = ..()
+ if(has_gravity())
+ playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 05935a6d48..d3844a8c98 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -408,3 +408,47 @@
qdel(src)
return TRUE
return FALSE
+
+/obj/structure/girder/bronze
+ name = "wall gear"
+ desc = "A girder made out of sturdy bronze, made to resemble a gear."
+ icon = 'icons/obj/clockwork_objects.dmi'
+ icon_state = "wall_gear"
+ can_displace = FALSE
+
+/obj/structure/girder/bronze/attackby(obj/item/W, mob/living/user, params)
+ add_fingerprint(user)
+ if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter))
+ if(!W.tool_start_check(user, amount = 0))
+ return
+ to_chat(user, "You start slicing apart [src]...")
+ if(W.use_tool(src, user, 40, volume=50))
+ to_chat(user, "You slice apart [src].")
+ var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
+ transfer_fingerprints_to(B)
+ qdel(src)
+
+ else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
+ to_chat(user, "Your jackhammer smashes through the girder!")
+ var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
+ transfer_fingerprints_to(B)
+ W.play_tool_sound(src)
+ qdel(src)
+
+ else if(istype(W, /obj/item/stack/tile/bronze))
+ var/obj/item/stack/tile/bronze/B = W
+ if(B.get_amount() < 2)
+ to_chat(user, "You need at least two bronze sheets to build a bronze wall!")
+ return 0
+ user.visible_message("[user] begins plating [src] with brozne...", "You begin constructing a bronze wall...")
+ if(do_after(user, 50, target = src))
+ if(B.get_amount() < 2)
+ return
+ user.visible_message("[user] plates [src] with bronze!", "You construct a bronze wall.")
+ B.use(2)
+ var/turf/T = get_turf(src)
+ T.PlaceOnTop(/turf/closed/wall/mineral/bronze)
+ qdel(src)
+
+ else
+ return ..()
diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm
index 2b503f4200..1aaae691f8 100644
--- a/code/game/objects/structures/table_frames.dm
+++ b/code/game/objects/structures/table_frames.dm
@@ -76,6 +76,14 @@
to_chat(user, "You start adding [C] to [src]...")
if(do_after(user, 20, target = src) && C.use(1))
make_new_table(/obj/structure/table/wood/fancy)
+ else if(istype(I, /obj/item/stack/tile/bronze))
+ var/obj/item/stack/tile/bronze/B = I
+ if(B.get_amount() < 1)
+ to_chat(user, "You need one bronze sheet to do this!")
+ return
+ to_chat(user, "You start adding [B] to [src]...")
+ if(do_after(user, 20, target = src) && B.use(1))
+ make_new_table(/obj/structure/table/bronze)
else
return ..()
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index e2d270aa56..230c1a3295 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -325,7 +325,7 @@
buildstack = /obj/item/stack/tile/brass
framestackamount = 1
buildstackamount = 1
- canSmoothWith = list(/obj/structure/table/reinforced/brass)
+ canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze)
/obj/structure/table/reinforced/brass/New()
change_construction_value(2)
@@ -350,6 +350,19 @@
/obj/structure/table/reinforced/brass/ratvar_act()
obj_integrity = max_integrity
+/obj/structure/table/bronze
+ name = "brass table"
+ desc = "A solid table made out of bronze."
+ icon = 'icons/obj/smooth_structures/brass_table.dmi'
+ icon_state = "brass_table"
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ buildstack = /obj/item/stack/tile/bronze
+ canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze)
+
+/obj/structure/table/bronze/tablepush(mob/living/user, mob/living/pushed_mob)
+ ..()
+ playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 50, TRUE)
+
/*
* Surgery Tables
*/
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index 73e99d7b41..d3f8d00be7 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -240,3 +240,11 @@
icon_state = "sepia"
desc = "Time seems to flow very slowly around these tiles."
floor_tile = /obj/item/stack/tile/sepia
+
+
+/turf/open/floor/bronze
+ name = "clockwork floor"
+ desc = "Some heavy bronze tiles."
+ icon = 'icons/obj/clockwork_objects.dmi'
+ icon_state = "clockwork_floor"
+ floor_tile = /obj/item/stack/tile/bronze
diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm
index 73ec2515f4..7012c5f6d8 100644
--- a/code/game/turfs/simulated/wall/misc_walls.dm
+++ b/code/game/turfs/simulated/wall/misc_walls.dm
@@ -170,3 +170,12 @@
desc = "A huge chunk of rusted reinforced metal."
icon = 'icons/turf/walls/rusty_reinforced_wall.dmi'
hardness = 15
+
+/turf/closed/wall/mineral/bronze
+ name = "clockwork wall"
+ desc = "A huge chunk of bronze, decorated like gears and cogs."
+ icon = 'icons/turf/walls/clockwork_wall.dmi'
+ icon_state = "clockwork_wall"
+ sheet_type = /obj/item/stack/tile/bronze
+ sheet_amount = 2
+ girder_type = /obj/structure/girder/bronze
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index d220018ccc..5c1067c1d7 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -6,6 +6,8 @@
* Pumpkin head
* Kitty ears
* Cardborg disguise
+ * Wig
+ * Bronze hat
*/
/*
@@ -219,6 +221,14 @@
hair_color = "#[random_short_color()]"
. = ..()
+/obj/item/clothing/head/bronze
+ name = "bronze hat"
+ desc = "A crude helmet made out of bronze plates. It offers very little in the way of protection."
+ icon = 'icons/obj/clothing/clockwork_garb.dmi'
+ icon_state = "clockwork_helmet_old"
+ flags_inv = HIDEEARS|HIDEHAIR
+ armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20)
+
/obj/item/clothing/head/foilhat
name = "tinfoil hat"
desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat."
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index f4c37b281d..0d8c00cad7 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -229,3 +229,13 @@
desc = "These boots were made for dancing."
icon_state = "bsing"
equip_delay_other = 50
+
+/obj/item/clothing/shoes/bronze
+ name = "bronze boots"
+ desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?"
+ icon = 'icons/obj/clothing/clockwork_garb.dmi'
+ icon_state = "clockwork_treads"
+
+/obj/item/clothing/shoes/bronze/Initialize()
+ . = ..()
+ AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50)
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 154f1bffdd..90ae827957 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -587,3 +587,10 @@
icon_state = "bedsheet"
user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150)
alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire
+
+/obj/item/clothing/suit/bronze
+ name = "bronze suit"
+ desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice."
+ icon = 'icons/obj/clothing/clockwork_garb.dmi'
+ icon_state = "clockwork_cuirass_old"
+ armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index f486dd1a95..75b4552a58 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -679,6 +679,13 @@
color = "#6E3B08" // rgb: 110, 59, 8
taste_description = "metal"
+/datum/reagent/copper/reaction_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/stack/sheet/metal))
+ var/obj/item/stack/sheet/metal/M = O
+ reac_volume = min(reac_volume, M.amount)
+ new/obj/item/stack/tile/bronze(get_turf(M), reac_volume)
+ M.use(reac_volume)
+
/datum/reagent/nitrogen
name = "Nitrogen"
id = "nitrogen"