diff --git a/code/__defines/species_languages_vr.dm b/code/__defines/species_languages_vr.dm
index 224478646db..1004c1e22c1 100644
--- a/code/__defines/species_languages_vr.dm
+++ b/code/__defines/species_languages_vr.dm
@@ -1,3 +1,5 @@
+#define SPECIES_WHITELIST_SELECTABLE 0x20 // Can select and customize, but not join as
+
#define LANGUAGE_BIRDSONG "Birdsong"
#define LANGUAGE_SAGARU "Sagaru"
#define LANGUAGE_CANILUNZT "Canilunzt"
diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index a3687b9b99c..efe8590d162 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -186,7 +186,7 @@ var/global/list/string_slot_flags = list(
if(!(S.spawn_flags & SPECIES_IS_RESTRICTED))
playable_species += S.name
- if(S.spawn_flags & SPECIES_IS_WHITELISTED)
+ if((S.spawn_flags & SPECIES_IS_WHITELISTED) || (S.spawn_flags & SPECIES_WHITELIST_SELECTABLE)) //VOREStation Edit
whitelisted_species += S.name
//Posters
diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index ff708ad3776..7d894894741 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -467,7 +467,7 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
if(species_name in blacklisted_icons)
continue
var/datum/species/S = all_species[species_name]
- if(S.spawn_flags & SPECIES_IS_WHITELISTED)
+ if((S.spawn_flags & SPECIES_IS_WHITELISTED) || (S.spawn_flags & SPECIES_WHITELIST_SELECTABLE))
continue
custom_species_bases += species_name
diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm
index 9a13e066a54..1270490517e 100644
--- a/code/game/jobs/whitelist.dm
+++ b/code/game/jobs/whitelist.dm
@@ -40,7 +40,7 @@ var/list/whitelist = list()
return 0
//The species isn't even whitelisted
- if(!(species.spawn_flags & SPECIES_IS_WHITELISTED))
+ if(!(species.spawn_flags & SPECIES_IS_WHITELISTED) && !(species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)) //VOREStation Edit
return 1
//If we have a loaded file, search it
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index cda61be1b31..841838dc6a4 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -825,7 +825,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
dat += "Unheard of on human stations."
else
dat += "May be present on human stations."
- if(current_species.spawn_flags & SPECIES_IS_WHITELISTED)
+ if((current_species.spawn_flags & SPECIES_IS_WHITELISTED) || (current_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)) //VOREStation Edit
dat += "Whitelist restricted."
if(!current_species.has_organ[O_HEART])
dat += "Does not have a circulatory system."
@@ -853,7 +853,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
var/restricted = 0
- if(!(current_species.spawn_flags & SPECIES_CAN_JOIN))
+
+ //VOREStation Addition begin
+ if(current_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)
+ restricted = 3
+ //VOREStation Addition end
+ else if(!(current_species.spawn_flags & SPECIES_CAN_JOIN)) //VOREStation Edit
restricted = 2
else if(!is_alien_whitelisted(preference_mob(),current_species))
restricted = 1
@@ -863,6 +868,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
dat += "You cannot play as this species.If you wish to be whitelisted, you can make an application post on the forums."
else if(restricted == 2)
dat += "You cannot play as this species.This species is not available for play as a station race.."
+ //VOREStation Addition begin
+ else if(restricted == 3)
+ dat += "You cannot play as this species.You can however select it and set it up in case admin approves spawning you in."
+ restricted = 0
+ //VOREStation Addition end
if(!restricted || check_rights(R_ADMIN, 0))
dat += "\[select\]"
dat += "