diff --git a/Resources/Audio/Items/attributions.yml b/Resources/Audio/Items/attributions.yml
index 52f0a6c9a2..5a5927c878 100644
--- a/Resources/Audio/Items/attributions.yml
+++ b/Resources/Audio/Items/attributions.yml
@@ -169,3 +169,8 @@
license: "CC-BY-NC-4.0"
copyright: "Original sound by QEDionium on freesound.org. Coverted to ogg and edited by Prole0 (GitHub)"
source: "https://freesound.org/s/489803/"
+
+- files: ["wirebrushing.ogg"]
+ license: "CC0-1.0"
+ copyright: "Created by romulofs, converted to OGG, and edited by TiniestShark (Github)"
+ source: "https://freesound.org/s/127541/"
diff --git a/Resources/Audio/Items/wirebrushing.ogg b/Resources/Audio/Items/wirebrushing.ogg
new file mode 100644
index 0000000000..4e54033b4c
Binary files /dev/null and b/Resources/Audio/Items/wirebrushing.ogg differ
diff --git a/Resources/Locale/en-US/tools/tool-qualities.ftl b/Resources/Locale/en-US/tools/tool-qualities.ftl
index 14e42390a7..b4918ec26c 100644
--- a/Resources/Locale/en-US/tools/tool-qualities.ftl
+++ b/Resources/Locale/en-US/tools/tool-qualities.ftl
@@ -32,4 +32,7 @@ tool-quality-rolling-name = Rolling
tool-quality-rolling-tool-name = Rolling Pin
tool-quality-digging-name = Digging
-tool-quality-digging-tool-name = Shovel
\ No newline at end of file
+tool-quality-digging-tool-name = Shovel
+
+tool-quality-brushing-name = Brushing
+tool-quality-brushing-tool-name = Wire Brush
diff --git a/Resources/Prototypes/Catalog/Fills/Crates/service.yml b/Resources/Prototypes/Catalog/Fills/Crates/service.yml
index c61247dea9..84da90eb2a 100644
--- a/Resources/Prototypes/Catalog/Fills/Crates/service.yml
+++ b/Resources/Prototypes/Catalog/Fills/Crates/service.yml
@@ -2,7 +2,7 @@
id: CrateServiceJanitorialSupplies
parent: CratePlastic
name: janitorial supplies crate
- description: Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, broom, spray cleaner, rag, and trash bag.
+ description: Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, broom, spray cleaner, wire brush, rag, and trash bag.
components:
- type: StorageFill
contents:
@@ -20,6 +20,8 @@
- id: Plunger
amount: 2
- id: BoxCleanerGrenades
+ - id: WireBrush
+ amount: 2
- type: entity
id: CrateServiceCleanerGrenades
diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml
index 3575439567..5da3df71c0 100644
--- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml
+++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml
@@ -84,6 +84,7 @@
amount: 2
- id: FlashlightLantern
- id: LightReplacer
+ - id: WireBrush
- type: entity
id: ClothingBeltMedicalFilled
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml
index 03a24856ed..14da417181 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml
@@ -78,6 +78,8 @@
amount: 2
- id: Plunger
amount: 2
+ - id: WireBrush
+ amount: 2
- type: entity
id: ClosetLegalFilled
diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml
index 674ee2db4b..61fe2c90e4 100644
--- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml
+++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml
@@ -229,6 +229,7 @@
- WetFloorSign
- HolosignProjector
- Plunger
+ - WireBrush
components:
- LightReplacer
- SmokeOnTrigger
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
index 49287d4a2a..0a01e65eb9 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
@@ -352,3 +352,39 @@
- type: Fiber
fiberColor: fibers-white
- type: DnaSubstanceTrace
+
+- type: entity
+ parent: BaseItem
+ id: WireBrush
+ name: wire brush
+ description: A bristly steel wire brush, perfect for scraping away even the toughest patches of rust.
+ components:
+ - type: Sprite
+ sprite: Objects/Specific/Janitorial/wirebrush.rsi
+ state: icon
+ - type: Item
+ storedSprite:
+ sprite: Objects/Specific/Janitorial/wirebrush.rsi
+ state: storage
+ size: Small
+ - type: Tag
+ tags:
+ - WireBrush
+ - type: PhysicalComposition
+ materialComposition:
+ Steel: 50
+ Plastic: 50
+ - type: Tool
+ qualities:
+ - Brushing
+ useSound:
+ path: /Audio/Items/wirebrushing.ogg
+ - type: StaticPrice
+ price: 22
+ - type: MeleeWeapon
+ wideAnimationRotation: 45
+ damage:
+ types:
+ Piercing: 3
+ soundHit:
+ path: "/Audio/Weapons/bladeslice.ogg"
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml
index 5d83ba31c7..f59aa689a8 100644
--- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml
+++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml
@@ -510,6 +510,10 @@
steps:
- tool: Welding
doAfter: 5
+ - to: wall
+ steps:
+ - tool: Brushing
+ doAfter: 12
- node: reinforcedWallRust
entity: WallReinforcedRust
@@ -518,3 +522,7 @@
steps:
- tool: Welding
doAfter: 5
+ - to: reinforcedWall
+ steps:
+ - tool: Brushing
+ doAfter: 12
diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml
index 07a3e08a4b..9669937ffc 100644
--- a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml
+++ b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml
@@ -25,6 +25,7 @@
- MopItem
- Holoprojector
- WetFloorSign
+ - WireBrush
- type: latheRecipePack
id: ServiceBoardsStatic
diff --git a/Resources/Prototypes/Recipes/Lathes/janitorial.yml b/Resources/Prototypes/Recipes/Lathes/janitorial.yml
index 9ba7dfa188..e230a09a4a 100644
--- a/Resources/Prototypes/Recipes/Lathes/janitorial.yml
+++ b/Resources/Prototypes/Recipes/Lathes/janitorial.yml
@@ -104,3 +104,11 @@
materials:
Steel: 250
Glass: 1000
+
+- type: latheRecipe
+ id: WireBrush
+ result: WireBrush
+ completetime: 2
+ materials:
+ Steel: 100
+ Plastic: 100
diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml
index c10eb51486..6d800d9892 100644
--- a/Resources/Prototypes/tags.yml
+++ b/Resources/Prototypes/tags.yml
@@ -1473,6 +1473,9 @@
- type: Tag
id: Wine
+- type: Tag
+ id: WireBrush
+
- type: Tag
id: Wirecutter
diff --git a/Resources/Prototypes/tool_qualities.yml b/Resources/Prototypes/tool_qualities.yml
index ff55d9fcf1..5bb8a06200 100644
--- a/Resources/Prototypes/tool_qualities.yml
+++ b/Resources/Prototypes/tool_qualities.yml
@@ -67,3 +67,10 @@
toolName: tool-quality-rolling-tool-name
spawn: RollingPin
icon: { sprite: Objects/Tools/rolling_pin.rsi, state: icon }
+
+- type: tool
+ id: Brushing
+ name: tool-quality-brushing-name
+ toolName: tool-quality-brushing-tool-name
+ spawn: WireBrush
+ icon: { sprite: Objects/Specific/Janitorial/wirebrush.rsi, state: icon }
diff --git a/Resources/ServerInfo/Guidebook/Service/Janitorial.xml b/Resources/ServerInfo/Guidebook/Service/Janitorial.xml
index dd41ba11bf..2bd6ff7657 100644
--- a/Resources/ServerInfo/Guidebook/Service/Janitorial.xml
+++ b/Resources/ServerInfo/Guidebook/Service/Janitorial.xml
@@ -23,6 +23,7 @@ You keep things clean, it's a rough job sometimes, but someone's gotta do it. Th
+
diff --git a/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/icon.png b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/icon.png
new file mode 100644
index 0000000000..cd46d03a5c
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/icon.png differ
diff --git a/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-left.png
new file mode 100644
index 0000000000..0f0cb615da
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-left.png differ
diff --git a/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-right.png
new file mode 100644
index 0000000000..5923223a3a
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/inhand-right.png differ
diff --git a/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/meta.json b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/meta.json
new file mode 100644
index 0000000000..4a9131da5e
--- /dev/null
+++ b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/meta.json
@@ -0,0 +1,25 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-4.0",
+ "copyright": "Sprites by TiniestShark (Github)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "storage"
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/storage.png b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/storage.png
new file mode 100644
index 0000000000..36997e2cd8
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Janitorial/wirebrush.rsi/storage.png differ