diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm
index 4e5af5e504..4330be33eb 100644
--- a/code/game/dna/dna2.dm
+++ b/code/game/dna/dna2.dm
@@ -92,6 +92,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
var/custom_species
var/base_species = "Human"
var/list/species_traits = list()
+ var/blood_color = "#A10808"
// VOREStation
// New stuff
@@ -171,6 +172,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
var/datum/species/custom/CS = character.species
src.species_traits = CS.traits.Copy()
src.base_species = CS.base_species
+ src.blood_color = CS.blood_color
// +1 to account for the none-of-the-above possibility
SetUIValueRange(DNA_UI_EAR_STYLE, ear_style + 1, ear_styles_list.len + 1, 1)
diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm
index 784898cd82..662a522d4a 100644
--- a/code/game/dna/dna2_helpers.dm
+++ b/code/game/dna/dna2_helpers.dm
@@ -203,7 +203,8 @@
H.custom_species = dna.custom_species
if(istype(H.species,/datum/species/custom))
var/datum/species/custom/CS = H.species
- CS.produceCopy(dna.base_species,dna.species_traits,src)
+ var/datum/species/custom/new_CS = CS.produceCopy(dna.base_species,dna.species_traits,src)
+ new_CS.blood_color = dna.blood_color
// VOREStation Edit End
diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index 2b6776e57c..bccb13f432 100644
--- a/code/modules/client/preference_setup/vore/07_traits.dm
+++ b/code/modules/client/preference_setup/vore/07_traits.dm
@@ -5,6 +5,7 @@
/datum/preferences
var/custom_species // Custom species name, can't be changed due to it having been used in savefiles already.
var/custom_base // What to base the custom species on
+ var/blood_color = "#A10808"
var/list/pos_traits = list() // What traits they've selected for their custom species
var/list/neu_traits = list()
@@ -25,6 +26,7 @@
S["pos_traits"] >> pref.pos_traits
S["neu_traits"] >> pref.neu_traits
S["neg_traits"] >> pref.neg_traits
+ S["blood_color"] >> pref.blood_color
S["traits_cheating"]>> pref.traits_cheating
S["max_traits"] >> pref.max_traits
@@ -36,6 +38,7 @@
S["pos_traits"] << pref.pos_traits
S["neu_traits"] << pref.neu_traits
S["neg_traits"] << pref.neg_traits
+ S["blood_color"] << pref.blood_color
S["traits_cheating"]<< pref.traits_cheating
S["max_traits"] << pref.max_traits
@@ -46,6 +49,8 @@
if(!pref.neu_traits) pref.neu_traits = list()
if(!pref.neg_traits) pref.neg_traits = list()
+ pref.blood_color = sanitize_hexcolor(pref.blood_color, default="#A10808")
+
if(!pref.traits_cheating)
pref.starting_trait_points = STARTING_SPECIES_POINTS
pref.max_traits = MAX_SPECIES_TRAITS
@@ -76,7 +81,10 @@
if(pref.species == "Custom Species")
var/datum/species/custom/CS = character.species
var/S = pref.custom_base ? pref.custom_base : "Human"
- CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
+ var/datum/species/custom/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
+
+ //Any additional non-trait settings can be applied here
+ new_CS.blood_color = pref.blood_color
/datum/category_item/player_setup_item/vore/traits/content(var/mob/user)
if(pref.species == "Custom Species" || pref.custom_species)
@@ -87,6 +95,10 @@
. += "Icon Base: "
. += "[pref.custom_base ? pref.custom_base : "Human"]
"
+ . += "Blood Color: "
+ . += "Set Color"
+ . += "R
"
+
var/points_left = pref.starting_trait_points
var/traits_left = pref.max_traits
for(var/T in pref.pos_traits + pref.neu_traits + pref.neg_traits)
@@ -102,21 +114,21 @@
. += "