diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index 2c22234d68..71ee3a9a45 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(mannequins)
var/list/paths
//Hair - Initialise all /datum/sprite_accessory/hair into an list indexed by hair-style name
- paths = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
+ paths = subtypesof(/datum/sprite_accessory/hair)
for(var/path in paths)
var/datum/sprite_accessory/hair/H = new path()
hair_styles_list[H.name] = H
@@ -133,7 +133,7 @@ GLOBAL_LIST_EMPTY(mannequins)
hair_styles_female_list += H.name
//Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name
- paths = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair
+ paths = subtypesof(/datum/sprite_accessory/facial_hair)
for(var/path in paths)
var/datum/sprite_accessory/facial_hair/H = new path()
facial_hair_styles_list[H.name] = H
@@ -145,27 +145,27 @@ GLOBAL_LIST_EMPTY(mannequins)
facial_hair_styles_female_list += H.name
//Body markings - Initialise all /datum/sprite_accessory/marking into an list indexed by marking name
- paths = typesof(/datum/sprite_accessory/marking) - /datum/sprite_accessory/marking
+ paths = subtypesof(/datum/sprite_accessory/marking)
for(var/path in paths)
var/datum/sprite_accessory/marking/M = new path()
body_marking_styles_list[M.name] = M
//Surgery Steps - Initialize all /datum/surgery_step into a list
- paths = typesof(/datum/surgery_step)-/datum/surgery_step
+ paths = subtypesof(/datum/surgery_step)
for(var/T in paths)
var/datum/surgery_step/S = new T
surgery_steps += S
sort_surgeries()
//List of job. I can't believe this was calculated multiple times per tick!
- paths = typesof(/datum/job)-/datum/job
+ paths = subtypesof(/datum/job)
paths -= exclude_jobs
for(var/T in paths)
var/datum/job/J = new T
joblist[J.title] = J
//Languages
- paths = typesof(/datum/language)-/datum/language
+ paths = subtypesof(/datum/language)
for(var/T in paths)
var/datum/language/L = new T
if (isnull(GLOB.all_languages[L.name]))
@@ -189,7 +189,7 @@ GLOBAL_LIST_EMPTY(mannequins)
//Species
var/rkey = 0
- paths = typesof(/datum/species)
+ paths = subtypesof(/datum/species)
for(var/T in paths)
rkey++
@@ -214,37 +214,37 @@ GLOBAL_LIST_EMPTY(mannequins)
GLOB.whitelisted_species += S.name
//Ores
- paths = typesof(/ore)-/ore
+ paths = subtypesof(/ore)
for(var/oretype in paths)
var/ore/OD = new oretype()
GLOB.ore_data[OD.name] = OD
- paths = typesof(/datum/alloy)-/datum/alloy
+ paths = subtypesof(/datum/alloy)
for(var/alloytype in paths)
GLOB.alloy_data += new alloytype()
//Closet appearances
GLOB.closet_appearances = decls_repository.get_decls_of_type(/decl/closet_appearance)
- paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
+ paths = subtypesof(/datum/sprite_accessory/ears)
for(var/path in paths)
var/obj/item/clothing/head/instance = new path()
ear_styles_list[path] = instance
// Custom Tails
- paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
+ paths = subtypesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail/taur
for(var/path in paths)
var/datum/sprite_accessory/tail/instance = new path()
tail_styles_list[path] = instance
// Custom Wings
- paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
+ paths = subtypesof(/datum/sprite_accessory/wing)
for(var/path in paths)
var/datum/sprite_accessory/wing/instance = new path()
wing_styles_list[path] = instance
// VOREStation Add - Vore Modes!
- paths = typesof(/datum/digest_mode)
+ paths = subtypesof(/datum/digest_mode)
for(var/T in paths)
var/datum/digest_mode/DM = new T
GLOB.digest_modes[DM.id] = DM
@@ -253,7 +253,7 @@ GLOBAL_LIST_EMPTY(mannequins)
/*
// Custom species traits
- paths = typesof(/datum/trait) - /datum/trait
+ paths = subtypesof(/datum/trait) - /datum/trait
for(var/path in paths)
var/datum/trait/instance = new path()
if(!instance.name)
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 5aea758532..e83ffae4d2 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -133,6 +133,7 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster)
light_power = 0.9
light_range = 2
light_color = "#00ff00"
+ vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/isbroken = 0 //1 if someone banged it with something heavy
var/ispowered = 1 //starts powered, changes with power_change()
//var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored.
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index cfeb5dcc84..03a8ab1665 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -33,6 +33,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
blocks_emissive = NONE
light_power = 0.25
light_color = "#00ff00"
+ vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
var/list/message_log = list() //List of all messages
var/departmentType = 0 //Bitflag. Zero is reply-only. Map currently uses raw numbers instead of defines.
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 403bb39f15..a2d1f2b374 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -248,7 +248,7 @@
src.throwing = 0
if (src.loc == user)
- if(!user.unEquip(src, null, src))
+ if(!user.unEquip(src))
return
else
if(isliving(src.loc))
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 6a770cd44d..5160965788 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -11,6 +11,7 @@
light_color = "#00ff00"
light_power = 0.25
blocks_emissive = NONE
+ vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
var/circuit = /obj/item/weapon/circuitboard/intercom
var/number = 0
var/wiresexposed = 0
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index f7b8423e18..51517f5b5f 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1278,7 +1278,7 @@
var/client/C = usr.client
if(!isobserver(usr)) C.admin_ghost()
sleep(2)
- C.jumptomob(M)
+ C.do_jumptomob(M)
else if(href_list["adminplayerobservefollow"])
if(!check_rights(R_MOD|R_ADMIN|R_SERVER)) //VOREStation Edit
diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm
index 185d911b07..fc32742583 100644
--- a/code/modules/admin/verbs/adminjump.dm
+++ b/code/modules/admin/verbs/adminjump.dm
@@ -39,6 +39,7 @@
tgui_alert_async(usr, "Admin jumping disabled")
return
+/// Verb wrapper around do_jumptomob()
/client/proc/jumptomob()
set category = "Admin"
set name = "Jump to Mob"
@@ -47,24 +48,30 @@
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
- if(config.allow_admin_jump)
- var/mob/M = tgui_input_list(usr, "Pick a mob:", "Jump to Mob", mob_list)
- if(!M)
- return
+ var/mob/M = tgui_input_list(usr, "Pick a mob:", "Jump to Mob", mob_list)
+ if(!M) // Cancelled
+ return
+ do_jumptomob(M)
+
+/// Performs the jumps
+/client/proc/do_jumptomob(var/mob/M)
+ if(!config.allow_admin_jump)
+ tgui_alert_async(usr, "Admin jumping disabled")
+ return
+ if(!M)
+ return
+
+ var/mob/A = src.mob // Impossible to be unset, enforced by byond
+ var/turf/T = get_turf(M)
+ if(isturf(T))
+ A.on_mob_jump()
+ A.forceMove(T)
log_admin("[key_name(usr)] jumped to [key_name(M)]")
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
- if(src.mob)
- var/mob/A = src.mob
- var/turf/T = get_turf(M)
- if(T && isturf(T))
- feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- A.on_mob_jump()
- A.forceMove(T)
- else
- to_chat(A, "This mob is not located in the game world.")
+ feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
- tgui_alert_async(usr, "Admin jumping disabled")
-
+ to_chat(A, "This mob is not located in the game world.")
+
/client/proc/jumptocoord(tx as num, ty as num, tz as num)
set category = "Admin"
set name = "Jump to Coordinate"
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 67eab03afa..08871d12b7 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -134,7 +134,7 @@
if(href_list["observe"])
var/alert_time = ticker?.current_state <= GAME_STATE_SETTING_UP ? 1 : round(config.respawn_time/10/60)
- if(tgui_alert(src,"Are you sure you wish to observe? You will have to wait up to [alert_time] minute\s before being able to spawn into the game!","Player Setup",list("Yes","No")) == "Yes")
+ if(tgui_alert(src,"Are you sure you wish to observe? If you do, make sure to not use any knowledge gained from observing if you decide to join later.","Player Setup",list("Yes","No")) == "Yes")
if(!client) return 1
//Make a new mannequin quickly, and allow the observer to take the appearance
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 1e7184f965..5427ac1a32 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -23,7 +23,7 @@
var/icon_state // the icon_state of the accessory
var/preview_state // a custom preview state for whatever reason
- var/name // the preview name of the accessory
+ var/name = "ERROR - FIXME" // the preview name of the accessory
// Determines if the accessory will be skipped or included in random hair generations
var/gender = NEUTER
diff --git a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm
index 52d1d1923b..742480858c 100644
--- a/code/modules/mob/new_player/sprite_accessories_extra_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_extra_vr.dm
@@ -5,732 +5,849 @@
color_blend_mode = ICON_ADD
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
-/datum/sprite_accessory/marking/vr
- icon = 'icons/mob/human_races/markings_vr.dmi'
-
-/datum/sprite_accessory/marking/vr/vulp_belly
+/datum/sprite_accessory/marking/vr_vulp_belly
name = "belly fur (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_belly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/vulp_fullbelly
+/datum/sprite_accessory/marking/vr_vulp_fullbelly
name = "full belly fur (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_fullbelly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/vulp_crest
+/datum/sprite_accessory/marking/vr_vulp_crest
name = "belly crest (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_crest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/vulp_nose
+/datum/sprite_accessory/marking/vr_vulp_nose
name = "nose (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/vulp_short_nose
+/datum/sprite_accessory/marking/vr_vulp_short_nose
name = "nose, short (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_short_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/snoutstripe
+/datum/sprite_accessory/marking/vr_snoutstripe
name = "snout stripe (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "snoutstripe"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/vulp_face
+/datum/sprite_accessory/marking/vr_vulp_face
name = "face (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_face"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/vulp_facealt
+/datum/sprite_accessory/marking/vr_vulp_facealt
name = "face, alt. (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_facealt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/vulp_earsface
+/datum/sprite_accessory/marking/vr_vulp_earsface
name = "ears and face (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_earsface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/vulp_all
+/datum/sprite_accessory/marking/vr_vulp_all
name = "all head highlights (Vulp)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vulp_all"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/sergal_full
+/datum/sprite_accessory/marking/vr_sergal_full
name = "Sergal Markings"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sergal_full"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
species_allowed = list("Sergal")
-/datum/sprite_accessory/marking/vr/sergal_full_female
+/datum/sprite_accessory/marking/vr_sergal_full_female
name = "Sergal Markings (Female)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sergal_full_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
species_allowed = list("Sergal")
-/datum/sprite_accessory/marking/vr/monoeye
+/datum/sprite_accessory/marking/vr_monoeye
name = "Monoeye"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "monoeye"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/spidereyes
+/datum/sprite_accessory/marking/vr_spidereyes
name = "Spider Eyes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "spidereyes"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/sergaleyes
+/datum/sprite_accessory/marking/vr_sergaleyes
name = "Sergal Eyes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_sergal"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/closedeyes
+/datum/sprite_accessory/marking/vr_closedeyes
name = "Closed Eyes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_closed"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/brows
+/datum/sprite_accessory/marking/vr_brows
name = "Eyebrows"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "brows"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/nevrean_female
+/datum/sprite_accessory/marking/vr_nevrean_female
name = "Female Nevrean beak"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "nevrean_f"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
gender = FEMALE
-/datum/sprite_accessory/marking/vr/nevrean_male
+/datum/sprite_accessory/marking/vr_nevrean_male
name = "Male Nevrean beak"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "nevrean_m"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
gender = MALE
-/datum/sprite_accessory/marking/vr/spots
+/datum/sprite_accessory/marking/vr_spots
name = "Spots"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "spots"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
-/datum/sprite_accessory/marking/vr/shaggy_mane
+/datum/sprite_accessory/marking/vr_shaggy_mane
name = "Shaggy mane/feathers"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shaggy"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
-/datum/sprite_accessory/marking/vr/jagged_teeth
+/datum/sprite_accessory/marking/vr_jagged_teeth
name = "Jagged teeth"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "jagged"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/blank_face
+/datum/sprite_accessory/marking/vr_blank_face
name = "Blank round face (use with monster mouth)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "blankface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/monster_mouth
+/datum/sprite_accessory/marking/vr_monster_mouth
name = "Monster mouth"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "monster"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/saber_teeth
+/datum/sprite_accessory/marking/vr_saber_teeth
name = "Saber teeth"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "saber"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/fangs
+/datum/sprite_accessory/marking/vr_fangs
name = "Fangs"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "fangs"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/tusks
+/datum/sprite_accessory/marking/vr_tusks
name = "Tusks"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tusks"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/otie_face
+/datum/sprite_accessory/marking/vr_otie_face
name = "Otie face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otieface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/otie_nose
+/datum/sprite_accessory/marking/vr_otie_nose
name = "Otie nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otie_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/otienose_lite
+/datum/sprite_accessory/marking/vr_otienose_lite
name = "Short otie nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otienose_lite"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/backstripes
+/datum/sprite_accessory/marking/vr_backstripes
name = "Back stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otiestripes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/belly_butt
+/datum/sprite_accessory/marking/vr_belly_butt
name = "Belly and butt"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bellyandbutt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO)
-/datum/sprite_accessory/marking/vr/fingers_toes
+/datum/sprite_accessory/marking/vr_fingers_toes
name = "Fingers and toes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "fingerstoes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/otie_socks
+/datum/sprite_accessory/marking/vr_otie_socks
name = "Fingerless socks"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otiesocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/corvid_beak
+/datum/sprite_accessory/marking/vr_corvid_beak
name = "Corvid beak"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "corvidbeak"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/corvid_belly
+/datum/sprite_accessory/marking/vr_corvid_belly
name = "Corvid belly"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "corvidbelly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/cow_body
+/datum/sprite_accessory/marking/vr_cow_body
name = "Cow markings"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "cowbody"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/cow_nose
+/datum/sprite_accessory/marking/vr_cow_nose
name = "Cow nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "cownose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/zmask
+/datum/sprite_accessory/marking/vr_zmask
name = "Eye mask"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zmask"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/zbody
+/datum/sprite_accessory/marking/vr_zbody
name = "Thick jagged stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zbody"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
-/datum/sprite_accessory/marking/vr/znose
+/datum/sprite_accessory/marking/vr_znose
name = "Jagged snout"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "znose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/otter_nose
+/datum/sprite_accessory/marking/vr_otter_nose
name = "Otter nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otternose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/otter_face
+/datum/sprite_accessory/marking/vr_otter_face
name = "Otter face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "otterface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/deer_face
+/datum/sprite_accessory/marking/vr_deer_face
name = "Deer face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "deerface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/sharkface
+/datum/sprite_accessory/marking/vr_sharkface
name = "Akula snout"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "sharkface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/sheppy_face
+/datum/sprite_accessory/marking/vr_sheppy_face
name = "Shepherd snout"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shepface"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/sheppy_back
+/datum/sprite_accessory/marking/vr_sheppy_back
name = "Shepherd back"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shepback"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/zorren_belly_male
+/datum/sprite_accessory/marking/vr_zorren_belly_male
name = "Zorren Male Torso"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_belly"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/zorren_belly_female
+/datum/sprite_accessory/marking/vr_zorren_belly_female
name = "Zorren Female Torso"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_belly_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/zorren_back_patch
+/datum/sprite_accessory/marking/vr_zorren_back_patch
name = "Zorren Back Patch"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_backpatch"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
-/datum/sprite_accessory/marking/vr/zorren_face_male
+/datum/sprite_accessory/marking/vr_zorren_face_male
name = "Zorren Male Face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_face"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = MALE
-/datum/sprite_accessory/marking/vr/zorren_face_female
+/datum/sprite_accessory/marking/vr_zorren_face_female
name = "Zorren Female Face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_face_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = FEMALE
-/datum/sprite_accessory/marking/vr/zorren_muzzle_male
+/datum/sprite_accessory/marking/vr_zorren_muzzle_male
name = "Zorren Male Muzzle"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_muzzle"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = MALE
-/datum/sprite_accessory/marking/vr/zorren_muzzle_female
+/datum/sprite_accessory/marking/vr_zorren_muzzle_female
name = "Zorren Female Muzzle"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_muzzle_female"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
gender = FEMALE
-/datum/sprite_accessory/marking/vr/zorren_socks
+/datum/sprite_accessory/marking/vr_zorren_socks
name = "Zorren Socks"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_socks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/zorren_longsocks
+/datum/sprite_accessory/marking/vr_zorren_longsocks
name = "Zorren Longsocks"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "zorren_longsocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/tesh_feathers
+/datum/sprite_accessory/marking/vr_tesh_feathers
name = "Teshari Feathers"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-feathers"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/harpy_feathers
+/datum/sprite_accessory/marking/vr_harpy_feathers
name = "Rapala leg Feather"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "harpy-feathers"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG)
-/datum/sprite_accessory/marking/vr/harpy_legs
+/datum/sprite_accessory/marking/vr_harpy_legs
name = "Rapala leg coloring"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "harpy-leg"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
-/datum/sprite_accessory/marking/vr/chooves
+/datum/sprite_accessory/marking/vr_chooves
name = "Cloven hooves"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "chooves"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT)
-/datum/sprite_accessory/marking/vr/body_tone
+/datum/sprite_accessory/marking/vr_body_tone
name = "Body toning (for emergency contrast loss)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "btone"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
-/datum/sprite_accessory/marking/vr/gloss
+/datum/sprite_accessory/marking/vr_gloss
name = "Full body gloss"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "gloss"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/eboop_panels
+/datum/sprite_accessory/marking/vr_eboop_panels
name = "Eggnerd FBP panels"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eboop"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/osocks_rarm
+/datum/sprite_accessory/marking/vr_osocks_rarm
name = "Modular Longsock (right arm)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/osocks_larm
+/datum/sprite_accessory/marking/vr_osocks_larm
name = "Modular Longsock (left arm)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_ARM,BP_L_HAND)
-/datum/sprite_accessory/marking/vr/osocks_rleg
+/datum/sprite_accessory/marking/vr_osocks_rleg
name = "Modular Longsock (right leg)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_FOOT,BP_R_LEG)
-/datum/sprite_accessory/marking/vr/osocks_lleg
+/datum/sprite_accessory/marking/vr_osocks_lleg
name = "Modular Longsock (left leg)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "osocks"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_L_LEG)
-/datum/sprite_accessory/marking/vr/animeeyesinner
+/datum/sprite_accessory/marking/vr_animeeyesinner
name = "Anime Eyes Inner"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "animeeyesinner"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/animeeyesouter
+/datum/sprite_accessory/marking/vr_animeeyesouter
name = "Anime Eyes Outer"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "animeeyesouter"
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/panda_eye_marks
+/datum/sprite_accessory/marking/vr_panda_eye_marks
name = "Panda Eye Markings"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "eyes_panda"
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
-/datum/sprite_accessory/marking/vr/catwomantorso
+/datum/sprite_accessory/marking/vr_catwomantorso
name = "Catwoman chest stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanchest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
-/datum/sprite_accessory/marking/vr/catwomangroin
+/datum/sprite_accessory/marking/vr_catwomangroin
name = "Catwoman groin stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomangroin"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN)
-/datum/sprite_accessory/marking/vr/catwoman_rleg
+/datum/sprite_accessory/marking/vr_catwoman_rleg
name = "Catwoman right leg stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanright"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
-/datum/sprite_accessory/marking/vr/catwoman_lleg
+/datum/sprite_accessory/marking/vr_catwoman_lleg
name = "Catwoman left leg stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "catwomanleft"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
-/datum/sprite_accessory/marking/vr/teshi_small_feathers
+/datum/sprite_accessory/marking/vr_teshi_small_feathers
name = "Teshari small wingfeathers"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "teshi_sf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
-/datum/sprite_accessory/marking/vr/spirit_lights
+/datum/sprite_accessory/marking/vr_spirit_lights
name = "Ward - Spirit FBP Lights"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/spirit_lights_body
+/datum/sprite_accessory/marking/vr_spirit_lights_body
name = "Ward - Spirit FBP Lights (body)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO)
-/datum/sprite_accessory/marking/vr/spirit_lights_head
+/datum/sprite_accessory/marking/vr_spirit_lights_head
name = "Ward - Spirit FBP Lights (head)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "lights"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/spirit_panels
+/datum/sprite_accessory/marking/vr_spirit_panels
name = "Ward - Spirit FBP Panels"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/spirit_panels_body
+/datum/sprite_accessory/marking/vr_spirit_panels_body
name = "Ward - Spirit FBP Panels (body)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
-/datum/sprite_accessory/marking/vr/spirit_panels_head
+/datum/sprite_accessory/marking/vr_spirit_panels_head
name = "Ward - Spirit FBP Panels (head)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "panels"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/tentacle_head
+/datum/sprite_accessory/marking/vr_tentacle_head
name = "Squid Head"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tentaclehead"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/tentacle_mouth
+/datum/sprite_accessory/marking/vr_tentacle_mouth
name = "Tentacle Mouth"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tentaclemouth"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/rosette
+/datum/sprite_accessory/marking/vr_rosette
name = "Rosettes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "rosette"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
-/datum/sprite_accessory/marking/vr/werewolf_nose
+/datum/sprite_accessory/marking/vr_werewolf_nose
name = "Werewolf nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf_nose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_WEREBEAST)
-/datum/sprite_accessory/marking/vr/werewolf_face
+/datum/sprite_accessory/marking/vr_werewolf_face
name = "Werewolf face"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_WEREBEAST)
-/datum/sprite_accessory/marking/vr/werewolf_belly
+/datum/sprite_accessory/marking/vr_werewolf_belly
name = "Werewolf belly"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN,BP_TORSO)
species_allowed = list(SPECIES_WEREBEAST)
-/datum/sprite_accessory/marking/vr/werewolf_socks
+/datum/sprite_accessory/marking/vr_werewolf_socks
name = "Werewolf socks"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
icon_state = "werewolf"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
species_allowed = list(SPECIES_WEREBEAST)
-/datum/sprite_accessory/marking/vr/shadekin_snoot
+/datum/sprite_accessory/marking/vr_shadekin_snoot
name = "Shadekin Snoot"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "shadekin-snoot"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
-/datum/sprite_accessory/marking/vr/taj_nose_alt
+/datum/sprite_accessory/marking/vr_taj_nose_alt
name = "Nose Color, alt. (Taj)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "taj_nosealt"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/talons
+/datum/sprite_accessory/marking/vr_talons
name = "Talons"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "talons"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
-/datum/sprite_accessory/marking/vr/claws
+/datum/sprite_accessory/marking/vr_claws
name = "Claws"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "claws"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/equine_snout //Why the long face? Works best with sergal bodytype.
+/datum/sprite_accessory/marking/vr_equine_snout //Why the long face? Works best with sergal bodytype.
name = "Equine Snout"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "donkey"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/equine_nose
+/datum/sprite_accessory/marking/vr_equine_nose
name = "Equine Nose"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "dnose"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/bee_stripes
+/datum/sprite_accessory/marking/vr_bee_stripes
name = "bee stripes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "beestripes"
body_parts = list(BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/vas_toes
+/datum/sprite_accessory/marking/vr_vas_toes
name = "Bug Paws (Vasilissan)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "vas_toes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT)
//CitRP stuff
-/datum/sprite_accessory/marking/vr/vox_alt
+/datum/sprite_accessory/marking/vr_vox_alt
name = "Vox Alternate"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bay_vox"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_VOX)
-/datum/sprite_accessory/marking/vr/vox_alt_eyes
+/datum/sprite_accessory/marking/vr_vox_alt_eyes
name = "Alternate Vox Eyes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "bay_vox_eyes"
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_VOX)
-/datum/sprite_accessory/marking/vr/c_beast_body
+/datum/sprite_accessory/marking/vr_c_beast_body
name = "Cyber Body"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_body"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
-/datum/sprite_accessory/marking/vr/c_beast_plating
+/datum/sprite_accessory/marking/vr_c_beast_plating
name = "Cyber Plating (Use w/ Cyber Body)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_plating"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM)
-/datum/sprite_accessory/marking/vr/c_beast_band
+/datum/sprite_accessory/marking/vr_c_beast_band
name = "Cyber Band (Use w/ Cybertech head)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_band"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/c_beast_cheek_a
+/datum/sprite_accessory/marking/vr_c_beast_cheek_a
name = "Cyber Beast Cheeks A (Use A, B and C)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_a"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/c_beast_cheek_b
+/datum/sprite_accessory/marking/vr_c_beast_cheek_b
name = "Cyber Beast Cheeks B (Use A, B and C)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_b"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/c_beast_cheek_c
+/datum/sprite_accessory/marking/vr_c_beast_cheek_c
name = "Cyber Beast Cheeks C (Use A, B and C)"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "c_beast_c"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/teshari_large_eyes
+/datum/sprite_accessory/marking/vr_teshari_large_eyes
name = "Teshari large eyes"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "teshlarge_eyes"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
-/datum/sprite_accessory/marking/vr/teshari_coat
+/datum/sprite_accessory/marking/vr_teshari_coat
name = "Teshari coat"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh_coat"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
-/datum/sprite_accessory/marking/vr/teshari_pattern_male
+/datum/sprite_accessory/marking/vr_teshari_pattern_male
name = "Teshari male pattern"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-pattern-male"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
-/datum/sprite_accessory/marking/vr/teshari_pattern_female
+/datum/sprite_accessory/marking/vr_teshari_pattern_female
name = "Teshari female pattern"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "tesh-pattern-fem"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
species_allowed = list(SPECIES_TESHARI)
-/datum/sprite_accessory/marking/vr/voxscales
+/datum/sprite_accessory/marking/vr_voxscales
name = "Vox Scales"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxscales"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_HEAD)
-/datum/sprite_accessory/marking/vr/voxclaws
+/datum/sprite_accessory/marking/vr_voxclaws
name = "Vox Claws"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxclaws"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
-/datum/sprite_accessory/marking/vr/voxbeak
+/datum/sprite_accessory/marking/vr_voxbeak
name = "Vox Beak"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "Voxscales"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathihood
+/datum/sprite_accessory/marking/vr_unathihood
name = "Cobra Hood"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathihood"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathidoublehorns
+/datum/sprite_accessory/marking/vr_unathidoublehorns
name = "Double Unathi Horns"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathidoublehorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathihorns
+/datum/sprite_accessory/marking/vr_unathihorns
name = "Unathi Horns"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathihorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathiramhorns
+/datum/sprite_accessory/marking/vr_unathiramhorns
name = "Unathi Ram Horns"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathiramhorns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathishortspines
+/datum/sprite_accessory/marking/vr_unathishortspines
name = "Unathi Short Spines"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathishortspines"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathilongspines
+/datum/sprite_accessory/marking/vr_unathilongspines
name = "Unathi Long Spines"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathilongspines"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathishortfrills
+/datum/sprite_accessory/marking/vr_unathishortfrills
name = "Unathi Short Frills"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathishortfrills"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/unathilongfrills
+/datum/sprite_accessory/marking/vr_unathilongfrills
name = "Unathi Long Frills"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "unathilongfrills"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
-/datum/sprite_accessory/marking/vr/thunderthighs
+/datum/sprite_accessory/marking/vr_thunderthighs
name = "Boosted Thighs"
+ icon = 'icons/mob/human_races/markings_vr.dmi'
icon_state = "thunderthighs"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_R_LEG)
\ No newline at end of file
diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm
index adc3f16e60..04c1fcfba5 100644
--- a/code/modules/mob/new_player/sprite_accessories_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_vr.dm
@@ -245,60 +245,79 @@
//Teshari things
/datum/sprite_accessory/hair/teshari
+ name = "Teshari Default"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_altdefault
+ name = "Teshari Default (Alt)"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_tight
+ name = "Teshari Tight"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_excited
+ name = "Teshari Excited"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_spike
+ name = "Teshari Spike"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_long
+ name = "Teshari Long"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_burst
+ name = "Teshari Burst"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_shortburst
+ name = "Teshari Shortburst"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mohawk
+ name = "Teshari Mohawk"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_pointy
+ name = "Teshari Pointy"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_upright
+ name = "Teshari Upright"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mane
+ name = "Teshari Mane"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_droopy
+ name = "Teshari Droopy"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_mushroom
+ name = "Teshari Mushroom"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_twies
+ name = "Teshari Twies"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_backstrafe
+ name = "Teshari Backstrafe"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_longway
+ name = "Teshari Longway"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_tree
+ name = "Teshari Tree"
icon_add = 'icons/mob/human_face_vr_add.dmi'
/datum/sprite_accessory/hair/teshari_fluffymohawk
+ name = "Teshari Fluffy Mohawk"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
diff --git a/code/modules/tgui/tgui_input_list.dm b/code/modules/tgui/tgui_input_list.dm
index 778c9f0e0c..8b1af90196 100644
--- a/code/modules/tgui/tgui_input_list.dm
+++ b/code/modules/tgui/tgui_input_list.dm
@@ -99,6 +99,10 @@
var/static/regex/whitelistedWords = regex(@{"([^\u0020-\u8000]+)"})
for(var/i in buttons)
+ if(isnull(i))
+ stack_trace("Null in a tgui_input_list() buttons")
+ continue
+
var/string_key = whitelistedWords.Replace("[i]", "")
//avoids duplicated keys E.g: when areas have the same name
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index f56f2beb41..bae46a47da 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ