From c7a5161b4301f4f8b81d6fadaec25b3de293fde1 Mon Sep 17 00:00:00 2001
From: BottledByte <6443024-BottledByte@users.noreply.gitlab.com>
Date: Sun, 2 Aug 2020 01:21:32 +0000
Subject: [PATCH] Removed fine-grained Item enums and replaced them with
 Strings

This change allows to introduce new weapons and pair them
with graphical assets without need to recompile.
---
 assets/common/items/debug/boost.ron           |   2 +-
 assets/common/items/debug/possess.ron         |   2 +-
 .../items/weapons/axe/bloodsteel_axe-0.ron    |   2 +-
 .../items/weapons/axe/bloodsteel_axe-1.ron    |   2 +-
 .../items/weapons/axe/bloodsteel_axe-2.ron    |   2 +-
 .../common/items/weapons/axe/bronze_axe-0.ron |   2 +-
 .../common/items/weapons/axe/bronze_axe-1.ron |   2 +-
 .../common/items/weapons/axe/cobalt_axe-0.ron |   2 +-
 .../common/items/weapons/axe/iron_axe-0.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-1.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-2.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-3.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-4.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-5.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-6.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-7.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-8.ron   |   2 +-
 .../common/items/weapons/axe/iron_axe-9.ron   |   2 +-
 .../items/weapons/axe/malachite_axe-0.ron     |   2 +-
 assets/common/items/weapons/axe/orc_axe-0.ron |   2 +-
 .../common/items/weapons/axe/starter_axe.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-0.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-1.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-2.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-3.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-4.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-5.ron  |   2 +-
 .../common/items/weapons/axe/steel_axe-6.ron  |   2 +-
 .../items/weapons/axe/worn_iron_axe-0.ron     |   2 +-
 .../items/weapons/axe/worn_iron_axe-1.ron     |   2 +-
 .../items/weapons/axe/worn_iron_axe-2.ron     |   2 +-
 .../items/weapons/axe/worn_iron_axe-3.ron     |   2 +-
 .../items/weapons/axe/worn_iron_axe-4.ron     |   2 +-
 .../items/weapons/bow/horn_longbow-0.ron      |   2 +-
 .../items/weapons/bow/iron_longbow-0.ron      |   2 +-
 .../items/weapons/bow/leafy_longbow-0.ron     |   2 +-
 .../items/weapons/bow/leafy_shortbow-0.ron    |   2 +-
 .../common/items/weapons/bow/rare_longbow.ron |   2 +-
 .../common/items/weapons/bow/starter_bow.ron  |   2 +-
 .../items/weapons/bow/wood_longbow-0.ron      |   2 +-
 .../items/weapons/bow/wood_longbow-1.ron      |   2 +-
 .../items/weapons/bow/wood_shortbow-0.ron     |   2 +-
 .../items/weapons/bow/wood_shortbow-1.ron     |   2 +-
 .../items/weapons/dagger/starter_dagger.ron   |   2 +-
 .../items/weapons/hammer/bronze_hammer-0.ron  |   2 +-
 .../items/weapons/hammer/bronze_hammer-1.ron  |   2 +-
 .../items/weapons/hammer/cobalt_hammer-0.ron  |   2 +-
 .../items/weapons/hammer/cobalt_hammer-1.ron  |   2 +-
 .../items/weapons/hammer/flimsy_hammer.ron    |   2 +-
 .../common/items/weapons/hammer/hammer_1.ron  |   2 +-
 .../items/weapons/hammer/iron_hammer-0.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-1.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-2.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-3.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-4.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-5.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-6.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-7.ron    |   2 +-
 .../items/weapons/hammer/iron_hammer-8.ron    |   2 +-
 .../common/items/weapons/hammer/mjolnir.ron   |   2 +-
 .../items/weapons/hammer/ramshead_hammer.ron  |   2 +-
 .../items/weapons/hammer/runic_hammer.ron     |   2 +-
 .../items/weapons/hammer/starter_hammer.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-0.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-1.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-2.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-3.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-4.ron   |   2 +-
 .../items/weapons/hammer/steel_hammer-5.ron   |   2 +-
 .../items/weapons/hammer/stone_hammer-0.ron   |   2 +-
 .../items/weapons/hammer/stone_hammer-1.ron   |   2 +-
 .../items/weapons/hammer/stone_hammer-2.ron   |   2 +-
 .../items/weapons/hammer/stone_hammer-3.ron   |   2 +-
 .../items/weapons/hammer/wood_hammer-0.ron    |   2 +-
 .../weapons/hammer/worn_iron_hammer-0.ron     |   2 +-
 .../weapons/hammer/worn_iron_hammer-1.ron     |   2 +-
 .../weapons/hammer/worn_iron_hammer-2.ron     |   2 +-
 .../weapons/hammer/worn_iron_hammer-3.ron     |   2 +-
 .../common/items/weapons/shield/shield_1.ron  |   2 +-
 .../items/weapons/staff/amethyst_staff.ron    |   2 +-
 .../common/items/weapons/staff/bone_staff.ron |   2 +-
 .../items/weapons/staff/cultist_staff.ron     |   2 +-
 assets/common/items/weapons/staff/staff_1.ron |   2 +-
 .../items/weapons/staff/staff_nature.ron      |   2 +-
 .../items/weapons/staff/starter_staff.ron     |   2 +-
 .../items/weapons/sword/cultist_purp_2h-0.ron |   2 +-
 .../weapons/sword/greatsword_2h_dam-0.ron     |   2 +-
 .../weapons/sword/greatsword_2h_dam-1.ron     |   2 +-
 .../weapons/sword/greatsword_2h_dam-2.ron     |   2 +-
 .../weapons/sword/greatsword_2h_fine-0.ron    |   2 +-
 .../weapons/sword/greatsword_2h_fine-1.ron    |   2 +-
 .../weapons/sword/greatsword_2h_fine-2.ron    |   2 +-
 .../weapons/sword/greatsword_2h_orn-0.ron     |   2 +-
 .../weapons/sword/greatsword_2h_orn-1.ron     |   2 +-
 .../weapons/sword/greatsword_2h_orn-2.ron     |   2 +-
 .../weapons/sword/greatsword_2h_simple-0.ron  |   2 +-
 .../weapons/sword/greatsword_2h_simple-1.ron  |   2 +-
 .../weapons/sword/greatsword_2h_simple-2.ron  |   2 +-
 .../items/weapons/sword/long_2h_dam-0.ron     |   2 +-
 .../items/weapons/sword/long_2h_dam-1.ron     |   2 +-
 .../items/weapons/sword/long_2h_dam-2.ron     |   2 +-
 .../items/weapons/sword/long_2h_dam-3.ron     |   2 +-
 .../items/weapons/sword/long_2h_dam-4.ron     |   2 +-
 .../items/weapons/sword/long_2h_dam-5.ron     |   2 +-
 .../items/weapons/sword/long_2h_fine-0.ron    |   2 +-
 .../items/weapons/sword/long_2h_fine-1.ron    |   2 +-
 .../items/weapons/sword/long_2h_fine-2.ron    |   2 +-
 .../items/weapons/sword/long_2h_fine-3.ron    |   2 +-
 .../items/weapons/sword/long_2h_fine-4.ron    |   2 +-
 .../items/weapons/sword/long_2h_fine-5.ron    |   2 +-
 .../items/weapons/sword/long_2h_orn-0.ron     |   2 +-
 .../items/weapons/sword/long_2h_orn-1.ron     |   2 +-
 .../items/weapons/sword/long_2h_orn-2.ron     |   2 +-
 .../items/weapons/sword/long_2h_orn-3.ron     |   2 +-
 .../items/weapons/sword/long_2h_orn-4.ron     |   2 +-
 .../items/weapons/sword/long_2h_orn-5.ron     |   2 +-
 .../items/weapons/sword/long_2h_simple-0.ron  |   2 +-
 .../items/weapons/sword/long_2h_simple-1.ron  |   2 +-
 .../items/weapons/sword/long_2h_simple-2.ron  |   2 +-
 .../items/weapons/sword/long_2h_simple-3.ron  |   2 +-
 .../items/weapons/sword/long_2h_simple-4.ron  |   2 +-
 .../items/weapons/sword/long_2h_simple-5.ron  |   2 +-
 .../items/weapons/sword/short_sword_0.ron     |   2 +-
 .../items/weapons/sword/starter_sword.ron     |   2 +-
 .../common/items/weapons/sword/wood_sword.ron |   2 +-
 .../weapons/sword/zweihander_sword_0.ron      |   2 +-
 assets/common/items/weapons/tool/broom.ron    |   2 +-
 .../common/items/weapons/tool/fishing_rod.ron |   2 +-
 assets/common/items/weapons/tool/hoe.ron      |   2 +-
 assets/common/items/weapons/tool/pickaxe.ron  |   2 +-
 .../common/items/weapons/tool/pitchfork.ron   |   2 +-
 assets/common/items/weapons/tool/rake.ron     |   2 +-
 assets/common/items/weapons/tool/shovel-0.ron |   2 +-
 assets/common/items/weapons/tool/shovel-1.ron |   2 +-
 assets/voxygen/item_image_manifest.ron        | 270 +++++------
 .../voxel/humanoid_main_weapon_manifest.ron   | 270 +++++------
 common/src/comp/inventory/item/mod.rs         |   2 +-
 common/src/comp/inventory/item/tool.rs        | 424 ++++++------------
 common/src/loadout_builder.rs                 |   2 +-
 common/src/states/utils.rs                    |   4 +-
 server/src/events/interaction.rs              |   2 +-
 tools/src/main.rs                             |   2 +-
 voxygen/src/anim/src/character/alpha.rs       |   4 +-
 voxygen/src/anim/src/character/beta.rs        |   4 +-
 voxygen/src/anim/src/character/block.rs       |   4 +-
 voxygen/src/anim/src/character/blockidle.rs   |   4 +-
 voxygen/src/anim/src/character/charge.rs      |   4 +-
 voxygen/src/anim/src/character/climb.rs       |   4 +-
 voxygen/src/anim/src/character/dance.rs       |   4 +-
 voxygen/src/anim/src/character/dash.rs        |   4 +-
 voxygen/src/anim/src/character/equip.rs       |   4 +-
 voxygen/src/anim/src/character/glidewield.rs  |   4 +-
 voxygen/src/anim/src/character/gliding.rs     |   4 +-
 voxygen/src/anim/src/character/idle.rs        |   4 +-
 voxygen/src/anim/src/character/jump.rs        |   4 +-
 voxygen/src/anim/src/character/leapmelee.rs   |   4 +-
 voxygen/src/anim/src/character/roll.rs        |   4 +-
 voxygen/src/anim/src/character/run.rs         |   4 +-
 voxygen/src/anim/src/character/shoot.rs       |   4 +-
 voxygen/src/anim/src/character/sit.rs         |   4 +-
 voxygen/src/anim/src/character/spin.rs        |   4 +-
 voxygen/src/anim/src/character/spinmelee.rs   |   4 +-
 voxygen/src/anim/src/character/stand.rs       |   4 +-
 voxygen/src/anim/src/character/swim.rs        |   4 +-
 voxygen/src/anim/src/character/wield.rs       |   4 +-
 .../src/audio/sfx/event_mapper/combat/mod.rs  |   8 +-
 voxygen/src/audio/sfx/mod.rs                  |   4 +-
 voxygen/src/hud/hotbar.rs                     |  26 +-
 voxygen/src/hud/item_imgs.rs                  |   2 +-
 voxygen/src/hud/skillbar.rs                   |  49 +-
 voxygen/src/hud/slots.rs                      |   7 +-
 voxygen/src/hud/util.rs                       |   6 +-
 voxygen/src/scene/figure/cache.rs             |   4 +-
 voxygen/src/scene/figure/mod.rs               |  23 +-
 voxygen/src/scene/simple.rs                   |   4 +-
 175 files changed, 667 insertions(+), 802 deletions(-)

diff --git a/assets/common/items/debug/boost.ron b/assets/common/items/debug/boost.ron
index 4fc86afae3..523a0c0704 100644
--- a/assets/common/items/debug/boost.ron
+++ b/assets/common/items/debug/boost.ron
@@ -3,7 +3,7 @@ Item(
     description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...",
     kind: Tool(
         (
-            kind: Debug(Boost),
+            kind: Debug("Boost"),
             stats: (
                 equip_time_millis: 0,
                 power: 1.00,
diff --git a/assets/common/items/debug/possess.ron b/assets/common/items/debug/possess.ron
index 4fc86afae3..523a0c0704 100644
--- a/assets/common/items/debug/possess.ron
+++ b/assets/common/items/debug/possess.ron
@@ -3,7 +3,7 @@ Item(
     description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...",
     kind: Tool(
         (
-            kind: Debug(Boost),
+            kind: Debug("Boost"),
             stats: (
                 equip_time_millis: 0,
                 power: 1.00,
diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-0.ron b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron
index b0636b63fa..edcfa314ef 100644
--- a/assets/common/items/weapons/axe/bloodsteel_axe-0.ron
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "An axe forged from steel that thirsts for blood.",
     kind: Tool(
         (
-            kind: Axe(BloodsteelAxe0),
+            kind: Axe("BloodsteelAxe0"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.60,
diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-1.ron b/assets/common/items/weapons/axe/bloodsteel_axe-1.ron
index 895c7a0a35..245078f4f2 100644
--- a/assets/common/items/weapons/axe/bloodsteel_axe-1.ron
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "An axe forged from steel that thirsts for blood.",
     kind: Tool(
         (
-            kind: Axe(BloodsteelAxe1),    
+            kind: Axe("BloodsteelAxe1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.60,
diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-2.ron b/assets/common/items/weapons/axe/bloodsteel_axe-2.ron
index 16c8602286..99ffaf481f 100644
--- a/assets/common/items/weapons/axe/bloodsteel_axe-2.ron
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "An axe forged from steel that thirsts for blood.",
     kind: Tool(
         (
-            kind: Axe(BloodsteelAxe2),    
+            kind: Axe("BloodsteelAxe2"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.60,
diff --git a/assets/common/items/weapons/axe/bronze_axe-0.ron b/assets/common/items/weapons/axe/bronze_axe-0.ron
index eae58eeed0..e0c22c91fc 100644
--- a/assets/common/items/weapons/axe/bronze_axe-0.ron
+++ b/assets/common/items/weapons/axe/bronze_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from bronze.",
     kind: Tool(
         (
-            kind: Axe(BronzeAxe0),    
+            kind: Axe("BronzeAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/axe/bronze_axe-1.ron b/assets/common/items/weapons/axe/bronze_axe-1.ron
index 2c0c719a84..618edfd854 100644
--- a/assets/common/items/weapons/axe/bronze_axe-1.ron
+++ b/assets/common/items/weapons/axe/bronze_axe-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from bronze.",
     kind: Tool(
         (
-            kind: Axe(BronzeAxe1),    
+            kind: Axe("BronzeAxe1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/axe/cobalt_axe-0.ron b/assets/common/items/weapons/axe/cobalt_axe-0.ron
index 8ad2d73f34..33b9e5238e 100644
--- a/assets/common/items/weapons/axe/cobalt_axe-0.ron
+++ b/assets/common/items/weapons/axe/cobalt_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from cobalt.",
     kind: Tool(
         (
-            kind: Axe(CobaltAxe0),    
+            kind: Axe("CobaltAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.80,
diff --git a/assets/common/items/weapons/axe/iron_axe-0.ron b/assets/common/items/weapons/axe/iron_axe-0.ron
index 4999939753..79a9d08f13 100644
--- a/assets/common/items/weapons/axe/iron_axe-0.ron
+++ b/assets/common/items/weapons/axe/iron_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe0),    
+            kind: Axe("IronAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-1.ron b/assets/common/items/weapons/axe/iron_axe-1.ron
index 961c5fe151..282c0d5239 100644
--- a/assets/common/items/weapons/axe/iron_axe-1.ron
+++ b/assets/common/items/weapons/axe/iron_axe-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe1),    
+            kind: Axe("IronAxe1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-2.ron b/assets/common/items/weapons/axe/iron_axe-2.ron
index 91f675da40..edd17eb97f 100644
--- a/assets/common/items/weapons/axe/iron_axe-2.ron
+++ b/assets/common/items/weapons/axe/iron_axe-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe2),    
+            kind: Axe("IronAxe2"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-3.ron b/assets/common/items/weapons/axe/iron_axe-3.ron
index 980da5d65d..cb897d1b8c 100644
--- a/assets/common/items/weapons/axe/iron_axe-3.ron
+++ b/assets/common/items/weapons/axe/iron_axe-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe3),    
+            kind: Axe("IronAxe3"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-4.ron b/assets/common/items/weapons/axe/iron_axe-4.ron
index 362a41ee12..9958211250 100644
--- a/assets/common/items/weapons/axe/iron_axe-4.ron
+++ b/assets/common/items/weapons/axe/iron_axe-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe4),    
+            kind: Axe("IronAxe4"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-5.ron b/assets/common/items/weapons/axe/iron_axe-5.ron
index c5fc2adb92..807d3e8e3b 100644
--- a/assets/common/items/weapons/axe/iron_axe-5.ron
+++ b/assets/common/items/weapons/axe/iron_axe-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe5),    
+            kind: Axe("IronAxe5"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-6.ron b/assets/common/items/weapons/axe/iron_axe-6.ron
index e1590ba742..eb4b47ad9f 100644
--- a/assets/common/items/weapons/axe/iron_axe-6.ron
+++ b/assets/common/items/weapons/axe/iron_axe-6.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe6),    
+            kind: Axe("IronAxe6"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-7.ron b/assets/common/items/weapons/axe/iron_axe-7.ron
index 37cdb8c415..a55337f011 100644
--- a/assets/common/items/weapons/axe/iron_axe-7.ron
+++ b/assets/common/items/weapons/axe/iron_axe-7.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe7),    
+            kind: Axe("IronAxe7"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-8.ron b/assets/common/items/weapons/axe/iron_axe-8.ron
index 0d5f508586..865cd472b6 100644
--- a/assets/common/items/weapons/axe/iron_axe-8.ron
+++ b/assets/common/items/weapons/axe/iron_axe-8.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe8),    
+            kind: Axe("IronAxe8"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/iron_axe-9.ron b/assets/common/items/weapons/axe/iron_axe-9.ron
index 167d70402c..fd5bfbe693 100644
--- a/assets/common/items/weapons/axe/iron_axe-9.ron
+++ b/assets/common/items/weapons/axe/iron_axe-9.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from iron.",
     kind: Tool(
         (
-            kind: Axe(IronAxe9),    
+            kind: Axe("IronAxe9"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.20,
diff --git a/assets/common/items/weapons/axe/malachite_axe-0.ron b/assets/common/items/weapons/axe/malachite_axe-0.ron
index 06c6e376c3..20c8ac8dc1 100644
--- a/assets/common/items/weapons/axe/malachite_axe-0.ron
+++ b/assets/common/items/weapons/axe/malachite_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "An axe infused with malachite.",
     kind: Tool(
         (
-            kind: Axe(MalachiteAxe0),    
+            kind: Axe("MalachiteAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 2.00,
diff --git a/assets/common/items/weapons/axe/orc_axe-0.ron b/assets/common/items/weapons/axe/orc_axe-0.ron
index 64876beee8..0cfde653f3 100644
--- a/assets/common/items/weapons/axe/orc_axe-0.ron
+++ b/assets/common/items/weapons/axe/orc_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Created by orcs to cleave beasts in 2.",
     kind: Tool(
         (
-            kind: Axe(OrcAxe0),    
+            kind: Axe("OrcAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.60,
diff --git a/assets/common/items/weapons/axe/starter_axe.ron b/assets/common/items/weapons/axe/starter_axe.ron
index a5d89a6111..ccdd0c527c 100644
--- a/assets/common/items/weapons/axe/starter_axe.ron
+++ b/assets/common/items/weapons/axe/starter_axe.ron
@@ -3,7 +3,7 @@ Item(
     description: "Every dent tells the story of a chopped tree.",
     kind: Tool(
         (
-            kind: Axe(BasicAxe),    
+            kind: Axe("BasicAxe"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.50,
diff --git a/assets/common/items/weapons/axe/steel_axe-0.ron b/assets/common/items/weapons/axe/steel_axe-0.ron
index fe2a449e60..9e29b23f3d 100644
--- a/assets/common/items/weapons/axe/steel_axe-0.ron
+++ b/assets/common/items/weapons/axe/steel_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe0),    
+            kind: Axe("SteelAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-1.ron b/assets/common/items/weapons/axe/steel_axe-1.ron
index 697febfdf2..49885d3695 100644
--- a/assets/common/items/weapons/axe/steel_axe-1.ron
+++ b/assets/common/items/weapons/axe/steel_axe-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe1),    
+            kind: Axe("SteelAxe1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-2.ron b/assets/common/items/weapons/axe/steel_axe-2.ron
index bde51d949a..8fbb652983 100644
--- a/assets/common/items/weapons/axe/steel_axe-2.ron
+++ b/assets/common/items/weapons/axe/steel_axe-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe2),    
+            kind: Axe("SteelAxe2"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-3.ron b/assets/common/items/weapons/axe/steel_axe-3.ron
index 167d659b43..dd9d993321 100644
--- a/assets/common/items/weapons/axe/steel_axe-3.ron
+++ b/assets/common/items/weapons/axe/steel_axe-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe3),    
+            kind: Axe("SteelAxe3"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-4.ron b/assets/common/items/weapons/axe/steel_axe-4.ron
index 7e0db521a2..80e69a601e 100644
--- a/assets/common/items/weapons/axe/steel_axe-4.ron
+++ b/assets/common/items/weapons/axe/steel_axe-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe4),    
+            kind: Axe("SteelAxe4"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-5.ron b/assets/common/items/weapons/axe/steel_axe-5.ron
index ef3f0a786e..516a7c9425 100644
--- a/assets/common/items/weapons/axe/steel_axe-5.ron
+++ b/assets/common/items/weapons/axe/steel_axe-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe5),    
+            kind: Axe("SteelAxe5"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/steel_axe-6.ron b/assets/common/items/weapons/axe/steel_axe-6.ron
index d82880f57e..f7507bb93b 100644
--- a/assets/common/items/weapons/axe/steel_axe-6.ron
+++ b/assets/common/items/weapons/axe/steel_axe-6.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged from steel.",
     kind: Tool(
         (
-            kind: Axe(SteelAxe6),    
+            kind: Axe("SteelAxe6"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.40,
diff --git a/assets/common/items/weapons/axe/worn_iron_axe-0.ron b/assets/common/items/weapons/axe/worn_iron_axe-0.ron
index d545f69f93..6d24976a90 100644
--- a/assets/common/items/weapons/axe/worn_iron_axe-0.ron
+++ b/assets/common/items/weapons/axe/worn_iron_axe-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Hopefully it's previous owner won't miss it.",
     kind: Tool(
         (
-            kind: Axe(WornIronAxe0),    
+            kind: Axe("WornIronAxe0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.80,
diff --git a/assets/common/items/weapons/axe/worn_iron_axe-1.ron b/assets/common/items/weapons/axe/worn_iron_axe-1.ron
index 8c0420149d..1a167843d7 100644
--- a/assets/common/items/weapons/axe/worn_iron_axe-1.ron
+++ b/assets/common/items/weapons/axe/worn_iron_axe-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Hopefully it's previous owner won't miss it.",
     kind: Tool(
         (
-            kind: Axe(WornIronAxe1),    
+            kind: Axe("WornIronAxe1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.80,
diff --git a/assets/common/items/weapons/axe/worn_iron_axe-2.ron b/assets/common/items/weapons/axe/worn_iron_axe-2.ron
index de275d3510..0e65b3e90d 100644
--- a/assets/common/items/weapons/axe/worn_iron_axe-2.ron
+++ b/assets/common/items/weapons/axe/worn_iron_axe-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "Hopefully it's previous owner won't miss it.",
     kind: Tool(
         (
-            kind: Axe(WornIronAxe2),    
+            kind: Axe("WornIronAxe2"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.80,
diff --git a/assets/common/items/weapons/axe/worn_iron_axe-3.ron b/assets/common/items/weapons/axe/worn_iron_axe-3.ron
index 79e7932c31..bac71c7db0 100644
--- a/assets/common/items/weapons/axe/worn_iron_axe-3.ron
+++ b/assets/common/items/weapons/axe/worn_iron_axe-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "Hopefully it's previous owner won't miss it.",
     kind: Tool(
         (
-            kind: Axe(WornIronAxe3),
+            kind: Axe("WornIronAxe3"),
             stats: (
                 equip_time_millis: 400,
                 power: 0.80,
diff --git a/assets/common/items/weapons/axe/worn_iron_axe-4.ron b/assets/common/items/weapons/axe/worn_iron_axe-4.ron
index 153e3cd50b..011d63e566 100644
--- a/assets/common/items/weapons/axe/worn_iron_axe-4.ron
+++ b/assets/common/items/weapons/axe/worn_iron_axe-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "The blade is in the shape of a beetle.",
     kind: Tool(
         (
-            kind: Axe(WornIronAxe4),
+            kind: Axe("WornIronAxe4"),
             stats: (
                 equip_time_millis: 400,
                 power: 0.80,
diff --git a/assets/common/items/weapons/bow/horn_longbow-0.ron b/assets/common/items/weapons/bow/horn_longbow-0.ron
index 73d270dc71..3a56a0ffa2 100644
--- a/assets/common/items/weapons/bow/horn_longbow-0.ron
+++ b/assets/common/items/weapons/bow/horn_longbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "You don't recognize the creature these horns belong to.",  
     kind: Tool(
         (
-            kind: Bow(HornLongbow0),    
+            kind: Bow("HornLongbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.50,
diff --git a/assets/common/items/weapons/bow/iron_longbow-0.ron b/assets/common/items/weapons/bow/iron_longbow-0.ron
index 7d02b3f3b8..61392b82a1 100644
--- a/assets/common/items/weapons/bow/iron_longbow-0.ron
+++ b/assets/common/items/weapons/bow/iron_longbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Has an insignia on it.",  
     kind: Tool(
         (
-            kind: Bow(IronLongbow0),    
+            kind: Bow("IronLongbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.75,
diff --git a/assets/common/items/weapons/bow/leafy_longbow-0.ron b/assets/common/items/weapons/bow/leafy_longbow-0.ron
index dbfd1f7f25..2a27bd55a9 100644
--- a/assets/common/items/weapons/bow/leafy_longbow-0.ron
+++ b/assets/common/items/weapons/bow/leafy_longbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "There's a new leaf starting to grow.",  
     kind: Tool(
         (
-            kind: Bow(LeafyLongbow0),    
+            kind: Bow("LeafyLongbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.25,
diff --git a/assets/common/items/weapons/bow/leafy_shortbow-0.ron b/assets/common/items/weapons/bow/leafy_shortbow-0.ron
index 5ffef32b22..29f0810d58 100644
--- a/assets/common/items/weapons/bow/leafy_shortbow-0.ron
+++ b/assets/common/items/weapons/bow/leafy_shortbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "The wood still seems alive.",  
     kind: Tool(
         (
-            kind: Bow(LeafyShortbow0),    
+            kind: Bow("LeafyShortbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/bow/rare_longbow.ron b/assets/common/items/weapons/bow/rare_longbow.ron
index c8e9a003ac..0eaf6d4d32 100644
--- a/assets/common/items/weapons/bow/rare_longbow.ron
+++ b/assets/common/items/weapons/bow/rare_longbow.ron
@@ -3,7 +3,7 @@ Item(
     description: "You can sense power resting in the bow.",  
     kind: Tool(
         (
-            kind: Bow(RareLongbow),    
+            kind: Bow("RareLongbow"),    
             stats: (
                 equip_time_millis: 400,
                 power: 2.00,
diff --git a/assets/common/items/weapons/bow/starter_bow.ron b/assets/common/items/weapons/bow/starter_bow.ron
index 89f7145cb9..749283b4dc 100644
--- a/assets/common/items/weapons/bow/starter_bow.ron
+++ b/assets/common/items/weapons/bow/starter_bow.ron
@@ -3,7 +3,7 @@ Item(
     description: "Someone carved his initials into it.",  
     kind: Tool(
         (
-            kind: Bow(ShortBow0),    
+            kind: Bow("ShortBow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.50,
diff --git a/assets/common/items/weapons/bow/wood_longbow-0.ron b/assets/common/items/weapons/bow/wood_longbow-0.ron
index 574233a316..35f65f8c22 100644
--- a/assets/common/items/weapons/bow/wood_longbow-0.ron
+++ b/assets/common/items/weapons/bow/wood_longbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been well used.",  
     kind: Tool(
         (
-            kind: Bow(WoodLongbow0),    
+            kind: Bow("WoodLongbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/bow/wood_longbow-1.ron b/assets/common/items/weapons/bow/wood_longbow-1.ron
index a437445d70..05370d16fd 100644
--- a/assets/common/items/weapons/bow/wood_longbow-1.ron
+++ b/assets/common/items/weapons/bow/wood_longbow-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's hard to pull all the way back.",  
     kind: Tool(
         (
-            kind: Bow(WoodLongbow1),    
+            kind: Bow("WoodLongbow1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/bow/wood_shortbow-0.ron b/assets/common/items/weapons/bow/wood_shortbow-0.ron
index 790f99f618..6cddcfbff2 100644
--- a/assets/common/items/weapons/bow/wood_shortbow-0.ron
+++ b/assets/common/items/weapons/bow/wood_shortbow-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Strips of leather are wrapped around the handle.",  
     kind: Tool(
         (
-            kind: Bow(WoodShortbow0),    
+            kind: Bow("WoodShortbow0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.75,
diff --git a/assets/common/items/weapons/bow/wood_shortbow-1.ron b/assets/common/items/weapons/bow/wood_shortbow-1.ron
index 9d1ca7719a..37d8df0b3c 100644
--- a/assets/common/items/weapons/bow/wood_shortbow-1.ron
+++ b/assets/common/items/weapons/bow/wood_shortbow-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Works on the ground too.",  
     kind: Tool(
         (
-            kind: Bow(WoodShortbow1),    
+            kind: Bow("WoodShortbow1"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.75,
diff --git a/assets/common/items/weapons/dagger/starter_dagger.ron b/assets/common/items/weapons/dagger/starter_dagger.ron
index da2ab390de..9d24de8e09 100644
--- a/assets/common/items/weapons/dagger/starter_dagger.ron
+++ b/assets/common/items/weapons/dagger/starter_dagger.ron
@@ -3,7 +3,7 @@ Item(
     description: "Easily concealed.",
     kind: Tool(
         (
-            kind: Dagger(BasicDagger),    
+            kind: Dagger("BasicDagger"),    
             stats: (
                 equip_time_millis: 300,
                 power: 1.00,
diff --git a/assets/common/items/weapons/hammer/bronze_hammer-0.ron b/assets/common/items/weapons/hammer/bronze_hammer-0.ron
index 60b255dd56..d95c8ef6c8 100644
--- a/assets/common/items/weapons/hammer/bronze_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/bronze_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with bronze.",
     kind: Tool(
         (
-            kind: Hammer(BronzeHammer0),    
+            kind: Hammer("BronzeHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.00,
diff --git a/assets/common/items/weapons/hammer/bronze_hammer-1.ron b/assets/common/items/weapons/hammer/bronze_hammer-1.ron
index a5ac72d80b..6f35d21888 100644
--- a/assets/common/items/weapons/hammer/bronze_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/bronze_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with bronze.",
     kind: Tool(
         (
-            kind: Hammer(BronzeHammer1),    
+            kind: Hammer("BronzeHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.00,
diff --git a/assets/common/items/weapons/hammer/cobalt_hammer-0.ron b/assets/common/items/weapons/hammer/cobalt_hammer-0.ron
index 8956eeb25b..c479ec1ddb 100644
--- a/assets/common/items/weapons/hammer/cobalt_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/cobalt_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with cobalt.",
     kind: Tool(
         (
-            kind: Hammer(CobaltHammer0),    
+            kind: Hammer("CobaltHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.60,
diff --git a/assets/common/items/weapons/hammer/cobalt_hammer-1.ron b/assets/common/items/weapons/hammer/cobalt_hammer-1.ron
index 2e1c4f24b1..b5d84c6ae5 100644
--- a/assets/common/items/weapons/hammer/cobalt_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/cobalt_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with cobalt.",
     kind: Tool(
         (
-            kind: Hammer(CobaltHammer1),    
+            kind: Hammer("CobaltHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.60,
diff --git a/assets/common/items/weapons/hammer/flimsy_hammer.ron b/assets/common/items/weapons/hammer/flimsy_hammer.ron
index f8f927bcde..5e425a53e8 100644
--- a/assets/common/items/weapons/hammer/flimsy_hammer.ron
+++ b/assets/common/items/weapons/hammer/flimsy_hammer.ron
@@ -3,7 +3,7 @@ Item(
     description: "The head is barely secured.",
     kind: Tool(
         (
-            kind: Hammer(FlimsyHammer),    
+            kind: Hammer("FlimsyHammer"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.50,
diff --git a/assets/common/items/weapons/hammer/hammer_1.ron b/assets/common/items/weapons/hammer/hammer_1.ron
index 681503ce27..582f9ce6a3 100644
--- a/assets/common/items/weapons/hammer/hammer_1.ron
+++ b/assets/common/items/weapons/hammer/hammer_1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Breaks bones like sticks and stones.",
     kind: Tool(
         (
-            kind: Hammer(BasicHammer),    
+            kind: Hammer("BasicHammer"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.50,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-0.ron b/assets/common/items/weapons/hammer/iron_hammer-0.ron
index 7737d7b2b7..d13b660690 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer0),    
+            kind: Hammer("IronHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-1.ron b/assets/common/items/weapons/hammer/iron_hammer-1.ron
index 7659c348de..754bd6f571 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer1),    
+            kind: Hammer("IronHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-2.ron b/assets/common/items/weapons/hammer/iron_hammer-2.ron
index 1afd2d6883..82ebea4ce4 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-2.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer2),    
+            kind: Hammer("IronHammer2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-3.ron b/assets/common/items/weapons/hammer/iron_hammer-3.ron
index a863bb9fd9..74f7b7fa3e 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-3.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer3),    
+            kind: Hammer("IronHammer3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-4.ron b/assets/common/items/weapons/hammer/iron_hammer-4.ron
index 351fb9ab87..c9c1e0199c 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-4.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer4),    
+            kind: Hammer("IronHammer4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-5.ron b/assets/common/items/weapons/hammer/iron_hammer-5.ron
index 4c55c417be..d48eacb6d6 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-5.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer5),    
+            kind: Hammer("IronHammer5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-6.ron b/assets/common/items/weapons/hammer/iron_hammer-6.ron
index 943e0bb084..ca1f7bfaf3 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-6.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-6.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer6),    
+            kind: Hammer("IronHammer6"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-7.ron b/assets/common/items/weapons/hammer/iron_hammer-7.ron
index 56236db81c..b8a02b1fd3 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-7.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-7.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer7),    
+            kind: Hammer("IronHammer7"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/iron_hammer-8.ron b/assets/common/items/weapons/hammer/iron_hammer-8.ron
index 0a9d25ae8e..a171f2a604 100644
--- a/assets/common/items/weapons/hammer/iron_hammer-8.ron
+++ b/assets/common/items/weapons/hammer/iron_hammer-8.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with iron.",
     kind: Tool(
         (
-            kind: Hammer(IronHammer8),    
+            kind: Hammer("IronHammer8"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/hammer/mjolnir.ron b/assets/common/items/weapons/hammer/mjolnir.ron
index 9fe513de64..b9fc92943b 100644
--- a/assets/common/items/weapons/hammer/mjolnir.ron
+++ b/assets/common/items/weapons/hammer/mjolnir.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's crackling with lightning.",
     kind: Tool(
         (
-            kind: Hammer(Mjolnir),    
+            kind: Hammer("Mjolnir"),    
             stats: (
                 equip_time_millis: 500,
                 power: 2.00,
diff --git a/assets/common/items/weapons/hammer/ramshead_hammer.ron b/assets/common/items/weapons/hammer/ramshead_hammer.ron
index fadeb831e4..b2662aaaea 100644
--- a/assets/common/items/weapons/hammer/ramshead_hammer.ron
+++ b/assets/common/items/weapons/hammer/ramshead_hammer.ron
@@ -3,7 +3,7 @@ Item(
     description: "You feel an evil presence in the hammer.",
     kind: Tool(
         (
-            kind: Hammer(RamsheadHammer),    
+            kind: Hammer("RamsheadHammer"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.80,
diff --git a/assets/common/items/weapons/hammer/runic_hammer.ron b/assets/common/items/weapons/hammer/runic_hammer.ron
index fee6415ef5..33046cb565 100644
--- a/assets/common/items/weapons/hammer/runic_hammer.ron
+++ b/assets/common/items/weapons/hammer/runic_hammer.ron
@@ -3,7 +3,7 @@ Item(
     description: "There are strange runes inscribed into it.",
     kind: Tool(
         (
-            kind: Hammer(RunicHammer),    
+            kind: Hammer("RunicHammer"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.80,
diff --git a/assets/common/items/weapons/hammer/starter_hammer.ron b/assets/common/items/weapons/hammer/starter_hammer.ron
index 5e96f3b028..e871d6cc38 100644
--- a/assets/common/items/weapons/hammer/starter_hammer.ron
+++ b/assets/common/items/weapons/hammer/starter_hammer.ron
@@ -3,7 +3,7 @@ Item(
     description: "'Property of...' The rest is missing.",
     kind: Tool(
         (
-            kind: Hammer(BasicHammer),    
+            kind: Hammer("BasicHammer"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.50,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-0.ron b/assets/common/items/weapons/hammer/steel_hammer-0.ron
index e7beaa8acf..d3aad2c12a 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer0),    
+            kind: Hammer("SteelHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-1.ron b/assets/common/items/weapons/hammer/steel_hammer-1.ron
index af48dc1b20..cfcc1e110c 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer1),    
+            kind: Hammer("SteelHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-2.ron b/assets/common/items/weapons/hammer/steel_hammer-2.ron
index 0facbc44d9..11ce5a083e 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-2.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer2),    
+            kind: Hammer("SteelHammer2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-3.ron b/assets/common/items/weapons/hammer/steel_hammer-3.ron
index 0e896b86aa..ab97c15a7c 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-3.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer3),    
+            kind: Hammer("SteelHammer3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-4.ron b/assets/common/items/weapons/hammer/steel_hammer-4.ron
index 263c2ebb25..a999cf8692 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-4.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer4),    
+            kind: Hammer("SteelHammer4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/steel_hammer-5.ron b/assets/common/items/weapons/hammer/steel_hammer-5.ron
index c3990bfc78..1409c0121c 100644
--- a/assets/common/items/weapons/hammer/steel_hammer-5.ron
+++ b/assets/common/items/weapons/hammer/steel_hammer-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "Forged with steel.",
     kind: Tool(
         (
-            kind: Hammer(SteelHammer5),    
+            kind: Hammer("SteelHammer5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/hammer/stone_hammer-0.ron b/assets/common/items/weapons/hammer/stone_hammer-0.ron
index 215c38e55f..0a12b75c5f 100644
--- a/assets/common/items/weapons/hammer/stone_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/stone_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It seems brittle.",
     kind: Tool(
         (
-            kind: Hammer(StoneHammer0),    
+            kind: Hammer("StoneHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.70,
diff --git a/assets/common/items/weapons/hammer/stone_hammer-1.ron b/assets/common/items/weapons/hammer/stone_hammer-1.ron
index 045b13127e..cb33efc4b6 100644
--- a/assets/common/items/weapons/hammer/stone_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/stone_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It seems brittle.",
     kind: Tool(
         (
-            kind: Hammer(StoneHammer1),    
+            kind: Hammer("StoneHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.70,
diff --git a/assets/common/items/weapons/hammer/stone_hammer-2.ron b/assets/common/items/weapons/hammer/stone_hammer-2.ron
index 8f86fca117..8490c9b468 100644
--- a/assets/common/items/weapons/hammer/stone_hammer-2.ron
+++ b/assets/common/items/weapons/hammer/stone_hammer-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It seems brittle.",
     kind: Tool(
         (
-            kind: Hammer(StoneHammer2),    
+            kind: Hammer("StoneHammer2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.70,
diff --git a/assets/common/items/weapons/hammer/stone_hammer-3.ron b/assets/common/items/weapons/hammer/stone_hammer-3.ron
index c14e05e638..5e58f89be2 100644
--- a/assets/common/items/weapons/hammer/stone_hammer-3.ron
+++ b/assets/common/items/weapons/hammer/stone_hammer-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "It seems brittle.",
     kind: Tool(
         (
-            kind: Hammer(StoneHammer3),    
+            kind: Hammer("StoneHammer3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.70,
diff --git a/assets/common/items/weapons/hammer/wood_hammer-0.ron b/assets/common/items/weapons/hammer/wood_hammer-0.ron
index ed954d40dc..7f3ff8cb97 100644
--- a/assets/common/items/weapons/hammer/wood_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/wood_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "Seems sturdy enough.",
     kind: Tool(
         (
-            kind: Hammer(WoodHammer0),    
+            kind: Hammer("WoodHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron
index 627cd3cd7a..666e0cfa3c 100644
--- a/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "The previous owner won't miss it much.",
     kind: Tool(
         (
-            kind: Hammer(WornIronHammer0),    
+            kind: Hammer("WornIronHammer0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.85,
diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron
index 425394261e..f581ed5b17 100644
--- a/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "The previous owner won't miss it much.",
     kind: Tool(
         (
-            kind: Hammer(WornIronHammer1),    
+            kind: Hammer("WornIronHammer1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.85,
diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron
index c97a09f9e8..76d4ac2f24 100644
--- a/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "The previous owner won't miss it much.",
     kind: Tool(
         (
-            kind: Hammer(WornIronHammer2),    
+            kind: Hammer("WornIronHammer2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.85,
diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron
index 276385d7c4..fe9020cbd2 100644
--- a/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "The previous owner won't miss it much.",
     kind: Tool(
         (
-            kind: Hammer(WornIronHammer3),    
+            kind: Hammer("WornIronHammer3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.85,
diff --git a/assets/common/items/weapons/shield/shield_1.ron b/assets/common/items/weapons/shield/shield_1.ron
index ce1a0d5a2a..6fe9c4a971 100644
--- a/assets/common/items/weapons/shield/shield_1.ron
+++ b/assets/common/items/weapons/shield/shield_1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Should withstand a few more hits, hopefully...",
     kind: Tool (
         (
-            kind: Shield(BasicShield),
+            kind: Shield("BasicShield"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/staff/amethyst_staff.ron b/assets/common/items/weapons/staff/amethyst_staff.ron
index 4d23b5f259..05f476e24b 100644
--- a/assets/common/items/weapons/staff/amethyst_staff.ron
+++ b/assets/common/items/weapons/staff/amethyst_staff.ron
@@ -3,7 +3,7 @@ Item(
     description: "The amethyst faintly glows.",
     kind: Tool(
         (
-            kind: Staff(AmethystStaff),   
+            kind: Staff("AmethystStaff"),   
             stats: ( 
                 equip_time_millis: 300,
                 power: 1.50,
diff --git a/assets/common/items/weapons/staff/bone_staff.ron b/assets/common/items/weapons/staff/bone_staff.ron
index 7159d7273c..ae9ba4076a 100644
--- a/assets/common/items/weapons/staff/bone_staff.ron
+++ b/assets/common/items/weapons/staff/bone_staff.ron
@@ -3,7 +3,7 @@ Item(
     description: "There's a red gem suspended in the bones.",
     kind: Tool(
         (
-            kind: Staff(BoneStaff),    
+            kind: Staff("BoneStaff"),    
             stats: (
                 equip_time_millis: 300,
                 power: 1.00,
diff --git a/assets/common/items/weapons/staff/cultist_staff.ron b/assets/common/items/weapons/staff/cultist_staff.ron
index 3c4fb7f1e0..626351932c 100644
--- a/assets/common/items/weapons/staff/cultist_staff.ron
+++ b/assets/common/items/weapons/staff/cultist_staff.ron
@@ -3,7 +3,7 @@ Item(
     description: "The fire gives off no heat.",
     kind: Tool(
         (
-            kind: Staff(CultistStaff),    
+            kind: Staff("CultistStaff"),    
             stats: (
                 equip_time_millis: 300,
                 power: 2.00,
diff --git a/assets/common/items/weapons/staff/staff_1.ron b/assets/common/items/weapons/staff/staff_1.ron
index cda1730332..275bc4ac4a 100644
--- a/assets/common/items/weapons/staff/staff_1.ron
+++ b/assets/common/items/weapons/staff/staff_1.ron
@@ -3,7 +3,7 @@ Item(
     description: "Walking stick with a sharpened end.",
     kind: Tool(
         (
-            kind: Staff(BasicStaff),
+            kind: Staff("BasicStaff"),
             stats: (
                 equip_time_millis: 200,
                 power: 0.50,
diff --git a/assets/common/items/weapons/staff/staff_nature.ron b/assets/common/items/weapons/staff/staff_nature.ron
index 4e4a5875d3..6bac1e48eb 100644
--- a/assets/common/items/weapons/staff/staff_nature.ron
+++ b/assets/common/items/weapons/staff/staff_nature.ron
@@ -3,7 +3,7 @@ Item(
     description: "Heals your allies with the power of nature.",      
     kind: Tool(
         (
-            kind: Staff(Sceptre),    
+            kind: Staff("Sceptre"),    
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/staff/starter_staff.ron b/assets/common/items/weapons/staff/starter_staff.ron
index 568158ea80..0fb6f585d8 100644
--- a/assets/common/items/weapons/staff/starter_staff.ron
+++ b/assets/common/items/weapons/staff/starter_staff.ron
@@ -3,7 +3,7 @@ Item(
     description: "Smells like resin and magic.",
     kind: Tool(
         (
-            kind: Staff(BasicStaff),    
+            kind: Staff("BasicStaff"),    
             stats: (
                 equip_time_millis: 300,
                 power: 0.50,
diff --git a/assets/common/items/weapons/sword/cultist_purp_2h-0.ron b/assets/common/items/weapons/sword/cultist_purp_2h-0.ron
index d1bfa7bb36..6f6af1bd99 100644
--- a/assets/common/items/weapons/sword/cultist_purp_2h-0.ron
+++ b/assets/common/items/weapons/sword/cultist_purp_2h-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "This belonged to an evil Cult Leader.",
     kind: Tool(
        (
-            kind: Sword(CultPurp0),    
+            kind: Sword("CultPurp0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 2.00,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron
index 6a1c7b7b7e..82416701d3 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
-            kind: Sword(GreatswordDam0),    
+            kind: Sword("GreatswordDam0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.80,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron
index 83d15ea7b7..93c43c8a54 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
-            kind: Sword(GreatswordDam1),    
+            kind: Sword("GreatswordDam1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.80,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron
index 111b3ff878..e93d4f4f8f 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
-            kind: Sword(GreatswordDam2),    
+            kind: Sword("GreatswordDam2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.80,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron
index 95abc564d9..a446d358da 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
-            kind: Sword(GreatswordFine0),    
+            kind: Sword("GreatswordFine0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron
index 3badfbcd5c..99a83724d3 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
-            kind: Sword(GreatswordFine1),    
+            kind: Sword("GreatswordFine1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron
index 4244eab379..b96587c493 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
-            kind: Sword(GreatswordFine2),    
+            kind: Sword("GreatswordFine2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.40,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron
index 6abb86b3d2..5666f00c40 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "The sword's almost a work of art.",
     kind: Tool(
        (
-            kind: Sword(GreatswordOrn0),    
+            kind: Sword("GreatswordOrn0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.70,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron
index e576e764ab..af5df7d585 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "The sword's almost a work of art.",
     kind: Tool(
        (
-            kind: Sword(GreatswordOrn1),    
+            kind: Sword("GreatswordOrn1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.70,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron
index 99d0398eab..6b900cb700 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "The sword's almost a work of art.",
     kind: Tool(
        (
-            kind: Sword(GreatswordOrn2),    
+            kind: Sword("GreatswordOrn2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.70,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron
index 67d7d6873e..022fa7fc63 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been well used.",
     kind: Tool(
        (
-            kind: Sword(GreatswordSimple0),    
+            kind: Sword("GreatswordSimple0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.10,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron
index dcfa308a5d..23be1fa330 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been well used.",
     kind: Tool(
        (
-            kind: Sword(GreatswordSimple1),    
+            kind: Sword("GreatswordSimple1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.10,
diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron
index d93dd879fa..11c1a1788d 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been well used.",
     kind: Tool(
        (
-            kind: Sword(GreatswordSimple2),    
+            kind: Sword("GreatswordSimple2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.10,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-0.ron b/assets/common/items/weapons/sword/long_2h_dam-0.ron
index bce959a920..eb4e6fca3f 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam0),    
+            kind: Sword("LongDam0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-1.ron b/assets/common/items/weapons/sword/long_2h_dam-1.ron
index ce3e909608..a15b765bb1 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam1),    
+            kind: Sword("LongDam1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-2.ron b/assets/common/items/weapons/sword/long_2h_dam-2.ron
index ea66f096e1..b1405fa475 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam2),    
+            kind: Sword("LongDam2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-3.ron b/assets/common/items/weapons/sword/long_2h_dam-3.ron
index b4d337f218..4420dbec12 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam3),    
+            kind: Sword("LongDam3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-4.ron b/assets/common/items/weapons/sword/long_2h_dam-4.ron
index 2f6b02784c..cfe9c8da80 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam4),    
+            kind: Sword("LongDam4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_dam-5.ron b/assets/common/items/weapons/sword/long_2h_dam-5.ron
index 34d3e5b9c9..879165b971 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's slightly cracked.",
     kind: Tool(
        (
-            kind: Sword(LongDam5),    
+            kind: Sword("LongDam5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.60,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-0.ron b/assets/common/items/weapons/sword/long_2h_fine-0.ron
index b490ba79cc..9713113fdf 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine0),    
+            kind: Sword("LongFine0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-1.ron b/assets/common/items/weapons/sword/long_2h_fine-1.ron
index 28f6dfcaa9..3097707106 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine1),    
+            kind: Sword("LongFine1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-2.ron b/assets/common/items/weapons/sword/long_2h_fine-2.ron
index 2c140aabab..ff4fa5bdaf 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine2),    
+            kind: Sword("LongFine2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-3.ron b/assets/common/items/weapons/sword/long_2h_fine-3.ron
index 7daa493b1a..cf2d4e7a5c 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine3),    
+            kind: Sword("LongFine3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-4.ron b/assets/common/items/weapons/sword/long_2h_fine-4.ron
index 0f293eecc0..801cf19f62 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine4),    
+            kind: Sword("LongFine4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_fine-5.ron b/assets/common/items/weapons/sword/long_2h_fine-5.ron
index ec1270f9df..2670fda4cc 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
-            kind: Sword(LongFine5),    
+            kind: Sword("LongFine5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.20,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-0.ron b/assets/common/items/weapons/sword/long_2h_orn-0.ron
index f3666b68eb..8634a6a135 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn0),    
+            kind: Sword("LongOrn0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-1.ron b/assets/common/items/weapons/sword/long_2h_orn-1.ron
index b5b5942e64..686b1635a2 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn1),    
+            kind: Sword("LongOrn1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-2.ron b/assets/common/items/weapons/sword/long_2h_orn-2.ron
index 8214bf5695..3ffe180aee 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn2),    
+            kind: Sword("LongOrn2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-3.ron b/assets/common/items/weapons/sword/long_2h_orn-3.ron
index a6c60d0f1f..fc831ee3f4 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn3),    
+            kind: Sword("LongOrn3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-4.ron b/assets/common/items/weapons/sword/long_2h_orn-4.ron
index cee5dd1f81..bcc54c8a2f 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn4),    
+            kind: Sword("LongOrn4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_orn-5.ron b/assets/common/items/weapons/sword/long_2h_orn-5.ron
index c9e481c421..148aeb56ad 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
-            kind: Sword(LongOrn5),    
+            kind: Sword("LongOrn5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-0.ron b/assets/common/items/weapons/sword/long_2h_simple-0.ron
index 39b884b7cd..bae0afc87d 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple0),    
+            kind: Sword("LongSimple0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-1.ron b/assets/common/items/weapons/sword/long_2h_simple-1.ron
index 4f73bec92a..72a0d0f411 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple1),    
+            kind: Sword("LongSimple1"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-2.ron b/assets/common/items/weapons/sword/long_2h_simple-2.ron
index 865a177a2e..8b1bf62e17 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-2.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple2),    
+            kind: Sword("LongSimple2"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-3.ron b/assets/common/items/weapons/sword/long_2h_simple-3.ron
index 6aa7bf2b29..ce66e82c0b 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-3.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple3),    
+            kind: Sword("LongSimple3"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-4.ron b/assets/common/items/weapons/sword/long_2h_simple-4.ron
index 3ce5b159b7..b56926e289 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-4.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple4),    
+            kind: Sword("LongSimple4"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/long_2h_simple-5.ron b/assets/common/items/weapons/sword/long_2h_simple-5.ron
index e105db14bd..6f66fe30be 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-5.ron
@@ -3,7 +3,7 @@ Item(
     description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
-            kind: Sword(LongSimple5),    
+            kind: Sword("LongSimple5"),    
             stats: (
                 equip_time_millis: 500,
                 power: 0.90,
diff --git a/assets/common/items/weapons/sword/short_sword_0.ron b/assets/common/items/weapons/sword/short_sword_0.ron
index 474eab303b..98e746af7c 100644
--- a/assets/common/items/weapons/sword/short_sword_0.ron
+++ b/assets/common/items/weapons/sword/short_sword_0.ron
@@ -3,7 +3,7 @@ Item(
     description: "There's blood encrusted on the blade.",
     kind: Tool(
         (
-            kind: Sword(Short0),    
+            kind: Sword("Short0"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.75,
diff --git a/assets/common/items/weapons/sword/starter_sword.ron b/assets/common/items/weapons/sword/starter_sword.ron
index 223c633b95..5eef68dca3 100644
--- a/assets/common/items/weapons/sword/starter_sword.ron
+++ b/assets/common/items/weapons/sword/starter_sword.ron
@@ -3,7 +3,7 @@ Item(
     description: "Held together by Rust and hope.",
     kind: Tool(
         (
-            kind: Sword(BasicSword),    
+            kind: Sword("BasicSword"),    
             stats: (
                 equip_time_millis: 300,
                 power: 0.50,
diff --git a/assets/common/items/weapons/sword/wood_sword.ron b/assets/common/items/weapons/sword/wood_sword.ron
index f8df8df720..dc985ebae6 100644
--- a/assets/common/items/weapons/sword/wood_sword.ron
+++ b/assets/common/items/weapons/sword/wood_sword.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's not sharp.",
     kind: Tool(
         (
-            kind: Sword(WoodTraining),    
+            kind: Sword("WoodTraining"),    
             stats: (
                 equip_time_millis: 400,
                 power: 0.50,
diff --git a/assets/common/items/weapons/sword/zweihander_sword_0.ron b/assets/common/items/weapons/sword/zweihander_sword_0.ron
index e960188c19..d68cef20d5 100644
--- a/assets/common/items/weapons/sword/zweihander_sword_0.ron
+++ b/assets/common/items/weapons/sword/zweihander_sword_0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's a big sword, and sharp too.",
     kind: Tool(
        (
-            kind: Sword(Zweihander0),    
+            kind: Sword("Zweihander0"),    
             stats: (
                 equip_time_millis: 500,
                 power: 1.50,
diff --git a/assets/common/items/weapons/tool/broom.ron b/assets/common/items/weapons/tool/broom.ron
index 0e68b82413..a4343a6a7d 100644
--- a/assets/common/items/weapons/tool/broom.ron
+++ b/assets/common/items/weapons/tool/broom.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's beginning to fall apart.",
     kind: Tool (
         (
-            kind: Farming(Broom),
+            kind: Farming("Broom"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/fishing_rod.ron b/assets/common/items/weapons/tool/fishing_rod.ron
index 4da51b2db0..03a66f82c1 100644
--- a/assets/common/items/weapons/tool/fishing_rod.ron
+++ b/assets/common/items/weapons/tool/fishing_rod.ron
@@ -3,7 +3,7 @@ Item(
     description: "Smells of fish.",
     kind: Tool (
         (
-            kind: Farming(FishingRod0),
+            kind: Farming("FishingRod0"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/hoe.ron b/assets/common/items/weapons/tool/hoe.ron
index 70527eff36..a9551af028 100644
--- a/assets/common/items/weapons/tool/hoe.ron
+++ b/assets/common/items/weapons/tool/hoe.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's stained with dirt.",
     kind: Tool (
         (
-            kind: Farming(Hoe0),
+            kind: Farming("Hoe0"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/pickaxe.ron b/assets/common/items/weapons/tool/pickaxe.ron
index 4c4c527be4..00bf38958f 100644
--- a/assets/common/items/weapons/tool/pickaxe.ron
+++ b/assets/common/items/weapons/tool/pickaxe.ron
@@ -3,7 +3,7 @@ Item(
     description: "It has a chipped edge.",
     kind: Tool (
         (
-            kind: Farming(Pickaxe0),
+            kind: Farming("Pickaxe0"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/pitchfork.ron b/assets/common/items/weapons/tool/pitchfork.ron
index f425c9e7c7..d1887c4908 100644
--- a/assets/common/items/weapons/tool/pitchfork.ron
+++ b/assets/common/items/weapons/tool/pitchfork.ron
@@ -3,7 +3,7 @@ Item(
     description: "One of the prongs is broken.",
     kind: Tool (
         (
-            kind: Farming(Pitchfork),
+            kind: Farming("Pitchfork"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/rake.ron b/assets/common/items/weapons/tool/rake.ron
index b9ec11f738..6b210a92f0 100644
--- a/assets/common/items/weapons/tool/rake.ron
+++ b/assets/common/items/weapons/tool/rake.ron
@@ -3,7 +3,7 @@ Item(
     description: "Held together with twine.",
     kind: Tool (
         (
-            kind: Farming(Rake),
+            kind: Farming("Rake"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/shovel-0.ron b/assets/common/items/weapons/tool/shovel-0.ron
index 46edc4ee5d..6f30d8356d 100644
--- a/assets/common/items/weapons/tool/shovel-0.ron
+++ b/assets/common/items/weapons/tool/shovel-0.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's covered in manure.",
     kind: Tool (
         (
-            kind: Farming(Shovel0),
+            kind: Farming("Shovel0"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/common/items/weapons/tool/shovel-1.ron b/assets/common/items/weapons/tool/shovel-1.ron
index f191d77645..e4db84bbfe 100644
--- a/assets/common/items/weapons/tool/shovel-1.ron
+++ b/assets/common/items/weapons/tool/shovel-1.ron
@@ -3,7 +3,7 @@ Item(
     description: "It's been recently cleaned.",
     kind: Tool (
         (
-            kind: Farming(Shovel1),
+            kind: Farming("Shovel1"),
             stats: (
                 equip_time_millis: 400,
                 power: 1.00,
diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron
index 20ddabafcc..b352dd9655 100644
--- a/assets/voxygen/item_image_manifest.ron
+++ b/assets/voxygen/item_image_manifest.ron
@@ -4,506 +4,506 @@
 ({
     // Weapons
     // Bows
-    Tool(Bow(ShortBow0)): VoxTrans(
+    Tool(Bow("ShortBow0")): VoxTrans(
         "voxel.weapon.bow.shortbow_starter",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(WoodShortbow0)): VoxTrans(
+    Tool(Bow("WoodShortbow0")): VoxTrans(
         "voxel.weapon.bow.shortbow_wood-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(WoodShortbow1)): VoxTrans(
+    Tool(Bow("WoodShortbow1")): VoxTrans(
         "voxel.weapon.bow.shortbow_wood-1",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(LeafyShortbow0)): VoxTrans(
+    Tool(Bow("LeafyShortbow0")): VoxTrans(
         "voxel.weapon.bow.shortbow_leafy-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(WoodLongbow0)): VoxTrans(
+    Tool(Bow("WoodLongbow0")): VoxTrans(
         "voxel.weapon.bow.longbow_wood-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(WoodLongbow1)): VoxTrans(
+    Tool(Bow("WoodLongbow1")): VoxTrans(
         "voxel.weapon.bow.longbow_wood-1",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(LeafyLongbow0)): VoxTrans(
+    Tool(Bow("LeafyLongbow0")): VoxTrans(
         "voxel.weapon.bow.longbow_leafy-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(HornLongbow0)): VoxTrans(
+    Tool(Bow("HornLongbow0")): VoxTrans(
         "voxel.weapon.bow.longbow_horn-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(IronLongbow0)): VoxTrans(
+    Tool(Bow("IronLongbow0")): VoxTrans(
         "voxel.weapon.bow.longbow_iron-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Bow(RareLongbow)): VoxTrans(
+    Tool(Bow("RareLongbow")): VoxTrans(
         "voxel.weapon.bow.longbow_rare",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
     // Daggers
-    Tool(Dagger(BasicDagger)): VoxTrans(
+    Tool(Dagger("BasicDagger")): VoxTrans(
         "voxel.weapon.dagger.dagger_rusty",
         (0.0, 0.0, -4.0), (-120.0, 90.0, 0.0), 1.1,
     ),
     // Swords
-    Tool(Sword(Short0)): VoxTrans(
+    Tool(Sword("Short0")): VoxTrans(
         "voxel.weapon.sword.short_2h-0",
         (-3.0, 3.0, 0.0), (-135.0, 90.0, 0.0), 1.60,
     ),
-    Tool(Sword(BasicSword)): VoxTrans(
+    Tool(Sword("BasicSword")): VoxTrans(
         "voxel.weapon.sword.rusty_2h",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3,
     ),
-    Tool(Sword(Zweihander0)): VoxTrans(
+    Tool(Sword("Zweihander0")): VoxTrans(
         "voxel.weapon.sword.zweihander_2h-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Sword(WoodTraining)): VoxTrans(
+    Tool(Sword("WoodTraining")): VoxTrans(
         "voxel.weapon.sword.wood_2h",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3,
     ),
-    Tool(Sword(LongFine3)): VoxTrans(
+    Tool(Sword("LongFine3")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-3",
         (0.0, 9.0, 0.0), (-90.0, 90.0, 0.0), 2.4,
     ),
-    Tool(Sword(GreatswordDam0)): VoxTrans(
+    Tool(Sword("GreatswordDam0")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_dam-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordDam1)): VoxTrans(
+    Tool(Sword("GreatswordDam1")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_dam-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordDam2)): VoxTrans(
+    Tool(Sword("GreatswordDam2")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_dam-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordSimple0)): VoxTrans(
+    Tool(Sword("GreatswordSimple0")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_simple-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordSimple1)): VoxTrans(
+    Tool(Sword("GreatswordSimple1")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_simple-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordSimple2)): VoxTrans(
+    Tool(Sword("GreatswordSimple2")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_simple-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordOrn0)): VoxTrans(
+    Tool(Sword("GreatswordOrn0")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_orn-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordOrn1)): VoxTrans(
+    Tool(Sword("GreatswordOrn1")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_orn-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordOrn2)): VoxTrans(
+    Tool(Sword("GreatswordOrn2")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_orn-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordFine0)): VoxTrans(
+    Tool(Sword("GreatswordFine0")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_fine-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordFine1)): VoxTrans(
+    Tool(Sword("GreatswordFine1")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_fine-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(GreatswordFine2)): VoxTrans(
+    Tool(Sword("GreatswordFine2")): VoxTrans(
         "voxel.weapon.sword.greatsword_2h_fine-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam0)): VoxTrans(
+    Tool(Sword("LongDam0")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam1)): VoxTrans(
+    Tool(Sword("LongDam1")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam2)): VoxTrans(
+    Tool(Sword("LongDam2")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam3)): VoxTrans(
+    Tool(Sword("LongDam3")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-3",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam4)): VoxTrans(
+    Tool(Sword("LongDam4")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-4",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongDam5)): VoxTrans(
+    Tool(Sword("LongDam5")): VoxTrans(
         "voxel.weapon.sword.long_2h_dam-5",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple0)): VoxTrans(
+    Tool(Sword("LongSimple0")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple1)): VoxTrans(
+    Tool(Sword("LongSimple1")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple2)): VoxTrans(
+    Tool(Sword("LongSimple2")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple3)): VoxTrans(
+    Tool(Sword("LongSimple3")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-3",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple4)): VoxTrans(
+    Tool(Sword("LongSimple4")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-4",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongSimple5)): VoxTrans(
+    Tool(Sword("LongSimple5")): VoxTrans(
         "voxel.weapon.sword.long_2h_simple-5",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn0)): VoxTrans(
+    Tool(Sword("LongOrn0")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn1)): VoxTrans(
+    Tool(Sword("LongOrn1")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn2)): VoxTrans(
+    Tool(Sword("LongOrn2")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn3)): VoxTrans(
+    Tool(Sword("LongOrn3")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-3",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn4)): VoxTrans(
+    Tool(Sword("LongOrn4")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-4",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongOrn5)): VoxTrans(
+    Tool(Sword("LongOrn5")): VoxTrans(
         "voxel.weapon.sword.long_2h_orn-5",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine0)): VoxTrans(
+    Tool(Sword("LongFine0")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine1)): VoxTrans(
+    Tool(Sword("LongFine1")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-1",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine2)): VoxTrans(
+    Tool(Sword("LongFine2")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-2",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine3)): VoxTrans(
+    Tool(Sword("LongFine3")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-3",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine4)): VoxTrans(
+    Tool(Sword("LongFine4")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-4",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(LongFine5)): VoxTrans(
+    Tool(Sword("LongFine5")): VoxTrans(
         "voxel.weapon.sword.long_2h_fine-5",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Sword(CultPurp0)): VoxTrans(
+    Tool(Sword("CultPurp0")): VoxTrans(
         "voxel.weapon.sword.cultist_purp_2h-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
     ),
     // Axes
-    Tool(Axe(BasicAxe)): VoxTrans(
+    Tool(Axe("BasicAxe")): VoxTrans(
         "voxel.weapon.axe.2haxe_rusty",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(OrcAxe0)): VoxTrans(
+    Tool(Axe("OrcAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_orc-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(WornIronAxe0)): VoxTrans(
+    Tool(Axe("WornIronAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_worn_iron-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(WornIronAxe1)): VoxTrans(
+    Tool(Axe("WornIronAxe1")): VoxTrans(
         "voxel.weapon.axe.2haxe_worn_iron-1",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(WornIronAxe2)): VoxTrans(
+    Tool(Axe("WornIronAxe2")): VoxTrans(
         "voxel.weapon.axe.2haxe_worn_iron-2",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(WornIronAxe3)): VoxTrans(
+    Tool(Axe("WornIronAxe3")): VoxTrans(
         "voxel.weapon.axe.2haxe_worn_iron-3",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(WornIronAxe4)): VoxTrans(
+    Tool(Axe("WornIronAxe4")): VoxTrans(
         "voxel.weapon.axe.2haxe_worn_iron-4",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(BronzeAxe0)): VoxTrans(
+    Tool(Axe("BronzeAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_bronze-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(BronzeAxe1)): VoxTrans(
+    Tool(Axe("BronzeAxe1")): VoxTrans(
         "voxel.weapon.axe.2haxe_bronze-1",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe0)): VoxTrans(
+    Tool(Axe("IronAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe1)): VoxTrans(
+    Tool(Axe("IronAxe1")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-1",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe2)): VoxTrans(
+    Tool(Axe("IronAxe2")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-2",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe3)): VoxTrans(
+    Tool(Axe("IronAxe3")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-3",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe4)): VoxTrans(
+    Tool(Axe("IronAxe4")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-4",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe5)): VoxTrans(
+    Tool(Axe("IronAxe5")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-5",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe6)): VoxTrans(
+    Tool(Axe("IronAxe6")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-6",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe7)): VoxTrans(
+    Tool(Axe("IronAxe7")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-7",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe8)): VoxTrans(
+    Tool(Axe("IronAxe8")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-8",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe8)): VoxTrans(
+    Tool(Axe("IronAxe8")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-8",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(IronAxe9)): VoxTrans(
+    Tool(Axe("IronAxe9")): VoxTrans(
         "voxel.weapon.axe.2haxe_iron-9",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe0)): VoxTrans(
+    Tool(Axe("SteelAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe1)): VoxTrans(
+    Tool(Axe("SteelAxe1")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-1",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe2)): VoxTrans(
+    Tool(Axe("SteelAxe2")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-2",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe3)): VoxTrans(
+    Tool(Axe("SteelAxe3")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-3",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe4)): VoxTrans(
+    Tool(Axe("SteelAxe4")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-4",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe5)): VoxTrans(
+    Tool(Axe("SteelAxe5")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-5",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(SteelAxe6)): VoxTrans(
+    Tool(Axe("SteelAxe6")): VoxTrans(
         "voxel.weapon.axe.2haxe_steel-6",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(BloodsteelAxe0)): VoxTrans(
+    Tool(Axe("BloodsteelAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_bloodsteel-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(BloodsteelAxe1)): VoxTrans(
+    Tool(Axe("BloodsteelAxe1")): VoxTrans(
         "voxel.weapon.axe.2haxe_bloodsteel-1",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(BloodsteelAxe2)): VoxTrans(
+    Tool(Axe("BloodsteelAxe2")): VoxTrans(
         "voxel.weapon.axe.2haxe_bloodsteel-2",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(CobaltAxe0)): VoxTrans(
+    Tool(Axe("CobaltAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_cobalt-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Axe(MalachiteAxe0)): VoxTrans(
+    Tool(Axe("MalachiteAxe0")): VoxTrans(
         "voxel.weapon.axe.2haxe_malachite-0",
         (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
     // Hammers
-    Tool(Hammer(BasicHammer)): VoxTrans(
+    Tool(Hammer("BasicHammer")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_rusty",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(WoodHammer0)): VoxTrans(
+    Tool(Hammer("WoodHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_wood-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(FlimsyHammer)): VoxTrans(
+    Tool(Hammer("FlimsyHammer")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_flimsy",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(StoneHammer0)): VoxTrans(
+    Tool(Hammer("StoneHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_stone-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(StoneHammer1)): VoxTrans(
+    Tool(Hammer("StoneHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_stone-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(StoneHammer2)): VoxTrans(
+    Tool(Hammer("StoneHammer2")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_stone-2",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(StoneHammer3)): VoxTrans(
+    Tool(Hammer("StoneHammer3")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_stone-3",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(WornIronHammer0)): VoxTrans(
+    Tool(Hammer("WornIronHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_worn_iron-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(WornIronHammer1)): VoxTrans(
+    Tool(Hammer("WornIronHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_worn_iron-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(WornIronHammer2)): VoxTrans(
+    Tool(Hammer("WornIronHammer2")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_worn_iron-2",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(WornIronHammer3)): VoxTrans(
+    Tool(Hammer("WornIronHammer3")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_worn_iron-3",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(BronzeHammer0)): VoxTrans(
+    Tool(Hammer("BronzeHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_bronze-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(BronzeHammer1)): VoxTrans(
+    Tool(Hammer("BronzeHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_bronze-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer0)): VoxTrans(
+    Tool(Hammer("IronHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer1)): VoxTrans(
+    Tool(Hammer("IronHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer2)): VoxTrans(
+    Tool(Hammer("IronHammer2")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-2",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer3)): VoxTrans(
+    Tool(Hammer("IronHammer3")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-3",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer4)): VoxTrans(
+    Tool(Hammer("IronHammer4")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-4",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer5)): VoxTrans(
+    Tool(Hammer("IronHammer5")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-5",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer6)): VoxTrans(
+    Tool(Hammer("IronHammer6")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-6",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer7)): VoxTrans(
+    Tool(Hammer("IronHammer7")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-7",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(IronHammer8)): VoxTrans(
+    Tool(Hammer("IronHammer8")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_iron-8",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer0)): VoxTrans(
+    Tool(Hammer("SteelHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer1)): VoxTrans(
+    Tool(Hammer("SteelHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer2)): VoxTrans(
+    Tool(Hammer("SteelHammer2")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-2",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer3)): VoxTrans(
+    Tool(Hammer("SteelHammer3")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-3",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer4)): VoxTrans(
+    Tool(Hammer("SteelHammer4")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-4",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(SteelHammer5)): VoxTrans(
+    Tool(Hammer("SteelHammer5")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_steel-5",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(CobaltHammer0)): VoxTrans(
+    Tool(Hammer("CobaltHammer0")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_Cobalt-0",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(CobaltHammer1)): VoxTrans(
+    Tool(Hammer("CobaltHammer1")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_Cobalt-1",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(RunicHammer)): VoxTrans(
+    Tool(Hammer("RunicHammer")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_runic",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(RamsheadHammer)): VoxTrans(
+    Tool(Hammer("RamsheadHammer")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_ramshead",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Hammer(Mjolnir)): VoxTrans(
+    Tool(Hammer("Mjolnir")): VoxTrans(
         "voxel.weapon.hammer.2hhammer_mjolnir",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
     // Staffs
-    Tool(Staff(BasicStaff)): VoxTrans(
+    Tool(Staff("BasicStaff")): VoxTrans(
         "voxel.weapon.staff.firestaff_starter",
         (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
-    Tool(Staff(BoneStaff)): VoxTrans(
+    Tool(Staff("BoneStaff")): VoxTrans(
         "voxel.weapon.staff.firestaff_bone",
         (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
-    Tool(Staff(AmethystStaff)): VoxTrans(
+    Tool(Staff("AmethystStaff")): VoxTrans(
         "voxel.weapon.staff.firestaff_amethyst",
         (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
-    Tool(Staff(CultistStaff)): VoxTrans(
+    Tool(Staff("CultistStaff")): VoxTrans(
         "voxel.weapon.staff.firestaff_cultist",
         (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
     // Healing staff
-    Tool(Staff(Sceptre)): VoxTrans(
+    Tool(Staff("Sceptre")): VoxTrans(
         "voxel.weapon.staff.wood-nature",
         (1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
     // Shields
-    Tool(Shield(BasicShield)): VoxTrans(
+    Tool(Shield("BasicShield")): VoxTrans(
         "voxel.weapon.shield.wood-0",
         (0.0, 0.0, 0.0), (-90.0, 90.0, 0.0), 2.4,
     ),
@@ -521,43 +521,43 @@
         "element.icons.lantern_red-0",
     ),
     // Farming Equipment
-    Tool(Farming(Broom)): VoxTrans(
+    Tool(Farming("Broom")): VoxTrans(
         "voxel.weapon.tool.broom-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Farming(Hoe0)): VoxTrans(
+    Tool(Farming("Hoe0")): VoxTrans(
         "voxel.weapon.tool.hoe_green",
         (0.0, 0.0, 0.0), (130.0, 35.0, 180.0), 1.0,
     ),
-    Tool(Farming(Hoe1)): VoxTrans(
+    Tool(Farming("Hoe1")): VoxTrans(
         "voxel.weapon.tool.hoe_blue",
         (0.0, 0.0, 0.0), (130.0, 35.0, 180.0), 1.0,
     ),
-    Tool(Farming(Pitchfork)): VoxTrans(
+    Tool(Farming("Pitchfork")): VoxTrans(
         "voxel.weapon.tool.pitchfork-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
-    Tool(Farming(Rake)): VoxTrans(
+    Tool(Farming("Rake")): VoxTrans(
         "voxel.weapon.tool.rake-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Farming(FishingRod0)): VoxTrans(
+    Tool(Farming("FishingRod0")): VoxTrans(
         "voxel.weapon.tool.fishing_rod_blue-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.5,
     ),
-    Tool(Farming(FishingRod0)): VoxTrans(
+    Tool(Farming("FishingRod0")): VoxTrans(
         "voxel.weapon.tool.fishing_rod_orange-0",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Farming(Pickaxe0)): VoxTrans(
+    Tool(Farming("Pickaxe0")): VoxTrans(
         "voxel.weapon.tool.pickaxe_green-0",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0,
     ),
-    Tool(Farming(Shovel0)): VoxTrans(
+    Tool(Farming("Shovel0")): VoxTrans(
         "voxel.weapon.tool.shovel_green",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
-    Tool(Farming(Shovel1)): VoxTrans(
+    Tool(Farming("Shovel1")): VoxTrans(
         "voxel.weapon.tool.shovel_gold",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
     ),
@@ -1143,7 +1143,7 @@
         (0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.8,
     ),
     // Debug Items
-    Tool(Debug(Boost)): VoxTrans(
+    Tool(Debug("Boost")): VoxTrans(
         "voxel.weapon.tool.broom_belzeshrub_purple",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
     ),
diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
index a9405ea3dd..f9269bbe00 100644
--- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
+++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
@@ -1,550 +1,550 @@
 ({  //Swords
-    Sword(BasicSword): (
+    Sword("BasicSword"): (
         vox_spec: ("weapon.sword.rusty_2h", (-1.5, -6.5, -4.0)),
         color: None
     ),
-    Sword(Rapier): (
+    Sword("Rapier"): (
         vox_spec: ("weapon.sword.rusty_2h", (-1.5, -6.5, -4.0)),
         color: None
     ),
-    Sword(WoodTraining): (
+    Sword("WoodTraining"): (
         vox_spec: ("weapon.sword.wood_2h", (-1.5, -6.5, -4.0)),
         color: None
     ),
-    Sword(Zweihander0): (
+    Sword("Zweihander0"): (
         vox_spec: ("weapon.sword.zweihander_2h-0", (-1.5, -6.5, -4.0)),
         color: None
     ),
-    Sword(Short0): (
+    Sword("Short0"): (
         vox_spec: ("weapon.sword.short_2h-0", (-1.5, -6.5, -1.0)),
         color: None
     ),
-    Sword(GreatswordDam0): (
+    Sword("GreatswordDam0"): (
         vox_spec: ("weapon.sword.greatsword_2h_dam-0", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordDam1): (
+    Sword("GreatswordDam1"): (
         vox_spec: ("weapon.sword.greatsword_2h_dam-1", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordDam2): (
+    Sword("GreatswordDam2"): (
         vox_spec: ("weapon.sword.greatsword_2h_dam-2", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordSimple0): (
+    Sword("GreatswordSimple0"): (
         vox_spec: ("weapon.sword.greatsword_2h_simple-0", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordSimple1): (
+    Sword("GreatswordSimple1"): (
         vox_spec: ("weapon.sword.greatsword_2h_simple-1", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordSimple2): (
+    Sword("GreatswordSimple2"): (
         vox_spec: ("weapon.sword.greatsword_2h_simple-2", (-1.0, -4.5, -6.5)),
         color: None
     ),
-    Sword(GreatswordOrn0): (
+    Sword("GreatswordOrn0"): (
         vox_spec: ("weapon.sword.greatsword_2h_orn-0", (-1.0, -4.5, -7.5)),
         color: None
     ),
-    Sword(GreatswordOrn1): (
+    Sword("GreatswordOrn1"): (
         vox_spec: ("weapon.sword.greatsword_2h_orn-1", (-1.0, -4.5, -7.5)),
         color: None
     ),
-    Sword(GreatswordOrn2): (
+    Sword("GreatswordOrn2"): (
         vox_spec: ("weapon.sword.greatsword_2h_orn-2", (-1.0, -4.5, -7.5)),
         color: None
     ),
-    Sword(GreatswordFine0): (
+    Sword("GreatswordFine0"): (
         vox_spec: ("weapon.sword.greatsword_2h_fine-0", (-2.0, -6.5, -8.0)),
         color: None
     ),
-    Sword(GreatswordFine1): (
+    Sword("GreatswordFine1"): (
         vox_spec: ("weapon.sword.greatsword_2h_fine-1", (-2.0, -6.5, -8.0)),
         color: None
     ),
-    Sword(GreatswordFine2): (
+    Sword("GreatswordFine2"): (
         vox_spec: ("weapon.sword.greatsword_2h_fine-2", (-2.0, -6.5, -8.0)),
         color: None
     ),
-    Sword(LongDam0): (
+    Sword("LongDam0"): (
         vox_spec: ("weapon.sword.long_2h_dam-0", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongDam1): (
+    Sword("LongDam1"): (
         vox_spec: ("weapon.sword.long_2h_dam-1", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongDam2): (
+    Sword("LongDam2"): (
         vox_spec: ("weapon.sword.long_2h_dam-2", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongDam3): (
+    Sword("LongDam3"): (
         vox_spec: ("weapon.sword.long_2h_dam-3", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongDam4): (
+    Sword("LongDam4"): (
         vox_spec: ("weapon.sword.long_2h_dam-4", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongDam5): (
+    Sword("LongDam5"): (
         vox_spec: ("weapon.sword.long_2h_dam-5", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple0): (
+    Sword("LongSimple0"): (
         vox_spec: ("weapon.sword.long_2h_simple-0", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple1): (
+    Sword("LongSimple1"): (
         vox_spec: ("weapon.sword.long_2h_simple-1", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple2): (
+    Sword("LongSimple2"): (
         vox_spec: ("weapon.sword.long_2h_simple-2", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple3): (
+    Sword("LongSimple3"): (
         vox_spec: ("weapon.sword.long_2h_simple-3", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple4): (
+    Sword("LongSimple4"): (
         vox_spec: ("weapon.sword.long_2h_simple-4", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongSimple5): (
+    Sword("LongSimple5"): (
         vox_spec: ("weapon.sword.long_2h_simple-5", (-1.0, -3.5, -5.0)),
         color: None
     ),
-    Sword(LongOrn0): (
+    Sword("LongOrn0"): (
         vox_spec: ("weapon.sword.long_2h_orn-0", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongOrn1): (
+    Sword("LongOrn1"): (
         vox_spec: ("weapon.sword.long_2h_orn-1", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongOrn2): (
+    Sword("LongOrn2"): (
         vox_spec: ("weapon.sword.long_2h_orn-2", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongOrn3): (
+    Sword("LongOrn3"): (
         vox_spec: ("weapon.sword.long_2h_orn-3", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongOrn4): (
+    Sword("LongOrn4"): (
         vox_spec: ("weapon.sword.long_2h_orn-4", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongOrn5): (
+    Sword("LongOrn5"): (
         vox_spec: ("weapon.sword.long_2h_orn-5", (-1.0, -3.5, -6.0)),
         color: None
     ),
-    Sword(LongFine0): (
+    Sword("LongFine0"): (
         vox_spec: ("weapon.sword.long_2h_fine-0", (-2.0, -4.5, -6.0)),
         color: None
     ),
-    Sword(LongFine1): (
+    Sword("LongFine1"): (
         vox_spec: ("weapon.sword.long_2h_fine-1", (-2.0, -4.5, -6.0)),
         color: None
     ),
-    Sword(LongFine2): (
+    Sword("LongFine2"): (
         vox_spec: ("weapon.sword.long_2h_fine-2", (-2.0, -4.5, -6.0)),
         color: None
     ),
-    Sword(LongFine3): (
+    Sword("LongFine3"): (
         vox_spec: ("weapon.sword.long_2h_fine-3", (-2.0, -4.5, -6.0)),
         color: None
     ),
-    Sword(LongFine4): (
+    Sword("LongFine4"): (
         vox_spec: ("weapon.sword.long_2h_fine-4", (-2.0, -4.5, -6.0)),
         color: None
     ),
-    Sword(LongFine5): (
+    Sword("LongFine5"): (
         vox_spec: ("weapon.sword.long_2h_fine-5", (-2.0, -4.5, -6.0)),
         color: None
     ),
-     Sword(CultPurp0): (
+     Sword("CultPurp0"): (
         vox_spec: ("weapon.sword.cultist_purp_2h-0", (-2.0, -4.5, -7.5)),
         color: None
     ),
     // Axes
-    Axe(BasicAxe): (
+    Axe("BasicAxe"): (
         vox_spec: ("weapon.axe.2haxe_rusty", (-1.5, -5.0, -4.0)),
         color: None
     ),
-    Axe(OrcAxe0): (
+    Axe("OrcAxe0"): (
         vox_spec: ("weapon.axe.2haxe_orc-0", (-1.5, -3.0, -4.5)),
         color: None
     ),
-    Axe(WornIronAxe0): (
+    Axe("WornIronAxe0"): (
         vox_spec: ("weapon.axe.2haxe_worn_iron-0", (-1.5, -3.0, -4.0)),
         color: None
     ),
-    Axe(WornIronAxe1): (
+    Axe("WornIronAxe1"): (
         vox_spec: ("weapon.axe.2haxe_worn_iron-1", (-1.5, -4.0, -4.0)),
         color: None
     ),
-    Axe(WornIronAxe2): (
+    Axe("WornIronAxe2"): (
         vox_spec: ("weapon.axe.2haxe_worn_iron-2", (-1.5, -4.0, -4.0)),
         color: None
     ),
-    Axe(WornIronAxe3): (
+    Axe("WornIronAxe3"): (
         vox_spec: ("weapon.axe.2haxe_worn_iron-3", (-1.5, -4.5, -4.0)),
         color: None
     ),
-    Axe(WornIronAxe4): (
+    Axe("WornIronAxe4"): (
         vox_spec: ("weapon.axe.2haxe_worn_iron-4", (-1.5, -4.0, -5.5)),
         color: None
     ),
-    Axe(BronzeAxe0): (
+    Axe("BronzeAxe0"): (
         vox_spec: ("weapon.axe.2haxe_bronze-0", (-1.5, -4.0, -4.5)),
         color: None
     ),
-    Axe(BronzeAxe1): (
+    Axe("BronzeAxe1"): (
         vox_spec: ("weapon.axe.2haxe_bronze-1", (-1.5, -3.0, -5.5)),
         color: None
     ),
-    Axe(IronAxe0): (
+    Axe("IronAxe0"): (
         vox_spec: ("weapon.axe.2haxe_iron-0", (-1.5, -5.0, -5.5)),
         color: None
     ),
-    Axe(IronAxe1): (
+    Axe("IronAxe1"): (
         vox_spec: ("weapon.axe.2haxe_iron-1", (-1.5, -5.0, -5.5)),
         color: None
     ),
-    Axe(IronAxe2): (
+    Axe("IronAxe2"): (
         vox_spec: ("weapon.axe.2haxe_iron-2", (-1.5, -5.0, -5.5)),
         color: None
     ),
-    Axe(IronAxe3): (
+    Axe("IronAxe3"): (
         vox_spec: ("weapon.axe.2haxe_iron-3", (-1.5, -6.0, -6.5)),
         color: None
     ),
-    Axe(IronAxe4): (
+    Axe("IronAxe4"): (
         vox_spec: ("weapon.axe.2haxe_iron-4", (-1.5, -6.0, -5.5)),
         color: None
     ),
-    Axe(IronAxe5): (
+    Axe("IronAxe5"): (
         vox_spec: ("weapon.axe.2haxe_iron-5", (-1.5, -6.0, -5.0)),
         color: None
     ),
-    Axe(IronAxe6): (
+    Axe("IronAxe6"): (
         vox_spec: ("weapon.axe.2haxe_iron-6", (-1.5, -5.0, -6.0)),
         color: None
     ),
-    Axe(IronAxe7): (
+    Axe("IronAxe7"): (
         vox_spec: ("weapon.axe.2haxe_iron-7", (-1.5, -5.0, -5.0)),
         color: None
     ),
-    Axe(IronAxe8): (
+    Axe("IronAxe8"): (
         vox_spec: ("weapon.axe.2haxe_iron-8", (-1.5, -5.0, -5.0)),
         color: None
     ),
-    Axe(IronAxe9): (
+    Axe("IronAxe9"): (
         vox_spec: ("weapon.axe.2haxe_iron-9", (-1.5, -4.0, -5.0)),
         color: None
     ),
-    Axe(SteelAxe0): (
+    Axe("SteelAxe0"): (
         vox_spec: ("weapon.axe.2haxe_steel-0", (-1.5, -6.0, -4.5)),
         color: None
     ),
-    Axe(SteelAxe1): (
+    Axe("SteelAxe1"): (
         vox_spec: ("weapon.axe.2haxe_steel-1", (-1.5, -7.0, -5.5)),
         color: None
     ),
-    Axe(SteelAxe2): (
+    Axe("SteelAxe2"): (
         vox_spec: ("weapon.axe.2haxe_steel-2", (-1.5, -3.5, -3.5)),
         color: None
     ),
-    Axe(SteelAxe3): (
+    Axe("SteelAxe3"): (
         vox_spec: ("weapon.axe.2haxe_steel-3", (-1.5, -4.0, -6.0)),
         color: None
     ),
-    Axe(SteelAxe4): (
+    Axe("SteelAxe4"): (
         vox_spec: ("weapon.axe.2haxe_steel-4", (-1.5, -4.0, -5.5)),
         color: None
     ),
-    Axe(SteelAxe5): (
+    Axe("SteelAxe5"): (
         vox_spec: ("weapon.axe.2haxe_steel-5", (-1.5, -5.5, -5.5)),
         color: None
     ),
-    Axe(SteelAxe6): (
+    Axe("SteelAxe6"): (
         vox_spec: ("weapon.axe.2haxe_steel-6", (-1.5, -4.0, -4.0)),
         color: None
     ),
-    Axe(BloodsteelAxe0): (
+    Axe("BloodsteelAxe0"): (
         vox_spec: ("weapon.axe.2haxe_bloodsteel-0", (-1.5, -5.0, -6.0)),
         color: None
     ),
-    Axe(BloodsteelAxe1): (
+    Axe("BloodsteelAxe1"): (
         vox_spec: ("weapon.axe.2haxe_bloodsteel-1", (-1.5, -5.5, -5.0)),
         color: None
     ),
-    Axe(BloodsteelAxe2): (
+    Axe("BloodsteelAxe2"): (
         vox_spec: ("weapon.axe.2haxe_bloodsteel-2", (-1.5, -5.0, -4.0)),
         color: None
     ),
-    Axe(CobaltAxe0): (
+    Axe("CobaltAxe0"): (
         vox_spec: ("weapon.axe.2haxe_cobalt-0", (-1.5, -5.0, -5.5)),
         color: None
     ),
-    Axe(MalachiteAxe0): (
+    Axe("MalachiteAxe0"): (
         vox_spec: ("weapon.axe.2haxe_malachite-0", (-1.5, -5.0, -6.0)),
         color: None
     ),
     // Hammers
-    Hammer(BasicHammer): (
+    Hammer("BasicHammer"): (
         vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)),
         color: None
     ),
-    Hammer(WoodHammer0): (
+    Hammer("WoodHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_wood-0", (-3.5, -5.5, -4.5)),
         color: None
     ),
-    Hammer(FlimsyHammer): (
+    Hammer("FlimsyHammer"): (
         vox_spec: ("weapon.hammer.2hhammer_flimsy", (-2.5, -5.5, -4.0)),
         color: None
     ),
-    Hammer(StoneHammer0): (
+    Hammer("StoneHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_stone-0", (-3.5, -6.5, -5.0)),
         color: None
     ),
-    Hammer(StoneHammer1): (
+    Hammer("StoneHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_stone-1", (-3.5, -6.5, -5.0)),
         color: None
     ),
-    Hammer(StoneHammer2): (
+    Hammer("StoneHammer2"): (
         vox_spec: ("weapon.hammer.2hhammer_stone-2", (-3.5, -6.5, -5.0)),
         color: None
     ),
-    Hammer(StoneHammer3): (
+    Hammer("StoneHammer3"): (
         vox_spec: ("weapon.hammer.2hhammer_stone-3", (-2.5, -6.5, -5.0)),
         color: None
     ),
-    Hammer(WornIronHammer0): (
+    Hammer("WornIronHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_worn_iron-0", (-2.5, -4.5, -4.0)),
         color: None
     ),
-    Hammer(WornIronHammer1): (
+    Hammer("WornIronHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_worn_iron-1", (-2.5, -4.5, -3.0)),
         color: None
     ),
-    Hammer(WornIronHammer2): (
+    Hammer("WornIronHammer2"): (
         vox_spec: ("weapon.hammer.2hhammer_worn_iron-2", (-2.5, -3.5, -3.0)),
         color: None
     ),
-    Hammer(WornIronHammer3): (
+    Hammer("WornIronHammer3"): (
         vox_spec: ("weapon.hammer.2hhammer_worn_iron-3", (-2.5, -4.5, -3.0)),
         color: None
     ),
-    Hammer(BronzeHammer0): (
+    Hammer("BronzeHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_bronze-0", (-2.5, -6.5, -5.0)),
         color: None
     ),
-    Hammer(BronzeHammer1): (
+    Hammer("BronzeHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_bronze-1", (-3.5, -3.5, -4.0)),
         color: None
     ),
-    Hammer(IronHammer0): (
+    Hammer("IronHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-0", (-2.5, -6.5, -4.0)),
         color: None
     ),
-    Hammer(IronHammer1): (
+    Hammer("IronHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-1", (-3.5, -7.5, -5.0)),
         color: None
     ),
-    Hammer(IronHammer2): (
+    Hammer("IronHammer2"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-2", (-3.5, -3.5, -5.0)),
         color: None
     ),
-    Hammer(IronHammer3): (
+    Hammer("IronHammer3"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-3", (-3.5, -3.5, -5.0)),
         color: None
     ),
-    Hammer(IronHammer4): (
+    Hammer("IronHammer4"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-4", (-3.5, -7.5, -4.0)),
         color: None
     ),
-    Hammer(IronHammer5): (
+    Hammer("IronHammer5"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-5", (-1.5, -7.0, -5.0)),
         color: None
     ),
-    Hammer(IronHammer6): (
+    Hammer("IronHammer6"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-6", (-2.5, -7.0, -5.0)),
         color: None
     ),
-    Hammer(IronHammer7): (
+    Hammer("IronHammer7"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-7", (-3.5, -7.5, -5.0)),
         color: None
     ),
-    Hammer(IronHammer8): (
+    Hammer("IronHammer8"): (
         vox_spec: ("weapon.hammer.2hhammer_iron-8", (-1.5, -5.5, -7.0)),
         color: None
     ),
-    Hammer(SteelHammer0): (
+    Hammer("SteelHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-0", (-2.5, -5.5, -5.0)),
         color: None
     ),
-    Hammer(SteelHammer1): (
+    Hammer("SteelHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-1", (-3.5, -7.5, -5.0)),
         color: None
     ),
-    Hammer(SteelHammer2): (
+    Hammer("SteelHammer2"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-2", (-3.5, -3.5, -3.0)),
         color: None
     ),
-    Hammer(SteelHammer3): (
+    Hammer("SteelHammer3"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-3", (-5.5, -5.5, -4.5)),
         color: None
     ),
-    Hammer(SteelHammer4): (
+    Hammer("SteelHammer4"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-4", (-3.5, -7.5, -4.0)),
         color: None
     ),
-    Hammer(SteelHammer5): (
+    Hammer("SteelHammer5"): (
         vox_spec: ("weapon.hammer.2hhammer_steel-5", (-5.5, -5.5, -5.0)),
         color: None
     ),
-    Hammer(CobaltHammer0): (
+    Hammer("CobaltHammer0"): (
         vox_spec: ("weapon.hammer.2hhammer_cobalt-0", (-2.5, -7.5, -6.0)),
         color: None
     ),
-    Hammer(CobaltHammer1): (
+    Hammer("CobaltHammer1"): (
         vox_spec: ("weapon.hammer.2hhammer_cobalt-1", (-4.5, -4.5, -4.0)),
         color: None
     ),
-    Hammer(RunicHammer): (
+    Hammer("RunicHammer"): (
         vox_spec: ("weapon.hammer.2hhammer_runic", (-2.5, -7.5, -5.0)),
         color: None
     ),
-    Hammer(RamsheadHammer): (
+    Hammer("RamsheadHammer"): (
         vox_spec: ("weapon.hammer.2hhammer_ramshead", (-4.5, -5.5, -5.0)),
         color: None
     ),
-    Hammer(Mjolnir): (
+    Hammer("Mjolnir"): (
         vox_spec: ("weapon.hammer.2hhammer_mjolnir", (-2.5, -8.5, -4.0)),
         color: None
     ),
-    /*Dagger(Craftsman): ( //TODO This should be a 1h hammer!
+    /*Dagger("Craftsman"): ( //TODO This should be a 1h hammer!
         vox_spec: ("weapon.hammer.craftsman", (-2.0, -5.0, -5.5)),
         color: None
     ),*/
     // Daggers
-    Dagger(BasicDagger): (
+    Dagger("BasicDagger"): (
         vox_spec: ("weapon.dagger.dagger_rusty", (-1.5, -3.0, -3.0)),
         color: None
     ),
     // Shields
-    Shield(BasicShield): (
+    Shield("BasicShield"): (
         vox_spec: ("weapon.shield.wood-0", (-2.5, -5.5, -5.5)),
         color: None
     ),
     // Bows
-    Bow(ShortBow0): (
+    Bow("ShortBow0"): (
         vox_spec: ("weapon.bow.shortbow_starter", (-1.0, -6.0, 3.0)),
         color: None
     ),
-    Bow(WoodShortbow0): (
+    Bow("WoodShortbow0"): (
         vox_spec: ("weapon.bow.shortbow_wood-0", (-1.0, -6.0, 2.5)),
         color: None
     ),
-    Bow(WoodShortbow1): (
+    Bow("WoodShortbow1"): (
         vox_spec: ("weapon.bow.shortbow_wood-1", (-1.0, -6.5, 2.5)),
         color: None
     ),
-    Bow(LeafyShortbow0): (
+    Bow("LeafyShortbow0"): (
         vox_spec: ("weapon.bow.shortbow_leafy-0", (-1.0, -8.0, 3.5)),
         color: None
     ),
-    Bow(WoodLongbow0): (
+    Bow("WoodLongbow0"): (
         vox_spec: ("weapon.bow.longbow_wood-0", (-1.0, -6.0, -0.5)),
         color: None
     ),
-    Bow(WoodLongbow1): (
+    Bow("WoodLongbow1"): (
         vox_spec: ("weapon.bow.longbow_wood-1", (-1.0, -6.0, 0.0)),
         color: None
     ),
-    Bow(LeafyLongbow0): (
+    Bow("LeafyLongbow0"): (
         vox_spec: ("weapon.bow.longbow_leafy-0", (-1.0, -8.0, -0.5)),
         color: None
     ),
-    Bow(HornLongbow0): (
+    Bow("HornLongbow0"): (
         vox_spec: ("weapon.bow.longbow_horn-0", (-2.0, -6.0, -6.5)),
         color: None
     ),
-    Bow(IronLongbow0): (
+    Bow("IronLongbow0"): (
         vox_spec: ("weapon.bow.longbow_iron-0", (-2.0, -6.0, -5.5)),
         color: None
     ),
-    Bow(RareLongbow): (
+    Bow("RareLongbow"): (
         vox_spec: ("weapon.bow.longbow_rare", (-2.0, -6.0, -2.5)),
         color: None
     ),
     // Farming Equipment
-    Farming(Broom): (
+    Farming("Broom"): (
         vox_spec: ("weapon.tool.broom-0", (-1.5, -4.0, -4.0)),
         color: None
     ),
-    Farming(Hoe0): (
+    Farming("Hoe0"): (
         vox_spec: ("weapon.tool.hoe_green", (-2.5, -4.5, -4.0)),
         color: None
     ),
-    Farming(Hoe1): (
+    Farming("Hoe1"): (
         vox_spec: ("weapon.tool.hoe_blue", (-2.5, -4.5, -4.0)),
         color: None
     ),
-     Farming(Pitchfork): (
+     Farming("Pitchfork"): (
         vox_spec: ("weapon.tool.pitchfork-0", (-1.0, -3.5, -4.0)),
         color: None
     ),
-    Farming(FishingRod0): (
+    Farming("FishingRod0"): (
         vox_spec: ("weapon.tool.fishing_rod_blue-0", (-2.5, -4.5, -4.0)),
         color: None
     ),
-    Farming(Rake): (
+    Farming("Rake"): (
         vox_spec: ("weapon.tool.rake-0", (-1.0, -5.5, -4.0)),
         color: None
     ),
-    Farming(FishingRod1): (
+    Farming("FishingRod1"): (
         vox_spec: ("weapon.tool.fishing_rod_orange-0", (-2.5, -4.5, -4.0)),
         color: None
     ),    
-    Farming(Pickaxe0): (
+    Farming("Pickaxe0"): (
         vox_spec: ("weapon.tool.pickaxe_green-0", (-1.5, -7.5, -4.0)),
         color: None
     ),
-    Farming(Shovel0): (
+    Farming("Shovel0"): (
         vox_spec: ("weapon.tool.shovel_green", (-1.0, -2.5, -4.0)),
         color: None
     ),
-    Farming(Shovel1): (
+    Farming("Shovel1"): (
         vox_spec: ("weapon.tool.shovel_gold", (-1.0, -2.5, -4.0)),
         color: None
     ),
     // Staves    
-    Staff(BasicStaff): (
+    Staff("BasicStaff"): (
         vox_spec: ("weapon.staff.firestaff_starter", (-1.0, -6.0, -3.0)),
         color: None
     ),
-    Staff(BoneStaff): (
+    Staff("BoneStaff"): (
         vox_spec: ("weapon.staff.firestaff_bone", (-1.0, -6.0, -3.0)),
         color: None
     ),
-    Staff(AmethystStaff): (
+    Staff("AmethystStaff"): (
         vox_spec: ("weapon.staff.firestaff_amethyst", (-1.0, -8.0, -4.0)),
         color: None
     ),
-    Staff(CultistStaff): (
+    Staff("CultistStaff"): (
         vox_spec: ("weapon.staff.firestaff_cultist", (-2.0, -6.0, -4.0)),
         color: None
     ),
     // Healing staff
-     Staff(Sceptre): (
+     Staff("Sceptre"): (
         vox_spec: ("weapon.staff.wood-nature", (-1.0, -6.0, -5.0)),
         color: None
     ),
     // Misc
-    Debug(Boost): (
+    Debug("Boost"): (
         vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)),
         color: None
     ),    
diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs
index 895f07bd34..b7bb702e0b 100644
--- a/common/src/comp/inventory/item/mod.rs
+++ b/common/src/comp/inventory/item/mod.rs
@@ -3,7 +3,7 @@ pub mod lottery;
 pub mod tool;
 
 // Reexports
-pub use tool::{DebugKind, Hands, SwordKind, Tool, ToolCategory, ToolKind};
+pub use tool::{Hands, Tool, ToolCategory, ToolKind};
 
 use crate::{
     assets::{self, Asset},
diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs
index 5a083b94be..742709901e 100644
--- a/common/src/comp/inventory/item/tool.rs
+++ b/common/src/comp/inventory/item/tool.rs
@@ -7,187 +7,23 @@ use crate::comp::{
 use serde::{Deserialize, Serialize};
 use std::time::Duration;
 
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum SwordKind {
-    BasicSword,
-    Rapier,
-    Zweihander0,
-    WoodTraining,
-    Short0,
-    GreatswordDam0,
-    GreatswordDam1,
-    GreatswordDam2,
-    GreatswordSimple0,
-    GreatswordSimple1,
-    GreatswordSimple2,
-    GreatswordOrn0,
-    GreatswordOrn1,
-    GreatswordOrn2,
-    GreatswordFine0,
-    GreatswordFine1,
-    GreatswordFine2,
-    LongDam0,
-    LongDam1,
-    LongDam2,
-    LongDam3,
-    LongDam4,
-    LongDam5,
-    LongSimple0,
-    LongSimple1,
-    LongSimple2,
-    LongSimple3,
-    LongSimple4,
-    LongSimple5,
-    LongOrn0,
-    LongOrn1,
-    LongOrn2,
-    LongOrn3,
-    LongOrn4,
-    LongOrn5,
-    LongFine0,
-    LongFine1,
-    LongFine2,
-    LongFine3,
-    LongFine4,
-    LongFine5,
-    CultPurp0,
-}
-
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum AxeKind {
-    BasicAxe,
-    OrcAxe0,
-    WornIronAxe0,
-    WornIronAxe1,
-    WornIronAxe2,
-    WornIronAxe3,
-    WornIronAxe4,
-    BronzeAxe0,
-    BronzeAxe1,
-    IronAxe0,
-    IronAxe1,
-    IronAxe2,
-    IronAxe3,
-    IronAxe4,
-    IronAxe5,
-    IronAxe6,
-    IronAxe7,
-    IronAxe8,
-    IronAxe9,
-    SteelAxe0,
-    SteelAxe1,
-    SteelAxe2,
-    SteelAxe3,
-    SteelAxe4,
-    SteelAxe5,
-    SteelAxe6,
-    BloodsteelAxe0,
-    BloodsteelAxe1,
-    BloodsteelAxe2,
-    CobaltAxe0,
-    MalachiteAxe0,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum HammerKind {
-    BasicHammer,
-    FlimsyHammer,
-    WoodHammer0,
-    StoneHammer0,
-    StoneHammer1,
-    StoneHammer2,
-    StoneHammer3,
-    WornIronHammer0,
-    WornIronHammer1,
-    WornIronHammer2,
-    WornIronHammer3,
-    BronzeHammer0,
-    BronzeHammer1,
-    IronHammer0,
-    IronHammer1,
-    IronHammer2,
-    IronHammer3,
-    IronHammer4,
-    IronHammer5,
-    IronHammer6,
-    IronHammer7,
-    IronHammer8,
-    SteelHammer0,
-    SteelHammer1,
-    SteelHammer2,
-    SteelHammer3,
-    SteelHammer4,
-    SteelHammer5,
-    CobaltHammer0,
-    CobaltHammer1,
-    RunicHammer,
-    RamsheadHammer,
-    Mjolnir,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum BowKind {
-    ShortBow0,
-    WoodShortbow0,
-    WoodShortbow1,
-    LeafyShortbow0,
-    WoodLongbow0,
-    WoodLongbow1,
-    LeafyLongbow0,
-    HornLongbow0,
-    IronLongbow0,
-    RareLongbow,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum DaggerKind {
-    BasicDagger,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum StaffKind {
-    Sceptre,
-    BasicStaff,
-    BoneStaff,
-    AmethystStaff,
-    CultistStaff,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum ShieldKind {
-    BasicShield,
-}
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum FarmKind {
-    Broom,
-    Hoe0,
-    Hoe1,
-    Pitchfork,
-    Rake,
-    FishingRod0,
-    FishingRod1,
-    Pickaxe0,
-    Shovel0,
-    Shovel1,
-}
-
-#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-pub enum DebugKind {
-    Boost,
-}
-
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
+#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum ToolKind {
-    Sword(SwordKind),
-    Axe(AxeKind),
-    Hammer(HammerKind),
-    Bow(BowKind),
-    Dagger(DaggerKind),
-    Staff(StaffKind),
-    Shield(ShieldKind),
-    Debug(DebugKind),
-    Farming(FarmKind),
+    Sword(String),
+    Axe(String),
+    Hammer(String),
+    Bow(String),
+    Dagger(String),
+    Staff(String),
+    Shield(String),
+    Debug(String),
+    Farming(String),
     /// This is an placeholder item, it is used by non-humanoid npcs to attack
     Empty,
 }
 
 impl ToolKind {
-    pub fn into_hands(self) -> Hands {
+    pub fn hands(&self) -> Hands {
         match self {
             ToolKind::Sword(_) => Hands::TwoHand,
             ToolKind::Axe(_) => Hands::TwoHand,
@@ -222,8 +58,8 @@ pub enum ToolCategory {
     Empty,
 }
 
-impl From<ToolKind> for ToolCategory {
-    fn from(kind: ToolKind) -> ToolCategory {
+impl From<&ToolKind> for ToolCategory {
+    fn from(kind: &ToolKind) -> ToolCategory {
         match kind {
             ToolKind::Sword(_) => ToolCategory::Sword,
             ToolKind::Axe(_) => ToolCategory::Axe,
@@ -245,7 +81,7 @@ pub struct Stats {
     power: f32,
 }
 
-#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
+#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
 pub struct Tool {
     pub kind: ToolKind,
     pub stats: Stats,
@@ -272,10 +108,9 @@ impl Tool {
 
     pub fn get_abilities(&self) -> Vec<CharacterAbility> {
         use CharacterAbility::*;
-        //use DebugKind::*;
         use ToolKind::*;
 
-        match self.kind {
+        match &self.kind {
             Sword(_) => vec![
                 TripleStrike {
                     base_damage: (60.0 * self.base_power()) as u32,
@@ -376,86 +211,91 @@ impl Tool {
                     base_damage: (100.0 * self.base_power()) as u32,
                 },
             ],
-            Staff(StaffKind::Sceptre) => vec![
-                BasicMelee {
-                    energy_cost: 0,
-                    buildup_duration: Duration::from_millis(0),
-                    recover_duration: Duration::from_millis(300),
-                    base_healthchange: (-10.0 * self.base_power()) as i32,
-                    range: 10.0,
-                    max_angle: 45.0,
-                },
-                BasicMelee {
-                    energy_cost: 350,
-                    buildup_duration: Duration::from_millis(0),
-                    recover_duration: Duration::from_millis(1000),
-                    base_healthchange: (150.0 * self.base_power()) as i32,
-                    range: 10.0,
-                    max_angle: 45.0,
-                },
-            ],
-            Staff(_) => vec![
-                BasicMelee {
-                    energy_cost: 0,
-                    buildup_duration: Duration::from_millis(100),
-                    recover_duration: Duration::from_millis(300),
-                    base_healthchange: (-40.0 * self.base_power()) as i32,
-                    range: 10.0,
-                    max_angle: 45.0,
-                },
-                BasicRanged {
-                    energy_cost: 0,
-                    holdable: false,
-                    prepare_duration: Duration::from_millis(250),
-                    recover_duration: Duration::from_millis(600),
-                    projectile: Projectile {
-                        hit_solid: vec![projectile::Effect::Vanish],
-                        hit_entity: vec![
-                            projectile::Effect::Damage((-40.0 * self.base_power()) as i32),
-                            projectile::Effect::RewardEnergy(150),
-                            projectile::Effect::Vanish,
-                        ],
-                        time_left: Duration::from_secs(20),
-                        owner: None,
-                    },
-                    projectile_body: Body::Object(object::Body::BoltFire),
-                    projectile_light: Some(LightEmitter {
-                        col: (0.85, 0.5, 0.11).into(),
-                        ..Default::default()
-                    }),
-
-                    projectile_gravity: None,
-                },
-                BasicRanged {
-                    energy_cost: 400,
-                    holdable: true,
-                    prepare_duration: Duration::from_millis(800),
-                    recover_duration: Duration::from_millis(50),
-                    projectile: Projectile {
-                        hit_solid: vec![
-                            projectile::Effect::Explode {
-                                power: 1.4 * self.base_power(),
+            Staff(kind) => {
+                if kind == "Sceptre" {
+                    vec![
+                        BasicMelee {
+                            energy_cost: 0,
+                            buildup_duration: Duration::from_millis(0),
+                            recover_duration: Duration::from_millis(300),
+                            base_healthchange: (-10.0 * self.base_power()) as i32,
+                            range: 10.0,
+                            max_angle: 45.0,
+                        },
+                        BasicMelee {
+                            energy_cost: 350,
+                            buildup_duration: Duration::from_millis(0),
+                            recover_duration: Duration::from_millis(1000),
+                            base_healthchange: (150.0 * self.base_power()) as i32,
+                            range: 10.0,
+                            max_angle: 45.0,
+                        },
+                    ]
+                } else {
+                    vec![
+                        BasicMelee {
+                            energy_cost: 0,
+                            buildup_duration: Duration::from_millis(100),
+                            recover_duration: Duration::from_millis(300),
+                            base_healthchange: (-40.0 * self.base_power()) as i32,
+                            range: 10.0,
+                            max_angle: 45.0,
+                        },
+                        BasicRanged {
+                            energy_cost: 0,
+                            holdable: false,
+                            prepare_duration: Duration::from_millis(250),
+                            recover_duration: Duration::from_millis(600),
+                            projectile: Projectile {
+                                hit_solid: vec![projectile::Effect::Vanish],
+                                hit_entity: vec![
+                                    projectile::Effect::Damage((-40.0 * self.base_power()) as i32),
+                                    projectile::Effect::RewardEnergy(150),
+                                    projectile::Effect::Vanish,
+                                ],
+                                time_left: Duration::from_secs(20),
+                                owner: None,
                             },
-                            projectile::Effect::Vanish,
-                        ],
-                        hit_entity: vec![
-                            projectile::Effect::Explode {
-                                power: 1.4 * self.base_power(),
-                            },
-                            projectile::Effect::Vanish,
-                        ],
-                        time_left: Duration::from_secs(20),
-                        owner: None,
-                    },
-                    projectile_body: Body::Object(object::Body::BoltFireBig),
-                    projectile_light: Some(LightEmitter {
-                        col: (1.0, 0.75, 0.11).into(),
-                        ..Default::default()
-                    }),
+                            projectile_body: Body::Object(object::Body::BoltFire),
+                            projectile_light: Some(LightEmitter {
+                                col: (0.85, 0.5, 0.11).into(),
+                                ..Default::default()
+                            }),
 
-                    projectile_gravity: None,
-                },
-            ],
+                            projectile_gravity: None,
+                        },
+                        BasicRanged {
+                            energy_cost: 400,
+                            holdable: true,
+                            prepare_duration: Duration::from_millis(800),
+                            recover_duration: Duration::from_millis(50),
+                            projectile: Projectile {
+                                hit_solid: vec![
+                                    projectile::Effect::Explode {
+                                        power: 1.4 * self.base_power(),
+                                    },
+                                    projectile::Effect::Vanish,
+                                ],
+                                hit_entity: vec![
+                                    projectile::Effect::Explode {
+                                        power: 1.4 * self.base_power(),
+                                    },
+                                    projectile::Effect::Vanish,
+                                ],
+                                time_left: Duration::from_secs(20),
+                                owner: None,
+                            },
+                            projectile_body: Body::Object(object::Body::BoltFireBig),
+                            projectile_light: Some(LightEmitter {
+                                col: (1.0, 0.75, 0.11).into(),
+                                ..Default::default()
+                            }),
+
+                            projectile_gravity: None,
+                        },
+                    ]
+                }
+            },
             Shield(_) => vec![
                 BasicMelee {
                     energy_cost: 0,
@@ -467,38 +307,42 @@ impl Tool {
                 },
                 BasicBlock,
             ],
-            Debug(kind) => match kind {
-                DebugKind::Boost => vec![
-                    CharacterAbility::Boost {
-                        duration: Duration::from_millis(50),
-                        only_up: false,
-                    },
-                    CharacterAbility::Boost {
-                        duration: Duration::from_millis(50),
-                        only_up: true,
-                    },
-                    BasicRanged {
-                        energy_cost: 0,
-                        holdable: false,
-                        prepare_duration: Duration::from_millis(0),
-                        recover_duration: Duration::from_millis(10),
-                        projectile: Projectile {
-                            hit_solid: vec![projectile::Effect::Stick],
-                            hit_entity: vec![
-                                projectile::Effect::Stick,
-                                projectile::Effect::Possess,
-                            ],
-                            time_left: Duration::from_secs(10),
-                            owner: None,
+            Debug(kind) => {
+                if kind == "Boost" {
+                    vec![
+                        CharacterAbility::Boost {
+                            duration: Duration::from_millis(50),
+                            only_up: false,
                         },
-                        projectile_body: Body::Object(object::Body::ArrowSnake),
-                        projectile_light: Some(LightEmitter {
-                            col: (0.0, 1.0, 0.33).into(),
-                            ..Default::default()
-                        }),
-                        projectile_gravity: None,
-                    },
-                ],
+                        CharacterAbility::Boost {
+                            duration: Duration::from_millis(50),
+                            only_up: true,
+                        },
+                        BasicRanged {
+                            energy_cost: 0,
+                            holdable: false,
+                            prepare_duration: Duration::from_millis(0),
+                            recover_duration: Duration::from_millis(10),
+                            projectile: Projectile {
+                                hit_solid: vec![projectile::Effect::Stick],
+                                hit_entity: vec![
+                                    projectile::Effect::Stick,
+                                    projectile::Effect::Possess,
+                                ],
+                                time_left: Duration::from_secs(10),
+                                owner: None,
+                            },
+                            projectile_body: Body::Object(object::Body::ArrowSnake),
+                            projectile_light: Some(LightEmitter {
+                                col: (0.0, 1.0, 0.33).into(),
+                                ..Default::default()
+                            }),
+                            projectile_gravity: None,
+                        },
+                    ]
+                } else {
+                    vec![]
+                }
             },
             Empty => vec![BasicMelee {
                 energy_cost: 0,
@@ -515,6 +359,6 @@ impl Tool {
     /// (i.e: one may be substituted for the other in crafting recipes or
     /// item possession checks).
     pub fn superficially_eq(&self, other: &Self) -> bool {
-        ToolCategory::from(self.kind) == ToolCategory::from(other.kind)
+        ToolCategory::from(&self.kind) == ToolCategory::from(&other.kind)
     }
 }
diff --git a/common/src/loadout_builder.rs b/common/src/loadout_builder.rs
index 276ea59cf3..0fc3983039 100644
--- a/common/src/loadout_builder.rs
+++ b/common/src/loadout_builder.rs
@@ -104,7 +104,7 @@ impl LoadoutBuilder {
     /// method
     pub fn default_item_config_from_item(maybe_item: Option<Item>) -> Option<ItemConfig> {
         if let Some(item) = maybe_item {
-            if let ItemKind::Tool(tool) = item.kind {
+            if let ItemKind::Tool(tool) = &item.kind {
                 let mut abilities = tool.get_abilities();
                 let mut ability_drain = abilities.drain(..);
 
diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs
index 9e5d6642a5..ee20892e6c 100644
--- a/common/src/states/utils.rs
+++ b/common/src/states/utils.rs
@@ -224,8 +224,8 @@ pub fn handle_ability2_input(data: &JoinData, update: &mut StateUpdate) {
         };
 
         match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::TwoHand), _) => {
                 if let Some(ability) = data
diff --git a/server/src/events/interaction.rs b/server/src/events/interaction.rs
index 74993288b0..878f2f6c67 100644
--- a/server/src/events/interaction.rs
+++ b/server/src/events/interaction.rs
@@ -126,7 +126,7 @@ pub fn handle_possess(server: &Server, possessor_uid: Uid, possesse_uid: Uid) {
                     .or_insert(comp::Loadout::default());
 
                 let item = assets::load_expect_cloned::<comp::Item>("common.items.debug.possess");
-                if let item::ItemKind::Tool(tool) = item.kind {
+                if let item::ItemKind::Tool(tool) = &item.kind {
                     let mut abilities = tool.get_abilities();
                     let mut ability_drain = abilities.drain(..);
                     let debug_item = comp::ItemConfig {
diff --git a/tools/src/main.rs b/tools/src/main.rs
index d71ad426ef..c5fdde3c7d 100644
--- a/tools/src/main.rs
+++ b/tools/src/main.rs
@@ -111,7 +111,7 @@ fn weapon_stats() -> Result<(), Box<dyn Error>> {
                         .replace("/", ".");
                     let asset = assets::load_expect_cloned::<comp::Item>(asset_identifier);
 
-                    match asset.kind {
+                    match &asset.kind {
                         comp::item::ItemKind::Tool(tool) => {
                             let power = tool.base_power().to_string();
                             let equip_time = tool.equip_time().subsec_millis().to_string();
diff --git a/voxygen/src/anim/src/character/alpha.rs b/voxygen/src/anim/src/character/alpha.rs
index 56823da136..dcf8507717 100644
--- a/voxygen/src/anim/src/character/alpha.rs
+++ b/voxygen/src/anim/src/character/alpha.rs
@@ -501,8 +501,8 @@ impl Animation for AlphaAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/beta.rs b/voxygen/src/anim/src/character/beta.rs
index 293309be54..bfa3466638 100644
--- a/voxygen/src/anim/src/character/beta.rs
+++ b/voxygen/src/anim/src/character/beta.rs
@@ -136,8 +136,8 @@ impl Animation for BetaAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/block.rs b/voxygen/src/anim/src/character/block.rs
index 06773c1946..b215071cd8 100644
--- a/voxygen/src/anim/src/character/block.rs
+++ b/voxygen/src/anim/src/character/block.rs
@@ -211,8 +211,8 @@ impl Animation for BlockAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/blockidle.rs b/voxygen/src/anim/src/character/blockidle.rs
index 01da60564c..a08717f268 100644
--- a/voxygen/src/anim/src/character/blockidle.rs
+++ b/voxygen/src/anim/src/character/blockidle.rs
@@ -340,8 +340,8 @@ impl Animation for BlockIdleAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/charge.rs b/voxygen/src/anim/src/character/charge.rs
index e2581c3e2b..11dd3568bb 100644
--- a/voxygen/src/anim/src/character/charge.rs
+++ b/voxygen/src/anim/src/character/charge.rs
@@ -226,8 +226,8 @@ impl Animation for ChargeAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/climb.rs b/voxygen/src/anim/src/character/climb.rs
index 1ef0618b6e..47257ed641 100644
--- a/voxygen/src/anim/src/character/climb.rs
+++ b/voxygen/src/anim/src/character/climb.rs
@@ -188,8 +188,8 @@ impl Animation for ClimbAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/dance.rs b/voxygen/src/anim/src/character/dance.rs
index 8f3a8b573a..a79e16ad9d 100644
--- a/voxygen/src/anim/src/character/dance.rs
+++ b/voxygen/src/anim/src/character/dance.rs
@@ -191,8 +191,8 @@ impl Animation for DanceAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/dash.rs b/voxygen/src/anim/src/character/dash.rs
index 1e91a9fd96..4f6f73e431 100644
--- a/voxygen/src/anim/src/character/dash.rs
+++ b/voxygen/src/anim/src/character/dash.rs
@@ -195,8 +195,8 @@ impl Animation for DashAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/equip.rs b/voxygen/src/anim/src/character/equip.rs
index c4f3d1c057..df02fc16e5 100644
--- a/voxygen/src/anim/src/character/equip.rs
+++ b/voxygen/src/anim/src/character/equip.rs
@@ -231,8 +231,8 @@ impl Animation for EquipAnimation {
         }
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/glidewield.rs b/voxygen/src/anim/src/character/glidewield.rs
index c60a985410..6dfb6dbfb6 100644
--- a/voxygen/src/anim/src/character/glidewield.rs
+++ b/voxygen/src/anim/src/character/glidewield.rs
@@ -372,8 +372,8 @@ impl Animation for GlideWieldAnimation {
         }
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/gliding.rs b/voxygen/src/anim/src/character/gliding.rs
index 615d7d0a1d..27d8d3a6f6 100644
--- a/voxygen/src/anim/src/character/gliding.rs
+++ b/voxygen/src/anim/src/character/gliding.rs
@@ -171,8 +171,8 @@ impl Animation for GlidingAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/idle.rs b/voxygen/src/anim/src/character/idle.rs
index e7d612ca65..7933f4a18a 100644
--- a/voxygen/src/anim/src/character/idle.rs
+++ b/voxygen/src/anim/src/character/idle.rs
@@ -170,8 +170,8 @@ impl Animation for IdleAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/jump.rs b/voxygen/src/anim/src/character/jump.rs
index 62cccf8941..b00ab37dfe 100644
--- a/voxygen/src/anim/src/character/jump.rs
+++ b/voxygen/src/anim/src/character/jump.rs
@@ -213,8 +213,8 @@ impl Animation for JumpAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/leapmelee.rs b/voxygen/src/anim/src/character/leapmelee.rs
index 7a1a218401..4c9aca309d 100644
--- a/voxygen/src/anim/src/character/leapmelee.rs
+++ b/voxygen/src/anim/src/character/leapmelee.rs
@@ -103,8 +103,8 @@ impl Animation for LeapAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/roll.rs b/voxygen/src/anim/src/character/roll.rs
index 5079d119c7..f5eaf819f3 100644
--- a/voxygen/src/anim/src/character/roll.rs
+++ b/voxygen/src/anim/src/character/roll.rs
@@ -183,8 +183,8 @@ impl Animation for RollAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/run.rs b/voxygen/src/anim/src/character/run.rs
index bb64344d39..f85f1ca477 100644
--- a/voxygen/src/anim/src/character/run.rs
+++ b/voxygen/src/anim/src/character/run.rs
@@ -258,8 +258,8 @@ impl Animation for RunAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/shoot.rs b/voxygen/src/anim/src/character/shoot.rs
index 8b0a50d892..9184ab99f5 100644
--- a/voxygen/src/anim/src/character/shoot.rs
+++ b/voxygen/src/anim/src/character/shoot.rs
@@ -186,8 +186,8 @@ impl Animation for ShootAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/sit.rs b/voxygen/src/anim/src/character/sit.rs
index a7c29be2fc..268e7e8dd7 100644
--- a/voxygen/src/anim/src/character/sit.rs
+++ b/voxygen/src/anim/src/character/sit.rs
@@ -175,8 +175,8 @@ impl Animation for SitAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/spin.rs b/voxygen/src/anim/src/character/spin.rs
index e92886a5d5..5c8efb2c4e 100644
--- a/voxygen/src/anim/src/character/spin.rs
+++ b/voxygen/src/anim/src/character/spin.rs
@@ -131,8 +131,8 @@ impl Animation for SpinAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/spinmelee.rs b/voxygen/src/anim/src/character/spinmelee.rs
index 26b4f43269..949b549482 100644
--- a/voxygen/src/anim/src/character/spinmelee.rs
+++ b/voxygen/src/anim/src/character/spinmelee.rs
@@ -158,8 +158,8 @@ impl Animation for SpinMeleeAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/stand.rs b/voxygen/src/anim/src/character/stand.rs
index 96bccada22..bfa97846b3 100644
--- a/voxygen/src/anim/src/character/stand.rs
+++ b/voxygen/src/anim/src/character/stand.rs
@@ -181,8 +181,8 @@ impl Animation for StandAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/swim.rs b/voxygen/src/anim/src/character/swim.rs
index cbabf7c081..e7e23023ae 100644
--- a/voxygen/src/anim/src/character/swim.rs
+++ b/voxygen/src/anim/src/character/swim.rs
@@ -206,8 +206,8 @@ impl Animation for SwimAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/anim/src/character/wield.rs b/voxygen/src/anim/src/character/wield.rs
index 53b0c2f77e..0251f9bb8f 100644
--- a/voxygen/src/anim/src/character/wield.rs
+++ b/voxygen/src/anim/src/character/wield.rs
@@ -384,8 +384,8 @@ impl Animation for WieldAnimation {
         next.r_control.scale = Vec3::one();
 
         next.second.scale = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(),
             (_, _) => Vec3::zero(),
diff --git a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs
index 6126ebc36d..eeeafca25d 100644
--- a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs
+++ b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs
@@ -138,21 +138,21 @@ impl CombatEventMapper {
                         ..
                     },
                 ..
-            }) = active_loadout.active_item
+            }) = &active_loadout.active_item
             {
                 // Check for attacking states
                 if character_state.is_attack() {
                     return SfxEvent::Attack(
                         CharacterAbilityType::from(character_state),
-                        ToolCategory::from(data.kind),
+                        ToolCategory::from(&data.kind),
                     );
                 } else if let Some(wield_event) = match (
                     previous_state.weapon_drawn,
                     character_state.is_dodge(),
                     Self::weapon_drawn(character_state),
                 ) {
-                    (false, false, true) => Some(SfxEvent::Wield(ToolCategory::from(data.kind))),
-                    (true, false, false) => Some(SfxEvent::Unwield(ToolCategory::from(data.kind))),
+                    (false, false, true) => Some(SfxEvent::Wield(ToolCategory::from(&data.kind))),
+                    (true, false, false) => Some(SfxEvent::Unwield(ToolCategory::from(&data.kind))),
                     _ => None,
                 } {
                     return wield_event;
diff --git a/voxygen/src/audio/sfx/mod.rs b/voxygen/src/audio/sfx/mod.rs
index 0cdfebbbe3..3db1875736 100644
--- a/voxygen/src/audio/sfx/mod.rs
+++ b/voxygen/src/audio/sfx/mod.rs
@@ -166,9 +166,9 @@ impl From<&InventoryUpdateEvent> for SfxEvent {
             InventoryUpdateEvent::Collected(item) => {
                 // Handle sound effects for types of collected items, falling back to the
                 // default Collected event
-                match item.kind {
+                match &item.kind {
                     ItemKind::Tool(tool) => SfxEvent::Inventory(SfxInventoryEvent::CollectedTool(
-                        ToolCategory::try_from(tool.kind).unwrap(),
+                        ToolCategory::try_from(&tool.kind).unwrap(),
                     )),
                     _ => SfxEvent::Inventory(SfxInventoryEvent::Collected),
                 }
diff --git a/voxygen/src/hud/hotbar.rs b/voxygen/src/hud/hotbar.rs
index 1b9653482c..61485d5400 100644
--- a/voxygen/src/hud/hotbar.rs
+++ b/voxygen/src/hud/hotbar.rs
@@ -75,20 +75,18 @@ impl State {
                 .as_ref()
                 .map(|i| &i.item.kind)
                 .filter(|kind| {
-                    use common::comp::item::{
-                        tool::{DebugKind, Tool, ToolKind},
-                        ItemKind,
-                    };
-                    matches!(
-                        kind,
-                        ItemKind::Tool(Tool {
-                            kind: ToolKind::Staff(_),
-                            ..
-                        }) | ItemKind::Tool(Tool {
-                            kind: ToolKind::Debug(DebugKind::Boost),
-                            ..
-                        })
-                    )
+                    use common::comp::item::{tool::ToolKind, ItemKind};
+                    if let ItemKind::Tool(kind) = kind {
+                        if let ToolKind::Staff(_) = &kind.kind {
+                            true
+                        } else if let ToolKind::Debug(kind) = &kind.kind {
+                            kind == "Boost"
+                        } else {
+                            false
+                        }
+                    } else {
+                        false
+                    }
                 })
                 .is_some()
         } else {
diff --git a/voxygen/src/hud/item_imgs.rs b/voxygen/src/hud/item_imgs.rs
index 53f55d1b1f..de745ff5ac 100644
--- a/voxygen/src/hud/item_imgs.rs
+++ b/voxygen/src/hud/item_imgs.rs
@@ -31,7 +31,7 @@ pub enum ItemKey {
 impl From<&Item> for ItemKey {
     fn from(item: &Item) -> Self {
         match &item.kind {
-            ItemKind::Tool(Tool { kind, .. }) => ItemKey::Tool(*kind),
+            ItemKind::Tool(Tool { kind, .. }) => ItemKey::Tool(kind.clone()),
             ItemKind::Lantern(Lantern { kind, .. }) => ItemKey::Lantern(*kind),
             ItemKind::Armor(Armor { kind, .. }) => ItemKey::Armor(*kind),
             ItemKind::Utility { kind, .. } => ItemKey::Utility(*kind),
diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs
index 412131b3cd..e5ce67075c 100644
--- a/voxygen/src/hud/skillbar.rs
+++ b/voxygen/src/hud/skillbar.rs
@@ -17,7 +17,7 @@ use crate::{
 };
 use common::comp::{
     item::{
-        tool::{DebugKind, StaffKind, Tool, ToolKind},
+        tool::{Tool, ToolKind},
         Hands, ItemKind,
     },
     CharacterState, ControllerInputs, Energy, Inventory, Loadout, Stats,
@@ -617,7 +617,10 @@ impl<'a> Widget for Skillbar<'a> {
                     ToolKind::Axe(_) => self.imgs.twohaxe_m1,
                     ToolKind::Bow(_) => self.imgs.bow_m1,
                     ToolKind::Staff(_) => self.imgs.staff_m1,
-                    ToolKind::Debug(DebugKind::Boost) => self.imgs.flyingrod_m1,
+                    ToolKind::Debug(kind) => match kind.as_ref() {
+                        "Boost" => self.imgs.flyingrod_m1,
+                        _ => self.imgs.nothing,
+                    },
                     _ => self.imgs.nothing,
                 },
                 _ => self.imgs.nothing,
@@ -667,8 +670,8 @@ impl<'a> Widget for Skillbar<'a> {
         };
 
         let tool_kind = match (
-            active_tool_kind.map(|tk| tk.into_hands()),
-            second_tool_kind.map(|tk| tk.into_hands()),
+            active_tool_kind.map(|tk| tk.hands()),
+            second_tool_kind.map(|tk| tk.hands()),
         ) {
             (Some(Hands::TwoHand), _) => active_tool_kind,
             (_, Some(Hands::OneHand)) => second_tool_kind,
@@ -691,9 +694,14 @@ impl<'a> Widget for Skillbar<'a> {
             Some(ToolKind::Hammer(_)) => self.imgs.hammerleap,
             Some(ToolKind::Axe(_)) => self.imgs.axespin,
             Some(ToolKind::Bow(_)) => self.imgs.bow_m2,
-            Some(ToolKind::Staff(StaffKind::Sceptre)) => self.imgs.heal_0,
-            Some(ToolKind::Staff(_)) => self.imgs.staff_m2,
-            Some(ToolKind::Debug(DebugKind::Boost)) => self.imgs.flyingrod_m2,
+            Some(ToolKind::Staff(kind)) => match kind.as_ref() {
+                "Sceptre" => self.imgs.heal_0,
+                _ => self.imgs.staff_m2,
+            },
+            Some(ToolKind::Debug(kind)) => match kind.as_ref() {
+                "Boost" => self.imgs.flyingrod_m2,
+                _ => self.imgs.nothing,
+            },
             _ => self.imgs.nothing,
         })
         .w_h(32.0 * scale, 32.0 * scale)
@@ -706,12 +714,15 @@ impl<'a> Widget for Skillbar<'a> {
                     Color::Rgba(0.3, 0.3, 0.3, 0.8)
                 }
             },
-            Some(ToolKind::Staff(StaffKind::Sceptre)) => {
-                if self.energy.current() as f64 >= 400.0 {
-                    Color::Rgba(1.0, 1.0, 1.0, 1.0)
-                } else {
-                    Color::Rgba(0.3, 0.3, 0.3, 0.8)
-                }
+            Some(ToolKind::Staff(kind)) => match kind.as_ref() {
+                "Sceptre" => {
+                    if self.energy.current() as f64 >= 400.0 {
+                        Color::Rgba(1.0, 1.0, 1.0, 1.0)
+                    } else {
+                        Color::Rgba(0.3, 0.3, 0.3, 0.8)
+                    }
+                },
+                _ => Color::Rgba(1.0, 1.0, 1.0, 1.0),
             },
             _ => Color::Rgba(1.0, 1.0, 1.0, 1.0),
         })
@@ -780,10 +791,14 @@ impl<'a> Widget for Skillbar<'a> {
                                     "\nWhirls a big fireball into the air. \nExplodes the ground \
                                      and does\na big amount of damage",
                                 )),
-                                ToolKind::Debug(DebugKind::Boost) => Some((
-                                    "Possessing Arrow",
-                                    "\nShoots a poisonous arrow.\nLets you control your target.",
-                                )),
+                                ToolKind::Debug(kind) => match kind.as_ref() {
+                                    "Boost" => Some((
+                                        "Possessing Arrow",
+                                        "\nShoots a poisonous arrow.\nLets you control your \
+                                         target.",
+                                    )),
+                                    _ => None,
+                                },
                                 _ => None,
                             },
                             _ => None,
diff --git a/voxygen/src/hud/slots.rs b/voxygen/src/hud/slots.rs
index b8279eaf3f..5887008e7d 100644
--- a/voxygen/src/hud/slots.rs
+++ b/voxygen/src/hud/slots.rs
@@ -6,7 +6,7 @@ use super::{
 use crate::ui::slot::{self, SlotKey, SumSlot};
 use common::comp::{
     item::{
-        tool::{DebugKind, Tool, ToolKind},
+        tool::{Tool, ToolKind},
         ItemKind,
     },
     Energy, Inventory, Loadout,
@@ -114,7 +114,10 @@ impl<'a> SlotKey<HotbarSource<'a>, HotbarImageSource<'a>> for HotbarSlot {
                     match kind {
                         ItemKind::Tool(Tool { kind, .. }) => match kind {
                             ToolKind::Staff(_) => Some(HotbarImage::Fireball),
-                            ToolKind::Debug(DebugKind::Boost) => Some(HotbarImage::SnakeArrow),
+                            ToolKind::Debug(kind) => match kind.as_ref() {
+                                "Boost" => Some(HotbarImage::SnakeArrow),
+                                _ => None,
+                            },
                             _ => None,
                         },
                         _ => None,
diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs
index 983053e345..dd81d96e07 100644
--- a/voxygen/src/hud/util.rs
+++ b/voxygen/src/hud/util.rs
@@ -19,9 +19,9 @@ pub fn loadout_slot_text<'a>(
 }
 
 pub fn item_text<'a>(item: &'a Item) -> (&'_ str, Cow<'a, str>) {
-    let desc = match item.kind {
-        ItemKind::Armor(armor) => Cow::Owned(armor_desc(armor, item.description())),
-        ItemKind::Tool(tool) => Cow::Owned(tool_desc(tool, item.description())),
+    let desc = match &item.kind {
+        ItemKind::Armor(armor) => Cow::Owned(armor_desc(*armor, item.description())),
+        ItemKind::Tool(tool) => Cow::Owned(tool_desc(tool.clone(), item.description())),
         /*ItemKind::Consumable(kind, effect, ..) => {
             Cow::Owned(consumable_desc(consumable, item.description()))
         },*/
diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs
index 3a1ecfc3d9..941d387e99 100644
--- a/voxygen/src/scene/figure/cache.rs
+++ b/voxygen/src/scene/figure/cache.rs
@@ -50,14 +50,14 @@ impl CharacterCacheKey {
             active_tool: if let Some(ItemKind::Tool(tool)) =
                 loadout.active_item.as_ref().map(|i| &i.item.kind)
             {
-                Some(tool.kind)
+                Some(tool.kind.clone())
             } else {
                 None
             },
             second_tool: if let Some(ItemKind::Tool(tool)) =
                 loadout.second_item.as_ref().map(|i| &i.item.kind)
             {
-                Some(tool.kind)
+                Some(tool.kind.clone())
             } else {
                 None
             },
diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs
index d0b962808e..16fb4d1bcd 100644
--- a/voxygen/src/scene/figure/mod.rs
+++ b/voxygen/src/scene/figure/mod.rs
@@ -529,7 +529,7 @@ impl FigureMgr {
                 .and_then(|l| l.active_item.as_ref())
                 .map(|i| &i.item.kind);
             let active_tool_kind = if let Some(ItemKind::Tool(tool)) = active_item_kind {
-                Some(tool.kind)
+                Some(tool.kind.clone())
             } else {
                 None
             };
@@ -539,7 +539,7 @@ impl FigureMgr {
                 .map(|i| &i.item.kind);
 
             let second_tool_kind = if let Some(ItemKind::Tool(tool)) = second_item_kind {
-                Some(tool.kind)
+                Some(tool.kind.clone())
             } else {
                 None
             };
@@ -579,7 +579,12 @@ impl FigureMgr {
                         // Standing
                         (true, false, _) => anim::character::StandAnimation::update_skeleton(
                             &CharacterSkeleton::new(),
-                            (active_tool_kind, second_tool_kind, time, state.avg_vel),
+                            (
+                                active_tool_kind.clone(),
+                                second_tool_kind.clone(),
+                                time,
+                                state.avg_vel,
+                            ),
                             state.state_time,
                             &mut state_animation_rate,
                             skeleton_attr,
@@ -588,8 +593,8 @@ impl FigureMgr {
                         (true, true, _) => anim::character::RunAnimation::update_skeleton(
                             &CharacterSkeleton::new(),
                             (
-                                active_tool_kind,
-                                second_tool_kind,
+                                active_tool_kind.clone(),
+                                second_tool_kind.clone(),
                                 vel.0,
                                 ori,
                                 state.last_ori,
@@ -604,8 +609,8 @@ impl FigureMgr {
                         (false, _, false) => anim::character::JumpAnimation::update_skeleton(
                             &CharacterSkeleton::new(),
                             (
-                                active_tool_kind,
-                                second_tool_kind,
+                                active_tool_kind.clone(),
+                                second_tool_kind.clone(),
                                 ori,
                                 state.last_ori,
                                 time,
@@ -618,8 +623,8 @@ impl FigureMgr {
                         (false, _, true) => anim::character::SwimAnimation::update_skeleton(
                             &CharacterSkeleton::new(),
                             (
-                                active_tool_kind,
-                                second_tool_kind,
+                                active_tool_kind.clone(),
+                                second_tool_kind.clone(),
                                 vel.0,
                                 ori,
                                 state.last_ori,
diff --git a/voxygen/src/scene/simple.rs b/voxygen/src/scene/simple.rs
index 192ffc008e..c89ebc6511 100644
--- a/voxygen/src/scene/simple.rs
+++ b/voxygen/src/scene/simple.rs
@@ -201,7 +201,7 @@ impl Scene {
             .map(|i| &i.item.kind);
 
         let active_tool_kind = if let Some(ItemKind::Tool(tool)) = active_item_kind {
-            Some(tool.kind)
+            Some(tool.kind.clone())
         } else {
             None
         };
@@ -211,7 +211,7 @@ impl Scene {
             .map(|i| &i.item.kind);
 
         let second_tool_kind = if let Some(ItemKind::Tool(tool)) = second_item_kind {
-            Some(tool.kind)
+            Some(tool.kind.clone())
         } else {
             None
         };