diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json
index fa20fde4a8..f96b41d228 100644
--- a/assets/common/npc_names.json
+++ b/assets/common/npc_names.json
@@ -577,6 +577,10 @@
             "monitor": {
                 "keyword": "monitor",
                 "generic": "Monitor"
+            },
+            "asp": {
+                "keyword": "asp",
+                "generic": "Asp"
             }
         }
     }
diff --git a/assets/voxygen/voxel/npc/asp/female/chest.vox b/assets/voxygen/voxel/npc/asp/female/chest.vox
new file mode 100644
index 0000000000..6ed1375ddc
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/chest.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/foot_bl.vox b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox
new file mode 100644
index 0000000000..53ed1cfe43
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/foot_br.vox b/assets/voxygen/voxel/npc/asp/female/foot_br.vox
new file mode 100644
index 0000000000..82b0dac80a
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_br.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fl.vox b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox
new file mode 100644
index 0000000000..2731fa2b6c
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fr.vox b/assets/voxygen/voxel/npc/asp/female/foot_fr.vox
new file mode 100644
index 0000000000..33cf92df8e
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/foot_fr.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/head_lower.vox b/assets/voxygen/voxel/npc/asp/female/head_lower.vox
new file mode 100644
index 0000000000..9d035e3c00
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/head_lower.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/head_upper.vox b/assets/voxygen/voxel/npc/asp/female/head_upper.vox
new file mode 100644
index 0000000000..7a5388844f
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/head_upper.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/jaw.vox b/assets/voxygen/voxel/npc/asp/female/jaw.vox
new file mode 100644
index 0000000000..74a71d6aa3
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/jaw.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/tail_front.vox b/assets/voxygen/voxel/npc/asp/female/tail_front.vox
new file mode 100644
index 0000000000..ce1a0256da
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/tail_front.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/female/tail_rear.vox b/assets/voxygen/voxel/npc/asp/female/tail_rear.vox
new file mode 100644
index 0000000000..ad2381b649
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/female/tail_rear.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/chest.vox b/assets/voxygen/voxel/npc/asp/male/chest.vox
new file mode 100644
index 0000000000..6ed1375ddc
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/chest.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/foot_bl.vox b/assets/voxygen/voxel/npc/asp/male/foot_bl.vox
new file mode 100644
index 0000000000..53ed1cfe43
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_bl.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/foot_br.vox b/assets/voxygen/voxel/npc/asp/male/foot_br.vox
new file mode 100644
index 0000000000..82b0dac80a
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_br.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fl.vox b/assets/voxygen/voxel/npc/asp/male/foot_fl.vox
new file mode 100644
index 0000000000..2731fa2b6c
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_fl.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fr.vox b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox
new file mode 100644
index 0000000000..33cf92df8e
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/head_lower.vox b/assets/voxygen/voxel/npc/asp/male/head_lower.vox
new file mode 100644
index 0000000000..9d035e3c00
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_lower.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/head_upper.vox b/assets/voxygen/voxel/npc/asp/male/head_upper.vox
new file mode 100644
index 0000000000..7a5388844f
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_upper.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/jaw.vox b/assets/voxygen/voxel/npc/asp/male/jaw.vox
new file mode 100644
index 0000000000..74a71d6aa3
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/jaw.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/tail_front.vox b/assets/voxygen/voxel/npc/asp/male/tail_front.vox
new file mode 100644
index 0000000000..ce1a0256da
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_front.vox differ
diff --git a/assets/voxygen/voxel/npc/asp/male/tail_rear.vox b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox
new file mode 100644
index 0000000000..ad2381b649
Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox differ
diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron
index f87de2544b..dd473af981 100644
--- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron
+++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron
@@ -208,4 +208,56 @@
             central: ("npc.monitor.female.tail_front"),
         ),
     ),
+    (Asp, Male): (
+        upper: (
+            offset: (-5.0, -5.0, -5.0),
+            central: ("npc.asp.male.head_upper"),
+        ),
+        lower: (
+            offset: (-6.0, -3.0, -7.5),
+            central: ("npc.asp.male.head_lower"),
+        ),
+        jaw: (
+            offset: (-2.0, -4.0, -1.0),
+            central: ("npc.asp.male.jaw"),
+        ),
+        chest: (
+            offset: (-5.0, -7.5, -5.0),
+            central: ("npc.asp.male.chest"),
+        ),
+        tail_rear: (
+            offset: (-1.0, -14.0, -2.0),
+            central: ("npc.asp.male.tail_rear"),
+        ),
+		tail_front: (
+            offset: (-3.0, -14.0, -4.0),
+            central: ("npc.asp.male.tail_front"),
+        ),
+    ),
+    (Asp, Female): (
+        upper: (
+            offset: (-5.0, -5.0, -5.0),
+            central: ("npc.asp.female.head_upper"),
+        ),
+        lower: (
+            offset: (-6.0, -3.0, -7.5),
+            central: ("npc.asp.female.head_lower"),
+        ),
+        jaw: (
+            offset: (-2.0, -4.0, -1.0),
+            central: ("npc.asp.female.jaw"),
+        ),
+        chest: (
+            offset: (-5.0, -7.5, -5.0),
+            central: ("npc.asp.female.chest"),
+        ),
+        tail_rear: (
+            offset: (-1.0, -14.0, -2.0),
+            central: ("npc.asp.female.tail_rear"),
+        ),
+		tail_front: (
+            offset: (-3.0, -14.0, -4.0),
+            central: ("npc.asp.female.tail_front"),
+        ),
+    ),
 })
diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron
index e4749253f8..9f866a691b 100644
--- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron
+++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron
@@ -143,4 +143,40 @@
             lateral: ("npc.monitor.female.foot_br"),
         ),
     ),
+    (Asp, Male): (
+        front_left: (
+            offset: (-5.5, -3.5, -7.0),
+            lateral: ("npc.asp.male.foot_fl"),
+        ),
+        front_right: (
+            offset: (-5.5, -3.5, -7.0),
+            lateral: ("npc.asp.male.foot_fr"),
+        ),
+        back_left: (
+            offset: (-4.5, -2.5, -7.0),
+            lateral: ("npc.asp.male.foot_bl"),
+        ),
+        back_right: (
+            offset: (-4.5, -2.5, -7.0),
+            lateral: ("npc.asp.male.foot_br"),
+        ),
+    ),
+    (Asp, Female): (
+        front_left: (
+            offset: (-5.5, -3.5, -7.0),
+            lateral: ("npc.asp.female.foot_fl"),
+        ),
+        front_right: (
+            offset: (-5.5, -3.5, -7.0),
+            lateral: ("npc.asp.female.foot_fr"),
+        ),
+        back_left: (
+            offset: (-4.5, -2.5, -7.0),
+            lateral: ("npc.asp.female.foot_bl"),
+        ),
+        back_right: (
+            offset: (-4.5, -2.5, -7.0),
+            lateral: ("npc.asp.female.foot_br"),
+        ),
+    ),
 })
diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs
index 0f25697dcd..e745cd5ebc 100644
--- a/common/src/comp/body/quadruped_low.rs
+++ b/common/src/comp/body/quadruped_low.rs
@@ -31,6 +31,7 @@ pub enum Species {
     Alligator = 1,
     Salamander = 2,
     Monitor = 3,
+    Asp = 4,
 }
 
 /// Data representing per-species generic data.
@@ -42,6 +43,7 @@ pub struct AllSpecies<SpeciesMeta> {
     pub alligator: SpeciesMeta,
     pub salamander: SpeciesMeta,
     pub monitor: SpeciesMeta,
+    pub asp: SpeciesMeta,
 }
 
 impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@@ -54,15 +56,17 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
             Species::Alligator => &self.alligator,
             Species::Salamander => &self.salamander,
             Species::Monitor => &self.monitor,
+            Species::Asp => &self.asp,
         }
     }
 }
 
-pub const ALL_SPECIES: [Species; 4] = [
+pub const ALL_SPECIES: [Species; 5] = [
     Species::Crocodile,
     Species::Alligator,
     Species::Salamander,
     Species::Monitor,
+    Species::Asp,
 ];
 
 impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs
index e4ef0ff17d..cf6b403b44 100644
--- a/voxygen/src/anim/quadruped_low/mod.rs
+++ b/voxygen/src/anim/quadruped_low/mod.rs
@@ -131,54 +131,63 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr {
                 (Alligator, _) => (0.5, 3.25),
                 (Salamander, _) => (3.0, 1.0),
                 (Monitor, _) => (3.5, 2.0),
+                (Asp, _) => (6.0, 5.5),
             },
             head_lower: match (body.species, body.body_type) {
                 (Crocodile, _) => (8.0, 0.0),
                 (Alligator, _) => (9.0, 0.25),
                 (Salamander, _) => (10.0, 2.0),
                 (Monitor, _) => (10.0, 3.0),
+                (Asp, _) => (9.0, 2.5),
             },
             jaw: match (body.species, body.body_type) {
                 (Crocodile, _) => (0.0, -3.0),
                 (Alligator, _) => (8.5, -2.0),
                 (Salamander, _) => (2.0, -3.0),
                 (Monitor, _) => (0.0, -1.0),
+                (Asp, _) => (1.0, -2.0),
             },
             chest: match (body.species, body.body_type) {
                 (Crocodile, _) => (0.0, 5.0),
                 (Alligator, _) => (0.0, 5.0),
                 (Salamander, _) => (0.0, 5.0),
                 (Monitor, _) => (0.0, 5.0),
+                (Asp, _) => (0.0, 8.0),
             },
             tail_rear: match (body.species, body.body_type) {
                 (Crocodile, _) => (-12.5, -1.0),
                 (Alligator, _) => (-13.0, -1.0),
                 (Salamander, _) => (-9.0, 0.0),
                 (Monitor, _) => (-12.0, 0.0),
+                (Asp, _) => (-14.0, -2.0),
             },
             tail_front: match (body.species, body.body_type) {
                 (Crocodile, _) => (-6.0, 0.0),
                 (Alligator, _) => (-5.0, 0.0),
                 (Salamander, _) => (-7.5, 0.0),
                 (Monitor, _) => (-6.5, 0.0),
+                (Asp, _) => (-6.0, -2.0),
             },
             feet_f: match (body.species, body.body_type) {
                 (Crocodile, _) => (6.0, 6.0, -1.0),
                 (Alligator, _) => (6.75, 6.25, -1.0),
                 (Salamander, _) => (6.0, 6.0, -2.0),
                 (Monitor, _) => (6.0, 6.0, 0.0),
+                (Asp, _) => (6.5, 6.0, -1.0),
             },
             feet_b: match (body.species, body.body_type) {
                 (Crocodile, _) => (6.0, -6.0, -1.0),
                 (Alligator, _) => (6.5, -4.5, -1.0),
                 (Salamander, _) => (6.0, -6.0, -2.0),
                 (Monitor, _) => (6.0, -6.0, 0.0),
+                (Asp, _) => (6.5, -3.5, -1.0),
             },
             height: match (body.species, body.body_type) {
                 (Crocodile, _) => (1.0),
                 (Alligator, _) => (1.0),
                 (Salamander, _) => (1.0),
                 (Monitor, _) => (1.0),
+                (Asp, _) => (1.0),
             },
         }
     }