diff --git a/baystation12.dme b/baystation12.dme
index 78f58149999..f002ef969d2 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1002,6 +1002,7 @@
#include "code\modules\mob\living\simple_animal\parrot.dm"
#include "code\modules\mob\living\simple_animal\shade.dm"
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
+#include "code\modules\mob\living\simple_animal\vox.dm"
#include "code\modules\mob\living\simple_animal\worm.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 175e622788a..4984b982839 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -1220,5 +1220,9 @@ datum/mind
mind.assigned_role = "Juggernaut"
mind.special_role = "Cultist"
+/mob/living/simple_animal/vox/armalis/mind_initialize()
+ ..()
+ mind.assigned_role = "Armalis"
+ mind.special_role = "Vox Raider"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 75ead11e4c5..e6a76d88e8e 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -792,9 +792,6 @@ datum/preferences
if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins
new_species += "Skrell"
whitelisted = 1
- if(is_alien_whitelisted(user, "Vox")) //Check for Vox and admins
- new_species += "Vox"
- whitelisted = 1
if(is_alien_whitelisted(user, "Kidan")) // Check for Kidan and admins
new_species += "Kidan"
whitelisted = 1
@@ -806,7 +803,6 @@ datum/preferences
new_species += "Tajaran"
new_species += "Unathi"
new_species += "Skrell"
- new_species += "Vox"
new_species += "Kidan"
species = input("Please select a species", "Character Generation", null) in new_species
diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm
new file mode 100644
index 00000000000..e73249f2bc8
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/vox.dm
@@ -0,0 +1,54 @@
+/mob/living/simple_animal/vox/armalis/
+
+ name = "serpentine alien"
+ real_name = "serpentine alien"
+ desc = "A one-eyed, serpentine creature, half-machine, easily nine feet from tail to beak!"
+ icon = 'icons/mob/vox.dmi'
+ icon_state = "armalis"
+ icon_living = "armalis"
+ maxHealth = 500
+ health = 500
+ response_harm = "flails ineffectually at the"
+ harm_intent_damage = 0
+ melee_damage_lower = 30
+ melee_damage_upper = 40
+ attacktext = "slammed its enormous claws into"
+ speed = -1
+ wall_smash = 1
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ status_flags = 0
+
+/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if(O.force)
+ if(O.force >= 25)
+ var/damage = O.force
+ if (O.damtype == HALLOSS)
+ damage = 0
+ health -= damage
+ for(var/mob/M in viewers(src, null))
+ if ((M.client && !( M.blinded )))
+ M.show_message("\red \b [src] has been attacked with the [O] by [user]. ")
+ else
+ for(var/mob/M in viewers(src, null))
+ if ((M.client && !( M.blinded )))
+ M.show_message("\red \b The [O] bounces harmlessly off of [src]. ")
+ else
+ usr << "\red This weapon is ineffective, it does no damage."
+ for(var/mob/M in viewers(src, null))
+ if ((M.client && !( M.blinded )))
+ M.show_message("\red [user] gently taps [src] with the [O]. ")
+
+/mob/living/simple_animal/vox/armalis/verb/fire_quill(mob/target as mob in oview())
+
+ set name = "Fire quill"
+ set desc = "Fires a viciously pointed quill at a high speed."
+ set category = "Alien"
+
+ src << "\red You launch a razor-sharp quill at [target]!"
+ for(var/mob/O in oviewers())
+ if ((O.client && !( O.blinded )))
+ O << "\red [src] launches a razor-sharp quill at [target]!"
+
+ var/obj/item/weapon/arrow/quill/Q = new(loc)
+ Q.fingerprintslast = src
+ Q.throw_at(target,10,15)
\ No newline at end of file
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index f2859af519d..7f1dbc9f31a 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -349,12 +349,8 @@
if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist))
new_character.dna.mutantrace = "skrell"
new_character.skrell_talk_understand = 1
- if(client.prefs.species == "Vox")
- if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist))
- new_character.dna.mutantrace = "vox"
- new_character.vox_talk_understand = 1
if(client.prefs.species == "Kidan")
- if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist))
+ if(is_alien_whitelisted(src, "Kidan"|| !config.usealienwhitelist))
new_character.dna.mutantrace = "kidan"
new_character.kidan_talk_understand = 1
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index a0b765d8d43..2ed7f47a101 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -81,7 +81,7 @@
if (is_speaking_tajaran)
return "mrowls, \"[text]\"";
if (is_speaking_vox)
- return "chirps, \"[text]\"";
+ return "shrieks, \"[text]\"";
if (is_speaking_kidan)
return "chitters, \"[text]\"";
//Needs Virus2
diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm
index 4c5c0c0b1c2..5981ae05c49 100644
--- a/code/modules/projectiles/guns/projectile/bow.dm
+++ b/code/modules/projectiles/guns/projectile/bow.dm
@@ -13,6 +13,15 @@
/obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart..
return
+/obj/item/weapon/arrow/quill
+
+ name = "vox quill"
+ desc = "A wickedly barbed quill from some bizarre animal."
+ icon = 'icons/mob/vox.dmi'
+ icon_state = "quill"
+ item_state = "quill"
+ throwforce = 15
+
/obj/item/weapon/arrow/rod
name = "metal rod"
diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi
new file mode 100644
index 00000000000..6f0172bba70
Binary files /dev/null and b/icons/mob/vox.dmi differ