diff --git a/.cargo/config b/.cargo/config
index ae79b60dee..6a9b75f52a 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -3,3 +3,5 @@ rustflags = [
     "-C", "link-arg=-fuse-ld=gold",
 ]
 
+[alias]
+generate = "run --package tools --"
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 57bb68842f..8ca8fe2e6b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,8 @@ run.sh
 maps
 screenshots
 todo.txt
+armorstats.csv
+weaponstats.csv
 
 # Game data
 *.sqlite
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a7a76af54..e7ae3855bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -47,6 +47,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - Protection stat to armor that reduces incoming damage
 - Loading-Screen tips
 - Feeding animation for some animals
+- Power stat to weapons which affects weapon damage
+
 ### Changed
 
 - Improved camera aiming
diff --git a/Cargo.lock b/Cargo.lock
index 44664909e2..8f02d4147c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -120,7 +120,7 @@ version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc755b23c19211c270ef000fa7ce871377825e6cc7d1bfd0311076f22c5e6ba1"
 dependencies = [
- "proc-macro-error",
+ "proc-macro-error 0.4.12",
  "proc-macro2 1.0.18",
  "quote 1.0.7",
  "syn 1.0.33",
@@ -521,9 +521,13 @@ version = "2.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
 dependencies = [
+ "ansi_term",
+ "atty",
  "bitflags",
+ "strsim 0.8.0",
  "textwrap",
  "unicode-width",
+ "vec_map",
 ]
 
 [[package]]
@@ -1007,7 +1011,7 @@ dependencies = [
  "ident_case",
  "proc-macro2 1.0.18",
  "quote 1.0.7",
- "strsim",
+ "strsim 0.9.3",
  "syn 1.0.33",
 ]
 
@@ -1891,6 +1895,15 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [
+ "unicode-segmentation",
+]
+
 [[package]]
 name = "hermit-abi"
 version = "0.1.13"
@@ -3097,7 +3110,20 @@ version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7"
 dependencies = [
- "proc-macro-error-attr",
+ "proc-macro-error-attr 0.4.12",
+ "proc-macro2 1.0.18",
+ "quote 1.0.7",
+ "syn 1.0.33",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+dependencies = [
+ "proc-macro-error-attr 1.0.3",
  "proc-macro2 1.0.18",
  "quote 1.0.7",
  "syn 1.0.33",
@@ -3117,6 +3143,19 @@ dependencies = [
  "version_check 0.9.2",
 ]
 
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+dependencies = [
+ "proc-macro2 1.0.18",
+ "quote 1.0.7",
+ "syn 1.0.33",
+ "syn-mid",
+ "version_check 0.9.2",
+]
+
 [[package]]
 name = "proc-macro-hack"
 version = "0.5.16"
@@ -3942,12 +3981,42 @@ dependencies = [
  "bytes",
 ]
 
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
 [[package]]
 name = "strsim"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
 
+[[package]]
+name = "structopt"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+dependencies = [
+ "heck",
+ "proc-macro-error 1.0.3",
+ "proc-macro2 1.0.18",
+ "quote 1.0.7",
+ "syn 1.0.33",
+]
+
 [[package]]
 name = "sum_type"
 version = "0.2.0"
@@ -4244,6 +4313,15 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "tools"
+version = "0.1.0"
+dependencies = [
+ "csv",
+ "structopt",
+ "veloren-common",
+]
+
 [[package]]
 name = "tracing"
 version = "0.1.15"
@@ -4385,6 +4463,12 @@ dependencies = [
  "smallvec 1.4.0",
 ]
 
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
 [[package]]
 name = "unicode-width"
 version = "0.1.7"
diff --git a/Cargo.toml b/Cargo.toml
index b87d9807fd..e73d2cd0a8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,7 +10,8 @@ members = [
 	"voxygen",
 	"world",
 	"network",
-    "voxygen/src/anim"
+    "voxygen/src/anim",
+	"tools"
 ]
 
 # default profile for devs, fast to compile, okay enough to run, no debug information
diff --git a/assets/common/items/boss_drops/potions.ron b/assets/common/items/boss_drops/potions.ron
index 011a0c8d42..01650058e7 100644
--- a/assets/common/items/boss_drops/potions.ron
+++ b/assets/common/items/boss_drops/potions.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: Potion,
         effect: Health((
-            amount: 100,
+            amount: 1000,
             cause: Item,
         )),
     ),
diff --git a/assets/common/items/consumable/potion_big.ron b/assets/common/items/consumable/potion_big.ron
index 60ddf64298..7e903bb48a 100644
--- a/assets/common/items/consumable/potion_big.ron
+++ b/assets/common/items/consumable/potion_big.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: PotionLarge,
         effect: Health((
-            amount: 100,
+            amount: 1000,
             cause: Item,
         )),
     ),
diff --git a/assets/common/items/consumable/potion_med.ron b/assets/common/items/consumable/potion_med.ron
index ece9348e1b..3ec58e046d 100644
--- a/assets/common/items/consumable/potion_med.ron
+++ b/assets/common/items/consumable/potion_med.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: PotionMed,
         effect: Health((
-            amount: 70,
+            amount: 700,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/consumable/potion_minor.ron b/assets/common/items/consumable/potion_minor.ron
index 431af1fbe7..5dca958483 100644
--- a/assets/common/items/consumable/potion_minor.ron
+++ b/assets/common/items/consumable/potion_minor.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: PotionMinor,
         effect: Health((
-            amount: 50,
+            amount: 500,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/debug/boost.ron b/assets/common/items/debug/boost.ron
index b9ae0408fb..4fc86afae3 100644
--- a/assets/common/items/debug/boost.ron
+++ b/assets/common/items/debug/boost.ron
@@ -4,7 +4,10 @@ Item(
     kind: Tool(
         (
             kind: Debug(Boost),
-            equip_time_millis: 0,            
+            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 b9ae0408fb..4fc86afae3 100644
--- a/assets/common/items/debug/possess.ron
+++ b/assets/common/items/debug/possess.ron
@@ -4,7 +4,10 @@ Item(
     kind: Tool(
         (
             kind: Debug(Boost),
-            equip_time_millis: 0,            
+            stats: (
+                equip_time_millis: 0,
+                power: 1.00,
+            ),
         )
     ),
 )
diff --git a/assets/common/items/food/apple.ron b/assets/common/items/food/apple.ron
index abec0c62e3..48b7d56a5a 100644
--- a/assets/common/items/food/apple.ron
+++ b/assets/common/items/food/apple.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: Apple,
         effect: Health((
-            amount: 20,
+            amount: 200,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/food/apple_mushroom_curry.ron b/assets/common/items/food/apple_mushroom_curry.ron
index d8146e4c82..03aed62d4b 100644
--- a/assets/common/items/food/apple_mushroom_curry.ron
+++ b/assets/common/items/food/apple_mushroom_curry.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: AppleShroomCurry,
         effect: Health((
-            amount: 120,
+            amount: 1200,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/food/apple_stick.ron b/assets/common/items/food/apple_stick.ron
index 78bd97ce66..5d7b183e07 100644
--- a/assets/common/items/food/apple_stick.ron
+++ b/assets/common/items/food/apple_stick.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: AppleStick,
         effect: Health((
-            amount: 60,
+            amount: 600,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/food/cheese.ron b/assets/common/items/food/cheese.ron
index 8c4f618b96..037519d22b 100644
--- a/assets/common/items/food/cheese.ron
+++ b/assets/common/items/food/cheese.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: Cheese,
         effect: Health((
-            amount: 15,
+            amount: 150,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/food/coconut.ron b/assets/common/items/food/coconut.ron
index b38608652d..103d4c9b38 100644
--- a/assets/common/items/food/coconut.ron
+++ b/assets/common/items/food/coconut.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: Coconut,
         effect: Health((
-            amount: 30,
+            amount: 300,
             cause: Item,
         )),       
     ),
diff --git a/assets/common/items/food/mushroom.ron b/assets/common/items/food/mushroom.ron
index d341a5f773..e612b1d2c7 100644
--- a/assets/common/items/food/mushroom.ron
+++ b/assets/common/items/food/mushroom.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: Mushroom,
         effect: Health((
-            amount: 10,
+            amount: 100,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/food/mushroom_stick.ron b/assets/common/items/food/mushroom_stick.ron
index d44bbbec48..5f0577d855 100644
--- a/assets/common/items/food/mushroom_stick.ron
+++ b/assets/common/items/food/mushroom_stick.ron
@@ -4,7 +4,7 @@ Item(
     kind: Consumable(
         kind: MushroomStick,
         effect: Health((
-            amount: 50,
+            amount: 500,
             cause: Item,
         )),        
     ),
diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-0.ron b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron
new file mode 100644
index 0000000000..b0636b63fa
--- /dev/null
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Bloodsteel Axe",
+    description: "An axe forged from steel that thirsts for blood.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..895c7a0a35
--- /dev/null
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Executioner's Axe",
+    description: "An axe forged from steel that thirsts for blood.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..16c8602286
--- /dev/null
+++ b/assets/common/items/weapons/axe/bloodsteel_axe-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Tribal Axe",
+    description: "An axe forged from steel that thirsts for blood.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..eae58eeed0
--- /dev/null
+++ b/assets/common/items/weapons/axe/bronze_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Bronze Axe",
+    description: "Forged from bronze.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..2c0c719a84
--- /dev/null
+++ b/assets/common/items/weapons/axe/bronze_axe-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Discus Axe",
+    description: "Forged from bronze.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..8ad2d73f34
--- /dev/null
+++ b/assets/common/items/weapons/axe/cobalt_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Cobalt Axe",
+    description: "Forged from cobalt.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..4999939753
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Greataxe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..961c5fe151
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Ceremonial Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..91f675da40
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Cyclone Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..980da5d65d
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Battleaxe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..362a41ee12
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-4.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Butcher's Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..c5fc2adb92
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-5.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Barbarian's Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..e1590ba742
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-6.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..37cdb8c415
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-7.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Labrys",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..0d5f508586
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-8.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Fanged Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..167d70402c
--- /dev/null
+++ b/assets/common/items/weapons/axe/iron_axe-9.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Wolfen Axe",
+    description: "Forged from iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..06c6e376c3
--- /dev/null
+++ b/assets/common/items/weapons/axe/malachite_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Malachite Axe",
+    description: "An axe infused with malachite.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..64876beee8
--- /dev/null
+++ b/assets/common/items/weapons/axe/orc_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Beast Cleaver",
+    description: "Created by orcs to cleave beasts in 2.",
+    kind: Tool(
+        (
+            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 7f8fc50946..a5d89a6111 100644
--- a/assets/common/items/weapons/axe/starter_axe.ron
+++ b/assets/common/items/weapons/axe/starter_axe.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Notched Axe",
-    description: "Two-Hand Axe\n\nPower 3-14\n\nEvery dent tells the story of a chopped tree.\n\n<Right-Click to use>",
+    description: "Every dent tells the story of a chopped tree.",
     kind: Tool(
         (
             kind: Axe(BasicAxe),    
-            equip_time_millis: 400,
+            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
new file mode 100644
index 0000000000..fe2a449e60
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Battleaxe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..697febfdf2
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Labrys",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..bde51d949a
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Axe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..167d659b43
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Crescent Axe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..7e0db521a2
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-4.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Moon Axe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..ef3f0a786e
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-5.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Owl Axe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..d82880f57e
--- /dev/null
+++ b/assets/common/items/weapons/axe/steel_axe-6.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Spade Axe",
+    description: "Forged from steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..d545f69f93
--- /dev/null
+++ b/assets/common/items/weapons/axe/worn_iron_axe-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Dwarven Axe",
+    description: "Hopefully it's previous owner won't miss it.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..8c0420149d
--- /dev/null
+++ b/assets/common/items/weapons/axe/worn_iron_axe-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Elven Axe",
+    description: "Hopefully it's previous owner won't miss it.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..de275d3510
--- /dev/null
+++ b/assets/common/items/weapons/axe/worn_iron_axe-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Human Axe",
+    description: "Hopefully it's previous owner won't miss it.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..79e7932c31
--- /dev/null
+++ b/assets/common/items/weapons/axe/worn_iron_axe-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Orcish Axe",
+    description: "Hopefully it's previous owner won't miss it.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..153e3cd50b
--- /dev/null
+++ b/assets/common/items/weapons/axe/worn_iron_axe-4.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Beetle Axe",
+    description: "The blade is in the shape of a beetle.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..73d270dc71
--- /dev/null
+++ b/assets/common/items/weapons/bow/horn_longbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Horn Bow",
+    description: "You don't recognize the creature these horns belong to.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..7d02b3f3b8
--- /dev/null
+++ b/assets/common/items/weapons/bow/iron_longbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Soldier's Bow",
+    description: "Has an insignia on it.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..dbfd1f7f25
--- /dev/null
+++ b/assets/common/items/weapons/bow/leafy_longbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Elven Longbow",
+    description: "There's a new leaf starting to grow.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..5ffef32b22
--- /dev/null
+++ b/assets/common/items/weapons/bow/leafy_shortbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Elven Shortbow",
+    description: "The wood still seems alive.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..c8e9a003ac
--- /dev/null
+++ b/assets/common/items/weapons/bow/rare_longbow.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Enchanted Longbow",
+    description: "You can sense power resting in the bow.",  
+    kind: Tool(
+        (
+            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 9be6b10661..89f7145cb9 100644
--- a/assets/common/items/weapons/bow/starter_bow.ron
+++ b/assets/common/items/weapons/bow/starter_bow.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Uneven Bow",
-    description: "Bow\n\nPower: 5\n\nSomeone carved his initials into it...\n\n<Right-Click to use>",  
+    description: "Someone carved his initials into it.",  
     kind: Tool(
         (
             kind: Bow(ShortBow0),    
-            equip_time_millis: 400,
+            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
new file mode 100644
index 0000000000..574233a316
--- /dev/null
+++ b/assets/common/items/weapons/bow/wood_longbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Longbow",
+    description: "It's been well used.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..a437445d70
--- /dev/null
+++ b/assets/common/items/weapons/bow/wood_longbow-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Recurve Bow",
+    description: "It's hard to pull all the way back.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..790f99f618
--- /dev/null
+++ b/assets/common/items/weapons/bow/wood_shortbow-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Hunting Bow",
+    description: "Strips of leather are wrapped around the handle.",  
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..9d1ca7719a
--- /dev/null
+++ b/assets/common/items/weapons/bow/wood_shortbow-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Horse Bow",
+    description: "Works on the ground too.",  
+    kind: Tool(
+        (
+            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 98924729be..da2ab390de 100644
--- a/assets/common/items/weapons/dagger/starter_dagger.ron
+++ b/assets/common/items/weapons/dagger/starter_dagger.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Rusty Dagger",
-    description: "One-Hand Dagger\n\nPower 5-6\n\n#writing.\n\n<Right-Click to use>",
+    description: "Easily concealed.",
     kind: Tool(
         (
             kind: Dagger(BasicDagger),    
-            equip_time_millis: 300,
+            stats: (
+                equip_time_millis: 300,
+                power: 1.00,
+            ),
         )
     ),
 )
diff --git a/assets/common/items/weapons/empty.ron b/assets/common/items/weapons/empty.ron
deleted file mode 100644
index 62a2bf4785..0000000000
--- a/assets/common/items/weapons/empty.ron
+++ /dev/null
@@ -1,10 +0,0 @@
-Item(
-    name: "Empty",
-    description: "",
-    kind: Tool (
-        (
-            kind: Empty,
-            equip_time_millis: 200,
-        )
-    ),
-)
diff --git a/assets/common/items/weapons/empty/empty.ron b/assets/common/items/weapons/empty/empty.ron
new file mode 100644
index 0000000000..489101c9f0
--- /dev/null
+++ b/assets/common/items/weapons/empty/empty.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Empty",
+    description: "You expected a description?",
+    kind: Tool (
+        (
+            kind: Empty,
+            stats: (
+                equip_time_millis: 200,
+                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
new file mode 100644
index 0000000000..60b255dd56
--- /dev/null
+++ b/assets/common/items/weapons/hammer/bronze_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Bronze Hammer",
+    description: "Forged with bronze.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..a5ac72d80b
--- /dev/null
+++ b/assets/common/items/weapons/hammer/bronze_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Bronze Club",
+    description: "Forged with bronze.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..8956eeb25b
--- /dev/null
+++ b/assets/common/items/weapons/hammer/cobalt_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Cobalt Hammer",
+    description: "Forged with cobalt.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..2e1c4f24b1
--- /dev/null
+++ b/assets/common/items/weapons/hammer/cobalt_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Cobalt Mace",
+    description: "Forged with cobalt.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..f8f927bcde
--- /dev/null
+++ b/assets/common/items/weapons/hammer/flimsy_hammer.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Flimsy Hammer",
+    description: "The head is barely secured.",
+    kind: Tool(
+        (
+            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 02ba5d1069..681503ce27 100644
--- a/assets/common/items/weapons/hammer/hammer_1.ron
+++ b/assets/common/items/weapons/hammer/hammer_1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Crude Mallet",
-    description: "Two-Hand Hammer\n\nPower: 10-12\n\nBreaks bones like sticks and stones.\n\n<Right-Click to use>",
+    description: "Breaks bones like sticks and stones.",
     kind: Tool(
         (
             kind: Hammer(BasicHammer),    
-            equip_time_millis: 500,
+            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
new file mode 100644
index 0000000000..7737d7b2b7
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Hammer",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..7659c348de
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Battlehammer",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..1afd2d6883
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Iron Mace",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..a863bb9fd9
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Crowned Mace",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..351fb9ab87
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-4.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Forge Hammer",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..4c55c417be
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-5.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Pike Hammer",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..943e0bb084
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-6.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Spiked Maul",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..56236db81c
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-7.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Giant's Fist",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..0a9d25ae8e
--- /dev/null
+++ b/assets/common/items/weapons/hammer/iron_hammer-8.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Lucerne Hammer",
+    description: "Forged with iron.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..9fe513de64
--- /dev/null
+++ b/assets/common/items/weapons/hammer/mjolnir.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Mjolnir",
+    description: "It's crackling with lightning.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..fadeb831e4
--- /dev/null
+++ b/assets/common/items/weapons/hammer/ramshead_hammer.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Ram's Head Mace",
+    description: "You feel an evil presence in the hammer.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..fee6415ef5
--- /dev/null
+++ b/assets/common/items/weapons/hammer/runic_hammer.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Runic Hammer",
+    description: "There are strange runes inscribed into it.",
+    kind: Tool(
+        (
+            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 5e707614af..5e96f3b028 100644
--- a/assets/common/items/weapons/hammer/starter_hammer.ron
+++ b/assets/common/items/weapons/hammer/starter_hammer.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Sturdy Old Hammer",
-    description: "Two-Hand Hammer\n\nPower: 10-12\n\n'Property of...' The rest is missing.\n\n<Right-Click to use>",
+    description: "'Property of...' The rest is missing.",
     kind: Tool(
         (
             kind: Hammer(BasicHammer),    
-            equip_time_millis: 500,
+            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
new file mode 100644
index 0000000000..e7beaa8acf
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Hammer",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..af48dc1b20
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Greathammer",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..0facbc44d9
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Steel Club",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..0e896b86aa
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Battle Mace",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..263c2ebb25
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-4.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Brute's Hammer",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..c3990bfc78
--- /dev/null
+++ b/assets/common/items/weapons/hammer/steel_hammer-5.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Morning Star",
+    description: "Forged with steel.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..215c38e55f
--- /dev/null
+++ b/assets/common/items/weapons/hammer/stone_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Basalt Sledgehammer",
+    description: "It seems brittle.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..045b13127e
--- /dev/null
+++ b/assets/common/items/weapons/hammer/stone_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Granite Sledgehammer",
+    description: "It seems brittle.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..8f86fca117
--- /dev/null
+++ b/assets/common/items/weapons/hammer/stone_hammer-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Rocky Maul",
+    description: "It seems brittle.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..c14e05e638
--- /dev/null
+++ b/assets/common/items/weapons/hammer/stone_hammer-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Stone Sledgehammer",
+    description: "It seems brittle.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..ed954d40dc
--- /dev/null
+++ b/assets/common/items/weapons/hammer/wood_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Hardwood Mallet",
+    description: "Seems sturdy enough.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..627cd3cd7a
--- /dev/null
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Dwarven Hammer",
+    description: "The previous owner won't miss it much.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..425394261e
--- /dev/null
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Elven Hammer",
+    description: "The previous owner won't miss it much.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..c97a09f9e8
--- /dev/null
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Human Mace",
+    description: "The previous owner won't miss it much.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..276385d7c4
--- /dev/null
+++ b/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Worn Orcish Hammer",
+    description: "The previous owner won't miss it much.",
+    kind: Tool(
+        (
+            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 a9d2119ba8..ce1a0d5a2a 100644
--- a/assets/common/items/weapons/shield/shield_1.ron
+++ b/assets/common/items/weapons/shield/shield_1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "A Tattered Targe",
-    description: "One-Hand Shield\n\nPower 5-6\n\n#writing.\n\n<Right-Click to use>",
+    description: "Should withstand a few more hits, hopefully...",
     kind: Tool (
         (
             kind: Shield(BasicShield),
-            equip_time_millis: 400,
+            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
new file mode 100644
index 0000000000..4d23b5f259
--- /dev/null
+++ b/assets/common/items/weapons/staff/amethyst_staff.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Amethyst Staff",
+    description: "The amethyst faintly glows.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..7159d7273c
--- /dev/null
+++ b/assets/common/items/weapons/staff/bone_staff.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Bone Staff",
+    description: "There's a red gem suspended in the bones.",
+    kind: Tool(
+        (
+            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
new file mode 100644
index 0000000000..3c4fb7f1e0
--- /dev/null
+++ b/assets/common/items/weapons/staff/cultist_staff.ron
@@ -0,0 +1,13 @@
+Item(
+    name: "Cultist Staff",
+    description: "The fire gives off no heat.",
+    kind: Tool(
+        (
+            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 0654dc2b8b..cda1730332 100644
--- a/assets/common/items/weapons/staff/staff_1.ron
+++ b/assets/common/items/weapons/staff/staff_1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Humble Stick",
-    description: "Two-Hand Staff\n\nPower: 2-10\n\nWalking stick with a sharpened end\n\n<Right-Click to use>",
+    description: "Walking stick with a sharpened end.",
     kind: Tool(
         (
             kind: Staff(BasicStaff),
-            equip_time_millis: 200,
+            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 11764ac526..4e4a5875d3 100644
--- a/assets/common/items/weapons/staff/staff_nature.ron
+++ b/assets/common/items/weapons/staff/staff_nature.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Sceptre of Regeneration",
-    description: "Healing-Sceptre\n\nPower 15-18\n\nHeals your allies with the power of nature.\n\n<Right-Click to use>",      
+    description: "Heals your allies with the power of nature.",      
     kind: Tool(
         (
             kind: Staff(Sceptre),    
-            equip_time_millis: 400,
+            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 8b8e8d6f88..568158ea80 100644
--- a/assets/common/items/weapons/staff/starter_staff.ron
+++ b/assets/common/items/weapons/staff/starter_staff.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Gnarled Rod",
-    description: "Firestaff\n\nPower: 1-13\n\nSmells like resin and magic.\n\n<Right-Click to use>",
+    description: "Smells like resin and magic.",
     kind: Tool(
         (
             kind: Staff(BasicStaff),    
-            equip_time_millis: 300,
+            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 869200b553..d1bfa7bb36 100644
--- a/assets/common/items/weapons/sword/cultist_purp_2h-0.ron
+++ b/assets/common/items/weapons/sword/cultist_purp_2h-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Magical Cultist Greatsword",
-    description: "Two-Hand Sword\n\nPower: 6-20\n\nThis belonged to an evil Cult Leader\n\n<Right-Click to use>",
+    description: "This belonged to an evil Cult Leader.",
     kind: Tool(
        (
             kind: Sword(CultPurp0),    
-            equip_time_millis: 500,
+            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 62e4a0826c..6a1c7b7b7e 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Greatsword",
-    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
             kind: Sword(GreatswordDam0),    
-            equip_time_millis: 500,
+            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 6eda562d23..83d15ea7b7 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Greatsword",
-    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
             kind: Sword(GreatswordDam1),    
-            equip_time_millis: 500,
+            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 a18b0ca92c..111b3ff878 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Greatsword",
-    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "The blade has been chipped quite a few times.",
     kind: Tool(
        (
             kind: Sword(GreatswordDam2),    
-            equip_time_millis: 500,
+            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 ffc620be41..95abc564d9 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Greatsword",
-    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
             kind: Sword(GreatswordFine0),    
-            equip_time_millis: 500,
+            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 6cc55512cc..3badfbcd5c 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Greatsword",
-    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
             kind: Sword(GreatswordFine1),    
-            equip_time_millis: 500,
+            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 660a61580c..4244eab379 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Greatsword",
-    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been polished and sharpened recently.",
     kind: Tool(
        (
             kind: Sword(GreatswordFine2),    
-            equip_time_millis: 500,
+            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 8cb721b52e..6abb86b3d2 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Greatsword",
-    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Greatsword",
+    description: "The sword's almost a work of art.",
     kind: Tool(
        (
             kind: Sword(GreatswordOrn0),    
-            equip_time_millis: 500,
+            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 3f8818f308..e576e764ab 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Greatsword",
-    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Greatsword",
+    description: "The sword's almost a work of art.",
     kind: Tool(
        (
             kind: Sword(GreatswordOrn1),    
-            equip_time_millis: 500,
+            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 bab5a60f9a..99d0398eab 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Greatsword",
-    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Greatsword",
+    description: "The sword's almost a work of art.",
     kind: Tool(
        (
             kind: Sword(GreatswordOrn2),    
-            equip_time_millis: 500,
+            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 c757d1d3d4..67d7d6873e 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Greatsword",
-    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been well used.",
     kind: Tool(
        (
             kind: Sword(GreatswordSimple0),    
-            equip_time_millis: 500,
+            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 4dedbb496e..dcfa308a5d 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Greatsword",
-    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been well used.",
     kind: Tool(
        (
             kind: Sword(GreatswordSimple1),    
-            equip_time_millis: 500,
+            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 4c72bc3cbf..d93dd879fa 100644
--- a/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron
+++ b/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Greatsword",
-    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's been well used.",
     kind: Tool(
        (
             kind: Sword(GreatswordSimple2),    
-            equip_time_millis: 500,
+            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 20174e74c7..bce959a920 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam0),    
-            equip_time_millis: 500,
+            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 01a01ca543..ce3e909608 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam1),    
-            equip_time_millis: 500,
+            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 afd1dedebb..ea66f096e1 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam2),    
-            equip_time_millis: 500,
+            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 ba0857975b..b4d337f218 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-3.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam3),    
-            equip_time_millis: 500,
+            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 118a4a2a4f..2f6b02784c 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-4.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam4),    
-            equip_time_millis: 500,
+            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 a5b1eb35eb..34d3e5b9c9 100644
--- a/assets/common/items/weapons/sword/long_2h_dam-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_dam-5.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Damaged Longsword",
-    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's slightly cracked.",
     kind: Tool(
        (
             kind: Sword(LongDam5),    
-            equip_time_millis: 500,
+            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 62a08d3ca1..b490ba79cc 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine0),    
-            equip_time_millis: 500,
+            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 37e45ab9f4..28f6dfcaa9 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine1),    
-            equip_time_millis: 500,
+            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 463712a64f..2c140aabab 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine2),    
-            equip_time_millis: 500,
+            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 457993ae29..7daa493b1a 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-3.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine3),    
-            equip_time_millis: 500,
+            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 d1ea6cd56d..0f293eecc0 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-4.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine4),    
-            equip_time_millis: 500,
+            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 f2e1a4a8b2..ec1270f9df 100644
--- a/assets/common/items/weapons/sword/long_2h_fine-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_fine-5.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fine Longsword",
-    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It shines when you hold it up to the light.",
     kind: Tool(
        (
             kind: Sword(LongFine5),    
-            equip_time_millis: 500,
+            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 ee2d8007b0..f3666b68eb 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-0.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn0),    
-            equip_time_millis: 500,
+            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 49bb90e103..b5b5942e64 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-1.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn1),    
-            equip_time_millis: 500,
+            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 3814a1f31c..8214bf5695 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-2.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn2),    
-            equip_time_millis: 500,
+            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 b43ecddb7b..a6c60d0f1f 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-3.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn3),    
-            equip_time_millis: 500,
+            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 357d9433bd..cee5dd1f81 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-4.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn4),    
-            equip_time_millis: 500,
+            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 4edfb6f01c..c9e481c421 100644
--- a/assets/common/items/weapons/sword/long_2h_orn-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_orn-5.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Ornimented Longsword",
-    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Ornamented Longsword",
+    description: "It's probably the weapon of some noble.",
     kind: Tool(
        (
             kind: Sword(LongOrn5),    
-            equip_time_millis: 500,
+            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 b2ad9a59d0..39b884b7cd 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-0.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple0),    
-            equip_time_millis: 500,
+            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 e4eb4b123c..4f73bec92a 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-1.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple1),    
-            equip_time_millis: 500,
+            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 9aa2ab80a7..865a177a2e 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-2.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-2.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple2),    
-            equip_time_millis: 500,
+            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 9ee608f6f0..6aa7bf2b29 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-3.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-3.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple3),    
-            equip_time_millis: 500,
+            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 e92bed29e9..3ce5b159b7 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-4.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-4.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple4),    
-            equip_time_millis: 500,
+            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 59f6a199b4..e105db14bd 100644
--- a/assets/common/items/weapons/sword/long_2h_simple-5.ron
+++ b/assets/common/items/weapons/sword/long_2h_simple-5.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Simple Longsword",
-    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It was well maintained by it's previous owner.",
     kind: Tool(
        (
             kind: Sword(LongSimple5),    
-            equip_time_millis: 500,
+            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 cdec6c999e..474eab303b 100644
--- a/assets/common/items/weapons/sword/short_sword_0.ron
+++ b/assets/common/items/weapons/sword/short_sword_0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Vicious Gladius",
-    description: "Two-Hand Sword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "There's blood encrusted on the blade.",
     kind: Tool(
         (
             kind: Sword(Short0),    
-            equip_time_millis: 400,
+            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 0348998a8e..223c633b95 100644
--- a/assets/common/items/weapons/sword/starter_sword.ron
+++ b/assets/common/items/weapons/sword/starter_sword.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Battered Sword",
-    description: "Two-Hand Sword\n\nPower: 2-10\n\nHeld together by Rust and hope.\n\n<Right-Click to use>",
+    description: "Held together by Rust and hope.",
     kind: Tool(
         (
             kind: Sword(BasicSword),    
-            equip_time_millis: 300,
+            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 038468636c..f8df8df720 100644
--- a/assets/common/items/weapons/sword/wood_sword.ron
+++ b/assets/common/items/weapons/sword/wood_sword.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Wooden Training Sword",
-    description: "Two-Hand Sword\n\nPower: 2-10\n\n<Right-Click to use>",
+    description: "It's not sharp.",
     kind: Tool(
         (
             kind: Sword(WoodTraining),    
-            equip_time_millis: 400,
+            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 a3bc54faa4..e960188c19 100644
--- a/assets/common/items/weapons/sword/zweihander_sword_0.ron
+++ b/assets/common/items/weapons/sword/zweihander_sword_0.ron
@@ -1,10 +1,13 @@
 Item(
-    name: "Sturdy Bihander",
-    description: "Two-Hand Sword\n\nPower: 2-10\n\n<Right-Click to use>",
+    name: "Sturdy Zweihander",
+    description: "It's a big sword, and sharp too.",
     kind: Tool(
        (
             kind: Sword(Zweihander0),    
-            equip_time_millis: 500,
+            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 8edc349d37..0e68b82413 100644
--- a/assets/common/items/weapons/tool/broom.ron
+++ b/assets/common/items/weapons/tool/broom.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Broom",
-    description: "",
+    description: "It's beginning to fall apart.",
     kind: Tool (
         (
             kind: Farming(Broom),
-            equip_time_millis: 400,
+            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 4c28cd5598..4da51b2db0 100644
--- a/assets/common/items/weapons/tool/fishing_rod.ron
+++ b/assets/common/items/weapons/tool/fishing_rod.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Fishing Rod",
-    description: "",
+    description: "Smells of fish.",
     kind: Tool (
         (
             kind: Farming(FishingRod0),
-            equip_time_millis: 400,
+            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 528eb22309..70527eff36 100644
--- a/assets/common/items/weapons/tool/hoe.ron
+++ b/assets/common/items/weapons/tool/hoe.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Hoe",
-    description: "",
+    description: "It's stained with dirt.",
     kind: Tool (
         (
             kind: Farming(Hoe0),
-            equip_time_millis: 400,
+            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 197724284b..4c4c527be4 100644
--- a/assets/common/items/weapons/tool/pickaxe.ron
+++ b/assets/common/items/weapons/tool/pickaxe.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Pickaxe",
-    description: "",
+    description: "It has a chipped edge.",
     kind: Tool (
         (
             kind: Farming(Pickaxe0),
-            equip_time_millis: 400,
+            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 ca2474db74..f425c9e7c7 100644
--- a/assets/common/items/weapons/tool/pitchfork.ron
+++ b/assets/common/items/weapons/tool/pitchfork.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Pitchfork",
-    description: "",
+    description: "One of the prongs is broken.",
     kind: Tool (
         (
             kind: Farming(Pitchfork),
-            equip_time_millis: 400,
+            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 43aa815603..b9ec11f738 100644
--- a/assets/common/items/weapons/tool/rake.ron
+++ b/assets/common/items/weapons/tool/rake.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Rake",
-    description: "",
+    description: "Held together with twine.",
     kind: Tool (
         (
             kind: Farming(Rake),
-            equip_time_millis: 400,
+            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 2cd8adb761..46edc4ee5d 100644
--- a/assets/common/items/weapons/tool/shovel-0.ron
+++ b/assets/common/items/weapons/tool/shovel-0.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Shovel",
-    description: "",
+    description: "It's covered in manure.",
     kind: Tool (
         (
             kind: Farming(Shovel0),
-            equip_time_millis: 400,
+            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 033d72b89a..f191d77645 100644
--- a/assets/common/items/weapons/tool/shovel-1.ron
+++ b/assets/common/items/weapons/tool/shovel-1.ron
@@ -1,10 +1,13 @@
 Item(
     name: "Shovel",
-    description: "",
+    description: "It's been recently cleaned.",
     kind: Tool (
         (
             kind: Farming(Shovel1),
-            equip_time_millis: 400,
+            stats: (
+                equip_time_millis: 400,
+                power: 1.00,
+            ),
         )
     ),
 )
diff --git a/assets/common/loot_table.ron b/assets/common/loot_table.ron
index fa609e55c6..0b00677652 100644
--- a/assets/common/loot_table.ron
+++ b/assets/common/loot_table.ron
@@ -49,15 +49,91 @@
     (0.007, "common.items.weapons.sword.long_2h_orn-3"),
     (0.007, "common.items.weapons.sword.long_2h_orn-4"),
     (0.007, "common.items.weapons.sword.long_2h_orn-5"),
+    (0.01, "common.items.weapons.sword.zweihander_sword_0"),
     // axes
-    (1, "common.items.weapons.axe.starter_axe"),
+    (0.10, "common.items.weapons.axe.starter_axe"),
+    (0.10, "common.items.weapons.axe.orc_axe-0"),
+    (0.04, "common.items.weapons.axe.worn_iron_axe-0"),
+    (0.04, "common.items.weapons.axe.worn_iron_axe-1"),
+    (0.04, "common.items.weapons.axe.worn_iron_axe-2"),
+    (0.04, "common.items.weapons.axe.worn_iron_axe-3"),
+    (0.04, "common.items.weapons.axe.worn_iron_axe-4"),
+    (0.10, "common.items.weapons.axe.bronze_axe-0"),
+    (0.10, "common.items.weapons.axe.bronze_axe-1"),
+    (0.03, "common.items.weapons.axe.iron_axe-0"),
+    (0.03, "common.items.weapons.axe.iron_axe-1"),
+    (0.03, "common.items.weapons.axe.iron_axe-2"),
+    (0.03, "common.items.weapons.axe.iron_axe-3"),
+    (0.03, "common.items.weapons.axe.iron_axe-4"),
+    (0.03, "common.items.weapons.axe.iron_axe-5"),
+    (0.03, "common.items.weapons.axe.iron_axe-6"),
+    (0.03, "common.items.weapons.axe.iron_axe-7"),
+    (0.03, "common.items.weapons.axe.iron_axe-8"),
+    (0.03, "common.items.weapons.axe.iron_axe-9"),
+    (0.02, "common.items.weapons.axe.steel_axe-0"),
+    (0.02, "common.items.weapons.axe.steel_axe-1"),
+    (0.02, "common.items.weapons.axe.steel_axe-2"),
+    (0.02, "common.items.weapons.axe.steel_axe-3"),
+    (0.02, "common.items.weapons.axe.steel_axe-4"),
+    (0.02, "common.items.weapons.axe.steel_axe-5"),
+    (0.02, "common.items.weapons.axe.steel_axe-6"),
+    (0.01, "common.items.weapons.axe.bloodsteel_axe-0"),
+    (0.01, "common.items.weapons.axe.bloodsteel_axe-1"),
+    (0.01, "common.items.weapons.axe.bloodsteel_axe-2"),
+    (0.01, "common.items.weapons.axe.cobalt_axe-0"),
+    (0.01, "common.items.weapons.axe.malachite_axe-0"),
+    // healing staff
+    (0.8, "common.items.weapons.staff.staff_nature"),
     // staves
-    (1, "common.items.weapons.staff.staff_nature"),
-    (1, "common.items.weapons.staff.starter_staff"),
+    (0.50, "common.items.weapons.staff.starter_staff"),
+    (0.35, "common.items.weapons.staff.bone_staff"),
+    (0.15, "common.items.weapons.staff.amethyst_staff"),
+    (0.01, "common.items.weapons.staff.cultist_staff"),
     // hammers
-    (1, "common.items.weapons.hammer.starter_hammer"),
+    (0.05, "common.items.weapons.hammer.starter_hammer"),
+    (0.05, "common.items.weapons.hammer.wood_hammer-0"),
+    (0.05, "common.items.weapons.hammer.flimsy_hammer"),
+    (0.05, "common.items.weapons.hammer.stone_hammer-0"),
+    (0.05, "common.items.weapons.hammer.stone_hammer-1"),
+    (0.05, "common.items.weapons.hammer.stone_hammer-2"),
+    (0.05, "common.items.weapons.hammer.stone_hammer-3"),
+    (0.05, "common.items.weapons.hammer.worn_iron_hammer-0"),
+    (0.05, "common.items.weapons.hammer.worn_iron_hammer-1"),
+    (0.05, "common.items.weapons.hammer.worn_iron_hammer-2"),
+    (0.05, "common.items.weapons.hammer.worn_iron_hammer-3"),
+    (0.05, "common.items.weapons.hammer.bronze_hammer-0"),
+    (0.05, "common.items.weapons.hammer.bronze_hammer-1"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-0"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-1"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-2"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-3"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-4"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-5"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-6"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-7"),
+    (0.03, "common.items.weapons.hammer.iron_hammer-8"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-0"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-1"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-2"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-3"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-4"),
+    (0.02, "common.items.weapons.hammer.steel_hammer-5"),
+    (0.01, "common.items.weapons.hammer.cobalt_hammer-0"),
+    (0.01, "common.items.weapons.hammer.cobalt_hammer-1"),
+    (0.01, "common.items.weapons.hammer.runic_hammer"),
+    (0.01, "common.items.weapons.hammer.ramshead_hammer"),
+    (0.01, "common.items.weapons.hammer.mjolnir"),
     // bows
-    (1, "common.items.weapons.bow.starter_bow"),
+    (0.20, "common.items.weapons.bow.starter_bow"),
+    (0.15, "common.items.weapons.bow.wood_shortbow-0"),
+    (0.15, "common.items.weapons.bow.wood_shortbow-1"),
+    (0.10, "common.items.weapons.bow.leafy_shortbow-0"),
+    (0.10, "common.items.weapons.bow.wood_longbow-0"),
+    (0.10, "common.items.weapons.bow.wood_longbow-1"),
+    (0.08, "common.items.weapons.bow.leafy_longbow-0"),
+    (0.05, "common.items.weapons.bow.horn_longbow-0"),
+    (0.03, "common.items.weapons.bow.iron_longbow-0"),
+    (0.01, "common.items.weapons.bow.rare_longbow"),
     // belts
     (0.17, "common.items.armor.belt.cloth_blue_0"),
     (0.17, "common.items.armor.belt.cloth_green_0"),
diff --git a/assets/voxygen/i18n/de_DE.ron b/assets/voxygen/i18n/de_DE.ron
index 4258f0bcc2..de6f9305bb 100644
--- a/assets/voxygen/i18n/de_DE.ron
+++ b/assets/voxygen/i18n/de_DE.ron
@@ -92,6 +92,8 @@ VoxygenLocalization(
         /// Start Main screen section
         "main.connecting": "Verbinde ",
         "main.creating_world": "Erschaffe Welt ",
+        "main.tip": "Tip:",
+        "hud.settings.loading_tips": "Ladebildschirm Tips",
 
 
         /// Start Main screen section
@@ -118,14 +120,11 @@ Danke, dass Ihr Euch die Zeit genommen habt diese Zeilen zu lesen und wir hoffen
         /// Login process description
         "main.login_process": r#"Information zum Login:
 
-Zum Spielen wird ein Account benötigt. 
-
-Diesen könnt Ihr Euch hier erstellen:
+Erstellt euch hier einen Account zum Spielen:
 
 https://account.veloren.net.
 
-Aktuell wird nur das Aussehen 
-eurer erstellen Charaktere gespeichert."#,
+"#,
 "main.login.server_not_found": "Server nicht gefunden.",
         "main.login.authentication_error": "Authentifizierung fehlgeschlagen",
         "main.login.server_full": "Server ist voll",
diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron
index 5f6e0daa18..20ddabafcc 100644
--- a/assets/voxygen/item_image_manifest.ron
+++ b/assets/voxygen/item_image_manifest.ron
@@ -5,7 +5,43 @@
     // Weapons
     // Bows
     Tool(Bow(ShortBow0)): VoxTrans(
-        "voxel.weapon.bow.shortbow-0",
+        "voxel.weapon.bow.shortbow_starter",
+        (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
+    ),
+    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(
+        "voxel.weapon.bow.shortbow_wood-1",
+        (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
+    ),
+    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(
+        "voxel.weapon.bow.longbow_wood-0",
+        (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
+    ),
+    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(
+        "voxel.weapon.bow.longbow_leafy-0",
+        (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
+    ),
+    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(
+        "voxel.weapon.bow.longbow_iron-0",
+        (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
+    ),
+    Tool(Bow(RareLongbow)): VoxTrans(
+        "voxel.weapon.bow.longbow_rare",
         (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0,
     ),
     // Daggers
@@ -184,19 +220,284 @@
     ),
     // Axes
     Tool(Axe(BasicAxe)): VoxTrans(
-        "voxel.weapon.axe.rusty_2h",
+        "voxel.weapon.axe.2haxe_rusty",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "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(
+        "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(
+        "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(
+        "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(
+        "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(
+        "voxel.weapon.axe.2haxe_bronze-0",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-0",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-2",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-4",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-6",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-8",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_iron-9",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_steel-1",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_steel-3",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_steel-5",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_bloodsteel-0",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "voxel.weapon.axe.2haxe_bloodsteel-2",
+        (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
+    ),
+    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(
+        "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(
-        "voxel.weapon.hammer.rusty_2h",
+        "voxel.weapon.hammer.2hhammer_rusty",
         (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
-    ),   
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_flimsy",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_stone-1",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_stone-3",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "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(
+        "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(
+        "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(
+        "voxel.weapon.hammer.2hhammer_bronze-0",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_iron-0",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_iron-2",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_iron-4",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_iron-6",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_iron-8",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_steel-1",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_steel-3",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_steel-5",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_Cobalt-1",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
+        "voxel.weapon.hammer.2hhammer_ramshead",
+        (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),
+    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(
-        "voxel.weapon.staff.wood-fire",
+        "voxel.weapon.staff.firestaff_starter",
         (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
     ),
+    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(
+        "voxel.weapon.staff.firestaff_amethyst",
+        (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2,
+    ),
+    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(
         "voxel.weapon.staff.wood-nature",
         (1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.2,
diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
index 3efea95da9..a9405ea3dd 100644
--- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
+++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
@@ -167,13 +167,262 @@
         vox_spec: ("weapon.sword.cultist_purp_2h-0", (-2.0, -4.5, -7.5)),
         color: None
     ),
+    // Axes
     Axe(BasicAxe): (
-        vox_spec: ("weapon.axe.rusty_2h", (-1.5, -5.0, -4.0)),
+        vox_spec: ("weapon.axe.2haxe_rusty", (-1.5, -5.0, -4.0)),
+        color: None
+    ),
+    Axe(OrcAxe0): (
+        vox_spec: ("weapon.axe.2haxe_orc-0", (-1.5, -3.0, -4.5)),
+        color: None
+    ),
+    Axe(WornIronAxe0): (
+        vox_spec: ("weapon.axe.2haxe_worn_iron-0", (-1.5, -3.0, -4.0)),
+        color: None
+    ),
+    Axe(WornIronAxe1): (
+        vox_spec: ("weapon.axe.2haxe_worn_iron-1", (-1.5, -4.0, -4.0)),
+        color: None
+    ),
+    Axe(WornIronAxe2): (
+        vox_spec: ("weapon.axe.2haxe_worn_iron-2", (-1.5, -4.0, -4.0)),
+        color: None
+    ),
+    Axe(WornIronAxe3): (
+        vox_spec: ("weapon.axe.2haxe_worn_iron-3", (-1.5, -4.5, -4.0)),
+        color: None
+    ),
+    Axe(WornIronAxe4): (
+        vox_spec: ("weapon.axe.2haxe_worn_iron-4", (-1.5, -4.0, -5.5)),
+        color: None
+    ),
+    Axe(BronzeAxe0): (
+        vox_spec: ("weapon.axe.2haxe_bronze-0", (-1.5, -4.0, -4.5)),
+        color: None
+    ),
+    Axe(BronzeAxe1): (
+        vox_spec: ("weapon.axe.2haxe_bronze-1", (-1.5, -3.0, -5.5)),
+        color: None
+    ),
+    Axe(IronAxe0): (
+        vox_spec: ("weapon.axe.2haxe_iron-0", (-1.5, -5.0, -5.5)),
+        color: None
+    ),
+    Axe(IronAxe1): (
+        vox_spec: ("weapon.axe.2haxe_iron-1", (-1.5, -5.0, -5.5)),
+        color: None
+    ),
+    Axe(IronAxe2): (
+        vox_spec: ("weapon.axe.2haxe_iron-2", (-1.5, -5.0, -5.5)),
+        color: None
+    ),
+    Axe(IronAxe3): (
+        vox_spec: ("weapon.axe.2haxe_iron-3", (-1.5, -6.0, -6.5)),
+        color: None
+    ),
+    Axe(IronAxe4): (
+        vox_spec: ("weapon.axe.2haxe_iron-4", (-1.5, -6.0, -5.5)),
+        color: None
+    ),
+    Axe(IronAxe5): (
+        vox_spec: ("weapon.axe.2haxe_iron-5", (-1.5, -6.0, -5.0)),
+        color: None
+    ),
+    Axe(IronAxe6): (
+        vox_spec: ("weapon.axe.2haxe_iron-6", (-1.5, -5.0, -6.0)),
+        color: None
+    ),
+    Axe(IronAxe7): (
+        vox_spec: ("weapon.axe.2haxe_iron-7", (-1.5, -5.0, -5.0)),
+        color: None
+    ),
+    Axe(IronAxe8): (
+        vox_spec: ("weapon.axe.2haxe_iron-8", (-1.5, -5.0, -5.0)),
+        color: None
+    ),
+    Axe(IronAxe9): (
+        vox_spec: ("weapon.axe.2haxe_iron-9", (-1.5, -4.0, -5.0)),
+        color: None
+    ),
+    Axe(SteelAxe0): (
+        vox_spec: ("weapon.axe.2haxe_steel-0", (-1.5, -6.0, -4.5)),
+        color: None
+    ),
+    Axe(SteelAxe1): (
+        vox_spec: ("weapon.axe.2haxe_steel-1", (-1.5, -7.0, -5.5)),
+        color: None
+    ),
+    Axe(SteelAxe2): (
+        vox_spec: ("weapon.axe.2haxe_steel-2", (-1.5, -3.5, -3.5)),
+        color: None
+    ),
+    Axe(SteelAxe3): (
+        vox_spec: ("weapon.axe.2haxe_steel-3", (-1.5, -4.0, -6.0)),
+        color: None
+    ),
+    Axe(SteelAxe4): (
+        vox_spec: ("weapon.axe.2haxe_steel-4", (-1.5, -4.0, -5.5)),
+        color: None
+    ),
+    Axe(SteelAxe5): (
+        vox_spec: ("weapon.axe.2haxe_steel-5", (-1.5, -5.5, -5.5)),
+        color: None
+    ),
+    Axe(SteelAxe6): (
+        vox_spec: ("weapon.axe.2haxe_steel-6", (-1.5, -4.0, -4.0)),
+        color: None
+    ),
+    Axe(BloodsteelAxe0): (
+        vox_spec: ("weapon.axe.2haxe_bloodsteel-0", (-1.5, -5.0, -6.0)),
+        color: None
+    ),
+    Axe(BloodsteelAxe1): (
+        vox_spec: ("weapon.axe.2haxe_bloodsteel-1", (-1.5, -5.5, -5.0)),
+        color: None
+    ),
+    Axe(BloodsteelAxe2): (
+        vox_spec: ("weapon.axe.2haxe_bloodsteel-2", (-1.5, -5.0, -4.0)),
+        color: None
+    ),
+    Axe(CobaltAxe0): (
+        vox_spec: ("weapon.axe.2haxe_cobalt-0", (-1.5, -5.0, -5.5)),
+        color: None
+    ),
+    Axe(MalachiteAxe0): (
+        vox_spec: ("weapon.axe.2haxe_malachite-0", (-1.5, -5.0, -6.0)),
         color: None
     ),
     // Hammers
     Hammer(BasicHammer): (
-        vox_spec: ("weapon.hammer.rusty_2h", (-2.5, -5.5, -4.0)),
+        vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)),
+        color: None
+    ),
+    Hammer(WoodHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_wood-0", (-3.5, -5.5, -4.5)),
+        color: None
+    ),
+    Hammer(FlimsyHammer): (
+        vox_spec: ("weapon.hammer.2hhammer_flimsy", (-2.5, -5.5, -4.0)),
+        color: None
+    ),
+    Hammer(StoneHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_stone-0", (-3.5, -6.5, -5.0)),
+        color: None
+    ),
+    Hammer(StoneHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_stone-1", (-3.5, -6.5, -5.0)),
+        color: None
+    ),
+    Hammer(StoneHammer2): (
+        vox_spec: ("weapon.hammer.2hhammer_stone-2", (-3.5, -6.5, -5.0)),
+        color: None
+    ),
+    Hammer(StoneHammer3): (
+        vox_spec: ("weapon.hammer.2hhammer_stone-3", (-2.5, -6.5, -5.0)),
+        color: None
+    ),
+    Hammer(WornIronHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_worn_iron-0", (-2.5, -4.5, -4.0)),
+        color: None
+    ),
+    Hammer(WornIronHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_worn_iron-1", (-2.5, -4.5, -3.0)),
+        color: None
+    ),
+    Hammer(WornIronHammer2): (
+        vox_spec: ("weapon.hammer.2hhammer_worn_iron-2", (-2.5, -3.5, -3.0)),
+        color: None
+    ),
+    Hammer(WornIronHammer3): (
+        vox_spec: ("weapon.hammer.2hhammer_worn_iron-3", (-2.5, -4.5, -3.0)),
+        color: None
+    ),
+    Hammer(BronzeHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_bronze-0", (-2.5, -6.5, -5.0)),
+        color: None
+    ),
+    Hammer(BronzeHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_bronze-1", (-3.5, -3.5, -4.0)),
+        color: None
+    ),
+    Hammer(IronHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-0", (-2.5, -6.5, -4.0)),
+        color: None
+    ),
+    Hammer(IronHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-1", (-3.5, -7.5, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer2): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-2", (-3.5, -3.5, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer3): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-3", (-3.5, -3.5, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer4): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-4", (-3.5, -7.5, -4.0)),
+        color: None
+    ),
+    Hammer(IronHammer5): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-5", (-1.5, -7.0, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer6): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-6", (-2.5, -7.0, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer7): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-7", (-3.5, -7.5, -5.0)),
+        color: None
+    ),
+    Hammer(IronHammer8): (
+        vox_spec: ("weapon.hammer.2hhammer_iron-8", (-1.5, -5.5, -7.0)),
+        color: None
+    ),
+    Hammer(SteelHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-0", (-2.5, -5.5, -5.0)),
+        color: None
+    ),
+    Hammer(SteelHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-1", (-3.5, -7.5, -5.0)),
+        color: None
+    ),
+    Hammer(SteelHammer2): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-2", (-3.5, -3.5, -3.0)),
+        color: None
+    ),
+    Hammer(SteelHammer3): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-3", (-5.5, -5.5, -4.5)),
+        color: None
+    ),
+    Hammer(SteelHammer4): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-4", (-3.5, -7.5, -4.0)),
+        color: None
+    ),
+    Hammer(SteelHammer5): (
+        vox_spec: ("weapon.hammer.2hhammer_steel-5", (-5.5, -5.5, -5.0)),
+        color: None
+    ),
+    Hammer(CobaltHammer0): (
+        vox_spec: ("weapon.hammer.2hhammer_cobalt-0", (-2.5, -7.5, -6.0)),
+        color: None
+    ),
+    Hammer(CobaltHammer1): (
+        vox_spec: ("weapon.hammer.2hhammer_cobalt-1", (-4.5, -4.5, -4.0)),
+        color: None
+    ),
+    Hammer(RunicHammer): (
+        vox_spec: ("weapon.hammer.2hhammer_runic", (-2.5, -7.5, -5.0)),
+        color: None
+    ),
+    Hammer(RamsheadHammer): (
+        vox_spec: ("weapon.hammer.2hhammer_ramshead", (-4.5, -5.5, -5.0)),
+        color: None
+    ),
+    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!
@@ -192,23 +441,43 @@
     ),
     // Bows
     Bow(ShortBow0): (
-        vox_spec: ("weapon.bow.shortbow-0", (-1.0, -6.0, 2.5)),
+        vox_spec: ("weapon.bow.shortbow_starter", (-1.0, -6.0, 3.0)),
         color: None
     ),
-    Bow(ShortBow1): (
-        vox_spec: ("weapon.bow.shortbow-1", (-1.0, -6.0, 2.5)),
-        color: None
-    ),    
-    Bow(LongBow0): (
-        vox_spec: ("weapon.bow.longbow-0", (-1.0, -6.0, 2.5)),
+    Bow(WoodShortbow0): (
+        vox_spec: ("weapon.bow.shortbow_wood-0", (-1.0, -6.0, 2.5)),
         color: None
     ),
-    Bow(LongBow1): (
-        vox_spec: ("weapon.bow.longbow-1", (-1.0, -6.0, 2.5)),
+    Bow(WoodShortbow1): (
+        vox_spec: ("weapon.bow.shortbow_wood-1", (-1.0, -6.5, 2.5)),
         color: None
     ),
-    Bow(RareBow0): (
-        vox_spec: ("weapon.bow.rare_bow-0", (-1.0, -6.0, 2.5)),
+    Bow(LeafyShortbow0): (
+        vox_spec: ("weapon.bow.shortbow_leafy-0", (-1.0, -8.0, 3.5)),
+        color: None
+    ),
+    Bow(WoodLongbow0): (
+        vox_spec: ("weapon.bow.longbow_wood-0", (-1.0, -6.0, -0.5)),
+        color: None
+    ),
+    Bow(WoodLongbow1): (
+        vox_spec: ("weapon.bow.longbow_wood-1", (-1.0, -6.0, 0.0)),
+        color: None
+    ),
+    Bow(LeafyLongbow0): (
+        vox_spec: ("weapon.bow.longbow_leafy-0", (-1.0, -8.0, -0.5)),
+        color: None
+    ),
+    Bow(HornLongbow0): (
+        vox_spec: ("weapon.bow.longbow_horn-0", (-2.0, -6.0, -6.5)),
+        color: None
+    ),
+    Bow(IronLongbow0): (
+        vox_spec: ("weapon.bow.longbow_iron-0", (-2.0, -6.0, -5.5)),
+        color: None
+    ),
+    Bow(RareLongbow): (
+        vox_spec: ("weapon.bow.longbow_rare", (-2.0, -6.0, -2.5)),
         color: None
     ),
     // Farming Equipment
@@ -254,10 +523,22 @@
     ),
     // Staves    
     Staff(BasicStaff): (
-        vox_spec: ("weapon.staff.wood-fire", (-1.0, -6.0, -3.0)),
+        vox_spec: ("weapon.staff.firestaff_starter", (-1.0, -6.0, -3.0)),
         color: None
     ),
-    // Sceptres
+    Staff(BoneStaff): (
+        vox_spec: ("weapon.staff.firestaff_bone", (-1.0, -6.0, -3.0)),
+        color: None
+    ),
+    Staff(AmethystStaff): (
+        vox_spec: ("weapon.staff.firestaff_amethyst", (-1.0, -8.0, -4.0)),
+        color: None
+    ),
+    Staff(CultistStaff): (
+        vox_spec: ("weapon.staff.firestaff_cultist", (-2.0, -6.0, -4.0)),
+        color: None
+    ),
+    // Healing staff
      Staff(Sceptre): (
         vox_spec: ("weapon.staff.wood-nature", (-1.0, -6.0, -5.0)),
         color: None
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox
new file mode 100644
index 0000000000..cd7fd5701e
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox
new file mode 100644
index 0000000000..18af90ab1b
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox
new file mode 100644
index 0000000000..bdc33b04eb
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox
new file mode 100644
index 0000000000..853ff34fe1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox
new file mode 100644
index 0000000000..a5e7673b6f
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox
new file mode 100644
index 0000000000..0a729d864a
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox
new file mode 100644
index 0000000000..03d1ed6995
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox
new file mode 100644
index 0000000000..8b85d4fc2c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox
new file mode 100644
index 0000000000..39475380ec
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox
new file mode 100644
index 0000000000..333adc188a
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox
new file mode 100644
index 0000000000..22b652c6c1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox
new file mode 100644
index 0000000000..1a9e4d95c3
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox
new file mode 100644
index 0000000000..5dca9ed310
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox
new file mode 100644
index 0000000000..69fdbe3130
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox
new file mode 100644
index 0000000000..7e902418c4
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox
new file mode 100644
index 0000000000..87c3712755
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox
new file mode 100644
index 0000000000..492dbf22d1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox
new file mode 100644
index 0000000000..356acd78c1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/rusty_2h.vox b/assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/axe/rusty_2h.vox
rename to assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox
new file mode 100644
index 0000000000..23c6b7a6cb
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox
new file mode 100644
index 0000000000..f0a3adb9ee
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox
new file mode 100644
index 0000000000..9aa8f269cc
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox
new file mode 100644
index 0000000000..4b1e248571
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox
new file mode 100644
index 0000000000..7824699558
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox
new file mode 100644
index 0000000000..eb3cae1ccf
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox
new file mode 100644
index 0000000000..187b62207c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox
new file mode 100644
index 0000000000..daf033b688
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox
new file mode 100644
index 0000000000..9c7535609d
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox
new file mode 100644
index 0000000000..3c9cb4023b
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox
new file mode 100644
index 0000000000..5dc0d3c77d
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox
new file mode 100644
index 0000000000..a2c0b1cef6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/axe/orc-0.vox b/assets/voxygen/voxel/weapon/axe/orc-0.vox
deleted file mode 100644
index 351ab2569e..0000000000
Binary files a/assets/voxygen/voxel/weapon/axe/orc-0.vox and /dev/null differ
diff --git a/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox
new file mode 100644
index 0000000000..1fc233c94b
Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox
new file mode 100644
index 0000000000..c1b8797950
Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox
new file mode 100644
index 0000000000..c31fed74b4
Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/bow/rare_bow-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_rare.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/bow/rare_bow-0.vox
rename to assets/voxygen/voxel/weapon/bow/longbow_rare.vox
diff --git a/assets/voxygen/voxel/weapon/bow/longbow-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_wood-0.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/bow/longbow-0.vox
rename to assets/voxygen/voxel/weapon/bow/longbow_wood-0.vox
diff --git a/assets/voxygen/voxel/weapon/bow/longbow-1.vox b/assets/voxygen/voxel/weapon/bow/longbow_wood-1.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/bow/longbow-1.vox
rename to assets/voxygen/voxel/weapon/bow/longbow_wood-1.vox
diff --git a/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox b/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox
new file mode 100644
index 0000000000..2186f178e0
Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox b/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox
new file mode 100644
index 0000000000..6cf7761fa8
Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox differ
diff --git a/assets/voxygen/voxel/weapon/bow/shortbow-0.vox b/assets/voxygen/voxel/weapon/bow/shortbow_wood-0.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/bow/shortbow-0.vox
rename to assets/voxygen/voxel/weapon/bow/shortbow_wood-0.vox
diff --git a/assets/voxygen/voxel/weapon/bow/shortbow-1.vox b/assets/voxygen/voxel/weapon/bow/shortbow_wood-1.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/bow/shortbow-1.vox
rename to assets/voxygen/voxel/weapon/bow/shortbow_wood-1.vox
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox
new file mode 100644
index 0000000000..2b30dbd5a6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox
new file mode 100644
index 0000000000..7c22b65a7c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox
new file mode 100644
index 0000000000..6ea01d904c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox
new file mode 100644
index 0000000000..6364729f9c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox
new file mode 100644
index 0000000000..6f82ddab71
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox
new file mode 100644
index 0000000000..9b3977b83e
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox
new file mode 100644
index 0000000000..583ed1f399
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox
new file mode 100644
index 0000000000..ca87f819e7
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox
new file mode 100644
index 0000000000..bd6f60c514
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox
new file mode 100644
index 0000000000..382bffaf85
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox
new file mode 100644
index 0000000000..6325ba989b
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox
new file mode 100644
index 0000000000..b589f59951
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox
new file mode 100644
index 0000000000..a954ac99e3
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox
new file mode 100644
index 0000000000..9f3cd414a1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox
new file mode 100644
index 0000000000..f2c047f19a
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox
new file mode 100644
index 0000000000..2f4d541c12
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox
new file mode 100644
index 0000000000..e6dfabe724
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/rusty_2h.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/hammer/rusty_2h.vox
rename to assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox
new file mode 100644
index 0000000000..555cd39406
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox
new file mode 100644
index 0000000000..d0ef43b407
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox
new file mode 100644
index 0000000000..6877868162
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox
new file mode 100644
index 0000000000..2dd66ad4b5
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox
new file mode 100644
index 0000000000..4760e88d22
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox
new file mode 100644
index 0000000000..efef7a9a10
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox
new file mode 100644
index 0000000000..89aaf5ae4f
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox
new file mode 100644
index 0000000000..da48f36011
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox
new file mode 100644
index 0000000000..e4c991f118
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox
new file mode 100644
index 0000000000..63207cfbd0
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox
new file mode 100644
index 0000000000..76a60673a6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox
new file mode 100644
index 0000000000..d23934c787
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox
new file mode 100644
index 0000000000..1db6785b66
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox
new file mode 100644
index 0000000000..7d204e4146
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox
new file mode 100644
index 0000000000..46178d5579
Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox b/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox
new file mode 100644
index 0000000000..d818a2fb6a
Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox differ
diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox b/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox
new file mode 100644
index 0000000000..edf5deece8
Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox differ
diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox
new file mode 100644
index 0000000000..de46db2baa
Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox differ
diff --git a/assets/voxygen/voxel/weapon/staff/wood-fire.vox b/assets/voxygen/voxel/weapon/staff/firestaff_starter.vox
similarity index 100%
rename from assets/voxygen/voxel/weapon/staff/wood-fire.vox
rename to assets/voxygen/voxel/weapon/staff/firestaff_starter.vox
diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs
index 80eaef09f8..88c7de2893 100644
--- a/common/src/comp/body.rs
+++ b/common/src/comp/body.rs
@@ -133,37 +133,37 @@ impl Body {
 
     pub fn base_health(&self) -> u32 {
         match self {
-            Body::Humanoid(_) => 52,
-            Body::QuadrupedSmall(_) => 44,
-            Body::QuadrupedMedium(_) => 72,
-            Body::BirdMedium(_) => 36,
-            Body::FishMedium(_) => 32,
-            Body::Dragon(_) => 256,
-            Body::BirdSmall(_) => 24,
-            Body::FishSmall(_) => 20,
-            Body::BipedLarge(_) => 144,
-            Body::Object(_) => 100,
-            Body::Golem(_) => 168,
-            Body::Critter(_) => 32,
-            Body::QuadrupedLow(_) => 64,
+            Body::Humanoid(_) => 520,
+            Body::QuadrupedSmall(_) => 440,
+            Body::QuadrupedMedium(_) => 720,
+            Body::BirdMedium(_) => 360,
+            Body::FishMedium(_) => 320,
+            Body::Dragon(_) => 2560,
+            Body::BirdSmall(_) => 240,
+            Body::FishSmall(_) => 200,
+            Body::BipedLarge(_) => 1440,
+            Body::Object(_) => 1000,
+            Body::Golem(_) => 1680,
+            Body::Critter(_) => 320,
+            Body::QuadrupedLow(_) => 640,
         }
     }
 
     pub fn base_health_increase(&self) -> u32 {
         match self {
-            Body::Humanoid(_) => 5,
-            Body::QuadrupedSmall(_) => 4,
-            Body::QuadrupedMedium(_) => 7,
-            Body::BirdMedium(_) => 4,
-            Body::FishMedium(_) => 3,
-            Body::Dragon(_) => 26,
-            Body::BirdSmall(_) => 2,
-            Body::FishSmall(_) => 2,
-            Body::BipedLarge(_) => 14,
+            Body::Humanoid(_) => 50,
+            Body::QuadrupedSmall(_) => 40,
+            Body::QuadrupedMedium(_) => 70,
+            Body::BirdMedium(_) => 40,
+            Body::FishMedium(_) => 30,
+            Body::Dragon(_) => 260,
+            Body::BirdSmall(_) => 20,
+            Body::FishSmall(_) => 20,
+            Body::BipedLarge(_) => 140,
             Body::Object(_) => 0,
-            Body::Golem(_) => 17,
-            Body::Critter(_) => 3,
-            Body::QuadrupedLow(_) => 6,
+            Body::Golem(_) => 170,
+            Body::Critter(_) => 30,
+            Body::QuadrupedLow(_) => 60,
         }
     }
 
@@ -205,19 +205,19 @@ impl Body {
 
     pub fn base_dmg(&self) -> u32 {
         match self {
-            Body::Humanoid(_) => 6,
-            Body::QuadrupedSmall(_) => 8,
-            Body::QuadrupedMedium(_) => 12,
-            Body::BirdMedium(_) => 7,
-            Body::FishMedium(_) => 6,
-            Body::Dragon(_) => 90,
-            Body::BirdSmall(_) => 5,
-            Body::FishSmall(_) => 3,
-            Body::BipedLarge(_) => 36,
+            Body::Humanoid(_) => 60,
+            Body::QuadrupedSmall(_) => 80,
+            Body::QuadrupedMedium(_) => 120,
+            Body::BirdMedium(_) => 70,
+            Body::FishMedium(_) => 60,
+            Body::Dragon(_) => 900,
+            Body::BirdSmall(_) => 50,
+            Body::FishSmall(_) => 30,
+            Body::BipedLarge(_) => 360,
             Body::Object(_) => 0,
-            Body::Golem(_) => 36,
-            Body::Critter(_) => 7,
-            Body::QuadrupedLow(_) => 11,
+            Body::Golem(_) => 360,
+            Body::Critter(_) => 70,
+            Body::QuadrupedLow(_) => 110,
         }
     }
 
diff --git a/common/src/comp/damage.rs b/common/src/comp/damage.rs
index e2e6449975..d43268aa51 100644
--- a/common/src/comp/damage.rs
+++ b/common/src/comp/damage.rs
@@ -33,8 +33,8 @@ impl Damage {
                 self.healthchange *= 1.0 - loadout.get_damage_reduction();
 
                 // Min damage
-                if self.healthchange > -1.0 {
-                    self.healthchange = -1.0;
+                if self.healthchange > -10.0 {
+                    self.healthchange = -10.0;
                 }
             },
             DamageSource::Projectile => {
@@ -50,8 +50,8 @@ impl Damage {
                 self.healthchange *= 1.0 - loadout.get_damage_reduction();
 
                 // Min damage
-                if self.healthchange > -1.0 {
-                    self.healthchange = -1.0;
+                if self.healthchange > -10.0 {
+                    self.healthchange = -10.0;
                 }
             },
             DamageSource::Explosion => {
@@ -67,8 +67,8 @@ impl Damage {
                 self.healthchange *= 1.0 - loadout.get_damage_reduction();
 
                 // Min damage
-                if self.healthchange > -1.0 {
-                    self.healthchange = -1.0;
+                if self.healthchange > -10.0 {
+                    self.healthchange = -10.0;
                 }
             },
             _ => {},
diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs
index f5dcefb4fd..5a083b94be 100644
--- a/common/src/comp/inventory/item/tool.rs
+++ b/common/src/comp/inventory/item/tool.rs
@@ -52,21 +52,89 @@ pub enum SwordKind {
     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,
-    ShortBow1,
-    LongBow0,
-    LongBow1,
-    RareBow0,
+    WoodShortbow0,
+    WoodShortbow1,
+    LeafyShortbow0,
+    WoodLongbow0,
+    WoodLongbow1,
+    LeafyLongbow0,
+    HornLongbow0,
+    IronLongbow0,
+    RareLongbow,
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum DaggerKind {
@@ -74,8 +142,11 @@ pub enum DaggerKind {
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum StaffKind {
-    BasicStaff,
     Sceptre,
+    BasicStaff,
+    BoneStaff,
+    AmethystStaff,
+    CultistStaff,
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum ShieldKind {
@@ -168,10 +239,16 @@ impl From<ToolKind> for ToolCategory {
     }
 }
 
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
+#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
+pub struct Stats {
+    equip_time_millis: u32,
+    power: f32,
+}
+
+#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
 pub struct Tool {
     pub kind: ToolKind,
-    equip_time_millis: u32,
+    pub stats: Stats,
     // TODO: item specific abilities
 }
 
@@ -179,11 +256,19 @@ impl Tool {
     pub fn empty() -> Self {
         Self {
             kind: ToolKind::Empty,
-            equip_time_millis: 0,
+            stats: Stats {
+                equip_time_millis: 0,
+                power: 1.00,
+            },
         }
     }
 
-    pub fn equip_time(&self) -> Duration { Duration::from_millis(self.equip_time_millis as u64) }
+    // Keep power between 0.5 and 2.00
+    pub fn base_power(&self) -> f32 { self.stats.power }
+
+    pub fn equip_time(&self) -> Duration {
+        Duration::from_millis(self.stats.equip_time_millis as u64)
+    }
 
     pub fn get_abilities(&self) -> Vec<CharacterAbility> {
         use CharacterAbility::*;
@@ -191,40 +276,28 @@ impl Tool {
         use ToolKind::*;
 
         match self.kind {
-            Sword(SwordKind::CultPurp0) => vec![
-                TripleStrike {
-                    base_damage: 10,
-                    needs_timing: false,
-                },
-                DashMelee {
-                    energy_cost: 700,
-                    buildup_duration: Duration::from_millis(500),
-                    recover_duration: Duration::from_millis(500),
-                    base_damage: 20,
-                },
-            ],
             Sword(_) => vec![
                 TripleStrike {
-                    base_damage: 5,
+                    base_damage: (60.0 * self.base_power()) as u32,
                     needs_timing: false,
                 },
                 DashMelee {
                     energy_cost: 700,
                     buildup_duration: Duration::from_millis(500),
                     recover_duration: Duration::from_millis(500),
-                    base_damage: 10,
+                    base_damage: (120.0 * self.base_power()) as u32,
                 },
             ],
             Axe(_) => vec![
                 TripleStrike {
-                    base_damage: 7,
+                    base_damage: (80.0 * self.base_power()) as u32,
                     needs_timing: true,
                 },
                 SpinMelee {
                     energy_cost: 100,
                     buildup_duration: Duration::from_millis(125),
                     recover_duration: Duration::from_millis(125),
-                    base_damage: 5,
+                    base_damage: (60.0 * self.base_power()) as u32,
                 },
             ],
             Hammer(_) => vec![
@@ -232,7 +305,7 @@ impl Tool {
                     energy_cost: 0,
                     buildup_duration: Duration::from_millis(700),
                     recover_duration: Duration::from_millis(300),
-                    base_healthchange: -10,
+                    base_healthchange: (-120.0 * self.base_power()) as i32,
                     range: 3.5,
                     max_angle: 60.0,
                 },
@@ -241,14 +314,14 @@ impl Tool {
                     movement_duration: Duration::from_millis(500),
                     buildup_duration: Duration::from_millis(1000),
                     recover_duration: Duration::from_millis(100),
-                    base_damage: 20,
+                    base_damage: (240.0 * self.base_power()) as u32,
                 },
             ],
             Farming(_) => vec![BasicMelee {
                 energy_cost: 1,
                 buildup_duration: Duration::from_millis(700),
                 recover_duration: Duration::from_millis(150),
-                base_healthchange: -5,
+                base_healthchange: (-50.0 * self.base_power()) as i32,
                 range: 3.0,
                 max_angle: 60.0,
             }],
@@ -257,11 +330,11 @@ impl Tool {
                     energy_cost: 0,
                     holdable: true,
                     prepare_duration: Duration::from_millis(100),
-                    recover_duration: Duration::from_millis(500),
+                    recover_duration: Duration::from_millis(400),
                     projectile: Projectile {
                         hit_solid: vec![projectile::Effect::Stick],
                         hit_entity: vec![
-                            projectile::Effect::Damage(-3),
+                            projectile::Effect::Damage((-40.0 * self.base_power()) as i32),
                             projectile::Effect::Knockback(10.0),
                             projectile::Effect::RewardEnergy(100),
                             projectile::Effect::Vanish,
@@ -276,8 +349,8 @@ impl Tool {
                 ChargedRanged {
                     energy_cost: 0,
                     energy_drain: 300,
-                    initial_damage: 3,
-                    max_damage: 15,
+                    initial_damage: (40.0 * self.base_power()) as u32,
+                    max_damage: (200.0 * self.base_power()) as u32,
                     initial_knockback: 10.0,
                     max_knockback: 20.0,
                     prepare_duration: Duration::from_millis(100),
@@ -292,7 +365,7 @@ impl Tool {
                     energy_cost: 0,
                     buildup_duration: Duration::from_millis(100),
                     recover_duration: Duration::from_millis(400),
-                    base_healthchange: -5,
+                    base_healthchange: (-50.0 * self.base_power()) as i32,
                     range: 3.5,
                     max_angle: 60.0,
                 },
@@ -300,15 +373,33 @@ impl Tool {
                     energy_cost: 700,
                     buildup_duration: Duration::from_millis(500),
                     recover_duration: Duration::from_millis(500),
-                    base_damage: 20,
+                    base_damage: (100.0 * self.base_power()) as u32,
                 },
             ],
-            Staff(StaffKind::BasicStaff) => vec![
+            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: -3,
+                    base_healthchange: (-40.0 * self.base_power()) as i32,
                     range: 10.0,
                     max_angle: 45.0,
                 },
@@ -320,7 +411,7 @@ impl Tool {
                     projectile: Projectile {
                         hit_solid: vec![projectile::Effect::Vanish],
                         hit_entity: vec![
-                            projectile::Effect::Damage(-3),
+                            projectile::Effect::Damage((-40.0 * self.base_power()) as i32),
                             projectile::Effect::RewardEnergy(150),
                             projectile::Effect::Vanish,
                         ],
@@ -342,11 +433,15 @@ impl Tool {
                     recover_duration: Duration::from_millis(50),
                     projectile: Projectile {
                         hit_solid: vec![
-                            projectile::Effect::Explode { power: 1.4 },
+                            projectile::Effect::Explode {
+                                power: 1.4 * self.base_power(),
+                            },
                             projectile::Effect::Vanish,
                         ],
                         hit_entity: vec![
-                            projectile::Effect::Explode { power: 1.4 },
+                            projectile::Effect::Explode {
+                                power: 1.4 * self.base_power(),
+                            },
                             projectile::Effect::Vanish,
                         ],
                         time_left: Duration::from_secs(20),
@@ -361,30 +456,12 @@ impl Tool {
                     projectile_gravity: None,
                 },
             ],
-            Staff(StaffKind::Sceptre) => vec![
-                BasicMelee {
-                    energy_cost: 0,
-                    buildup_duration: Duration::from_millis(0),
-                    recover_duration: Duration::from_millis(300),
-                    base_healthchange: -1,
-                    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: 15,
-                    range: 10.0,
-                    max_angle: 45.0,
-                },
-            ],
             Shield(_) => vec![
                 BasicMelee {
                     energy_cost: 0,
                     buildup_duration: Duration::from_millis(100),
                     recover_duration: Duration::from_millis(400),
-                    base_healthchange: -4,
+                    base_healthchange: (-40.0 * self.base_power()) as i32,
                     range: 3.0,
                     max_angle: 120.0,
                 },
@@ -427,7 +504,7 @@ impl Tool {
                 energy_cost: 0,
                 buildup_duration: Duration::from_millis(0),
                 recover_duration: Duration::from_millis(1000),
-                base_healthchange: -2,
+                base_healthchange: -20,
                 range: 5.0,
                 max_angle: 60.0,
             }],
diff --git a/common/src/loadout_builder.rs b/common/src/loadout_builder.rs
index b3b65bd5bd..276ea59cf3 100644
--- a/common/src/loadout_builder.rs
+++ b/common/src/loadout_builder.rs
@@ -66,7 +66,7 @@ impl LoadoutBuilder {
     pub fn animal(body: Body) -> Self {
         Self(Loadout {
             active_item: Some(ItemConfig {
-                item: assets::load_expect_cloned("common.items.weapons.empty"),
+                item: assets::load_expect_cloned("common.items.weapons.empty.empty"),
                 ability1: Some(CharacterAbility::BasicMelee {
                     energy_cost: 10,
                     buildup_duration: Duration::from_millis(600),
diff --git a/common/src/states/leap_melee.rs b/common/src/states/leap_melee.rs
index 44bc647f54..d908952de4 100644
--- a/common/src/states/leap_melee.rs
+++ b/common/src/states/leap_melee.rs
@@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize};
 use std::time::Duration;
 use vek::Vec3;
 
-const LEAP_SPEED: f32 = 16.0;
+const LEAP_SPEED: f32 = 24.0;
 
 #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, Eq, Hash)]
 pub struct Data {
@@ -43,7 +43,8 @@ impl CharacterBehavior for Data {
                     + 0.25 * data.inputs.move_dir.try_normalized().unwrap_or_default())
                 .try_normalized()
                 .unwrap_or_default()
-                    * LEAP_SPEED;
+                    * LEAP_SPEED
+                    * (1.0 - data.inputs.look_dir.z.abs());
 
             update.character = CharacterState::LeapMelee(Data {
                 movement_duration: self
diff --git a/server/src/cmd.rs b/server/src/cmd.rs
index 2667cee3ac..d65c62ab29 100644
--- a/server/src/cmd.rs
+++ b/server/src/cmd.rs
@@ -367,7 +367,7 @@ fn handle_health(
             .write_storage::<comp::Stats>()
             .get_mut(target)
         {
-            stats.health.set_to(hp, comp::HealthSource::Command);
+            stats.health.set_to(hp * 10, comp::HealthSource::Command);
         } else {
             server.notify_client(
                 client,
diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs
index 521acfbed1..259cd87859 100644
--- a/server/src/events/entity_manipulation.rs
+++ b/server/src/events/entity_manipulation.rs
@@ -162,7 +162,7 @@ pub fn handle_land_on_ground(server: &Server, entity: EcsEntity, vel: Vec3<f32>)
     let state = &server.state;
     if vel.z <= -30.0 {
         if let Some(stats) = state.ecs().write_storage::<comp::Stats>().get_mut(entity) {
-            let falldmg = vel.z.powi(2) / 20.0 - 40.0;
+            let falldmg = (vel.z.powi(2) / 20.0 - 40.0) * 10.0;
             let mut damage = Damage {
                 healthchange: -falldmg,
                 source: DamageSource::Falling,
@@ -238,7 +238,7 @@ pub fn handle_explosion(server: &Server, pos: Vec3<f32>, power: f32, owner: Opti
             && distance_squared < hit_range.powi(2)
         {
             // Weapon gives base damage
-            let dmg = (1.0 - distance_squared / hit_range.powi(2)) * power * 10.0;
+            let dmg = (1.0 - distance_squared / hit_range.powi(2)) * power * 130.0;
 
             let mut damage = Damage {
                 healthchange: -dmg,
diff --git a/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql
new file mode 100644
index 0000000000..291a97c5ce
--- /dev/null
+++ b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql
@@ -0,0 +1 @@
+-- This file should undo anything in `up.sql`
\ No newline at end of file
diff --git a/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql
new file mode 100644
index 0000000000..b3e63eb7ba
--- /dev/null
+++ b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql
@@ -0,0 +1,154 @@
+-- Your SQL goes here
+
+UPDATE
+    inventory
+SET
+    items = json_replace(
+        -- Replace inventory slots.
+        items,
+        '$.slots',
+        (
+            -- Replace each item in the inventory, by splitting the json into an array, applying our changes,
+            -- and then re-aggregating.
+            --
+            -- NOTE: SQLite does not seem to provide a way to guarantee the order is the same after aggregation!
+            -- For now, it *does* seem to order by slots.key, but this doesn't seem to be guaranteed by anything.
+            -- For explicitness, we still include the ORDER BY, even though it seems to have no effect.
+            SELECT json_group_array(
+                -- We use json_replace to restrict this migration's effect to items with the kind 'Tool'.
+                json_replace(
+                    slots.value,
+                    '$.kind.Tool',
+                    CASE
+                    -- ONLY run the migration when the stats.power field doesn't exist for this Tool.
+                    -- We basically use this as a check to see if the migration has run or not.
+                    WHEN json_type(slots.value, '$.kind.Tool.stats.power') IS NULL
+                    THEN (
+                        WITH
+                        -- First, we construct the contents of the new stats field:
+                        stats(key,value) AS (VALUES
+                            -- the old equip_time_millis value, which we know exists since we are a Tool and the migration has not run yet.
+                            ('equip_time_millis', json_extract(slots.value, '$.kind.Tool.equip_time_millis')),
+                            -- a new placeholder power value, which we know isn't overwriting anything since the migration hasn't run yet.
+                            ('power', json('0.5'))
+                        ),
+                        -- Next, we construct what's called a json PATCH--a generalized replacement for json_set and json_remove:
+                        patch(key,value) AS (VALUES
+                            -- *removes* the old equip_time_millis field, by setting it to null in the patch.
+                            ('equip_time_millis', json('null')),
+                            -- *inserts* the new stats field, by setting it to the contents of the stats object we constructed earlier.
+                            ('stats', (SELECT json_group_object(stats.key, stats.value) FROM stats))
+                        )
+                        -- Finally, we execute the patch against the contents of $.kind.Tool, which we know exists since we are a Tool.
+                        SELECT json_patch(
+                            json_extract(slots.value, '$.kind.Tool'),
+                            json_group_object(patch.key, patch.value)
+                        ) FROM patch
+                    )
+                    ELSE
+                        -- The migration has already run, so just use the existing value for the Tool.
+                        json_extract(slots.value, '$.kind.Tool')
+                    END
+                )
+            )
+            -- Extract all item slots
+            FROM json_each(json_extract(items, '$.slots')) AS slots
+            ORDER BY slots.key
+        )
+    )
+;
+
+-- NOTE: The only change you should need to make to this migration when copying from this file,
+-- is to replace the part below where it says
+-- "THE VALUE BELOW SHOULD BE COPY PASTED FROM THE MIGRATION FOR items"
+-- with the part below the json_group_array() in the migration for inventory (above).
+UPDATE
+    loadout
+SET
+    items = (
+        WITH 
+        -- Specify all loadout slots and the JSON path to their items.
+        slot_keys(key, item_path) AS (VALUES
+            -- Option<ItemConfig>
+            ('active_item', '$.item'),
+            ('second_item', '$.item'),
+            -- Option<Item>
+            ('lantern', '$'),
+
+            ('shoulder', '$'),
+            ('chest', '$'),
+            ('belt', '$'),
+            ('hand', '$'),
+            ('pants', '$'),
+            ('foot', '$'),
+            ('back', '$'),
+            ('ring', '$'),
+            ('neck', '$'),
+            ('head', '$'),
+            ('tabard', '$')
+        ),
+        -- Extract the base value and item value from each loadout slot.
+        slots(key, base_value, item_path, value) AS (
+            -- NOTE: Normally, using string concatenation || to construct a path like this would be a
+            -- bad idea, but since we statically know every string in the path doesn't need to be
+            -- escaped, it should be okay here.
+            SELECT
+                key,
+                json_extract(items, '$.' || key),
+                item_path,
+                json_extract(json_extract(items, '$.' || key), item_path)
+            FROM slot_keys
+        )
+        -- Reconstruct each loadout slot and group them all back together.
+        SELECT json_group_object(
+            slots.key,
+            -- Since the actual item value may be nested inside an item_path, and we want to avoid accidentally
+            -- updating NULL items, we use json_replace to construct a patch that touches just that subfield.
+            json_replace(
+                slots.base_value,
+                slots.item_path,
+
+                -- *************************************************************************************
+                -- ******** THE VALUE BELOW SHOULD BE COPY PASTED FROM THE MIGRATION FOR items *********
+                -- *************************************************************************************
+
+                -- We use json_replace to restrict this migration's effect to items with the kind 'Tool'.
+                json_replace(
+                    slots.value,
+                    '$.kind.Tool',
+                    CASE
+                    -- ONLY run the migration when the stats.power field doesn't exist for this Tool.
+                    -- We basically use this as a check to see if the migration has run or not.
+                    WHEN json_type(slots.value, '$.kind.Tool.stats.power') IS NULL
+                    THEN (
+                        WITH
+                        -- First, we construct the contents of the new stats field:
+                        stats(key,value) AS (VALUES
+                            -- the old equip_time_millis value, which we know exists since we are a Tool and the migration has not run yet.
+                            ('equip_time_millis', json_extract(slots.value, '$.kind.Tool.equip_time_millis')),
+                            -- a new placeholder power value, which we know isn't overwriting anything since the migration hasn't run yet.
+                            ('power', json('0.5'))
+                        ),
+                        -- Next, we construct what's called a json PATCH--a generalized replacement for json_set and json_remove:
+                        patch(key,value) AS (VALUES
+                            -- *removes* the old equip_time_millis field, by setting it to null in the patch.
+                            ('equip_time_millis', json('null')),
+                            -- *inserts* the new stats field, by setting it to the contents of the stats object we constructed earlier.
+                            ('stats', (SELECT json_group_object(stats.key, stats.value) FROM stats))
+                        )
+                        -- Finally, we execute the patch against the contents of $.kind.Tool, which we know exists since we are a Tool.
+                        SELECT json_patch(
+                            json_extract(slots.value, '$.kind.Tool'),
+                            json_group_object(patch.key, patch.value)
+                        ) FROM patch
+                    )
+                    ELSE
+                        -- The migration has already run, so just use the existing value for the Tool.
+                        json_extract(slots.value, '$.kind.Tool')
+                    END
+                )
+            )
+        )
+        FROM slots
+    )
+;
\ No newline at end of file
diff --git a/server/src/sys/terrain.rs b/server/src/sys/terrain.rs
index e28727675d..9d2775e194 100644
--- a/server/src/sys/terrain.rs
+++ b/server/src/sys/terrain.rs
@@ -132,12 +132,12 @@ impl<'a> System<'a> for Sys {
                     } else {
                         Some(ItemConfig {
                             // We need the empty item so npcs can attack
-                            item: assets::load_expect_cloned("common.items.weapons.empty"),
+                            item: assets::load_expect_cloned("common.items.weapons.empty.empty"),
                             ability1: Some(CharacterAbility::BasicMelee {
                                 energy_cost: 0,
                                 buildup_duration: Duration::from_millis(0),
                                 recover_duration: Duration::from_millis(400),
-                                base_healthchange: -6,
+                                base_healthchange: -60,
                                 range: 5.0,
                                 max_angle: 80.0,
                             }),
@@ -258,7 +258,7 @@ impl<'a> System<'a> for Sys {
                                 energy_cost: 0,
                                 buildup_duration: Duration::from_millis(800),
                                 recover_duration: Duration::from_millis(200),
-                                base_healthchange: -10,
+                                base_healthchange: -100,
                                 range: 3.5,
                                 max_angle: 60.0,
                             }),
diff --git a/tools/Cargo.toml b/tools/Cargo.toml
new file mode 100644
index 0000000000..4cde9d623f
--- /dev/null
+++ b/tools/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "tools"
+version = "0.1.0"
+authors = ["Sam <samuelkeiffer@gmail.com>"]
+edition = "2018"
+
+[dependencies]
+common = { package = "veloren-common", path = "../common" }
+csv = "1.1.3"
+structopt = "0.3.13"
\ No newline at end of file
diff --git a/tools/src/main.rs b/tools/src/main.rs
new file mode 100644
index 0000000000..d71ad426ef
--- /dev/null
+++ b/tools/src/main.rs
@@ -0,0 +1,165 @@
+use std::{
+    error::Error,
+    ffi::OsString,
+    path::{Component, PathBuf},
+};
+use structopt::StructOpt;
+
+use common::{assets, comp};
+use comp::item::{
+    armor::{ArmorKind, Protection},
+    tool::ToolKind,
+};
+
+#[derive(StructOpt)]
+struct Cli {
+    /// Available arguments: "armor_stats", "weapon_stats"
+    function: String,
+}
+
+fn armor_stats() -> Result<(), Box<dyn Error>> {
+    let mut wtr = csv::Writer::from_path("armorstats.csv")?;
+    wtr.write_record(&["Path", "Kind", "Name", "Protection"])?;
+
+    for folder in
+        assets::read_dir("common.items.armor").expect("Failed to iterate over armor folders!")
+    {
+        match folder {
+            Ok(folder) => {
+                let mut glob_folder = folder.path().display().to_string().replace("/", ".");
+                glob_folder.push_str(".*");
+
+                for file in std::fs::read_dir(folder.path())?.filter_map(|f| f.ok()) {
+                    let asset_identifier = &file
+                        .path()
+                        .components()
+                        .skip_while(|s| s != &Component::Normal(&OsString::from("common")))
+                        .inspect(|s| {
+                            dbg!(&s);
+                        })
+                        .collect::<PathBuf>()
+                        .with_extension("")
+                        .display()
+                        .to_string()
+                        .replace("/", ".");
+
+                    let asset = assets::load_expect_cloned::<comp::Item>(asset_identifier);
+
+                    match asset.kind {
+                        comp::item::ItemKind::Armor(armor) => {
+                            let protection = match armor.get_protection() {
+                                Protection::Invincible => "Invincible".to_string(),
+                                Protection::Normal(value) => value.to_string(),
+                            };
+                            let kind = match armor.kind {
+                                ArmorKind::Shoulder(_) => "Shoulder".to_string(),
+                                ArmorKind::Chest(_) => "Chest".to_string(),
+                                ArmorKind::Belt(_) => "Belt".to_string(),
+                                ArmorKind::Hand(_) => "Hand".to_string(),
+                                ArmorKind::Pants(_) => "Pants".to_string(),
+                                ArmorKind::Foot(_) => "Foot".to_string(),
+                                ArmorKind::Back(_) => "Back".to_string(),
+                                ArmorKind::Ring(_) => "Ring".to_string(),
+                                ArmorKind::Neck(_) => "Neck".to_string(),
+                                ArmorKind::Head(_) => "Head".to_string(),
+                                ArmorKind::Tabard(_) => "Tabard".to_string(),
+                            };
+
+                            wtr.write_record(&[
+                                asset_identifier,
+                                &kind,
+                                asset.name(),
+                                &protection,
+                            ])?;
+                        },
+                        // Skip non-armor
+                        _ => println!("Skipping non-armor item: {:?}", asset),
+                    }
+                }
+            },
+            Err(e) => println!("Skipping folder due to {}", e),
+        }
+    }
+
+    wtr.flush()?;
+    Ok(())
+}
+
+fn weapon_stats() -> Result<(), Box<dyn Error>> {
+    let mut wtr = csv::Writer::from_path("weaponstats.csv")?;
+    wtr.write_record(&["Path", "Kind", "Name", "Power", "Equip Time (ms)"])?;
+
+    for folder in
+        assets::read_dir("common.items.weapons").expect("Failed to iterate over weapon folders!")
+    {
+        match folder {
+            Ok(folder) => {
+                let mut glob_folder = folder.path().display().to_string().replace("/", ".");
+                glob_folder.push_str(".*");
+                for file in std::fs::read_dir(folder.path())?.filter_map(|f| f.ok()) {
+                    let asset_identifier = &file
+                        .path()
+                        .components()
+                        .skip_while(|s| s != &Component::Normal(&OsString::from("common")))
+                        .inspect(|s| {
+                            dbg!(&s);
+                        })
+                        .collect::<PathBuf>()
+                        .with_extension("")
+                        .display()
+                        .to_string()
+                        .replace("/", ".");
+                    let asset = assets::load_expect_cloned::<comp::Item>(asset_identifier);
+
+                    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();
+                            let kind = match tool.kind {
+                                ToolKind::Sword(_) => "Sword".to_string(),
+                                ToolKind::Axe(_) => "Axe".to_string(),
+                                ToolKind::Hammer(_) => "Hammer".to_string(),
+                                ToolKind::Bow(_) => "Bow".to_string(),
+                                ToolKind::Dagger(_) => "Dagger".to_string(),
+                                ToolKind::Staff(_) => "Staff".to_string(),
+                                ToolKind::Shield(_) => "Shield".to_string(),
+                                ToolKind::Debug(_) => "Debug".to_string(),
+                                ToolKind::Farming(_) => "Farming".to_string(),
+                                ToolKind::Empty => "Empty".to_string(),
+                            };
+
+                            wtr.write_record(&[
+                                asset_identifier,
+                                &kind,
+                                asset.name(),
+                                &power,
+                                &equip_time,
+                            ])?;
+                        },
+                        // Skip non-armor
+                        _ => println!("Skipping non-weapon item: {:?}", asset),
+                    }
+                }
+            },
+            Err(e) => println!("Skipping folder due to {}", e),
+        }
+    }
+
+    wtr.flush()?;
+    Ok(())
+}
+
+fn main() {
+    let args = Cli::from_args();
+    if args.function.eq_ignore_ascii_case("armor_stats") {
+        if let Err(e) = armor_stats() {
+            println!("Error: {}", e)
+        }
+    } else if args.function.eq_ignore_ascii_case("weapon_stats") {
+        if let Err(e) = weapon_stats() {
+            println!("Error: {}", e)
+        }
+    } else {
+        println!("Invalid argument, available arguments:\n\"armor_stats\"\n\"weapon_stats\"")
+    }
+}
diff --git a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs
index 71fdc1097a..cd177dae6c 100644
--- a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs
+++ b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs
@@ -78,7 +78,7 @@ fn maps_basic_melee() {
         &CharacterState::BasicMelee(states::basic_melee::Data {
             buildup_duration: Duration::default(),
             recover_duration: Duration::default(),
-            base_healthchange: 1,
+            base_healthchange: 10,
             range: 1.0,
             max_angle: 1.0,
             exhausted: false,
diff --git a/voxygen/src/hud/hotbar.rs b/voxygen/src/hud/hotbar.rs
index ca5f842644..1b9653482c 100644
--- a/voxygen/src/hud/hotbar.rs
+++ b/voxygen/src/hud/hotbar.rs
@@ -76,13 +76,13 @@ impl State {
                 .map(|i| &i.item.kind)
                 .filter(|kind| {
                     use common::comp::item::{
-                        tool::{DebugKind, StaffKind, Tool, ToolKind},
+                        tool::{DebugKind, Tool, ToolKind},
                         ItemKind,
                     };
                     matches!(
                         kind,
                         ItemKind::Tool(Tool {
-                            kind: ToolKind::Staff(StaffKind::BasicStaff),
+                            kind: ToolKind::Staff(_),
                             ..
                         }) | ItemKind::Tool(Tool {
                             kind: ToolKind::Debug(DebugKind::Boost),
diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs
index 468abcdb4f..b8219a08d1 100644
--- a/voxygen/src/hud/mod.rs
+++ b/voxygen/src/hud/mod.rs
@@ -747,7 +747,8 @@ impl Hud {
                 .read_storage::<comp::Pos>()
                 .get(client.entity())
                 .map_or(Vec3::zero(), |pos| pos.0);
-
+            // SCT Output values are called hp_damage and floater.hp_change
+            // Numbers are currently divided by 10 and rounded
             if global_state.settings.gameplay.sct {
                 // Render Player SCT numbers
                 let mut player_sct_bg_id_walker = self.ids.player_sct_bgs.walk();
@@ -771,6 +772,8 @@ impl Hud {
                         // Calculate total change
                         // Ignores healing
                         let hp_damage = floaters.iter().fold(0, |acc, f| f.hp_change.min(0) + acc);
+                        // Divide by 10 to stay in the same dimension as the HP display
+                        let hp_dmg_rounded_abs = ((hp_damage + 5) / 10).abs();
                         let max_hp_frac = hp_damage.abs() as f32 / stats.health.maximum() as f32;
                         let timer = floaters
                             .last()
@@ -790,7 +793,7 @@ impl Hud {
                         // Timer sets text transparency
                         let hp_fade =
                             ((crate::ecs::sys::floater::MY_HP_SHOWTIME - timer) * 0.25) + 0.2;
-                        Text::new(&format!("{}", (hp_damage).abs()))
+                        Text::new(&format!("{}", hp_dmg_rounded_abs))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .color(if hp_damage < 0 {
@@ -800,7 +803,7 @@ impl Hud {
                             })
                             .mid_bottom_with_margin_on(ui_widgets.window, 297.0 + y)
                             .set(player_sct_bg_id, ui_widgets);
-                        Text::new(&format!("{}", (hp_damage).abs()))
+                        Text::new(&format!("{}", hp_dmg_rounded_abs))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .color(if hp_damage < 0 {
@@ -864,13 +867,13 @@ impl Hud {
                         let hp_fade = ((crate::ecs::sys::floater::MY_HP_SHOWTIME - floater.timer)
                             * 0.25)
                             + 0.2;
-                        Text::new(&format!("{}", (floater.hp_change).abs()))
+                        Text::new(&format!("{}", (floater.hp_change / 10).abs()))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .color(Color::Rgba(0.0, 0.0, 0.0, hp_fade))
                             .x_y(x, y - 3.0)
                             .set(player_sct_bg_id, ui_widgets);
-                        Text::new(&format!("{}", (floater.hp_change).abs()))
+                        Text::new(&format!("{}", (floater.hp_change / 10).abs()))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .color(if floater.hp_change < 0 {
@@ -1118,6 +1121,8 @@ impl Hud {
                                 acc
                             }
                         });
+                        // Divide by 10 to stay in the same dimension as the HP display
+                        let hp_dmg_rounded_abs = ((hp_damage + 5) / 10).abs();
                         let max_hp_frac = hp_damage.abs() as f32 / stats.health.maximum() as f32;
                         let timer = floaters
                             .last()
@@ -1140,14 +1145,14 @@ impl Hud {
                         // Timer sets text transparency
                         let fade = ((crate::ecs::sys::floater::HP_SHOWTIME - timer) * 0.25) + 0.2;
 
-                        Text::new(&format!("{}", (hp_damage).abs()))
+                        Text::new(&format!("{}", hp_dmg_rounded_abs))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .color(Color::Rgba(0.0, 0.0, 0.0, fade))
                             .x_y(0.0, y - 3.0)
                             .position_ingame(ingame_pos)
                             .set(sct_bg_id, ui_widgets);
-                        Text::new(&format!("{}", hp_damage.abs()))
+                        Text::new(&format!("{}", hp_dmg_rounded_abs))
                             .font_size(font_size)
                             .font_id(self.fonts.cyri.conrod_id)
                             .x_y(0.0, y)
@@ -1188,7 +1193,7 @@ impl Hud {
                                 * 0.25)
                                 + 0.2;
 
-                            Text::new(&format!("{}", (floater.hp_change).abs()))
+                            Text::new(&format!("{}", (floater.hp_change / 10).abs()))
                                 .font_size(font_size)
                                 .font_id(self.fonts.cyri.conrod_id)
                                 .color(if floater.hp_change < 0 {
@@ -1199,7 +1204,7 @@ impl Hud {
                                 .x_y(0.0, y - 3.0)
                                 .position_ingame(ingame_pos)
                                 .set(sct_bg_id, ui_widgets);
-                            Text::new(&format!("{}", (floater.hp_change).abs()))
+                            Text::new(&format!("{}", (floater.hp_change / 10).abs()))
                                 .font_size(font_size)
                                 .font_id(self.fonts.cyri.conrod_id)
                                 .x_y(0.0, y)
diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs
index 2e41c7a135..412131b3cd 100644
--- a/voxygen/src/hud/skillbar.rs
+++ b/voxygen/src/hud/skillbar.rs
@@ -1179,8 +1179,8 @@ impl<'a> Widget for Skillbar<'a> {
         if let BarNumbers::Values = bar_values {
             let hp_text = format!(
                 "{}/{}",
-                self.stats.health.current() as u32,
-                self.stats.health.maximum() as u32
+                (self.stats.health.current() / 10) as u32,
+                (self.stats.health.maximum() / 10) as u32
             );
             Text::new(&hp_text)
                 .mid_top_with_margin_on(state.ids.healthbar_bg, 6.0 * scale)
diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs
index 5b8c15cbb9..983053e345 100644
--- a/voxygen/src/hud/util.rs
+++ b/voxygen/src/hud/util.rs
@@ -1,5 +1,6 @@
 use common::comp::item::{
     armor::{Armor, ArmorKind, Protection},
+    tool::{Tool, ToolKind},
     Item, ItemKind,
 };
 use std::borrow::Cow;
@@ -20,7 +21,7 @@ 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 => {},
+        ItemKind::Tool(tool) => Cow::Owned(tool_desc(tool, item.description())),
         /*ItemKind::Consumable(kind, effect, ..) => {
             Cow::Owned(consumable_desc(consumable, item.description()))
         },*/
@@ -64,7 +65,37 @@ fn armor_desc(armor: Armor, desc: &str) -> String {
     }
 }
 // Weapon/Tool Description
+fn tool_desc(tool: Tool, desc: &str) -> String {
+    // TODO: localization
+    let kind = match tool.kind {
+        ToolKind::Sword(_) => "Sword",
+        ToolKind::Axe(_) => "Axe",
+        ToolKind::Hammer(_) => "Hammer",
+        ToolKind::Bow(_) => "Bow",
+        ToolKind::Dagger(_) => "Dagger",
+        ToolKind::Staff(_) => "Staff",
+        ToolKind::Shield(_) => "Shield",
+        ToolKind::Debug(_) => "Debug",
+        ToolKind::Farming(_) => "Farming Tool",
+        ToolKind::Empty => "Empty",
+    };
+    let power = tool.base_power();
 
+    if !desc.is_empty() {
+        format!(
+            "{}\n\nPower: {:0.1}\n\n{}\n\n<Right-Click to use>",
+            kind,
+            power * 10.0,
+            desc
+        )
+    } else {
+        format!(
+            "{}\n\nPower: {:0.1}\n\n<Right-Click to use>",
+            kind,
+            power * 10.0
+        )
+    }
+}
 // Consumable Description
 /*fn consumable_desc(consumable: Consumable, desc: &str) -> String {
     // TODO: localization