diff --git a/CHANGELOG.md b/CHANGELOG.md
index 881cbdb84f..14463b8eef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - Dance animation
 - Speech bubbles appear when nearby players talk
 - NPCs call for help when attacked
+- Eyebrows and shapes can now be selected
 
 ### Changed
 
diff --git a/assets/common/items/debug/boost.ron b/assets/common/items/debug/boost.ron
index 0bfb72722c..b9ae0408fb 100644
--- a/assets/common/items/debug/boost.ron
+++ b/assets/common/items/debug/boost.ron
@@ -1,6 +1,6 @@
 Item(
-    name: "Weightless Rod",
-    description: "The sky is the limit.",
+    name: "Belzeshrub the Broom-God",
+    description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...",
     kind: Tool(
         (
             kind: Debug(Boost),
diff --git a/assets/common/items/debug/possess.ron b/assets/common/items/debug/possess.ron
index 37c6df5d8a..b9ae0408fb 100644
--- a/assets/common/items/debug/possess.ron
+++ b/assets/common/items/debug/possess.ron
@@ -1,11 +1,11 @@
 Item(
-    name: "Rod of Possession",
-    description: "It's fixed on my branch.",
+    name: "Belzeshrub the Broom-God",
+    description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...",
     kind: Tool(
         (
-            kind: Debug(Possess),
+            kind: Debug(Boost),
             equip_time_millis: 0,            
         )
     ),
 )
-// ... as zesterer always uses to tell us.
+// And the ground is pretty hard at maximum velocity...
diff --git a/assets/common/items/weapons/greatsword_2h_dam-0.ron b/assets/common/items/weapons/greatsword_2h_dam-0.ron
new file mode 100644
index 0000000000..62e4a0826c
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_dam-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Greatsword",
+    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordDam0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_dam-1.ron b/assets/common/items/weapons/greatsword_2h_dam-1.ron
new file mode 100644
index 0000000000..6eda562d23
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_dam-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Greatsword",
+    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordDam1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_dam-2.ron b/assets/common/items/weapons/greatsword_2h_dam-2.ron
new file mode 100644
index 0000000000..a18b0ca92c
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_dam-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Greatsword",
+    description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordDam2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_fine-0.ron b/assets/common/items/weapons/greatsword_2h_fine-0.ron
new file mode 100644
index 0000000000..ffc620be41
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_fine-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Greatsword",
+    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordFine0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_fine-1.ron b/assets/common/items/weapons/greatsword_2h_fine-1.ron
new file mode 100644
index 0000000000..6cc55512cc
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_fine-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Greatsword",
+    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordFine1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_fine-2.ron b/assets/common/items/weapons/greatsword_2h_fine-2.ron
new file mode 100644
index 0000000000..660a61580c
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_fine-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Greatsword",
+    description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordFine2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_orn-0.ron b/assets/common/items/weapons/greatsword_2h_orn-0.ron
new file mode 100644
index 0000000000..8cb721b52e
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_orn-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Greatsword",
+    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordOrn0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_orn-1.ron b/assets/common/items/weapons/greatsword_2h_orn-1.ron
new file mode 100644
index 0000000000..3f8818f308
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_orn-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Greatsword",
+    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordOrn1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_orn-2.ron b/assets/common/items/weapons/greatsword_2h_orn-2.ron
new file mode 100644
index 0000000000..bab5a60f9a
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_orn-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Greatsword",
+    description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordOrn2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_simple-0.ron b/assets/common/items/weapons/greatsword_2h_simple-0.ron
new file mode 100644
index 0000000000..c757d1d3d4
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_simple-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Greatsword",
+    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordSimple0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_simple-1.ron b/assets/common/items/weapons/greatsword_2h_simple-1.ron
new file mode 100644
index 0000000000..4dedbb496e
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_simple-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Greatsword",
+    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordSimple1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/greatsword_2h_simple-2.ron b/assets/common/items/weapons/greatsword_2h_simple-2.ron
new file mode 100644
index 0000000000..4c72bc3cbf
--- /dev/null
+++ b/assets/common/items/weapons/greatsword_2h_simple-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Greatsword",
+    description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(GreatswordSimple2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-0.ron b/assets/common/items/weapons/long_2h_dam-0.ron
new file mode 100644
index 0000000000..20174e74c7
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-1.ron b/assets/common/items/weapons/long_2h_dam-1.ron
new file mode 100644
index 0000000000..01a01ca543
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-2.ron b/assets/common/items/weapons/long_2h_dam-2.ron
new file mode 100644
index 0000000000..afd1dedebb
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-3.ron b/assets/common/items/weapons/long_2h_dam-3.ron
new file mode 100644
index 0000000000..ba0857975b
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-3.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam3),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-4.ron b/assets/common/items/weapons/long_2h_dam-4.ron
new file mode 100644
index 0000000000..118a4a2a4f
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-4.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam4),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_dam-5.ron b/assets/common/items/weapons/long_2h_dam-5.ron
new file mode 100644
index 0000000000..a5b1eb35eb
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_dam-5.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Damaged Longsword",
+    description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongDam5),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-0.ron b/assets/common/items/weapons/long_2h_fine-0.ron
new file mode 100644
index 0000000000..62a08d3ca1
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-1.ron b/assets/common/items/weapons/long_2h_fine-1.ron
new file mode 100644
index 0000000000..37e45ab9f4
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-2.ron b/assets/common/items/weapons/long_2h_fine-2.ron
new file mode 100644
index 0000000000..463712a64f
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-3.ron b/assets/common/items/weapons/long_2h_fine-3.ron
new file mode 100644
index 0000000000..457993ae29
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-3.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine3),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-4.ron b/assets/common/items/weapons/long_2h_fine-4.ron
new file mode 100644
index 0000000000..d1ea6cd56d
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-4.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine4),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_fine-5.ron b/assets/common/items/weapons/long_2h_fine-5.ron
new file mode 100644
index 0000000000..f2e1a4a8b2
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_fine-5.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Fine Longsword",
+    description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongFine5),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-0.ron b/assets/common/items/weapons/long_2h_orn-0.ron
new file mode 100644
index 0000000000..ee2d8007b0
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-1.ron b/assets/common/items/weapons/long_2h_orn-1.ron
new file mode 100644
index 0000000000..49bb90e103
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-2.ron b/assets/common/items/weapons/long_2h_orn-2.ron
new file mode 100644
index 0000000000..3814a1f31c
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-3.ron b/assets/common/items/weapons/long_2h_orn-3.ron
new file mode 100644
index 0000000000..b43ecddb7b
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-3.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn3),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-4.ron b/assets/common/items/weapons/long_2h_orn-4.ron
new file mode 100644
index 0000000000..357d9433bd
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-4.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn4),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_orn-5.ron b/assets/common/items/weapons/long_2h_orn-5.ron
new file mode 100644
index 0000000000..4edfb6f01c
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_orn-5.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Ornimented Longsword",
+    description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongOrn5),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-0.ron b/assets/common/items/weapons/long_2h_simple-0.ron
new file mode 100644
index 0000000000..b2ad9a59d0
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-0.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple0),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-1.ron b/assets/common/items/weapons/long_2h_simple-1.ron
new file mode 100644
index 0000000000..e4eb4b123c
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-1.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple1),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-2.ron b/assets/common/items/weapons/long_2h_simple-2.ron
new file mode 100644
index 0000000000..9aa2ab80a7
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-2.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple2),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-3.ron b/assets/common/items/weapons/long_2h_simple-3.ron
new file mode 100644
index 0000000000..9ee608f6f0
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-3.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple3),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-4.ron b/assets/common/items/weapons/long_2h_simple-4.ron
new file mode 100644
index 0000000000..e92bed29e9
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-4.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple4),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/common/items/weapons/long_2h_simple-5.ron b/assets/common/items/weapons/long_2h_simple-5.ron
new file mode 100644
index 0000000000..59f6a199b4
--- /dev/null
+++ b/assets/common/items/weapons/long_2h_simple-5.ron
@@ -0,0 +1,10 @@
+Item(
+    name: "Simple Longsword",
+    description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n<Right-Click to use>",
+    kind: Tool(
+       (
+            kind: Sword(LongSimple5),    
+            equip_time_millis: 500,
+        )
+    ),
+)
diff --git a/assets/voxygen/audio/ambient/forest_day.ogg b/assets/voxygen/audio/ambient/forest_day.ogg
new file mode 100644
index 0000000000..60e86c7b7c
Binary files /dev/null and b/assets/voxygen/audio/ambient/forest_day.ogg differ
diff --git a/assets/voxygen/audio/ambient/forest_morning.ogg b/assets/voxygen/audio/ambient/forest_morning.ogg
new file mode 100644
index 0000000000..138ac44057
Binary files /dev/null and b/assets/voxygen/audio/ambient/forest_morning.ogg differ
diff --git a/assets/voxygen/audio/soundtrack.ron b/assets/voxygen/audio/soundtrack.ron
index c6288b3af2..07f57316bf 100644
--- a/assets/voxygen/audio/soundtrack.ron
+++ b/assets/voxygen/audio/soundtrack.ron
@@ -1,7 +1,15 @@
 // TODO: Re-add tunes that are not fitting general outside day/night situations
+// TODO: Add an ambient-soundtrack that runs independently from the musical soundtrack
 
 (
     tracks: [
+        (
+            title: "Forest Day", // Ambience Track
+            path: "voxygen.audio.ambient.forest_day",
+            length: 629.0,
+            timing: Some(Day),
+            artist: "https://www.youtube.com/watch?v=FwVTkB-BIvM",
+        ),        
         (
             title: "Into The Dark Forest",
             path: "voxygen.audio.soundtrack.into_the_dark_forest",
@@ -93,5 +101,12 @@
             timing: Some(Night),
             artist: "badbbad",
         ),
+        (
+            title: "Forest Morning", // Ambience Track
+            path: "voxygen.audio.ambient.forest_morning",
+            length: 600.0,
+            timing: Some(Day),
+            artist: "https://www.youtube.com/watch?v=eq4nfIdK6C4",
+        ),
     ]
 )
\ No newline at end of file
diff --git a/assets/voxygen/element/frames/bubble_dark/bottom.png b/assets/voxygen/element/frames/bubble_dark/bottom.png
index 8add83cd04..68c0a49edc 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/bottom.png and b/assets/voxygen/element/frames/bubble_dark/bottom.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/bottom_left.png b/assets/voxygen/element/frames/bubble_dark/bottom_left.png
index 505b93ee35..6483d11ce6 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/bottom_left.png and b/assets/voxygen/element/frames/bubble_dark/bottom_left.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/bottom_right.png b/assets/voxygen/element/frames/bubble_dark/bottom_right.png
index e1ca9c56f7..3977836900 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/bottom_right.png and b/assets/voxygen/element/frames/bubble_dark/bottom_right.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/left.png b/assets/voxygen/element/frames/bubble_dark/left.png
index 171ab0e814..0c7aa27116 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/left.png and b/assets/voxygen/element/frames/bubble_dark/left.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/mid.png b/assets/voxygen/element/frames/bubble_dark/mid.png
index b17ac09bda..b855401557 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/mid.png and b/assets/voxygen/element/frames/bubble_dark/mid.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/right.png b/assets/voxygen/element/frames/bubble_dark/right.png
index 8c975f6904..3fa8f6d8af 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/right.png and b/assets/voxygen/element/frames/bubble_dark/right.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/tail.png b/assets/voxygen/element/frames/bubble_dark/tail.png
index a9a9f4e478..397f0c05e7 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/tail.png and b/assets/voxygen/element/frames/bubble_dark/tail.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/top.png b/assets/voxygen/element/frames/bubble_dark/top.png
index afe8249bcb..f576069569 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/top.png and b/assets/voxygen/element/frames/bubble_dark/top.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/top_left.png b/assets/voxygen/element/frames/bubble_dark/top_left.png
index ab289c2329..cbbfdbb15a 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/top_left.png and b/assets/voxygen/element/frames/bubble_dark/top_left.png differ
diff --git a/assets/voxygen/element/frames/bubble_dark/top_right.png b/assets/voxygen/element/frames/bubble_dark/top_right.png
index d59b54308a..e7176a9fb0 100644
Binary files a/assets/voxygen/element/frames/bubble_dark/top_right.png and b/assets/voxygen/element/frames/bubble_dark/top_right.png differ
diff --git a/assets/voxygen/element/icons/fire_spell_0.png b/assets/voxygen/element/icons/fire_spell_0.png
index 8990c27024..d309dc6bc4 100644
Binary files a/assets/voxygen/element/icons/fire_spell_0.png and b/assets/voxygen/element/icons/fire_spell_0.png differ
diff --git a/assets/voxygen/element/icons/m1.png b/assets/voxygen/element/icons/m1.png
new file mode 100644
index 0000000000..774ae38bc5
Binary files /dev/null and b/assets/voxygen/element/icons/m1.png differ
diff --git a/assets/voxygen/element/icons/m2.png b/assets/voxygen/element/icons/m2.png
new file mode 100644
index 0000000000..aeb57b3d46
Binary files /dev/null and b/assets/voxygen/element/icons/m2.png differ
diff --git a/assets/voxygen/element/icons/snake.png b/assets/voxygen/element/icons/snake.png
new file mode 100644
index 0000000000..2a73426752
Binary files /dev/null and b/assets/voxygen/element/icons/snake.png differ
diff --git a/assets/voxygen/element/icons/snake_arrow.png b/assets/voxygen/element/icons/snake_arrow.png
new file mode 100644
index 0000000000..e506f38f98
Binary files /dev/null and b/assets/voxygen/element/icons/snake_arrow.png differ
diff --git a/assets/voxygen/i18n/de_DE.ron b/assets/voxygen/i18n/de_DE.ron
index 630a118ef3..61c2979f4c 100644
--- a/assets/voxygen/i18n/de_DE.ron
+++ b/assets/voxygen/i18n/de_DE.ron
@@ -74,12 +74,12 @@ VoxygenLocalization(
         "common.connection_lost": r#"Verbindung unterbrochen."#,
 
 
-        "common.races.orc": "Orc",
-        "common.races.human": "Mensch",
-        "common.races.dwarf": "Zwerg",
-        "common.races.elf": "Elf",
-        "common.races.undead": "Untoter",
-        "common.races.danari": "Danari",
+        "common.species.orc": "Orc",
+        "common.species.human": "Mensch",
+        "common.species.dwarf": "Zwerg",
+        "common.species.elf": "Elf",
+        "common.species.undead": "Untoter",
+        "common.species.danari": "Danari",
 
         "common.weapons.axe": "Axt",
         "common.weapons.sword": "Schwert",
@@ -240,6 +240,7 @@ Viel Spaß in der Welt von Veloren, Abenteurer!"#,
         "hud.settings.cumulated_damage": "Addierter Schaden",
         "hud.settings.incoming_damage": "Erlittener Schaden",
         "hud.settings.cumulated_incoming_damage": "Addierter erlittener Schaden",
+        "hud.settings.speech_bubble_dark_mode": "Dunkle Sprechblasen",
         "hud.settings.energybar_numbers": "Zahlen auf Ressourcenanzeige",
         "hud.settings.values": "Werte",
         "hud.settings.percentages": "Prozent",
@@ -360,7 +361,7 @@ Viel Spaß in der Welt von Veloren, Abenteurer!"#,
         "char_selection.chest_color": "Brustrüstung",
         "char_selection.eye_color": "Augenfarbe",
         "char_selection.skin": "Hautton",
-        "char_selection.eyebrows": "Augenbrauen",
+        "char_selection.eyeshape": "Augen Details",
         "char_selection.accessories": "Accessoires",
         "char_selection.create_info_name": "Euer Charakter braucht einen Namen!",
         /// End chracter selection section
@@ -386,5 +387,8 @@ Willenskraft
     },
 
     vector_map: {
+        "npc.speech.villager_under_attack": [
+            "Hilfe, ich werde angegriffen!",            
+            ],
     }
-)
+)
\ No newline at end of file
diff --git a/assets/voxygen/i18n/en.ron b/assets/voxygen/i18n/en.ron
index 0cea650ed6..50feee86d7 100644
--- a/assets/voxygen/i18n/en.ron
+++ b/assets/voxygen/i18n/en.ron
@@ -77,12 +77,12 @@ Did the server restart?
 Is the client up to date?"#,
 
 
-        "common.races.orc": "Orc",
-        "common.races.human": "Human",
-        "common.races.dwarf": "Dwarf",
-        "common.races.elf": "Elf",
-        "common.races.undead": "Undead",
-        "common.races.danari": "Danari",
+        "common.species.orc": "Orc",
+        "common.species.human": "Human",
+        "common.species.dwarf": "Dwarf",
+        "common.species.elf": "Elf",
+        "common.species.undead": "Undead",
+        "common.species.danari": "Danari",
 
         "common.weapons.axe": "Axe",
         "common.weapons.sword": "Sword",
@@ -356,11 +356,10 @@ Enjoy your stay in the World of Veloren."#,
         "char_selection.plains_of_uncertainty": "Plains of Uncertainty",
         "char_selection.beard": "Beard",
         "char_selection.hair_style": "Hair Style",
-        "char_selection.hair_color": "Hair Color",
-        "char_selection.chest_color": "Chest color",
-        "char_selection.eye_color": "Eye color",
+        "char_selection.hair_color": "Hair Color",        
+        "char_selection.eye_color": "Eye Color",
         "char_selection.skin": "Skin",
-        "char_selection.eyebrows": "Eyebrows",
+        "char_selection.eyeshape": "Eye Details",
         "char_selection.accessories": "Accessories",
         "char_selection.create_info_name": "Your Character needs a name!",
 
@@ -422,6 +421,7 @@ Willpower
             "They're coming for me!",
             "Help! Help! I'm being repressed",
             "Ah, now we see the violence inherent in the system.",
+            "Tis but a scratch!"
         ],
     }
 )
diff --git a/assets/voxygen/i18n/fr_FR.ron b/assets/voxygen/i18n/fr_FR.ron
index 89a2685dd4..c8490a09c5 100644
--- a/assets/voxygen/i18n/fr_FR.ron
+++ b/assets/voxygen/i18n/fr_FR.ron
@@ -52,12 +52,12 @@ VoxygenLocalization(
         "common.cancel": "Annuler",
         "common.none": "Aucun",
 
-        "common.races.orc": "Orc",
-        "common.races.human": "Humain",
-        "common.races.dwarf": "Nain",
-        "common.races.elf": "Elfe",
-        "common.races.undead": "Mort vivant",
-        "common.races.danari": "Danari",
+        "common.species.orc": "Orc",
+        "common.species.human": "Humain",
+        "common.species.dwarf": "Nain",
+        "common.species.elf": "Elfe",
+        "common.species.undead": "Mort vivant",
+        "common.species.danari": "Danari",
 
         "common.weapons.axe": "Hâche",
         "common.weapons.sword": "Épée",
diff --git a/assets/voxygen/i18n/it_IT.ron b/assets/voxygen/i18n/it_IT.ron
index 5a14c15a9b..95e98e2841 100644
--- a/assets/voxygen/i18n/it_IT.ron
+++ b/assets/voxygen/i18n/it_IT.ron
@@ -87,12 +87,12 @@ Il client è aggiornato?"#,
 
 
 
-                "common.races.orc": "Orco",
-                "common.races.human": "Umano",
-                "common.races.dwarf": "Nano",
-                "common.races.elf": "Elfo",
-                "common.races.undead": "Non-Morto",
-                "common.races.danari": "Danari",
+                "common.species.orc": "Orco",
+                "common.species.human": "Umano",
+                "common.species.dwarf": "Nano",
+                "common.species.elf": "Elfo",
+                "common.species.undead": "Non-Morto",
+                "common.species.danari": "Danari",
 
 
 
diff --git a/assets/voxygen/i18n/pt_PT.ron b/assets/voxygen/i18n/pt_PT.ron
index c4832499a9..119e4f0d94 100644
--- a/assets/voxygen/i18n/pt_PT.ron
+++ b/assets/voxygen/i18n/pt_PT.ron
@@ -63,12 +63,12 @@ Será que o server reiniciou?
 O cliente está atualizado?"#,
 
 
-        "common.races.orc": "Ogre",
-        "common.races.human": "Humano",
-        "common.races.dwarf": "Anão",
-        "common.races.elf": "Elfo",
-        "common.races.undead": "Morto-vivo",
-        "common.races.danari": "Danari",
+        "common.species.orc": "Ogre",
+        "common.species.human": "Humano",
+        "common.species.dwarf": "Anão",
+        "common.species.elf": "Elfo",
+        "common.species.undead": "Morto-vivo",
+        "common.species.danari": "Danari",
 
         "common.weapons.axe": "Machado",
         "common.weapons.sword": "Espada",
diff --git a/assets/voxygen/i18n/ru_RU.ron b/assets/voxygen/i18n/ru_RU.ron
index da55da407b..c82531a5fa 100644
--- a/assets/voxygen/i18n/ru_RU.ron
+++ b/assets/voxygen/i18n/ru_RU.ron
@@ -63,12 +63,12 @@ VoxygenLocalization(
 Клиент обновлен до последней версии?"#,
 
 
-        "common.races.orc": "Орк",
-        "common.races.human": "Человек",
-        "common.races.dwarf": "Дварф",
-        "common.races.elf": "Эльф",
-        "common.races.undead": "Нежить",
-        "common.races.danari": "Данари",
+        "common.species.orc": "Орк",
+        "common.species.human": "Человек",
+        "common.species.dwarf": "Дварф",
+        "common.species.elf": "Эльф",
+        "common.species.undead": "Нежить",
+        "common.species.danari": "Данари",
 
         "common.weapons.axe": "Топор",
         "common.weapons.sword": "Меч",
diff --git a/assets/voxygen/i18n/tr_TR.ron b/assets/voxygen/i18n/tr_TR.ron
index 2f88227ad9..54315e410d 100644
--- a/assets/voxygen/i18n/tr_TR.ron
+++ b/assets/voxygen/i18n/tr_TR.ron
@@ -75,12 +75,12 @@ Sunucu yeniden mi başladı?
 İstemci güncel mi?"#,
 
 
-        "common.races.orc": "Ork",
-        "common.races.human": "İnsan",
-        "common.races.dwarf": "Cüce",
-        "common.races.elf": "Elf",
-        "common.races.undead": "Hortlak",
-        "common.races.danari": "Danari",
+        "common.species.orc": "Ork",
+        "common.species.human": "İnsan",
+        "common.species.dwarf": "Cüce",
+        "common.species.elf": "Elf",
+        "common.species.undead": "Hortlak",
+        "common.species.danari": "Danari",
 
         "common.weapons.axe": "Balta",
         "common.weapons.sword": "Kılıç",
diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron
index f7e62845d2..5c37fb24a5 100644
--- a/assets/voxygen/item_image_manifest.ron
+++ b/assets/voxygen/item_image_manifest.ron
@@ -30,6 +30,154 @@
         "voxel.weapon.sword.wood_2h",
         (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3,
     ),
+    Tool(Sword(LongFine3)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-3",
+        (0.0, 9.0, 0.0), (-90.0, 90.0, 0.0), 2.4,
+    ),
+    Tool(Sword(GreatswordDam0)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_dam-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordDam1)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_dam-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordDam2)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_dam-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordSimple0)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_simple-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordSimple1)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_simple-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordSimple2)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_simple-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordOrn0)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_orn-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordOrn1)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_orn-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordOrn2)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_orn-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordFine0)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_fine-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordFine1)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_fine-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(GreatswordFine2)): VoxTrans(
+        "voxel.weapon.sword.greatsword_2h_fine-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam0)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam1)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam2)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam3)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-3",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam4)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-4",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongDam5)): VoxTrans(
+        "voxel.weapon.sword.long_2h_dam-5",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple0)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple1)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple2)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple3)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-3",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple4)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-4",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongSimple5)): VoxTrans(
+        "voxel.weapon.sword.long_2h_simple-5",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn0)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn1)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn2)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn3)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-3",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn4)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-4",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongOrn5)): VoxTrans(
+        "voxel.weapon.sword.long_2h_orn-5",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine0)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-0",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine1)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-1",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine2)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-2",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine3)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-3",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine4)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-4",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
+    Tool(Sword(LongFine5)): VoxTrans(
+        "voxel.weapon.sword.long_2h_fine-5",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5,
+    ),
     // Axes
     Tool(Axe(BasicAxe)): VoxTrans(
         "voxel.weapon.axe.rusty_2h",
@@ -500,11 +648,7 @@
     ),
     // Debug Items
     Tool(Debug(Boost)): VoxTrans(
-        "voxel.weapon.debug_wand-0",
-        (0.0, -7.0, 0.0), (90.0, 90.0, 0.0), 1.6,
-    ),
-    Tool(Debug(Possess)): VoxTrans(
-        "voxel.weapon.debug_wand-1",
-        (0.0, -7.0, 0.0), (90.0, 90.0, 0.0), 1.6,
-    ),
+        "voxel.weapon.tool.broom_belzeshrub_purple",
+        (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1,
+    ),    
 })
diff --git a/assets/voxygen/voxel/armor/pants/cultist.vox b/assets/voxygen/voxel/armor/pants/cultist.vox
index b978c35129..85bc57c427 100644
Binary files a/assets/voxygen/voxel/armor/pants/cultist.vox and b/assets/voxygen/voxel/armor/pants/cultist.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/dwarf/female-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox
similarity index 79%
rename from assets/voxygen/voxel/figure/eyes/dwarf/female-0.vox
rename to assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox
index f9629af515..0b808e342c 100644
Binary files a/assets/voxygen/voxel/figure/eyes/dwarf/female-0.vox and b/assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox
new file mode 100644
index 0000000000..1d5449bef1
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/danari/female-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_default-0.vox
similarity index 85%
rename from assets/voxygen/voxel/figure/eyes/danari/female-0.vox
rename to assets/voxygen/voxel/figure/eyes/general/female_default-0.vox
index 3b8a42b55e..9e6672677a 100644
Binary files a/assets/voxygen/voxel/figure/eyes/danari/female-0.vox and b/assets/voxygen/voxel/figure/eyes/general/female_default-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox
new file mode 100644
index 0000000000..e3d7a58043
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox
new file mode 100644
index 0000000000..0c3a90434f
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/elf/female-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox
similarity index 79%
rename from assets/voxygen/voxel/figure/eyes/elf/female-0.vox
rename to assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox
index ae09992c51..8676104d99 100644
Binary files a/assets/voxygen/voxel/figure/eyes/elf/female-0.vox and b/assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox
new file mode 100644
index 0000000000..09a07845e3
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox
new file mode 100644
index 0000000000..e4d201c85f
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/danari/male-1.vox b/assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox
similarity index 79%
rename from assets/voxygen/voxel/figure/eyes/danari/male-1.vox
rename to assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox
index 950a93bd88..b6c0794b67 100644
Binary files a/assets/voxygen/voxel/figure/eyes/danari/male-1.vox and b/assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/danari/male-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox
similarity index 100%
rename from assets/voxygen/voxel/figure/eyes/danari/male-0.vox
rename to assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox
diff --git a/assets/voxygen/voxel/figure/eyes/dwarf/male-1.vox b/assets/voxygen/voxel/figure/eyes/general/male_default-0.vox
similarity index 72%
rename from assets/voxygen/voxel/figure/eyes/dwarf/male-1.vox
rename to assets/voxygen/voxel/figure/eyes/general/male_default-0.vox
index f9ddf9e2d2..4ee582cc97 100644
Binary files a/assets/voxygen/voxel/figure/eyes/dwarf/male-1.vox and b/assets/voxygen/voxel/figure/eyes/general/male_default-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/dwarf/male-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox
similarity index 70%
rename from assets/voxygen/voxel/figure/eyes/dwarf/male-0.vox
rename to assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox
index 27d06238bf..19e9f90aef 100644
Binary files a/assets/voxygen/voxel/figure/eyes/dwarf/male-0.vox and b/assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox
new file mode 100644
index 0000000000..928ff5a8a3
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/human/male-0.vox b/assets/voxygen/voxel/figure/eyes/human/male-0.vox
index 950a93bd88..b6c0794b67 100644
Binary files a/assets/voxygen/voxel/figure/eyes/human/male-0.vox and b/assets/voxygen/voxel/figure/eyes/human/male-0.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/orc/female-0.vox b/assets/voxygen/voxel/figure/eyes/orc/male-1.vox
similarity index 70%
rename from assets/voxygen/voxel/figure/eyes/orc/female-0.vox
rename to assets/voxygen/voxel/figure/eyes/orc/male-1.vox
index 61b522637b..efb6488752 100644
Binary files a/assets/voxygen/voxel/figure/eyes/orc/female-0.vox and b/assets/voxygen/voxel/figure/eyes/orc/male-1.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/undead/female-1.vox b/assets/voxygen/voxel/figure/eyes/undead/female-1.vox
new file mode 100644
index 0000000000..c29cd45413
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/undead/female-1.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/undead/female-2.vox b/assets/voxygen/voxel/figure/eyes/undead/female-2.vox
new file mode 100644
index 0000000000..c9d78637da
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/undead/female-2.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-1.vox b/assets/voxygen/voxel/figure/eyes/undead/male-1.vox
new file mode 100644
index 0000000000..536e54608b
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/undead/male-1.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-2.vox b/assets/voxygen/voxel/figure/eyes/undead/male-2.vox
new file mode 100644
index 0000000000..dc00739b11
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/undead/male-2.vox differ
diff --git a/assets/voxygen/voxel/figure/eyes/undead/male-3.vox b/assets/voxygen/voxel/figure/eyes/undead/male-3.vox
new file mode 100644
index 0000000000..2eb910e098
Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/undead/male-3.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/danari/female-2.vox b/assets/voxygen/voxel/figure/hair/danari/female-2.vox
new file mode 100644
index 0000000000..da7016bc77
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-2.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/danari/female-3.vox b/assets/voxygen/voxel/figure/hair/danari/female-3.vox
new file mode 100644
index 0000000000..c532cee954
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-3.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/danari/male-2.vox b/assets/voxygen/voxel/figure/hair/danari/male-2.vox
new file mode 100644
index 0000000000..17c20c4e21
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-2.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/danari/male-3.vox b/assets/voxygen/voxel/figure/hair/danari/male-3.vox
new file mode 100644
index 0000000000..8303b34762
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-3.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox
new file mode 100644
index 0000000000..001f3c4c27
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox
new file mode 100644
index 0000000000..39f673b52a
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox
new file mode 100644
index 0000000000..1c3b61c013
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox
new file mode 100644
index 0000000000..2b95921957
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox
new file mode 100644
index 0000000000..5ea34c1fa1
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/human/male-18.vox b/assets/voxygen/voxel/figure/hair/human/male-18.vox
index 43b64821a1..d12c720dfa 100644
Binary files a/assets/voxygen/voxel/figure/hair/human/male-18.vox and b/assets/voxygen/voxel/figure/hair/human/male-18.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/undead/female-4.vox b/assets/voxygen/voxel/figure/hair/undead/female-4.vox
new file mode 100644
index 0000000000..a0e57c7e28
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/undead/female-4.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/undead/female-5.vox b/assets/voxygen/voxel/figure/hair/undead/female-5.vox
new file mode 100644
index 0000000000..231893f479
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/undead/female-5.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/undead/male-2.vox b/assets/voxygen/voxel/figure/hair/undead/male-2.vox
new file mode 100644
index 0000000000..46a4f6dfd8
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/undead/male-2.vox differ
diff --git a/assets/voxygen/voxel/figure/hair/undead/male-3.vox b/assets/voxygen/voxel/figure/hair/undead/male-3.vox
new file mode 100644
index 0000000000..2a5680a78c
Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/undead/male-3.vox differ
diff --git a/assets/voxygen/voxel/figure/head/danari/male.vox b/assets/voxygen/voxel/figure/head/danari/male.vox
index 9af4633998..5aa37fcb22 100644
Binary files a/assets/voxygen/voxel/figure/head/danari/male.vox and b/assets/voxygen/voxel/figure/head/danari/male.vox differ
diff --git a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron
index cd9d11b7fd..b17c8672b3 100644
--- a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron
+++ b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron
@@ -53,11 +53,11 @@
         ),
         Plate0: (
             left: (
-                vox_spec: ("armor.shoulder.plate_right-0", (-3.6, -3.5, 1.0)),
+                vox_spec: ("armor.shoulder.plate_right-0", (-3.6, -3.5, -0.0)),
                 color: None
             ),
             right: (
-                vox_spec: ("armor.shoulder.plate_right-0", (-2.6, -3.5, 1.0)),
+                vox_spec: ("armor.shoulder.plate_right-0", (-2.6, -3.5, 0.0)),
                 color: None
             )
         ),
diff --git a/assets/voxygen/voxel/humanoid_head_manifest.ron b/assets/voxygen/voxel/humanoid_head_manifest.ron
index 483a191315..95abf4652a 100644
--- a/assets/voxygen/voxel/humanoid_head_manifest.ron
+++ b/assets/voxygen/voxel/humanoid_head_manifest.ron
@@ -2,7 +2,15 @@
     (Human, Male): (
         offset: (-7.0, -4.0, -6.0),
         head: ("figure.head.human.male", (0, 2, 0)),
-        eyes: ("figure.eyes.human.male-0", (3, 9, 2)),
+        eyes: [
+            Some(("figure.eyes.general.male_default-0", (3, 9, 2))), 
+            Some(("figure.eyes.general.male_brow_col-0", (3, 9, 2))),            
+            Some(("figure.eyes.general.male_bushy-0", (3, 9, 2))),
+            Some(("figure.eyes.general.male_as_hair-0", (3, 9, 2))),
+            Some(("figure.eyes.general.male_heterochromia-0", (3, 9, 2))), 
+            Some(("figure.eyes.general.male_scar-0", (3, 9, 2))), 
+            Some(("figure.eyes.general.male_blind-0", (3, 9, 2))),                      
+            ],
         hair: [
             Some(("figure.hair.human.male-0", (1, 1, 1))),
             Some(("figure.hair.human.male-1", (1, 1, 1))),
@@ -38,7 +46,14 @@
     (Human, Female): (
         offset: (-7.0, -4.0, -6.0),
         head: ("figure.head.human.female", (0, 3, 0)),
-        eyes: ("figure.eyes.human.female-0", (2, 10, 2)),
+        eyes: [
+            Some(("figure.eyes.general.female_default-0", (2, 10, 2))), 
+            Some(("figure.eyes.general.female_styled-0", (2, 10, 2))),  
+            Some(("figure.eyes.general.female_as_hair-0", (2, 10, 2))), 
+            Some(("figure.eyes.general.female_heterochromia-0", (2, 10, 2))),  
+            Some(("figure.eyes.general.female_scar-0", (2, 10, 2))),  
+            Some(("figure.eyes.general.female_blind-0", (2, 10, 2))),                          
+            ],
         hair: [
             Some(("figure.hair.human.female-0", (-1, -1, 0))),	
             Some(("figure.hair.human.female-1", (1, 2, -1))),
@@ -68,7 +83,10 @@
     (Orc, Male): (
         offset: (-8.0, -5.0, -6.75),
         head: ("figure.head.orc.male", (0, 3, 0)),
-        eyes: ("figure.eyes.orc.male-0", (5, 10, 6)),
+        eyes: [
+            Some(("figure.eyes.orc.male-0", (5, 10, 6))), 
+            Some(("figure.eyes.orc.male-1", (5, 10, 5))),                           
+            ],
         hair: [
             Some(("figure.hair.dwarf.bald", (0, 3, -1))),
             Some(("figure.hair.orc.male-0", (4, 2, 0))),
@@ -95,7 +113,14 @@
     (Orc, Female): (
         offset: (-8.0, -2.5, -6.0),
         head: ("figure.head.orc.female", (0, 1, 0)),
-        eyes: ("figure.eyes.orc.female-0", (3, 8, 2)),
+         eyes: [
+            Some(("figure.eyes.general.female_default-0", (3, 8, 2))),  
+            Some(("figure.eyes.general.female_styled-0", (3, 8, 2))),   
+            Some(("figure.eyes.general.female_as_hair-0", (3, 8, 2))),
+            Some(("figure.eyes.general.female_heterochromia-0", (3, 8, 2))),   
+            Some(("figure.eyes.general.female_scar-0", (3, 8, 2))), 
+            Some(("figure.eyes.general.female_blind-0", (3, 8, 2))),                       
+            ],
         hair: [
             Some(("figure.hair.orc.female-0", (-2, -8, 0))),
             Some(("figure.hair.orc.female-1", (-2, -8, 0))),
@@ -116,7 +141,15 @@
     (Elf, Male): (
         offset: (-8.0, -4.0, -6.0),
         head: ("figure.head.elf.male", (0, 2, 0)),
-        eyes: ("figure.eyes.elf.male-0", (4, 9, 2)),
+         eyes: [
+            Some(("figure.eyes.general.male_default-0", (4, 9, 2))),   
+            Some(("figure.eyes.general.male_brow_col-0", (4, 9, 2))),            
+            Some(("figure.eyes.general.male_bushy-0", (4, 9, 2))),
+            Some(("figure.eyes.general.male_as_hair-0", (4, 9, 2))),
+            Some(("figure.eyes.general.male_heterochromia-0", (4, 9, 2))), 
+            Some(("figure.eyes.general.male_scar-0", (4, 9, 2))), 
+            Some(("figure.eyes.general.male_blind-0", (4, 9, 2))),                     
+            ],
         hair: [
             Some(("figure.hair.elf.male-0", (2, 1, 1))),
             Some(("figure.hair.elf.male-1", (1, -1, 0))),
@@ -131,7 +164,14 @@
     (Elf, Female): (
         offset: (-8.0, -4.0, -6.0),
         head: ("figure.head.elf.female", (0, 2, 0)),
-        eyes: ("figure.eyes.elf.female-0", (3, 9, 2)),
+        eyes: [
+            Some(("figure.eyes.general.female_styled-0", (3, 9, 2))), 
+            Some(("figure.eyes.general.female_default-0", (3, 9, 2))),
+            Some(("figure.eyes.general.female_as_hair-0", (3, 9, 2))),  
+            Some(("figure.eyes.general.female_heterochromia-0", (3, 9, 2))),  
+            Some(("figure.eyes.general.female_scar-0", (3, 9, 2))),  
+            Some(("figure.eyes.general.female_blind-0", (3, 9, 2))),                     
+            ],
         hair: [            
             Some(("figure.hair.elf.female-0", (0, -2, 0))),	
             Some(("figure.hair.elf.female-1", (2, 1, -1))),
@@ -164,11 +204,21 @@
     (Dwarf, Male): (
         offset: (-6.0, -4.5, -6.0),
         head: ("figure.head.dwarf.male", (0, 3, 0)),
-        eyes: ("figure.eyes.dwarf.male-0", (2, 10, 2)),
+        eyes: [
+            Some(("figure.eyes.general.male_bushy-0", (2, 10, 2))),
+            Some(("figure.eyes.general.male_default-0", (2, 10, 2))),   
+            Some(("figure.eyes.general.male_brow_col-0", (2, 10, 2))),  
+            Some(("figure.eyes.general.male_as_hair-0", (2, 10, 2))), 
+            Some(("figure.eyes.general.male_heterochromia-0", (2, 10, 2))), 
+            Some(("figure.eyes.general.male_scar-0", (2, 10, 2))), 
+            Some(("figure.eyes.general.male_blind-0", (2, 10, 2))),          
+            ],
         hair: [
             Some(("figure.hair.dwarf.bald", (0, 3, 1))), 
             Some(("figure.hair.dwarf.male-0", (1, 1, -3))),
             Some(("figure.hair.dwarf.male-1", (4, 0, 1))),
+            //Some(("figure.hair.dwarf.male-2", (0, 2, -2))),
+            Some(("figure.hair.dwarf.male-3", (1, 1, -3))),
         ],
         beard: [                      
             Some(("figure.beard.dwarf.dwarf-0", (4, 9, -2))),
@@ -206,12 +256,22 @@
     (Dwarf, Female): (
         offset: (-6.0, -4.5, -6.0),
         head: ("figure.head.dwarf.female", (0, 3, 0)),
-        eyes: ("figure.eyes.dwarf.female-0", (1, 10, 2)),
+        eyes: [
+            Some(("figure.eyes.general.female_default-0", (1, 10, 2))),  
+            Some(("figure.eyes.general.female_styled-0", (1, 10, 2))),
+            Some(("figure.eyes.general.female_as_hair-0", (1, 10, 2))), 
+            Some(("figure.eyes.general.female_heterochromia-0", (1, 10, 2))), 
+            Some(("figure.eyes.general.female_scar-0", (1, 10, 2))), 
+            Some(("figure.eyes.general.female_blind-0", (1, 10, 2))),                      
+            ],
         hair: [
             Some(("figure.hair.dwarf.female-0", (-9, -9, -7))), 
             Some(("figure.hair.dwarf.female-1", (-9, -9, -7))), 
             Some(("figure.hair.dwarf.female-2", (-9, -9, -7))),
-            Some(("figure.hair.dwarf.female-3", (-9, -9, -7))),         
+            Some(("figure.hair.dwarf.female-3", (-9, -9, -7))),
+            Some(("figure.hair.dwarf.female-4", (-3, -2, -5))),
+            Some(("figure.hair.dwarf.female-5", (-3, -2, -5))),
+            Some(("figure.hair.dwarf.female-6", (-3, -2, -5))),        
         ],
         beard: [None],
         accessory: [
@@ -227,11 +287,18 @@
     (Undead, Male): (
         offset: (-5.0, -4.0, -6.75),
         head: ("figure.head.undead.male", (0, 2, 0)),
-        eyes: ("figure.eyes.undead.male-0", (2, 8, 4)),
+        eyes: [
+            Some(("figure.eyes.undead.male-0", (2, 8, 4))),  
+            Some(("figure.eyes.undead.male-1", (1, 7, 4))),    
+            Some(("figure.eyes.undead.male-2", (1, 8, 4))), 
+            Some(("figure.eyes.undead.male-3", (1, 8, 4))),               
+            ],
         hair: [
             Some(("figure.hair.dwarf.bald", (-1, 1, 1))),
             Some(("figure.hair.undead.male-0", (-1, 1, 1))),
             Some(("figure.hair.undead.male-1", (3, -2, 0))),
+            Some(("figure.hair.undead.male-2", (-1, 1, 1))), // <- Modify!
+            Some(("figure.hair.undead.male-3", (-1, 1, 1))), // <- Modify!
         ],
         beard: [None],
         accessory: [
@@ -240,12 +307,18 @@
     (Undead, Female): (
         offset: (-5.0, -4.0, -6.75),
         head: ("figure.head.undead.female", (0, 2, 0)),
-        eyes: ("figure.eyes.undead.female-0", (2, 8, 3)),
+        eyes: [
+            Some(("figure.eyes.undead.female-0", (2, 8, 3))),
+            Some(("figure.eyes.undead.female-1", (0, 8, 3))),      
+            Some(("figure.eyes.undead.female-2", (0, 8, 3))),                           
+            ],
         hair: [
             Some(("figure.hair.undead.female-0", (0, 1, 0))),
             Some(("figure.hair.undead.female-1", (-2, 0, -1))),
             Some(("figure.hair.undead.female-2", (2, 1, 1))),
             Some(("figure.hair.undead.female-3", (0, -3, -0))),
+            Some(("figure.hair.undead.female-4", (-1, 1, 0))), // <- Modify
+            Some(("figure.hair.undead.female-5", (-3, 1, 0))), // <- Modify!
         ],
         beard: [None],
         accessory: [
@@ -254,10 +327,20 @@
     (Danari, Male): (
         offset: (-9.0, -4.0, -7.5),
         head: ("figure.head.danari.male", (0, 2, 2)),
-        eyes: ("figure.eyes.danari.male-0", (5, 9, 4)),
+        eyes: [
+            Some(("figure.eyes.general.male_bushy-0", (5, 9, 4))), 
+            Some(("figure.eyes.general.male_default-0", (5, 9, 4))),
+            Some(("figure.eyes.general.male_brow_col-0", (5, 9, 4))), 
+            Some(("figure.eyes.general.male_as_hair-0", (5, 9, 4))), 
+            Some(("figure.eyes.general.male_heterochromia-0", (5, 9, 4))), 
+            Some(("figure.eyes.general.male_scar-0", (5, 9, 4))),
+            Some(("figure.eyes.general.male_blind-0", (5, 9, 4))),                                 
+            ],
         hair: [
             Some(("figure.hair.danari.male-0", (3, 1, 2))),
             Some(("figure.hair.danari.male-1", (3, 1, 2))),
+            Some(("figure.hair.danari.male-2", (3, -2, 3))),
+            Some(("figure.hair.danari.male-3", (-1, -2, 3))), // <- Modify
         ],  
         beard: [
             None,
@@ -269,10 +352,19 @@
     (Danari, Female): (
         offset: (-9.0, -4.0, -7.5),
         head: ("figure.head.danari.female", (0, 2, 2)),
-        eyes: ("figure.eyes.danari.female-0", (4, 9, 4)),
+        eyes: [
+            Some(("figure.eyes.general.female_default-0", (4, 9, 4))),
+            Some(("figure.eyes.general.female_styled-0", (4, 9, 4))), 
+            Some(("figure.eyes.general.female_as_hair-0", (4, 9, 4))), 
+            Some(("figure.eyes.general.female_heterochromia-0", (4, 9, 4))),  
+            Some(("figure.eyes.general.female_scar-0", (4, 9, 4))),  
+            Some(("figure.eyes.general.female_blind-0", (4, 9, 4))),                      
+            ],
         hair: [
             Some(("figure.hair.danari.female-0", (3, -4, 1))),
             Some(("figure.hair.danari.female-1", (1, 1, 3))),
+            Some(("figure.hair.danari.female-2", (3, 1, 0))), // <- Ears
+            Some(("figure.hair.danari.female-3", (1, -3, 0))),
         ],
         beard: [None],
         accessory: [            
diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
index 3dbd51ec8c..accbe7d266 100644
--- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
+++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron
@@ -19,7 +19,150 @@
         vox_spec: ("weapon.sword.short_2h-0", (-1.5, -6.5, -1.0)),
         color: None
     ),
-    // Axes
+    Sword(GreatswordDam0): (
+        vox_spec: ("weapon.sword.greatsword_2h_dam-0", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordDam1): (
+        vox_spec: ("weapon.sword.greatsword_2h_dam-1", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordDam2): (
+        vox_spec: ("weapon.sword.greatsword_2h_dam-2", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordSimple0): (
+        vox_spec: ("weapon.sword.greatsword_2h_simple-0", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordSimple1): (
+        vox_spec: ("weapon.sword.greatsword_2h_simple-1", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordSimple2): (
+        vox_spec: ("weapon.sword.greatsword_2h_simple-2", (-1.0, -4.5, -6.5)),
+        color: None
+    ),
+    Sword(GreatswordOrn0): (
+        vox_spec: ("weapon.sword.greatsword_2h_orn-0", (-1.0, -4.5, -7.5)),
+        color: None
+    ),
+    Sword(GreatswordOrn1): (
+        vox_spec: ("weapon.sword.greatsword_2h_orn-1", (-1.0, -4.5, -7.5)),
+        color: None
+    ),
+    Sword(GreatswordOrn2): (
+        vox_spec: ("weapon.sword.greatsword_2h_orn-2", (-1.0, -4.5, -7.5    )),
+        color: None
+    ),
+    Sword(GreatswordFine0): (
+        vox_spec: ("weapon.sword.greatsword_2h_fine-0", (-2.0, -6.5, -8.0)),
+        color: None
+    ),
+    Sword(GreatswordFine1): (
+        vox_spec: ("weapon.sword.greatsword_2h_fine-1", (-2.0, -6.5, -8.0)),
+        color: None
+    ),
+    Sword(GreatswordFine2): (
+        vox_spec: ("weapon.sword.greatsword_2h_fine-2", (-2.0, -6.5, -8.0)),
+        color: None
+    ),
+    Sword(LongDam0): (
+        vox_spec: ("weapon.sword.long_2h_dam-0", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongDam1): (
+        vox_spec: ("weapon.sword.long_2h_dam-1", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongDam2): (
+        vox_spec: ("weapon.sword.long_2h_dam-2", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongDam3): (
+        vox_spec: ("weapon.sword.long_2h_dam-3", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongDam4): (
+        vox_spec: ("weapon.sword.long_2h_dam-4", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongDam5): (
+        vox_spec: ("weapon.sword.long_2h_dam-5", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple0): (
+        vox_spec: ("weapon.sword.long_2h_simple-0", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple1): (
+        vox_spec: ("weapon.sword.long_2h_simple-1", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple2): (
+        vox_spec: ("weapon.sword.long_2h_simple-2", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple3): (
+        vox_spec: ("weapon.sword.long_2h_simple-3", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple4): (
+        vox_spec: ("weapon.sword.long_2h_simple-4", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongSimple5): (
+        vox_spec: ("weapon.sword.long_2h_simple-5", (-1.0, -3.5, -5.0)),
+        color: None
+    ),
+    Sword(LongOrn0): (
+        vox_spec: ("weapon.sword.long_2h_orn-0", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongOrn1): (
+        vox_spec: ("weapon.sword.long_2h_orn-1", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongOrn2): (
+        vox_spec: ("weapon.sword.long_2h_orn-2", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongOrn3): (
+        vox_spec: ("weapon.sword.long_2h_orn-3", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongOrn4): (
+        vox_spec: ("weapon.sword.long_2h_orn-4", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongOrn5): (
+        vox_spec: ("weapon.sword.long_2h_orn-5", (-1.0, -3.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine0): (
+        vox_spec: ("weapon.sword.long_2h_fine-0", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine1): (
+        vox_spec: ("weapon.sword.long_2h_fine-1", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine2): (
+        vox_spec: ("weapon.sword.long_2h_fine-2", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine3): (
+        vox_spec: ("weapon.sword.long_2h_fine-3", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine4): (
+        vox_spec: ("weapon.sword.long_2h_fine-4", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
+    Sword(LongFine5): (
+        vox_spec: ("weapon.sword.long_2h_fine-5", (-2.0, -4.5, -6.0)),
+        color: None
+    ),
     Axe(BasicAxe): (
         vox_spec: ("weapon.axe.rusty_2h", (-1.5, -5.0, -4.0)),
         color: None
@@ -113,13 +256,10 @@
     ),
     // Misc
     Debug(Boost): (
-        vox_spec: ("weapon.debug_wand", (-1.5, -9.5, -4.0)),
+        vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)),
         color: None
-    ),
-    Debug(Possess): (
-        vox_spec: ("weapon.debug_wand", (-1.5, -9.5, -4.0)),
-        color: None
-    ),
+    ),    
+    // Misc
     Empty: (
             vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)),
             color: None
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-0.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-0.vox
new file mode 100644
index 0000000000..6a0a4365a1
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-1.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-1.vox
new file mode 100644
index 0000000000..de7b204e18
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-2.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-2.vox
new file mode 100644
index 0000000000..75ad85f35d
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dam-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-0.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-0.vox
new file mode 100644
index 0000000000..31aaaacd57
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-1.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-1.vox
new file mode 100644
index 0000000000..0ece6bcddc
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-2.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-2.vox
new file mode 100644
index 0000000000..ffc04f3772
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_fine-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-0.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-0.vox
new file mode 100644
index 0000000000..86d0844eca
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-1.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-1.vox
new file mode 100644
index 0000000000..dbbd0e42c6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-2.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-2.vox
new file mode 100644
index 0000000000..09f0f066d3
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_orn-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-0.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-0.vox
new file mode 100644
index 0000000000..daa394c7fd
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-1.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-1.vox
new file mode 100644
index 0000000000..b0663e2d0f
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-2.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-2.vox
new file mode 100644
index 0000000000..5a4a97cc15
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_simple-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-0.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-0.vox
new file mode 100644
index 0000000000..46bed4239f
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-1.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-1.vox
new file mode 100644
index 0000000000..474c279e66
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-2.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-2.vox
new file mode 100644
index 0000000000..b7b6384623
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-3.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-3.vox
new file mode 100644
index 0000000000..a8529a73fc
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-4.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-4.vox
new file mode 100644
index 0000000000..87d556e311
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_dam-5.vox b/assets/voxygen/voxel/weapon/sword/long_2h_dam-5.vox
new file mode 100644
index 0000000000..181a035c31
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_dam-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-0.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-0.vox
new file mode 100644
index 0000000000..a99826ebc9
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-1.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-1.vox
new file mode 100644
index 0000000000..f6da0d80a6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-2.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-2.vox
new file mode 100644
index 0000000000..29ba5d6857
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-3.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-3.vox
new file mode 100644
index 0000000000..35e5d14e2a
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-4.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-4.vox
new file mode 100644
index 0000000000..f8011b769e
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_fine-5.vox b/assets/voxygen/voxel/weapon/sword/long_2h_fine-5.vox
new file mode 100644
index 0000000000..dcd9020146
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_fine-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-0.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-0.vox
new file mode 100644
index 0000000000..25d9cec1b3
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-1.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-1.vox
new file mode 100644
index 0000000000..befda529be
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-2.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-2.vox
new file mode 100644
index 0000000000..383e9e9249
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-3.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-3.vox
new file mode 100644
index 0000000000..e9a734e6ae
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-4.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-4.vox
new file mode 100644
index 0000000000..868d76c1e6
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_orn-5.vox b/assets/voxygen/voxel/weapon/sword/long_2h_orn-5.vox
new file mode 100644
index 0000000000..8582758cf4
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_orn-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-0.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-0.vox
new file mode 100644
index 0000000000..ea58d5a565
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-0.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-1.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-1.vox
new file mode 100644
index 0000000000..92e516a2c2
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-1.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-2.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-2.vox
new file mode 100644
index 0000000000..fca4808b5b
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-2.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-3.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-3.vox
new file mode 100644
index 0000000000..83ed8d79ca
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-3.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-4.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-4.vox
new file mode 100644
index 0000000000..cecfd85b63
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-4.vox differ
diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_simple-5.vox b/assets/voxygen/voxel/weapon/sword/long_2h_simple-5.vox
new file mode 100644
index 0000000000..4ec116c365
Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_simple-5.vox differ
diff --git a/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox b/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox
new file mode 100644
index 0000000000..454b5d3c00
Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox differ
diff --git a/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox
new file mode 100644
index 0000000000..bb3353602c
Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox differ
diff --git a/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox
new file mode 100644
index 0000000000..102d577cf4
Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox differ
diff --git a/assets/world/manifests/quirky.ron b/assets/world/manifests/quirky.ron
index 762845cdfb..89bfda777e 100644
--- a/assets/world/manifests/quirky.ron
+++ b/assets/world/manifests/quirky.ron
@@ -4,5 +4,9 @@
             specifier: "world.structure.natural.witch-hut",
             center: (10, 13, 9)
         ),
+        (
+            specifier: "world.structure.natural.tree-house",
+            center: (20, 15, 10)
+        ),
     ]
 )
diff --git a/assets/world/structure/natural/tree-house.vox b/assets/world/structure/natural/tree-house.vox
new file mode 100644
index 0000000000..e0dae451e3
Binary files /dev/null and b/assets/world/structure/natural/tree-house.vox differ
diff --git a/common/src/comp/body/humanoid.rs b/common/src/comp/body/humanoid.rs
index 73eed323cd..d5105f250e 100644
--- a/common/src/comp/body/humanoid.rs
+++ b/common/src/comp/body/humanoid.rs
@@ -3,11 +3,11 @@ use vek::Rgb;
 
 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub struct Body {
-    pub race: Race,
+    pub species: Species,
     pub body_type: BodyType,
     pub hair_style: u8,
     pub beard: u8,
-    pub eyebrows: u8,
+    pub eyes: u8,
     pub accessory: u8,
     pub hair_color: u8,
     pub skin: u8,
@@ -17,37 +17,39 @@ pub struct Body {
 impl Body {
     pub fn random() -> Self {
         let mut rng = thread_rng();
-        let race = *(&ALL_RACES).choose(&mut rng).unwrap();
-        Self::random_with(&mut rng, &race)
+        let species = *(&ALL_SPECIES).choose(&mut rng).unwrap();
+        Self::random_with(&mut rng, &species)
     }
 
     #[inline]
-    pub fn random_with(rng: &mut impl Rng, &race: &Race) -> Self {
+    pub fn random_with(rng: &mut impl Rng, &species: &Species) -> Self {
         let body_type = *(&ALL_BODY_TYPES).choose(rng).unwrap();
         Self {
-            race,
+            species,
             body_type,
-            hair_style: rng.gen_range(0, race.num_hair_styles(body_type)),
-            beard: rng.gen_range(0, race.num_beards(body_type)),
-            eyebrows: rng.gen_range(0, race.num_eyebrows(body_type)),
-            accessory: rng.gen_range(0, race.num_accessories(body_type)),
-            hair_color: rng.gen_range(0, race.num_hair_colors()) as u8,
-            skin: rng.gen_range(0, race.num_skin_colors()) as u8,
-            eye_color: rng.gen_range(0, race.num_eye_colors()) as u8,
+            hair_style: rng.gen_range(0, species.num_hair_styles(body_type)),
+            beard: rng.gen_range(0, species.num_beards(body_type)),
+            accessory: rng.gen_range(0, species.num_accessories(body_type)),
+            hair_color: rng.gen_range(0, species.num_hair_colors()) as u8,
+            skin: rng.gen_range(0, species.num_skin_colors()) as u8,
+            eye_color: rng.gen_range(0, species.num_eye_colors()) as u8,
+            eyes: rng.gen_range(0, 1), /* TODO Add a way to set specific head-segments for NPCs
+                                        * with the default being a random one */
         }
     }
 
     pub fn validate(&mut self) {
         self.hair_style = self
             .hair_style
-            .min(self.race.num_hair_styles(self.body_type) - 1);
-        self.beard = self.beard.min(self.race.num_beards(self.body_type) - 1);
-        self.hair_color = self.hair_color.min(self.race.num_hair_colors() - 1);
-        self.skin = self.skin.min(self.race.num_skin_colors() - 1);
-        self.eye_color = self.hair_style.min(self.race.num_eye_colors() - 1);
+            .min(self.species.num_hair_styles(self.body_type) - 1);
+        self.beard = self.beard.min(self.species.num_beards(self.body_type) - 1);
+        self.hair_color = self.hair_color.min(self.species.num_hair_colors() - 1);
+        self.skin = self.skin.min(self.species.num_skin_colors() - 1);
+        self.eyes = self.eyes.min(self.species.num_eyes(self.body_type) - 1);
+        self.eye_color = self.hair_style.min(self.species.num_eye_colors() - 1);
         self.accessory = self
             .accessory
-            .min(self.race.num_accessories(self.body_type) - 1);
+            .min(self.species.num_accessories(self.body_type) - 1);
     }
 }
 
@@ -57,7 +59,7 @@ impl From<Body> for super::Body {
 
 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 #[repr(u32)]
-pub enum Race {
+pub enum Species {
     Danari = 0,
     Dwarf = 1,
     Elf = 2,
@@ -79,36 +81,36 @@ pub struct AllSpecies<SpeciesMeta> {
     pub undead: SpeciesMeta,
 }
 
-impl<'a, SpeciesMeta> core::ops::Index<&'a Race> for AllSpecies<SpeciesMeta> {
+impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
     type Output = SpeciesMeta;
 
     #[inline]
-    fn index(&self, &index: &'a Race) -> &Self::Output {
+    fn index(&self, &index: &'a Species) -> &Self::Output {
         match index {
-            Race::Danari => &self.danari,
-            Race::Dwarf => &self.dwarf,
-            Race::Elf => &self.elf,
-            Race::Human => &self.human,
-            Race::Orc => &self.orc,
-            Race::Undead => &self.undead,
+            Species::Danari => &self.danari,
+            Species::Dwarf => &self.dwarf,
+            Species::Elf => &self.elf,
+            Species::Human => &self.human,
+            Species::Orc => &self.orc,
+            Species::Undead => &self.undead,
         }
     }
 }
 
-pub const ALL_RACES: [Race; 6] = [
-    Race::Danari,
-    Race::Dwarf,
-    Race::Elf,
-    Race::Human,
-    Race::Orc,
-    Race::Undead,
+pub const ALL_SPECIES: [Species; 6] = [
+    Species::Danari,
+    Species::Dwarf,
+    Species::Elf,
+    Species::Human,
+    Species::Orc,
+    Species::Undead,
 ];
 
 impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
     type IntoIter = std::iter::Copied<std::slice::Iter<'static, Self::Item>>;
-    type Item = Race;
+    type Item = Species;
 
-    fn into_iter(self) -> Self::IntoIter { ALL_RACES.iter().copied() }
+    fn into_iter(self) -> Self::IntoIter { ALL_SPECIES.iter().copied() }
 }
 
 // Hair Colors
@@ -348,37 +350,37 @@ pub const UNDEAD_EYE_COLORS: [EyeColor; 5] = [
     EyeColor::ToxicGreen,
 ];
 
-impl Race {
+impl Species {
     fn hair_colors(self) -> &'static [(u8, u8, u8)] {
         match self {
-            Race::Danari => &DANARI_HAIR_COLORS,
-            Race::Dwarf => &DWARF_HAIR_COLORS,
-            Race::Elf => &ELF_HAIR_COLORS,
-            Race::Human => &HUMAN_HAIR_COLORS,
-            Race::Orc => &ORC_HAIR_COLORS,
-            Race::Undead => &UNDEAD_HAIR_COLORS,
+            Species::Danari => &DANARI_HAIR_COLORS,
+            Species::Dwarf => &DWARF_HAIR_COLORS,
+            Species::Elf => &ELF_HAIR_COLORS,
+            Species::Human => &HUMAN_HAIR_COLORS,
+            Species::Orc => &ORC_HAIR_COLORS,
+            Species::Undead => &UNDEAD_HAIR_COLORS,
         }
     }
 
     fn skin_colors(self) -> &'static [Skin] {
         match self {
-            Race::Danari => &DANARI_SKIN_COLORS,
-            Race::Dwarf => &DWARF_SKIN_COLORS,
-            Race::Elf => &ELF_SKIN_COLORS,
-            Race::Human => &HUMAN_SKIN_COLORS,
-            Race::Orc => &ORC_SKIN_COLORS,
-            Race::Undead => &UNDEAD_SKIN_COLORS,
+            Species::Danari => &DANARI_SKIN_COLORS,
+            Species::Dwarf => &DWARF_SKIN_COLORS,
+            Species::Elf => &ELF_SKIN_COLORS,
+            Species::Human => &HUMAN_SKIN_COLORS,
+            Species::Orc => &ORC_SKIN_COLORS,
+            Species::Undead => &UNDEAD_SKIN_COLORS,
         }
     }
 
     fn eye_colors(self) -> &'static [EyeColor] {
         match self {
-            Race::Danari => &DANARI_EYE_COLORS,
-            Race::Dwarf => &DWARF_EYE_COLORS,
-            Race::Elf => &ELF_EYE_COLORS,
-            Race::Human => &HUMAN_EYE_COLORS,
-            Race::Orc => &ORC_EYE_COLORS,
-            Race::Undead => &UNDEAD_EYE_COLORS,
+            Species::Danari => &DANARI_EYE_COLORS,
+            Species::Dwarf => &DWARF_EYE_COLORS,
+            Species::Elf => &ELF_EYE_COLORS,
+            Species::Human => &HUMAN_EYE_COLORS,
+            Species::Orc => &ORC_EYE_COLORS,
+            Species::Undead => &UNDEAD_EYE_COLORS,
         }
     }
 
@@ -412,54 +414,71 @@ impl Race {
 
     pub fn num_hair_styles(self, body_type: BodyType) -> u8 {
         match (self, body_type) {
-            (Race::Danari, BodyType::Female) => 2,
-            (Race::Danari, BodyType::Male) => 2,
-            (Race::Dwarf, BodyType::Female) => 4,
-            (Race::Dwarf, BodyType::Male) => 3,
-            (Race::Elf, BodyType::Female) => 21,
-            (Race::Elf, BodyType::Male) => 4,
-            (Race::Human, BodyType::Female) => 19,
-            (Race::Human, BodyType::Male) => 17,
-            (Race::Orc, BodyType::Female) => 7,
-            (Race::Orc, BodyType::Male) => 8,
-            (Race::Undead, BodyType::Female) => 4,
-            (Race::Undead, BodyType::Male) => 3,
+            (Species::Danari, BodyType::Female) => 4,
+            (Species::Danari, BodyType::Male) => 4,
+            (Species::Dwarf, BodyType::Female) => 7,
+            (Species::Dwarf, BodyType::Male) => 4,
+            (Species::Elf, BodyType::Female) => 21,
+            (Species::Elf, BodyType::Male) => 4,
+            (Species::Human, BodyType::Female) => 19,
+            (Species::Human, BodyType::Male) => 17,
+            (Species::Orc, BodyType::Female) => 7,
+            (Species::Orc, BodyType::Male) => 8,
+            (Species::Undead, BodyType::Female) => 6,
+            (Species::Undead, BodyType::Male) => 5,
         }
     }
 
     pub fn num_accessories(self, body_type: BodyType) -> u8 {
         match (self, body_type) {
-            (Race::Danari, BodyType::Female) => 1,
-            (Race::Danari, BodyType::Male) => 1,
-            (Race::Dwarf, BodyType::Female) => 7,
-            (Race::Dwarf, BodyType::Male) => 7,
-            (Race::Elf, BodyType::Female) => 2,
-            (Race::Elf, BodyType::Male) => 1,
-            (Race::Human, BodyType::Female) => 1,
-            (Race::Human, BodyType::Male) => 1,
-            (Race::Orc, BodyType::Female) => 4,
-            (Race::Orc, BodyType::Male) => 5,
-            (Race::Undead, BodyType::Female) => 1,
-            (Race::Undead, BodyType::Male) => 1,
+            (Species::Danari, BodyType::Female) => 1,
+            (Species::Danari, BodyType::Male) => 1,
+            (Species::Dwarf, BodyType::Female) => 7,
+            (Species::Dwarf, BodyType::Male) => 7,
+            (Species::Elf, BodyType::Female) => 2,
+            (Species::Elf, BodyType::Male) => 1,
+            (Species::Human, BodyType::Female) => 1,
+            (Species::Human, BodyType::Male) => 1,
+            (Species::Orc, BodyType::Female) => 4,
+            (Species::Orc, BodyType::Male) => 5,
+            (Species::Undead, BodyType::Female) => 1,
+            (Species::Undead, BodyType::Male) => 1,
         }
     }
 
     pub fn num_eyebrows(self, _body_type: BodyType) -> u8 { 1 }
 
+    pub fn num_eyes(self, body_type: BodyType) -> u8 {
+        match (self, body_type) {
+            (Species::Danari, BodyType::Female) => 6,
+            (Species::Danari, BodyType::Male) => 7,
+            (Species::Dwarf, BodyType::Female) => 6,
+            (Species::Dwarf, BodyType::Male) => 7,
+            (Species::Elf, BodyType::Female) => 6,
+            (Species::Elf, BodyType::Male) => 7,
+            (Species::Human, BodyType::Female) => 6,
+            (Species::Human, BodyType::Male) => 5,
+            (Species::Orc, BodyType::Female) => 6,
+            (Species::Orc, BodyType::Male) => 2,
+            (Species::Undead, BodyType::Female) => 3,
+            (Species::Undead, BodyType::Male) => 4,
+        }
+    }
+
     pub fn num_beards(self, body_type: BodyType) -> u8 {
         match (self, body_type) {
-            (Race::Danari, BodyType::Female) => 1,
-            (Race::Danari, BodyType::Male) => 2,
-            (Race::Dwarf, BodyType::Female) => 1,
-            (Race::Dwarf, BodyType::Male) => 20,
-            (Race::Elf, BodyType::Female) => 1,
-            (Race::Elf, BodyType::Male) => 1,
-            (Race::Human, BodyType::Female) => 1,
-            (Race::Human, BodyType::Male) => 4,
-            (Race::Orc, BodyType::Female) => 1,
-            (Race::Orc, BodyType::Male) => 3,
-            (Race::Undead, BodyType::Female) => 1,
-            (Race::Undead, BodyType::Male) => 1,
+            (Species::Danari, BodyType::Female) => 1,
+            (Species::Danari, BodyType::Male) => 2,
+            (Species::Dwarf, BodyType::Female) => 1,
+            (Species::Dwarf, BodyType::Male) => 20,
+            (Species::Elf, BodyType::Female) => 1,
+            (Species::Elf, BodyType::Male) => 1,
+            (Species::Human, BodyType::Female) => 1,
+            (Species::Human, BodyType::Male) => 4,
+            (Species::Orc, BodyType::Female) => 1,
+            (Species::Orc, BodyType::Male) => 3,
+            (Species::Undead, BodyType::Female) => 1,
+            (Species::Undead, BodyType::Male) => 1,
         }
     }
 }
@@ -472,13 +491,6 @@ pub enum BodyType {
 }
 pub const ALL_BODY_TYPES: [BodyType; 2] = [BodyType::Female, BodyType::Male];
 
-#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
-#[repr(u32)]
-pub enum Eyebrows {
-    Yup = 0,
-}
-pub const ALL_EYEBROWS: [Eyebrows; 1] = [Eyebrows::Yup];
-
 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 #[repr(u32)]
 pub enum EyeColor {
diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs
index f95eb2b2b7..abefd6c13d 100644
--- a/common/src/comp/inventory/item/mod.rs
+++ b/common/src/comp/inventory/item/mod.rs
@@ -156,6 +156,9 @@ impl Item {
             BlockKind::Apple => Some(assets::load_expect_cloned("common.items.apple")),
             BlockKind::Mushroom => Some(assets::load_expect_cloned("common.items.mushroom")),
             BlockKind::Velorite => Some(assets::load_expect_cloned("common.items.velorite")),
+            BlockKind::VeloriteFrag => {
+                Some(assets::load_expect_cloned("common.items.veloritefrag"))
+            },
             BlockKind::BlueFlower => Some(assets::load_expect_cloned("common.items.flowers.blue")),
             BlockKind::PinkFlower => Some(assets::load_expect_cloned("common.items.flowers.pink")),
             BlockKind::PurpleFlower => {
diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs
index e5dd230343..c9423ebc9d 100644
--- a/common/src/comp/inventory/item/tool.rs
+++ b/common/src/comp/inventory/item/tool.rs
@@ -14,6 +14,42 @@ pub enum SwordKind {
     Zweihander0,
     WoodTraining,
     Short0,
+    GreatswordDam0,
+    GreatswordDam1,
+    GreatswordDam2,
+    GreatswordSimple0,
+    GreatswordSimple1,
+    GreatswordSimple2,
+    GreatswordOrn0,
+    GreatswordOrn1,
+    GreatswordOrn2,
+    GreatswordFine0,
+    GreatswordFine1,
+    GreatswordFine2,
+    LongDam0,
+    LongDam1,
+    LongDam2,
+    LongDam3,
+    LongDam4,
+    LongDam5,
+    LongSimple0,
+    LongSimple1,
+    LongSimple2,
+    LongSimple3,
+    LongSimple4,
+    LongSimple5,
+    LongOrn0,
+    LongOrn1,
+    LongOrn2,
+    LongOrn3,
+    LongOrn4,
+    LongOrn5,
+    LongFine0,
+    LongFine1,
+    LongFine2,
+    LongFine3,
+    LongFine4,
+    LongFine5,
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum AxeKind {
@@ -61,7 +97,6 @@ pub enum FarmKind {
 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
 pub enum DebugKind {
     Boost,
-    Possess,
 }
 
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
@@ -98,7 +133,7 @@ impl Tool {
 
     pub fn get_abilities(&self) -> Vec<CharacterAbility> {
         use CharacterAbility::*;
-        use DebugKind::*;
+        //use DebugKind::*;
         use ToolKind::*;
 
         match self.kind {
@@ -178,23 +213,23 @@ impl Tool {
             Staff(StaffKind::BasicStaff) => vec![
                 BasicMelee {
                     energy_cost: 0,
-                    buildup_duration: Duration::from_millis(0),
+                    buildup_duration: Duration::from_millis(100),
                     recover_duration: Duration::from_millis(300),
-                    base_healthchange: -1,
+                    base_healthchange: -3,
                     range: 10.0,
                     max_angle: 45.0,
                 },
                 BasicRanged {
                     energy_cost: 0,
                     holdable: false,
-                    prepare_duration: Duration::from_millis(0),
+                    prepare_duration: Duration::from_millis(250),
                     recover_duration: Duration::from_millis(200),
                     projectile: Projectile {
                         hit_solid: vec![projectile::Effect::Vanish],
                         hit_entity: vec![
                             projectile::Effect::Damage(HealthChange {
                                 // TODO: This should not be fixed (?)
-                                amount: -1,
+                                amount: -2,
                                 cause: HealthSource::Projectile { owner: None },
                             }),
                             projectile::Effect::RewardEnergy(100),
@@ -266,22 +301,28 @@ impl Tool {
                         duration: Duration::from_millis(50),
                         only_up: true,
                     },
-                ],
-                Possess => vec![BasicRanged {
-                    energy_cost: 0,
-                    holdable: false,
-                    prepare_duration: Duration::from_millis(0),
-                    recover_duration: Duration::from_millis(300),
-                    projectile: Projectile {
-                        hit_solid: vec![projectile::Effect::Stick],
-                        hit_entity: vec![projectile::Effect::Stick, projectile::Effect::Possess],
-                        time_left: Duration::from_secs(10),
-                        owner: None,
+                    BasicRanged {
+                        energy_cost: 0,
+                        holdable: false,
+                        prepare_duration: Duration::from_millis(0),
+                        recover_duration: Duration::from_millis(10),
+                        projectile: Projectile {
+                            hit_solid: vec![projectile::Effect::Stick],
+                            hit_entity: vec![
+                                projectile::Effect::Stick,
+                                projectile::Effect::Possess,
+                            ],
+                            time_left: Duration::from_secs(10),
+                            owner: None,
+                        },
+                        projectile_body: Body::Object(object::Body::ArrowSnake),
+                        projectile_light: Some(LightEmitter {
+                            col: (0.0, 1.0, 0.33).into(),
+                            ..Default::default()
+                        }),
+                        projectile_gravity: None,
                     },
-                    projectile_body: Body::Object(object::Body::ArrowSnake),
-                    projectile_light: None,
-                    projectile_gravity: None,
-                }],
+                ],
             },
             Empty => vec![BasicMelee {
                 energy_cost: 0,
diff --git a/common/src/comp/stats.rs b/common/src/comp/stats.rs
index 628cb8d80c..9e0db53320 100644
--- a/common/src/comp/stats.rs
+++ b/common/src/comp/stats.rs
@@ -1,6 +1,6 @@
 use crate::{
     comp,
-    comp::{body::humanoid::Race, Body},
+    comp::{body::humanoid::Species, Body},
     sync::Uid,
 };
 use specs::{Component, FlaggedStorage};
@@ -143,19 +143,22 @@ impl Stats {
 
 impl Stats {
     pub fn new(name: String, body: Body) -> Self {
-        let race = if let comp::Body::Humanoid(hbody) = body {
-            Some(hbody.race)
+        let species = if let comp::Body::Humanoid(hbody) = body {
+            Some(hbody.species)
         } else {
             None
         };
 
-        let (endurance, fitness, willpower) = match race {
-            Some(Race::Danari) => (0, 2, 3), // Small, flexible, intelligent, physically weak
-            Some(Race::Dwarf) => (2, 2, 1),  // phyiscally strong, intelligent, slow reflexes
-            Some(Race::Elf) => (1, 2, 2),    // Intelligent, quick, physically weak
-            Some(Race::Human) => (2, 1, 2),  // Perfectly balanced
-            Some(Race::Orc) => (3, 2, 0),    // Physically strong, non intelligent, medium reflexes
-            Some(Race::Undead) => (1, 3, 1), // Very good reflexes, equally intelligent and strong
+        // TODO: define base stats somewhere else (maybe method on Body?)
+        let (endurance, fitness, willpower) = match species {
+            Some(Species::Danari) => (0, 2, 3), // Small, flexible, intelligent, physically weak
+            Some(Species::Dwarf) => (2, 2, 1),  // phyiscally strong, intelligent, slow reflexes
+            Some(Species::Elf) => (1, 2, 2),    // Intelligent, quick, physically weak
+            Some(Species::Human) => (2, 1, 2),  // Perfectly balanced
+            Some(Species::Orc) => (3, 2, 0),    /* Physically strong, non intelligent, medium */
+            // reflexes
+            Some(Species::Undead) => (1, 3, 1), /* Very good reflexes, equally intelligent and */
+            // strong
             None => (0, 0, 0),
         };
 
diff --git a/common/src/generation.rs b/common/src/generation.rs
index b7058cd8c4..2a85e12b8f 100644
--- a/common/src/generation.rs
+++ b/common/src/generation.rs
@@ -91,7 +91,7 @@ impl EntityInfo {
 
     pub fn with_automatic_name(mut self) -> Self {
         self.name = match &self.body {
-            Body::Humanoid(body) => Some(get_npc_name(&NPC_NAMES.humanoid, body.race)),
+            Body::Humanoid(body) => Some(get_npc_name(&NPC_NAMES.humanoid, body.species)),
             Body::QuadrupedMedium(body) => {
                 Some(get_npc_name(&NPC_NAMES.quadruped_medium, body.species))
             },
diff --git a/server/src/migrations/2020-05-24-235534_race_species/down.sql b/server/src/migrations/2020-05-24-235534_race_species/down.sql
new file mode 100644
index 0000000000..e9ea64bab0
--- /dev/null
+++ b/server/src/migrations/2020-05-24-235534_race_species/down.sql
@@ -0,0 +1,46 @@
+-- SQLITE v < 3.25 does not support renaming columns.
+ALTER TABLE
+    body RENAME TO body_tmp;
+
+CREATE TABLE IF NOT EXISTS body (
+    character_id INT NOT NULL PRIMARY KEY,
+    race SMALLINT NOT NULL,
+    body_type SMALLINT NOT NULL,
+    hair_style SMALLINT NOT NULL,
+    beard SMALLINT NOT NULL,
+    eyebrows SMALLINT NOT NULL,
+    accessory SMALLINT NOT NULL,
+    hair_color SMALLINT NOT NULL,
+    skin SMALLINT NOT NULL,
+    eye_color SMALLINT NOT NULL,
+    FOREIGN KEY(character_id) REFERENCES "character"(id) ON DELETE CASCADE
+);
+
+INSERT INTO
+    body(
+        character_id,
+        race,
+        body_type,
+        hair_style,
+        beard,
+        eyebrows,
+        accessory,
+        hair_color,
+        skin,
+        eye_color
+    )
+SELECT
+    character_id,
+    species,
+    body_type,
+    hair_style,
+    beard,
+    eyes,
+    accessory,
+    hair_color,
+    skin,
+    eye_color
+FROM
+    body_tmp;
+
+DROP TABLE body_tmp;
\ No newline at end of file
diff --git a/server/src/migrations/2020-05-24-235534_race_species/up.sql b/server/src/migrations/2020-05-24-235534_race_species/up.sql
new file mode 100644
index 0000000000..6c495f616b
--- /dev/null
+++ b/server/src/migrations/2020-05-24-235534_race_species/up.sql
@@ -0,0 +1,46 @@
+-- SQLITE v < 3.25 does not support renaming columns.
+ALTER TABLE
+    body RENAME TO body_tmp;
+
+CREATE TABLE IF NOT EXISTS body (
+    character_id INT NOT NULL PRIMARY KEY,
+    species SMALLINT NOT NULL,
+    body_type SMALLINT NOT NULL,
+    hair_style SMALLINT NOT NULL,
+    beard SMALLINT NOT NULL,
+    eyes SMALLINT NOT NULL,
+    accessory SMALLINT NOT NULL,
+    hair_color SMALLINT NOT NULL,
+    skin SMALLINT NOT NULL,
+    eye_color SMALLINT NOT NULL,
+    FOREIGN KEY(character_id) REFERENCES "character"(id) ON DELETE CASCADE
+);
+
+INSERT INTO
+    body(
+        character_id,
+        species,
+        body_type,
+        hair_style,
+        beard,
+        eyes,
+        accessory,
+        hair_color,
+        skin,
+        eye_color
+    )
+SELECT
+    character_id,
+    race,
+    body_type,
+    hair_style,
+    beard,
+    eyebrows,
+    accessory,
+    hair_color,
+    skin,
+    eye_color
+FROM
+    body_tmp;
+
+DROP TABLE body_tmp;
\ No newline at end of file
diff --git a/server/src/persistence/character.rs b/server/src/persistence/character.rs
index b1b7159601..839e46a698 100644
--- a/server/src/persistence/character.rs
+++ b/server/src/persistence/character.rs
@@ -100,11 +100,11 @@ pub fn create_character(
 
                 let new_body = Body {
                     character_id: inserted_character.id as i32,
-                    race: body_data.race as i16,
+                    species: body_data.species as i16,
                     body_type: body_data.body_type as i16,
                     hair_style: body_data.hair_style as i16,
                     beard: body_data.beard as i16,
-                    eyebrows: body_data.eyebrows as i16,
+                    eyes: body_data.eyes as i16,
                     accessory: body_data.accessory as i16,
                     hair_color: body_data.hair_color as i16,
                     skin: body_data.skin as i16,
diff --git a/server/src/persistence/models.rs b/server/src/persistence/models.rs
index 74ff72d796..2fbe165290 100644
--- a/server/src/persistence/models.rs
+++ b/server/src/persistence/models.rs
@@ -44,11 +44,11 @@ impl From<&Character> for CharacterData {
 #[table_name = "body"]
 pub struct Body {
     pub character_id: i32,
-    pub race: i16,
+    pub species: i16,
     pub body_type: i16,
     pub hair_style: i16,
     pub beard: i16,
-    pub eyebrows: i16,
+    pub eyes: i16,
     pub accessory: i16,
     pub hair_color: i16,
     pub skin: i16,
@@ -58,11 +58,11 @@ pub struct Body {
 impl From<&Body> for comp::Body {
     fn from(body: &Body) -> comp::Body {
         comp::Body::Humanoid(comp::humanoid::Body {
-            race: comp::humanoid::ALL_RACES[body.race as usize],
+            species: comp::humanoid::ALL_SPECIES[body.species as usize],
             body_type: comp::humanoid::ALL_BODY_TYPES[body.body_type as usize],
             hair_style: body.hair_style as u8,
             beard: body.beard as u8,
-            eyebrows: body.eyebrows as u8,
+            eyes: body.eyes as u8,
             accessory: body.accessory as u8,
             hair_color: body.hair_color as u8,
             skin: body.skin as u8,
@@ -166,11 +166,11 @@ mod tests {
             alias: "test",
             body: &comp::Body::from(&Body {
                 character_id: 0,
-                race: 0,
+                species: 0,
                 body_type: comp::humanoid::BodyType::Female as i16,
                 hair_style: 0,
                 beard: 0,
-                eyebrows: 0,
+                eyes: 0,
                 accessory: 0,
                 hair_color: 0,
                 skin: 0,
diff --git a/server/src/persistence/schema.rs b/server/src/persistence/schema.rs
index 6b3528d970..b692588675 100644
--- a/server/src/persistence/schema.rs
+++ b/server/src/persistence/schema.rs
@@ -1,11 +1,11 @@
 table! {
     body (character_id) {
         character_id -> Integer,
-        race -> SmallInt,
+        species -> SmallInt,
         body_type -> SmallInt,
         hair_style -> SmallInt,
         beard -> SmallInt,
-        eyebrows -> SmallInt,
+        eyes -> SmallInt,
         accessory -> SmallInt,
         hair_color -> SmallInt,
         skin -> SmallInt,
diff --git a/server/src/sys/terrain.rs b/server/src/sys/terrain.rs
index 70268cf7dc..e0bfc7d43b 100644
--- a/server/src/sys/terrain.rs
+++ b/server/src/sys/terrain.rs
@@ -269,7 +269,7 @@ impl<'a> System<'a> for Sys {
                             format!(
                                 "{} Giant {}",
                                 adjective,
-                                get_npc_name(&NPC_NAMES.humanoid, body_new.race)
+                                get_npc_name(&NPC_NAMES.humanoid, body_new.species)
                             ),
                             body,
                         );
diff --git a/voxygen/src/anim/character/mod.rs b/voxygen/src/anim/character/mod.rs
index 578e98f957..9f13a3e3f2 100644
--- a/voxygen/src/anim/character/mod.rs
+++ b/voxygen/src/anim/character/mod.rs
@@ -183,8 +183,8 @@ impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr {
 
 impl SkeletonAttr {
     pub fn calculate_scale(body: &comp::humanoid::Body) -> f32 {
-        use comp::humanoid::{BodyType::*, Race::*};
-        match (body.race, body.body_type) {
+        use comp::humanoid::{BodyType::*, Species::*};
+        match (body.species, body.body_type) {
             (Orc, Male) => 1.14,
             (Orc, Female) => 1.02,
             (Human, Male) => 1.02,
@@ -203,10 +203,10 @@ impl SkeletonAttr {
 
 impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
     fn from(body: &'a comp::humanoid::Body) -> Self {
-        use comp::humanoid::{BodyType::*, Race::*};
+        use comp::humanoid::{BodyType::*, Species::*};
         Self {
             scaler: SkeletonAttr::calculate_scale(body),
-            head_scale: match (body.race, body.body_type) {
+            head_scale: match (body.species, body.body_type) {
                 (Orc, Male) => 0.9,
                 (Orc, Female) => 1.0,
                 (Human, Male) => 0.9,
@@ -220,7 +220,7 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
                 (Danari, Male) => 1.15,
                 (Danari, Female) => 1.15,
             },
-            head: match (body.race, body.body_type) {
+            head: match (body.species, body.body_type) {
                 (Orc, Male) => (0.0, 13.5),
                 (Orc, Female) => (0.0, 13.0),
                 (Human, Male) => (0.3, 13.0),
@@ -234,28 +234,28 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
                 (Danari, Male) => (0.5, 12.5),
                 (Danari, Female) => (0.5, 13.5),
             },
-            chest: match (body.race, body.body_type) {
+            chest: match (body.species, body.body_type) {
                 (_, _) => (0.0, 7.0),
             },
-            belt: match (body.race, body.body_type) {
+            belt: match (body.species, body.body_type) {
                 (_, _) => (0.0, -2.0),
             },
-            back: match (body.race, body.body_type) {
+            back: match (body.species, body.body_type) {
                 (_, _) => (-3.1, 7.25),
             },
-            shorts: match (body.race, body.body_type) {
+            shorts: match (body.species, body.body_type) {
                 (_, _) => (0.0, -5.0),
             },
-            hand: match (body.race, body.body_type) {
+            hand: match (body.species, body.body_type) {
                 (_, _) => (7.0, -0.25, 0.5),
             },
-            foot: match (body.race, body.body_type) {
+            foot: match (body.species, body.body_type) {
                 (_, _) => (3.4, 0.5, 1.0),
             },
-            shoulder: match (body.race, body.body_type) {
+            shoulder: match (body.species, body.body_type) {
                 (_, _) => (5.0, 0.0, 5.0),
             },
-            lantern: match (body.race, body.body_type) {
+            lantern: match (body.species, body.body_type) {
                 (_, _) => (5.0, 2.5, 5.5),
             },
         }
diff --git a/voxygen/src/hud/hotbar.rs b/voxygen/src/hud/hotbar.rs
index e9958f5d66..fe5a2f3696 100644
--- a/voxygen/src/hud/hotbar.rs
+++ b/voxygen/src/hud/hotbar.rs
@@ -63,7 +63,7 @@ impl State {
                 .map(|i| &i.item.kind)
                 .filter(|kind| {
                     use common::comp::item::{
-                        tool::{StaffKind, Tool, ToolKind},
+                        tool::{DebugKind, StaffKind, Tool, ToolKind},
                         ItemKind,
                     };
                     matches!(
@@ -71,6 +71,9 @@ impl State {
                         ItemKind::Tool(Tool {
                             kind: ToolKind::Staff(StaffKind::BasicStaff),
                             ..
+                        }) | ItemKind::Tool(Tool {
+                            kind: ToolKind::Debug(DebugKind::Boost),
+                            ..
                         })
                     )
                 })
diff --git a/voxygen/src/hud/img_ids.rs b/voxygen/src/hud/img_ids.rs
index 9417722fe4..c75bfa72cc 100644
--- a/voxygen/src/hud/img_ids.rs
+++ b/voxygen/src/hud/img_ids.rs
@@ -241,6 +241,7 @@ image_ids! {
 
         // Icons
         fire_spell_1: "voxygen.element.icons.fire_spell_0",
+        snake_arrow_0: "voxygen.element.icons.snake",
         heal_0: "voxygen.element.icons.heal_0",
 
         // Buttons
diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs
index df9667409b..9c403286b9 100644
--- a/voxygen/src/hud/skillbar.rs
+++ b/voxygen/src/hud/skillbar.rs
@@ -790,13 +790,29 @@ impl<'a> Widget for Skillbar<'a> {
                         .1
                         .get(i)
                         .map(|item| (item.name(), item.description())),
-                    hotbar::SlotContents::Ability3 => Some((
-                        "Firebomb",
-                        "\nWhirls a big fireball into the air. \nExplodes the ground and does\na \
-                         big amount of damage",
-                    )),
+                    hotbar::SlotContents::Ability3 => content_source
+                        .2
+                        .active_item
+                        .as_ref()
+                        .map(|i| &i.item.kind)
+                        .and_then(|kind| match kind {
+                            ItemKind::Tool(Tool { kind, .. }) => match kind {
+                                ToolKind::Staff(_) => Some((
+                                    "Firebomb",
+                                    "\nWhirls a big fireball into the air. \nExplodes the ground \
+                                     and does\na big amount of damage",
+                                )),
+                                ToolKind::Debug(DebugKind::Boost) => Some((
+                                    "Possessing Arrow",
+                                    "\nShoots a poisonous arrow.\nLets you control your target.",
+                                )),
+                                _ => None,
+                            },
+                            _ => None,
+                        }),
                 })
         };
+
         const SLOT_TOOLTIP_UPSHIFT: f64 = 70.0;
         //Slot 5
         let slot = slot_maker
diff --git a/voxygen/src/hud/slots.rs b/voxygen/src/hud/slots.rs
index 52797b232e..19f17ceea4 100644
--- a/voxygen/src/hud/slots.rs
+++ b/voxygen/src/hud/slots.rs
@@ -4,7 +4,13 @@ use super::{
     item_imgs::{ItemImgs, ItemKey},
 };
 use crate::ui::slot::{self, SlotKey, SumSlot};
-use common::comp::{item::ItemKind, Energy, Inventory, Loadout};
+use common::comp::{
+    item::{
+        tool::{DebugKind, Tool, ToolKind},
+        ItemKind,
+    },
+    Energy, Inventory, Loadout,
+};
 use conrod_core::{image, Color};
 
 pub use common::comp::slot::{ArmorSlot, EquipSlot};
@@ -80,7 +86,8 @@ impl SlotKey<Loadout, ItemImgs> for EquipSlot {
 #[derive(Clone, PartialEq)]
 pub enum HotbarImage {
     Item(ItemKey),
-    Ability3,
+    Fireball,
+    SnakeArrow,
 }
 
 type HotbarSource<'a> = (&'a hotbar::State, &'a Inventory, &'a Loadout, &'a Energy);
@@ -103,19 +110,20 @@ impl<'a> SlotKey<HotbarSource<'a>, HotbarImageSource<'a>> for HotbarSlot {
                 .as_ref()
                 .map(|i| &i.item.kind)
                 .and_then(|kind| {
-                    use common::comp::item::tool::{StaffKind, Tool, ToolKind};
-                    matches!(
-                        kind,
-                        ItemKind::Tool(Tool {
-                            kind: ToolKind::Staff(StaffKind::BasicStaff),
-                            ..
-                        })
-                    )
-                    .then_some((
-                        HotbarImage::Ability3,
-                        // Darken if not enough energy to use attack
-                        (energy.current() < 500).then_some(Color::Rgba(0.3, 0.3, 0.3, 0.8)),
-                    ))
+                    match kind {
+                        ItemKind::Tool(Tool { kind, .. }) => match kind {
+                            ToolKind::Staff(_) => Some(HotbarImage::Fireball),
+                            ToolKind::Debug(DebugKind::Boost) => Some(HotbarImage::SnakeArrow),
+                            _ => None,
+                        },
+                        _ => None,
+                    }
+                    .map(|image_key| {
+                        (
+                            image_key,
+                            (energy.current() < 500).then_some(Color::Rgba(0.3, 0.3, 0.3, 0.8)),
+                        )
+                    })
                 }),
         })
     }
@@ -139,7 +147,8 @@ impl<'a> SlotKey<HotbarSource<'a>, HotbarImageSource<'a>> for HotbarSlot {
     fn image_id(key: &Self::ImageKey, (item_imgs, imgs): &HotbarImageSource<'a>) -> image::Id {
         match key {
             HotbarImage::Item(key) => item_imgs.img_id_or_not_found_img(key.clone()),
-            HotbarImage::Ability3 => imgs.fire_spell_1,
+            HotbarImage::SnakeArrow => imgs.snake_arrow_0,
+            HotbarImage::Fireball => imgs.fire_spell_1,
         }
     }
 }
diff --git a/voxygen/src/menu/char_selection/ui.rs b/voxygen/src/menu/char_selection/ui.rs
index 5b0a52eb04..fa02e93cd3 100644
--- a/voxygen/src/menu/char_selection/ui.rs
+++ b/voxygen/src/menu/char_selection/ui.rs
@@ -56,7 +56,7 @@ widget_ids! {
         v_logo,
         version,
         divider,
-        bodyrace_text,
+        bodyspecies_text,
         facialfeatures_text,
         info_bg,
         info_frame,
@@ -139,12 +139,12 @@ widget_ids! {
         create_button,
         name_input,
         name_field,
-        race_1,
-        race_2,
-        race_3,
-        race_4,
-        race_5,
-        race_6,
+        species_1,
+        species_2,
+        species_3,
+        species_4,
+        species_5,
+        species_6,
         body_type_1,
         body_type_2,
 
@@ -162,7 +162,7 @@ widget_ids! {
         staff,
         staff_button,
         // Char Creation
-        // Race Icons
+        // Species Icons
         male,
         female,
         human,
@@ -205,7 +205,7 @@ image_ids! {
         bow: "voxygen.element.icons.bow",
         staff: "voxygen.element.icons.staff",
 
-        // Race Icons
+        // Species Icons
         male: "voxygen.element.icons.male",
         female: "voxygen.element.icons.female",
         human_m: "voxygen.element.icons.human_m",
@@ -299,6 +299,7 @@ pub struct CharSelectionUi {
     fonts: ConrodVoxygenFonts,
     info_content: InfoContent,
     voxygen_i18n: Arc<VoxygenLocalization>,
+    enter: bool,
     pub mode: Mode,
     pub selected_character: usize,
 }
@@ -333,6 +334,7 @@ impl CharSelectionUi {
             selected_character: 0,
             voxygen_i18n,
             mode: Mode::Select(None),
+            enter: false,
         }
     }
 
@@ -702,7 +704,10 @@ impl CharSelectionUi {
                         .set(self.ids.enter_world_button, ui_widgets)
                         .was_clicked()
                     {
-                        events.push(Event::Play);
+                        self.enter = !self.enter;
+                        if self.enter {
+                            events.push(Event::Play)
+                        };
                     }
                 } else {
                     &enter_button
@@ -864,6 +869,9 @@ impl CharSelectionUi {
                         };
                     }
                 }
+
+                // LOADING SCREEN HERE
+                if self.enter { /*stuff*/ };
             },
             // Character_Creation
             // //////////////////////////////////////////////////////////////////////
@@ -996,13 +1004,13 @@ impl CharSelectionUi {
                     .rgba(0.33, 0.33, 0.33, 1.0)
                     .set(self.ids.selection_scrollbar, ui_widgets);
 
-                // Male/Female/Race Icons
+                // Male/Female/Species Icons
                 Text::new(&self.voxygen_i18n.get("char_selection.character_creation"))
                     .mid_top_with_margin_on(self.ids.creation_alignment, 10.0)
                     .font_size(self.fonts.cyri.scale(24))
                     .font_id(self.fonts.cyri.conrod_id)
                     .color(TEXT_COLOR)
-                    .set(self.ids.bodyrace_text, ui_widgets);
+                    .set(self.ids.bodyspecies_text, ui_widgets);
                 // Alignment
                 Rectangle::fill_with([140.0, 72.0], color::TRANSPARENT)
                     .mid_top_with_margin_on(self.ids.creation_alignment, 60.0)
@@ -1046,7 +1054,7 @@ impl CharSelectionUi {
                     body.validate();
                 }
 
-                // Alignment for Races and Tools
+                // Alignment for Species and Tools
                 Rectangle::fill_with([214.0, 304.0], color::TRANSPARENT)
                     .mid_bottom_with_margin_on(self.ids.creation_buttons_alignment_1, -324.0)
                     .set(self.ids.creation_buttons_alignment_2, ui_widgets);
@@ -1075,7 +1083,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .top_left_with_margins_on(self.ids.creation_buttons_alignment_2, 0.0, 0.0)
                     .set(self.ids.human, ui_widgets);
-                if Button::image(if let humanoid::Race::Human = body.race {
+                if Button::image(if let humanoid::Species::Human = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1085,14 +1093,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.human"),
+                    &self.voxygen_i18n.get("common.species.human"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_1, ui_widgets)
+                .set(self.ids.species_1, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Human;
+                    body.species = humanoid::Species::Human;
                     body.validate();
                 }
 
@@ -1101,7 +1109,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .right_from(self.ids.human, 2.0)
                     .set(self.ids.orc, ui_widgets);
-                if Button::image(if let humanoid::Race::Orc = body.race {
+                if Button::image(if let humanoid::Species::Orc = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1111,14 +1119,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.orc"),
+                    &self.voxygen_i18n.get("common.species.orc"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_2, ui_widgets)
+                .set(self.ids.species_2, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Orc;
+                    body.species = humanoid::Species::Orc;
                     body.validate();
                 }
                 // Dwarf
@@ -1126,7 +1134,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .right_from(self.ids.orc, 2.0)
                     .set(self.ids.dwarf, ui_widgets);
-                if Button::image(if let humanoid::Race::Dwarf = body.race {
+                if Button::image(if let humanoid::Species::Dwarf = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1136,14 +1144,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.dwarf"),
+                    &self.voxygen_i18n.get("common.species.dwarf"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_3, ui_widgets)
+                .set(self.ids.species_3, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Dwarf;
+                    body.species = humanoid::Species::Dwarf;
                     body.validate();
                 }
                 // Elf
@@ -1151,7 +1159,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .down_from(self.ids.human, 2.0)
                     .set(self.ids.elf, ui_widgets);
-                if Button::image(if let humanoid::Race::Elf = body.race {
+                if Button::image(if let humanoid::Species::Elf = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1161,14 +1169,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.elf"),
+                    &self.voxygen_i18n.get("common.species.elf"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_4, ui_widgets)
+                .set(self.ids.species_4, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Elf;
+                    body.species = humanoid::Species::Elf;
                     body.validate();
                 }
 
@@ -1177,7 +1185,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .right_from(self.ids.elf, 2.0)
                     .set(self.ids.undead, ui_widgets);
-                if Button::image(if let humanoid::Race::Undead = body.race {
+                if Button::image(if let humanoid::Species::Undead = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1187,14 +1195,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.undead"),
+                    &self.voxygen_i18n.get("common.species.undead"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_5, ui_widgets)
+                .set(self.ids.species_5, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Undead;
+                    body.species = humanoid::Species::Undead;
                     body.validate();
                 }
                 // Danari
@@ -1202,7 +1210,7 @@ impl CharSelectionUi {
                     .w_h(70.0, 70.0)
                     .right_from(self.ids.undead, 2.0)
                     .set(self.ids.danari, ui_widgets);
-                if Button::image(if let humanoid::Race::Danari = body.race {
+                if Button::image(if let humanoid::Species::Danari = body.species {
                     self.imgs.icon_border_pressed
                 } else {
                     self.imgs.icon_border
@@ -1212,14 +1220,14 @@ impl CharSelectionUi {
                 .press_image(self.imgs.icon_border_press)
                 .with_tooltip(
                     tooltip_manager,
-                    &self.voxygen_i18n.get("common.races.danari"),
+                    &self.voxygen_i18n.get("common.species.danari"),
                     "",
                     &tooltip_human,
                 )
-                .set(self.ids.race_6, ui_widgets)
+                .set(self.ids.species_6, ui_widgets)
                 .was_clicked()
                 {
-                    body.race = humanoid::Race::Danari;
+                    body.species = humanoid::Species::Danari;
                     body.validate();
                 }
 
@@ -1403,7 +1411,7 @@ impl CharSelectionUi {
                     self.ids.creation_buttons_alignment_2,
                     self.voxygen_i18n.get("char_selection.hair_style"),
                     self.ids.hairstyle_text,
-                    body.race.num_hair_styles(body.body_type) as usize - 1,
+                    body.species.num_hair_styles(body.body_type) as usize - 1,
                     body.hair_style as usize,
                     self.ids.hairstyle_slider,
                     ui_widgets,
@@ -1415,7 +1423,7 @@ impl CharSelectionUi {
                     self.ids.hairstyle_slider,
                     self.voxygen_i18n.get("char_selection.hair_color"),
                     self.ids.haircolor_text,
-                    body.race.num_hair_colors() as usize - 1,
+                    body.species.num_hair_colors() as usize - 1,
                     body.hair_color as usize,
                     self.ids.haircolor_slider,
                     ui_widgets,
@@ -1427,7 +1435,7 @@ impl CharSelectionUi {
                     self.ids.haircolor_slider,
                     self.voxygen_i18n.get("char_selection.skin"),
                     self.ids.skin_text,
-                    body.race.num_skin_colors() as usize - 1,
+                    body.species.num_skin_colors() as usize - 1,
                     body.skin as usize,
                     self.ids.skin_slider,
                     ui_widgets,
@@ -1437,21 +1445,21 @@ impl CharSelectionUi {
                 // Eyebrows
                 if let Some(new_val) = char_slider(
                     self.ids.skin_slider,
-                    self.voxygen_i18n.get("char_selection.eyebrows"),
+                    self.voxygen_i18n.get("char_selection.eyeshape"),
                     self.ids.eyebrows_text,
-                    body.race.num_eyebrows(body.body_type) as usize - 1,
-                    body.eyebrows as usize,
+                    body.species.num_eyes(body.body_type) as usize - 1,
+                    body.eyes as usize,
                     self.ids.eyebrows_slider,
                     ui_widgets,
                 ) {
-                    body.eyebrows = new_val as u8;
+                    body.eyes = new_val as u8;
                 }
                 // EyeColor
                 if let Some(new_val) = char_slider(
                     self.ids.eyebrows_slider,
                     self.voxygen_i18n.get("char_selection.eye_color"),
                     self.ids.eyecolor_text,
-                    body.race.num_eye_colors() as usize - 1,
+                    body.species.num_eye_colors() as usize - 1,
                     body.eye_color as usize,
                     self.ids.eyecolor_slider,
                     ui_widgets,
@@ -1464,7 +1472,7 @@ impl CharSelectionUi {
                     self.ids.eyecolor_slider,
                     self.voxygen_i18n.get("char_selection.accessories"),
                     self.ids.accessories_text,
-                    body.race.num_accessories(body.body_type) as usize - 1,
+                    body.species.num_accessories(body.body_type) as usize - 1,
                     body.accessory as usize,
                     self.ids.accessories_slider,
                     ui_widgets,
@@ -1472,12 +1480,12 @@ impl CharSelectionUi {
                     body.accessory = new_val as u8;
                 }
                 // Beard
-                if body.race.num_beards(body.body_type) > 1 {
+                if body.species.num_beards(body.body_type) > 1 {
                     if let Some(new_val) = char_slider(
                         self.ids.accessories_slider,
                         self.voxygen_i18n.get("char_selection.beard"),
                         self.ids.beard_text,
-                        body.race.num_beards(body.body_type) as usize - 1,
+                        body.species.num_beards(body.body_type) as usize - 1,
                         body.beard as usize,
                         self.ids.beard_slider,
                         ui_widgets,
diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs
index 154d807532..3ab463ffdd 100644
--- a/voxygen/src/scene/figure/cache.rs
+++ b/voxygen/src/scene/figure/cache.rs
@@ -109,18 +109,9 @@ impl<Skel: Skeleton> FigureModelCache<Skel> {
 
                 [
                     match camera_mode {
-                        CameraMode::ThirdPerson => Some(humanoid_head_spec.mesh_head(
-                            body.race,
-                            body.body_type,
-                            body.hair_color,
-                            body.hair_style,
-                            body.beard,
-                            body.eye_color,
-                            body.skin,
-                            body.eyebrows,
-                            body.accessory,
-                            generate_mesh,
-                        )),
+                        CameraMode::ThirdPerson => {
+                            Some(humanoid_head_spec.mesh_head(&body, generate_mesh))
+                        },
                         CameraMode::FirstPerson => None,
                     },
                     match camera_mode {
diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs
index e8960bdf54..d52636752c 100644
--- a/voxygen/src/scene/figure/load.rs
+++ b/voxygen/src/scene/figure/load.rs
@@ -9,7 +9,7 @@ use common::{
         dragon::{BodyType as DBodyType, Species as DSpecies},
         fish_medium, fish_small,
         golem::{BodyType as GBodyType, Species as GSpecies},
-        humanoid::{Body, BodyType, EyeColor, Race, Skin},
+        humanoid::{Body, BodyType, EyeColor, Skin, Species},
         item::{
             armor::{Armor, Back, Belt, Chest, Foot, Hand, Head, Pants, Shoulder, Tabard},
             tool::{Tool, ToolKind},
@@ -122,18 +122,18 @@ struct MobSidedVoxSpec {
     right: ArmorVoxSpec,
 }
 
-// All reliant on humanoid::Race and humanoid::BodyType
+// All reliant on humanoid::Species and humanoid::BodyType
 #[derive(Serialize, Deserialize)]
 struct HumHeadSubSpec {
     offset: [f32; 3], // Should be relative to initial origin
     head: VoxSpec<i32>,
-    eyes: VoxSpec<i32>,
+    eyes: Vec<Option<VoxSpec<i32>>>,
     hair: Vec<Option<VoxSpec<i32>>>,
     beard: Vec<Option<VoxSpec<i32>>>,
     accessory: Vec<Option<VoxSpec<i32>>>,
 }
 #[derive(Serialize, Deserialize)]
-pub struct HumHeadSpec(HashMap<(Race, BodyType), HumHeadSubSpec>);
+pub struct HumHeadSpec(HashMap<(Species, BodyType), HumHeadSubSpec>);
 
 impl Asset for HumHeadSpec {
     const ENDINGS: &'static [&'static str] = &["ron"];
@@ -150,77 +150,80 @@ impl HumHeadSpec {
 
     pub fn mesh_head(
         &self,
-        race: Race,
-        body_type: BodyType,
-        hair_color: u8,
-        hair_style: u8,
-        beard: u8,
-        eye_color: u8,
-        skin: u8,
-        _eyebrows: u8,
-        accessory: u8,
+        body: &Body,
         generate_mesh: impl FnOnce(&Segment, Vec3<f32>) -> Mesh<FigurePipeline>,
     ) -> Mesh<FigurePipeline> {
-        let spec = match self.0.get(&(race, body_type)) {
+        let spec = match self.0.get(&(body.species, body.body_type)) {
             Some(spec) => spec,
             None => {
                 error!(
                     "No head specification exists for the combination of {:?} and {:?}",
-                    race, body_type
+                    body.species, body.body_type
                 );
                 return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh);
             },
         };
 
-        let hair_rgb = race.hair_color(hair_color);
-        let skin = race.skin_color(skin);
-        let eye_rgb = race.eye_color(eye_color);
+        let hair_rgb = body.species.hair_color(body.hair_color);
+        let skin_rgb = body.species.skin_color(body.skin);
+        let eye_rgb = body.species.eye_color(body.eye_color);
 
         // Load segment pieces
         let bare_head = graceful_load_mat_segment(&spec.head.0);
-        let eyes = color_segment(
-            graceful_load_mat_segment(&spec.eyes.0).map_rgb(|rgb| recolor_grey(rgb, hair_rgb)),
-            skin,
-            hair_rgb,
-            eye_rgb,
-        );
-        let hair = match spec.hair.get(hair_style as usize) {
+
+        let eyes = match spec.eyes.get(body.eyes as usize) {
+            Some(Some(spec)) => Some((
+                color_segment(
+                    graceful_load_mat_segment(&spec.0).map_rgb(|rgb| recolor_grey(rgb, hair_rgb)),
+                    skin_rgb,
+                    hair_rgb,
+                    eye_rgb,
+                ),
+                Vec3::from(spec.1),
+            )),
+            Some(None) => None,
+            None => {
+                warn!("No specification for these eyes: {:?}", body.eyes);
+                None
+            },
+        };
+        let hair = match spec.hair.get(body.hair_style as usize) {
             Some(Some(spec)) => Some((
                 graceful_load_segment(&spec.0).map_rgb(|rgb| recolor_grey(rgb, hair_rgb)),
                 Vec3::from(spec.1),
             )),
             Some(None) => None,
             None => {
-                warn!("No specification for hair style {}", hair_style);
+                warn!("No specification for hair style {}", body.hair_style);
                 None
             },
         };
-        let beard = match spec.beard.get(beard as usize) {
+        let beard = match spec.beard.get(body.beard as usize) {
             Some(Some(spec)) => Some((
                 graceful_load_segment(&spec.0).map_rgb(|rgb| recolor_grey(rgb, hair_rgb)),
                 Vec3::from(spec.1),
             )),
             Some(None) => None,
             None => {
-                warn!("No specification for this beard: {:?}", beard);
+                warn!("No specification for this beard: {:?}", body.beard);
                 None
             },
         };
-        let accessory = match spec.accessory.get(accessory as usize) {
+        let accessory = match spec.accessory.get(body.accessory as usize) {
             Some(Some(spec)) => Some((graceful_load_segment(&spec.0), Vec3::from(spec.1))),
             Some(None) => None,
             None => {
-                warn!("No specification for this accessory: {:?}", accessory);
+                warn!("No specification for this accessory: {:?}", body.accessory);
                 None
             },
         };
 
         let (head, origin_offset) = DynaUnionizer::new()
             .add(
-                color_segment(bare_head, skin, hair_rgb, eye_rgb),
+                color_segment(bare_head, skin_rgb, hair_rgb, eye_rgb),
                 spec.head.1.into(),
             )
-            .add(eyes, spec.eyes.1.into())
+            .maybe_add(eyes)
             .maybe_add(hair)
             .maybe_add(beard)
             .maybe_add(accessory)
@@ -379,9 +382,9 @@ impl HumArmorShoulderSpec {
             } else {
                 graceful_load_mat_segment(&spec.right.vox_spec.0)
             },
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
 
         // TODO: use this if we can
@@ -458,9 +461,9 @@ impl HumArmorChestSpec {
         let color = |mat_segment| {
             color_segment(
                 mat_segment,
-                body.race.skin_color(body.skin),
-                body.race.hair_color(body.hair_color),
-                body.race.eye_color(body.eye_color),
+                body.species.skin_color(body.skin),
+                body.species.hair_color(body.hair_color),
+                body.species.eye_color(body.eye_color),
             )
         };
 
@@ -518,9 +521,9 @@ impl HumArmorHandSpec {
             } else {
                 graceful_load_mat_segment(&spec.right.vox_spec.0)
             },
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
 
         let offset = if flipped {
@@ -590,9 +593,9 @@ impl HumArmorBeltSpec {
 
         let mut belt_segment = color_segment(
             graceful_load_mat_segment(&spec.vox_spec.0),
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
 
         if let Some(color) = spec.color {
@@ -634,9 +637,9 @@ impl HumArmorBackSpec {
 
         let mut back_segment = color_segment(
             graceful_load_mat_segment(&spec.vox_spec.0),
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
         if let Some(color) = spec.color {
             let back_color = Vec3::from(color);
@@ -678,9 +681,9 @@ impl HumArmorPantsSpec {
         let color = |mat_segment| {
             color_segment(
                 mat_segment,
-                body.race.skin_color(body.skin),
-                body.race.hair_color(body.hair_color),
-                body.race.eye_color(body.eye_color),
+                body.species.skin_color(body.skin),
+                body.species.hair_color(body.hair_color),
+                body.species.eye_color(body.eye_color),
             )
         };
 
@@ -738,9 +741,9 @@ impl HumArmorFootSpec {
             } else {
                 graceful_load_mat_segment(&spec.vox_spec.0)
             },
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
 
         if let Some(color) = spec.color {
@@ -827,9 +830,9 @@ impl HumArmorLanternSpec {
 
         let mut lantern_segment = color_segment(
             graceful_load_mat_segment(&spec.vox_spec.0),
-            body.race.skin_color(body.skin),
-            body.race.hair_color(body.hair_color),
-            body.race.eye_color(body.eye_color),
+            body.species.skin_color(body.skin),
+            body.species.hair_color(body.hair_color),
+            body.species.eye_color(body.eye_color),
         );
         if let Some(color) = spec.color {
             let lantern_color = Vec3::from(color);
@@ -871,9 +874,9 @@ impl HumArmorHeadSpec {
         let color = |mat_segment| {
             color_segment(
                 mat_segment,
-                body.race.skin_color(body.skin),
-                body.race.hair_color(body.hair_color),
-                body.race.eye_color(body.eye_color),
+                body.species.skin_color(body.skin),
+                body.species.hair_color(body.hair_color),
+                body.species.eye_color(body.eye_color),
             )
         };
 
@@ -926,9 +929,9 @@ impl HumArmorTabardSpec {
         let color = |mat_segment| {
             color_segment(
                 mat_segment,
-                body.race.skin_color(body.skin),
-                body.race.hair_color(body.hair_color),
-                body.race.eye_color(body.eye_color),
+                body.species.skin_color(body.skin),
+                body.species.hair_color(body.hair_color),
+                body.species.eye_color(body.eye_color),
             )
         };