diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index f75dd450c0..4cd3d342db 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -1,309 +1,309 @@
-/obj/machinery/atmospherics/unary/vent_scrubber
- icon = 'icons/atmos/vent_scrubber.dmi'
- icon_state = "map_scrubber_off"
- pipe_state = "scrubber"
-
- name = "Air Scrubber"
- desc = "Has a valve and pump attached to it"
- use_power = USE_POWER_OFF
- idle_power_usage = 150 //internal circuitry, friction losses and stuff
- power_rating = 7500 //7500 W ~ 10 HP
-
- connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SCRUBBER //connects to regular and scrubber pipes
-
- level = 1
-
- var/area/initial_loc
- var/id_tag = null
- var/frequency = 1439
- var/datum/radio_frequency/radio_connection
- var/advcontrol = 0 //YW EDIT: aac
-
- var/hibernate = 0 //Do we even process?
- var/scrubbing = 1 //0 = siphoning, 1 = scrubbing
- var/list/scrubbing_gas = list("carbon_dioxide")
-
- var/panic = 0 //is this scrubber panicked?
-
- var/area_uid
- var/radio_filter_out
- var/radio_filter_in
-
-/obj/machinery/atmospherics/unary/vent_scrubber/on
- use_power = USE_POWER_IDLE
- icon_state = "map_scrubber_on"
-
-/obj/machinery/atmospherics/unary/vent_scrubber/New()
- ..()
- air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
-
- icon = null
- initial_loc = get_area(loc)
- area_uid = "\ref[initial_loc]"
- if (!id_tag)
- assign_uid()
- id_tag = num2text(uid)
-
-/obj/machinery/atmospherics/unary/vent_scrubber/Destroy()
- unregister_radio(src, frequency)
- if(initial_loc)
- initial_loc.air_scrub_info -= id_tag
- initial_loc.air_scrub_names -= id_tag
- return ..()
-
-/obj/machinery/atmospherics/unary/vent_scrubber/update_icon(var/safety = 0)
- if(!check_icon_cache())
- return
-
- cut_overlays()
-
- var/scrubber_icon = "scrubber"
-
- var/turf/T = get_turf(src)
- if(!istype(T))
- return
-
- if(!powered())
- scrubber_icon += "off"
- else
- scrubber_icon += "[use_power ? "[scrubbing ? "on" : "in"]" : "off"]"
-
- add_overlay(icon_manager.get_atmos_icon("device", , , scrubber_icon))
-
-/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays()
- if(..())
- underlays.Cut()
- var/turf/T = get_turf(src)
- if(!istype(T))
- return
- if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
- return
- else
- if(node)
- add_underlay(T, node, dir, node.icon_connect_type)
- else
- add_underlay(T,, dir)
-
-/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
- radio_controller.remove_object(src, frequency)
- frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, radio_filter_in)
-
-/obj/machinery/atmospherics/unary/vent_scrubber/proc/broadcast_status()
- if(!radio_connection)
- return 0
-
- var/datum/signal/signal = new
- signal.transmission_method = TRANSMISSION_RADIO //radio signal
- signal.source = src
- signal.data = list(
- "area" = area_uid,
- "tag" = id_tag,
- "device" = "AScr",
- "timestamp" = world.time,
- "power" = use_power,
- "scrubbing" = scrubbing,
- "panic" = panic,
- "filter_o2" = ("oxygen" in scrubbing_gas),
- "filter_n2" = ("nitrogen" in scrubbing_gas),
- "filter_co2" = ("carbon_dioxide" in scrubbing_gas),
- "filter_phoron" = ("phoron" in scrubbing_gas),
- "filter_n2o" = ("nitrous_oxide" in scrubbing_gas),
- "filter_fuel" = ("volatile_fuel" in scrubbing_gas),
- "sigtype" = "status"
- )
- if(!initial_loc.air_scrub_names[id_tag])
- var/new_name = "[initial_loc.name] Air Scrubber #[initial_loc.air_scrub_names.len+1]"
- initial_loc.air_scrub_names[id_tag] = new_name
- src.name = new_name
- initial_loc.air_scrub_info[id_tag] = signal.data
- radio_connection.post_signal(src, signal, radio_filter_out)
-
- return 1
-
-/obj/machinery/atmospherics/unary/vent_scrubber/atmos_init()
- ..()
- radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null
- radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null
- if (frequency)
- set_frequency(frequency)
- src.broadcast_status()
-
-/obj/machinery/atmospherics/unary/vent_scrubber/process()
- ..()
-
- if (hibernate)
- return 1
-
- if (!node)
- update_use_power(USE_POWER_OFF)
- //broadcast_status()
- if(!use_power || (stat & (NOPOWER|BROKEN)))
- return 0
-
- var/datum/gas_mixture/environment = loc.return_air()
-
- var/power_draw = -1
- if(scrubbing)
- //limit flow rate from turfs
- var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SCRUBBER_FLOWRATE/environment.volume) //group_multiplier gets divided out here
-
- power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, power_rating)
- else //Just siphon all air
- //limit flow rate from turfs
- var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
-
- power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating)
-
- if(scrubbing && power_draw < 0 && controller_iteration > 10) //99% of all scrubbers
- //Fucking hibernate because you ain't doing shit.
- hibernate = 1
- spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly
- hibernate = 0
-
- if (power_draw >= 0)
- last_power_draw = power_draw
- use_power(power_draw)
-
- if(network)
- network.update = 1
-
- return 1
-
-/obj/machinery/atmospherics/unary/vent_scrubber/hide(var/i) //to make the little pipe section invisible, the icon changes.
- update_icon()
- update_underlays()
-
-/obj/machinery/atmospherics/unary/vent_scrubber/receive_signal(datum/signal/signal)
- if(stat & (NOPOWER|BROKEN))
- return
- if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
- return 0
-
- if(signal.data["power"] != null)
- update_use_power(text2num(signal.data["power"]))
- if(signal.data["power_toggle"] != null)
- update_use_power(!use_power)
-
- if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing
- panic = text2num(signal.data["panic_siphon"])
- if(panic)
- update_use_power(USE_POWER_IDLE)
- scrubbing = 0
- else
- scrubbing = 1
- if(signal.data["toggle_panic_siphon"] != null)
- panic = !panic
- if(panic)
- update_use_power(USE_POWER_IDLE)
- scrubbing = 0
- else
- scrubbing = 1
-
- if(signal.data["scrubbing"] != null)
- scrubbing = text2num(signal.data["scrubbing"])
- if(scrubbing)
- panic = 0
- if(signal.data["toggle_scrubbing"])
- scrubbing = !scrubbing
- if(scrubbing)
- panic = 0
-
- var/list/toggle = list()
-
- if(!isnull(signal.data["o2_scrub"]) && text2num(signal.data["o2_scrub"]) != ("oxygen" in scrubbing_gas))
- toggle += "oxygen"
- else if(signal.data["toggle_o2_scrub"])
- toggle += "oxygen"
-
- if(!isnull(signal.data["n2_scrub"]) && text2num(signal.data["n2_scrub"]) != ("nitrogen" in scrubbing_gas))
- toggle += "nitrogen"
- else if(signal.data["toggle_n2_scrub"])
- toggle += "nitrogen"
-
- if(!isnull(signal.data["co2_scrub"]) && text2num(signal.data["co2_scrub"]) != ("carbon_dioxide" in scrubbing_gas))
- toggle += "carbon_dioxide"
- else if(signal.data["toggle_co2_scrub"])
- toggle += "carbon_dioxide"
-
- if(!isnull(signal.data["tox_scrub"]) && text2num(signal.data["tox_scrub"]) != ("phoron" in scrubbing_gas))
- toggle += "phoron"
- else if(signal.data["toggle_tox_scrub"])
- toggle += "phoron"
-
- if(!isnull(signal.data["n2o_scrub"]) && text2num(signal.data["n2o_scrub"]) != ("nitrous_oxide" in scrubbing_gas))
- toggle += "nitrous_oxide"
- else if(signal.data["toggle_n2o_scrub"])
- toggle += "nitrous_oxide"
-
- if(!isnull(signal.data["fuel_scrub"]) && text2num(signal.data["fuel_scrub"]) != ("volatile_fuel" in scrubbing_gas))
- toggle += "volatile_fuel"
- else if(signal.data["toggle_fuel_scrub"])
- toggle += "volatile_fuel"
-
- scrubbing_gas ^= toggle
-
- if(signal.data["init"] != null)
- name = signal.data["init"]
- return
-
- if(signal.data["status"] != null)
- spawn(2)
- broadcast_status()
- return //do not update_icon
-
-// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
- spawn(2)
- broadcast_status()
- update_icon()
- return
-
-/obj/machinery/atmospherics/unary/vent_scrubber/power_change()
- var/old_stat = stat
- ..()
- if(old_stat != stat)
- update_icon()
-
-/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
- if(istype(W, /obj/item/device/multitool)) //YW EDIT: aac
- update_multitool_menu(user)
- return 1
- if (!W.is_wrench())
- return ..()
- if (!(stat & NOPOWER) && use_power)
- to_chat(user, "You cannot unwrench \the [src], turn it off first.")
- return 1
- var/turf/T = src.loc
- if (node && node.level==1 && isturf(T) && !T.is_plating())
- to_chat(user, "You must remove the plating first.")
- return 1
- if(!can_unwrench())
- to_chat(user, "You cannot unwrench \the [src], it is too exerted due to internal pressure.")
- add_fingerprint(user)
- return 1
- playsound(src, W.usesound, 50, 1)
- to_chat(user, "You begin to unfasten \the [src]...")
- if (do_after(user, 40 * W.toolspeed))
- user.visible_message( \
- "\The [user] unfastens \the [src].", \
- "You have unfastened \the [src].", \
- "You hear a ratchet.")
- deconstruct()
-
-/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user)
- . = ..()
- if(Adjacent(user))
- . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W"
- else
- . += "You are too far away to read the gauge."
-
-//YW EDIT: aac start
-/obj/machinery/atmospherics/unary/vent_scrubber/multitool_menu(var/mob/user,var/obj/item/multitool/P)
- return {"
-
- "}
+/obj/machinery/atmospherics/unary/vent_scrubber
+ icon = 'icons/atmos/vent_scrubber.dmi'
+ icon_state = "map_scrubber_off"
+ pipe_state = "scrubber"
+
+ name = "Air Scrubber"
+ desc = "Has a valve and pump attached to it"
+ use_power = USE_POWER_OFF
+ idle_power_usage = 150 //internal circuitry, friction losses and stuff
+ power_rating = 7500 //7500 W ~ 10 HP
+
+ connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SCRUBBER //connects to regular and scrubber pipes
+
+ level = 1
+
+ var/area/initial_loc
+ var/id_tag = null
+ var/frequency = 1439
+ var/datum/radio_frequency/radio_connection
+ var/advcontrol = 0 //YW EDIT: aac
+
+ var/hibernate = 0 //Do we even process?
+ var/scrubbing = 1 //0 = siphoning, 1 = scrubbing
+ var/list/scrubbing_gas = list("carbon_dioxide", "phoron")
+
+ var/panic = 0 //is this scrubber panicked?
+
+ var/area_uid
+ var/radio_filter_out
+ var/radio_filter_in
+
+/obj/machinery/atmospherics/unary/vent_scrubber/on
+ use_power = USE_POWER_IDLE
+ icon_state = "map_scrubber_on"
+
+/obj/machinery/atmospherics/unary/vent_scrubber/New()
+ ..()
+ air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
+
+ icon = null
+ initial_loc = get_area(loc)
+ area_uid = "\ref[initial_loc]"
+ if (!id_tag)
+ assign_uid()
+ id_tag = num2text(uid)
+
+/obj/machinery/atmospherics/unary/vent_scrubber/Destroy()
+ unregister_radio(src, frequency)
+ if(initial_loc)
+ initial_loc.air_scrub_info -= id_tag
+ initial_loc.air_scrub_names -= id_tag
+ return ..()
+
+/obj/machinery/atmospherics/unary/vent_scrubber/update_icon(var/safety = 0)
+ if(!check_icon_cache())
+ return
+
+ cut_overlays()
+
+ var/scrubber_icon = "scrubber"
+
+ var/turf/T = get_turf(src)
+ if(!istype(T))
+ return
+
+ if(!powered())
+ scrubber_icon += "off"
+ else
+ scrubber_icon += "[use_power ? "[scrubbing ? "on" : "in"]" : "off"]"
+
+ add_overlay(icon_manager.get_atmos_icon("device", , , scrubber_icon))
+
+/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays()
+ if(..())
+ underlays.Cut()
+ var/turf/T = get_turf(src)
+ if(!istype(T))
+ return
+ if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
+ return
+ else
+ if(node)
+ add_underlay(T, node, dir, node.icon_connect_type)
+ else
+ add_underlay(T,, dir)
+
+/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
+ radio_controller.remove_object(src, frequency)
+ frequency = new_frequency
+ radio_connection = radio_controller.add_object(src, frequency, radio_filter_in)
+
+/obj/machinery/atmospherics/unary/vent_scrubber/proc/broadcast_status()
+ if(!radio_connection)
+ return 0
+
+ var/datum/signal/signal = new
+ signal.transmission_method = TRANSMISSION_RADIO //radio signal
+ signal.source = src
+ signal.data = list(
+ "area" = area_uid,
+ "tag" = id_tag,
+ "device" = "AScr",
+ "timestamp" = world.time,
+ "power" = use_power,
+ "scrubbing" = scrubbing,
+ "panic" = panic,
+ "filter_o2" = ("oxygen" in scrubbing_gas),
+ "filter_n2" = ("nitrogen" in scrubbing_gas),
+ "filter_co2" = ("carbon_dioxide" in scrubbing_gas),
+ "filter_phoron" = ("phoron" in scrubbing_gas),
+ "filter_n2o" = ("nitrous_oxide" in scrubbing_gas),
+ "filter_fuel" = ("volatile_fuel" in scrubbing_gas),
+ "sigtype" = "status"
+ )
+ if(!initial_loc.air_scrub_names[id_tag])
+ var/new_name = "[initial_loc.name] Air Scrubber #[initial_loc.air_scrub_names.len+1]"
+ initial_loc.air_scrub_names[id_tag] = new_name
+ src.name = new_name
+ initial_loc.air_scrub_info[id_tag] = signal.data
+ radio_connection.post_signal(src, signal, radio_filter_out)
+
+ return 1
+
+/obj/machinery/atmospherics/unary/vent_scrubber/atmos_init()
+ ..()
+ radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null
+ radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null
+ if (frequency)
+ set_frequency(frequency)
+ src.broadcast_status()
+
+/obj/machinery/atmospherics/unary/vent_scrubber/process()
+ ..()
+
+ if (hibernate)
+ return 1
+
+ if (!node)
+ update_use_power(USE_POWER_OFF)
+ //broadcast_status()
+ if(!use_power || (stat & (NOPOWER|BROKEN)))
+ return 0
+
+ var/datum/gas_mixture/environment = loc.return_air()
+
+ var/power_draw = -1
+ if(scrubbing)
+ //limit flow rate from turfs
+ var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SCRUBBER_FLOWRATE/environment.volume) //group_multiplier gets divided out here
+
+ power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, power_rating)
+ else //Just siphon all air
+ //limit flow rate from turfs
+ var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
+
+ power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating)
+
+ if(scrubbing && power_draw < 0 && controller_iteration > 10) //99% of all scrubbers
+ //Fucking hibernate because you ain't doing shit.
+ hibernate = 1
+ spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly
+ hibernate = 0
+
+ if (power_draw >= 0)
+ last_power_draw = power_draw
+ use_power(power_draw)
+
+ if(network)
+ network.update = 1
+
+ return 1
+
+/obj/machinery/atmospherics/unary/vent_scrubber/hide(var/i) //to make the little pipe section invisible, the icon changes.
+ update_icon()
+ update_underlays()
+
+/obj/machinery/atmospherics/unary/vent_scrubber/receive_signal(datum/signal/signal)
+ if(stat & (NOPOWER|BROKEN))
+ return
+ if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
+ return 0
+
+ if(signal.data["power"] != null)
+ update_use_power(text2num(signal.data["power"]))
+ if(signal.data["power_toggle"] != null)
+ update_use_power(!use_power)
+
+ if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing
+ panic = text2num(signal.data["panic_siphon"])
+ if(panic)
+ update_use_power(USE_POWER_IDLE)
+ scrubbing = 0
+ else
+ scrubbing = 1
+ if(signal.data["toggle_panic_siphon"] != null)
+ panic = !panic
+ if(panic)
+ update_use_power(USE_POWER_IDLE)
+ scrubbing = 0
+ else
+ scrubbing = 1
+
+ if(signal.data["scrubbing"] != null)
+ scrubbing = text2num(signal.data["scrubbing"])
+ if(scrubbing)
+ panic = 0
+ if(signal.data["toggle_scrubbing"])
+ scrubbing = !scrubbing
+ if(scrubbing)
+ panic = 0
+
+ var/list/toggle = list()
+
+ if(!isnull(signal.data["o2_scrub"]) && text2num(signal.data["o2_scrub"]) != ("oxygen" in scrubbing_gas))
+ toggle += "oxygen"
+ else if(signal.data["toggle_o2_scrub"])
+ toggle += "oxygen"
+
+ if(!isnull(signal.data["n2_scrub"]) && text2num(signal.data["n2_scrub"]) != ("nitrogen" in scrubbing_gas))
+ toggle += "nitrogen"
+ else if(signal.data["toggle_n2_scrub"])
+ toggle += "nitrogen"
+
+ if(!isnull(signal.data["co2_scrub"]) && text2num(signal.data["co2_scrub"]) != ("carbon_dioxide" in scrubbing_gas))
+ toggle += "carbon_dioxide"
+ else if(signal.data["toggle_co2_scrub"])
+ toggle += "carbon_dioxide"
+
+ if(!isnull(signal.data["tox_scrub"]) && text2num(signal.data["tox_scrub"]) != ("phoron" in scrubbing_gas))
+ toggle += "phoron"
+ else if(signal.data["toggle_tox_scrub"])
+ toggle += "phoron"
+
+ if(!isnull(signal.data["n2o_scrub"]) && text2num(signal.data["n2o_scrub"]) != ("nitrous_oxide" in scrubbing_gas))
+ toggle += "nitrous_oxide"
+ else if(signal.data["toggle_n2o_scrub"])
+ toggle += "nitrous_oxide"
+
+ if(!isnull(signal.data["fuel_scrub"]) && text2num(signal.data["fuel_scrub"]) != ("volatile_fuel" in scrubbing_gas))
+ toggle += "volatile_fuel"
+ else if(signal.data["toggle_fuel_scrub"])
+ toggle += "volatile_fuel"
+
+ scrubbing_gas ^= toggle
+
+ if(signal.data["init"] != null)
+ name = signal.data["init"]
+ return
+
+ if(signal.data["status"] != null)
+ spawn(2)
+ broadcast_status()
+ return //do not update_icon
+
+// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
+ spawn(2)
+ broadcast_status()
+ update_icon()
+ return
+
+/obj/machinery/atmospherics/unary/vent_scrubber/power_change()
+ var/old_stat = stat
+ ..()
+ if(old_stat != stat)
+ update_icon()
+
+/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+ if(istype(W, /obj/item/device/multitool)) //YW EDIT: aac
+ update_multitool_menu(user)
+ return 1
+ if (!W.is_wrench())
+ return ..()
+ if (!(stat & NOPOWER) && use_power)
+ to_chat(user, "You cannot unwrench \the [src], turn it off first.")
+ return 1
+ var/turf/T = src.loc
+ if (node && node.level==1 && isturf(T) && !T.is_plating())
+ to_chat(user, "You must remove the plating first.")
+ return 1
+ if(!can_unwrench())
+ to_chat(user, "You cannot unwrench \the [src], it is too exerted due to internal pressure.")
+ add_fingerprint(user)
+ return 1
+ playsound(src, W.usesound, 50, 1)
+ to_chat(user, "You begin to unfasten \the [src]...")
+ if (do_after(user, 40 * W.toolspeed))
+ user.visible_message( \
+ "\The [user] unfastens \the [src].", \
+ "You have unfastened \the [src].", \
+ "You hear a ratchet.")
+ deconstruct()
+
+/obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user)
+ . = ..()
+ if(Adjacent(user))
+ . += "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W"
+ else
+ . += "You are too far away to read the gauge."
+
+//YW EDIT: aac start
+/obj/machinery/atmospherics/unary/vent_scrubber/multitool_menu(var/mob/user,var/obj/item/multitool/P)
+ return {"
+
+ "}
//YW EDIT: aac end
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
index 42aa7f50d2..7b62f58a9c 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -78,6 +78,24 @@
ckeywhitelist = list("alfalah")
character_name = list("Charlotte Graves")
+/datum/gear/fluff/fifi_hat
+ path = /obj/item/clothing/head/fluff/fifi_hat
+ display_name = "Fifi's hat"
+ ckeywhitelist = list("allweek")
+ character_name = list("Fifi the Magnificent")
+
+/datum/gear/fluff/fifi_jumpsuit
+ path = /obj/item/clothing/under/fluff/fifi_jumpsuit
+ display_name = "Fifi's jumpsuit"
+ ckeywhitelist = list("allweek")
+ character_name = list("Fifi the Magnificent")
+
+/datum/gear/fluff/fifi_hat
+ path = /obj/item/clothing/shoes/fluff/fifi_socks
+ display_name = "Fifi's socks"
+ ckeywhitelist = list("allweek")
+ character_name = list("Fifi the Magnificent")
+
/datum/gear/fluff/lynn_penlight
path = /obj/item/device/flashlight/pen/fluff/lynn
display_name = "Lynn's Penlight"
diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm
index 57a9677c05..58215dea6e 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm
@@ -1,3 +1,16 @@
+// Note for newly added fluff items: Ckeys should not contain any spaces, underscores or capitalizations,
+// or else the item will not be usable.
+// Example: Someone whose username is "Master Pred_Man" should be written as "masterpredman" instead
+// Note: Do not use characters such as # in the display_name. It will cause the item to be unable to be selected.
+
+/datum/gear/fluff
+ path = /obj/item
+ sort_category = "Fluff Items"
+ display_name = "If this item can be chosen or seen, ping a coder immediately!"
+ ckeywhitelist = list("This entry should never be choosable with this variable set.") //If it does, then that means somebody fucked up the whitelist system pretty hard
+ character_name = list("This entry should never be choosable with this variable set.")
+ cost = 0
+
/*
/datum/gear/fluff/testhorn
path = /obj/item/weapon/bikehorn
@@ -8,6 +21,13 @@
character_name = list("shitfacemcgee") //Character name. this variable is required, or the item doesn't show in loadout. Change to "character_name = null" if not character restricted.
*/
+/datum/gear/fluff/collar //Use this as a base path for collars if you'd like to set tags in loadout. Make sure you don't use apostrophes in the display name or this breaks!
+ slot = slot_tie
+
+/datum/gear/fluff/collar/New()
+ ..()
+ gear_tweaks += gear_tweak_collar_tag
+
// 0-9 CKEYS
// A CKEYS
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
index 12bf14ad2f..417b1c5257 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm
@@ -124,3 +124,8 @@ Talon winter coat
display_name = "hazard vest, atmospherics"
path = /obj/item/clothing/suit/storage/hazardvest/atmos
allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer")
+
+//Long fur coat
+/datum/gear/suit/russofurcoat
+ display_name = "long fur coat"
+ path = /obj/item/clothing/suit/storage/vest/hoscoat/russofurcoat
diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm
index a2d996cb2f..d337ef47a4 100644
--- a/code/modules/clothing/under/accessories/accessory_vr.dm
+++ b/code/modules/clothing/under/accessories/accessory_vr.dm
@@ -271,7 +271,7 @@
/obj/item/clothing/accessory/collar/collarplanet_earth
name = "planet collar"
- desc = "A collar featuring a surprisingly detailed replica of planet earth surrounded by a weak battery powered force shield. There is a button to turn it off."
+ desc = "A collar featuring a surprisingly detailed replica of a earth-like planet surrounded by a weak battery powered force shield. There is a button to turn it off."
icon_state = "collarplanet_earth"
item_state = "collarplanet_earth"
overlay_state = "collarplanet_earth"
diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm
index a2bc835230..66fea29cd1 100644
--- a/code/modules/economy/vending_machines_vr.dm
+++ b/code/modules/economy/vending_machines_vr.dm
@@ -754,7 +754,8 @@
/obj/item/clothing/mask/bandana/red = 50,
/obj/item/clothing/mask/surgical = 50)
premium = list(/obj/item/weapon/bedsheet/rainbow = 1)
- contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1)
+ contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1,
+ /obj/item/clothing/accessory/collar/collarplanet_earth = 5)
/obj/machinery/vending/loadout/clothing
name = "General Jump"
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index db232eead8..dd570ad0b1 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -207,6 +207,20 @@
icon_override = 'icons/vore/custom_clothes_vr.dmi'
item_state = "greatcoat_mob"
+//For general use
+/obj/item/clothing/suit/storage/vest/hoscoat/russofurcoat
+ name = "long fur coat"
+ desc = "A sophisticated long coat made of fur."
+
+ icon = 'icons/inventory/suit/mob_vr.dmi'
+ icon_state = "russofurcoat"
+
+ icon_override = 'icons/inventory/suit/mob_vr.dmi'
+ item_state = "russofurcoat"
+
+ allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
+ flags_inv = HIDETIE|HIDEHOLSTER
+
//For general use
/obj/item/clothing/suit/storage/fluff/fedcoat
name = "Federation Uniform Jacket (Red)"
@@ -2433,6 +2447,39 @@ Departamental Swimsuits, for general use
else
RemoveHood_evelyn()
+//Allweek:Fifi the Magnificent
+/obj/item/clothing/head/fluff/fifi_hat
+ name = "fifi's hat"
+ desc = "It's a colorful hat for an eccentric entertaining cat."
+
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "fifi_hat"
+
+ icon_override = 'icons/vore/custom_clothes_vr.dmi'
+ item_state = "fifi_hat"
+
+/obj/item/clothing/under/fluff/fifi_jumpsuit
+ name = "fifi's jumpsuit"
+ desc = "It's a colorful outfit for an eccentric entertaining cat."
+
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "fifi_jumpsuit"
+
+ icon_override = 'icons/vore/custom_clothes_vr.dmi'
+ item_state = "fifi_jumpsuit"
+
+/obj/item/clothing/shoes/fluff/fifi_socks
+ name = "fifi's socks"
+ desc = "A pair of colorful socks for an eccentric entertaining cat."
+
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "fifi_socks"
+
+ icon_override = 'icons/vore/custom_clothes_vr.dmi'
+ item_state = "fifi_socks"
+
+
+
//Uncle_Fruit_VEVO - Bradley Khatibi
/obj/item/clothing/shoes/fluff/airjordans
name = "A pair of Air Jordan 1 Mid 'Black Gym Red's"
diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi
index cc7b242670..217c90c4b4 100644
Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ
diff --git a/maps/groundbase/gb-z1.dmm b/maps/groundbase/gb-z1.dmm
index 2335d3a264..9961fcef26 100644
--- a/maps/groundbase/gb-z1.dmm
+++ b/maps/groundbase/gb-z1.dmm
@@ -1345,6 +1345,9 @@
outdoors = 0
},
/area/maintenance/groundbase/level1/swtunnel)
+"dA" = (
+/turf/simulated/mineral/cave/virgo3c,
+/area/maintenance/groundbase/level1/setunnel)
"dB" = (
/obj/machinery/light{
dir = 8
@@ -2951,6 +2954,13 @@
},
/turf/simulated/floor/lino,
/area/groundbase/civilian/cafe)
+"hG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level1/eastspur)
"hH" = (
/obj/machinery/alarm{
dir = 8
@@ -8149,6 +8159,12 @@
},
/turf/simulated/floor/tiled/dark,
/area/groundbase/civilian/bar)
+"uh" = (
+/obj/structure/stairs/spawner/south,
+/turf/simulated/floor/outdoors/newdirt_nograss/virgo3c{
+ outdoors = 0
+ },
+/area/maintenance/groundbase/level1/setunnel)
"ui" = (
/obj/machinery/light/floortube{
dir = 8;
@@ -14572,6 +14588,14 @@
},
/turf/simulated/floor/tiled,
/area/groundbase/security/processing)
+"JB" = (
+/obj/structure/stairs/spawner/west,
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/obj/structure/railing/grey,
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level1/eastspur)
"JC" = (
/turf/simulated/floor/tiled,
/area/groundbase/command/tcomms/foyer)
@@ -17929,6 +17953,12 @@
},
/turf/simulated/floor/wood,
/area/groundbase/civilian/cafe)
+"RJ" = (
+/obj/structure/stairs/spawner/north,
+/turf/simulated/floor/outdoors/newdirt_nograss/virgo3c{
+ outdoors = 0
+ },
+/area/maintenance/groundbase/level1/nwtunnel)
"RK" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -20769,6 +20799,13 @@
/obj/structure/cable/yellow,
/turf/simulated/floor/reinforced,
/area/groundbase/engineering/engine)
+"YI" = (
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/obj/structure/railing/grey,
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level1/eastspur)
"YJ" = (
/obj/structure/closet{
name = "Evidence Closet"
@@ -21751,9 +21788,9 @@ MO
MO
MO
MO
-MO
-MO
-MO
+RJ
+FF
+FF
MO
MO
MO
@@ -21893,11 +21930,11 @@ MO
MO
MO
MO
-MO
-MO
-MO
-MO
-MO
+RJ
+FF
+FF
+FF
+FF
FF
FF
FF
@@ -22037,7 +22074,7 @@ MO
MO
MO
MO
-MO
+FF
FF
FF
FF
@@ -35671,7 +35708,7 @@ Ro
MK
MK
MK
-MK
+JB
qE
sm
my
@@ -35813,7 +35850,7 @@ KT
MK
MK
MK
-MK
+YI
MK
MK
MK
@@ -35953,10 +35990,10 @@ iG
MK
KT
MK
-MK
-MK
-MK
Ah
+MK
+Os
+MK
Ah
MK
MK
@@ -36095,10 +36132,10 @@ MK
MK
KT
MK
+Ah
+MK
+Os
MK
-Ah
-Ah
-Ah
Ah
Ah
Ah
@@ -36238,9 +36275,9 @@ eR
KT
MK
Ah
-Ah
-Ah
-Ah
+MK
+Os
+MK
Ah
Ah
Ah
@@ -36381,7 +36418,7 @@ KT
XX
MK
MK
-MK
+Os
MK
MK
MK
@@ -36523,7 +36560,7 @@ HG
ho
ho
ho
-ho
+hG
ho
ho
ho
@@ -39823,7 +39860,7 @@ iW
iW
ce
ce
-ce
+iW
Cw
jF
vu
@@ -39965,7 +40002,7 @@ iW
ce
ce
ce
-ce
+iW
iW
iW
zf
@@ -40107,7 +40144,7 @@ iW
ce
ce
ce
-ce
+iW
iW
iW
zf
@@ -40250,8 +40287,8 @@ ce
ce
ce
ce
-ce
-ce
+iW
+vj
Cw
jF
jF
@@ -40392,13 +40429,13 @@ ce
ce
ce
ce
+iW
+vj
+vj
+uh
+dA
ce
ce
-iW
-iW
-iW
-iW
-iW
ce
ce
ce
@@ -40535,11 +40572,11 @@ ce
ce
ce
ce
+vj
+vj
+uh
+dA
ce
-iW
-iW
-iW
-iW
ce
ce
ce
@@ -40677,10 +40714,10 @@ ce
ce
ce
ce
-ce
-ce
-ce
-ce
+dA
+dA
+dA
+dA
ce
ce
ce
diff --git a/maps/groundbase/gb-z2.dmm b/maps/groundbase/gb-z2.dmm
index 6a67f3c585..0b91d7cd41 100644
--- a/maps/groundbase/gb-z2.dmm
+++ b/maps/groundbase/gb-z2.dmm
@@ -859,6 +859,9 @@
icon_state = "pipe-c"
},
/obj/structure/table/standard,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"cs" = (
@@ -1219,7 +1222,7 @@
"dx" = (
/obj/machinery/door/airlock{
id_tag = "toilet1";
- name = "Toilet 1"
+ name = "Room 9"
},
/turf/simulated/floor/tiled/white,
/area/groundbase/dorms/bathroom)
@@ -1453,10 +1456,14 @@
/turf/simulated/floor/carpet/blucarpet,
/area/groundbase/command/captain)
"en" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/outdoors/sidewalk/virgo3c,
-/area/groundbase/medical/lobby)
+/obj/machinery/door/firedoor/glass,
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating,
+/area/groundbase/cargo/office)
"eo" = (
/obj/structure/table/standard,
/obj/item/weapon/reagent_containers/dropper,
@@ -1962,7 +1969,7 @@
dir = 4
},
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/lobby)
+/area/groundbase/level2/ne)
"fK" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -2108,6 +2115,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"gd" = (
@@ -2318,7 +2328,7 @@
"gP" = (
/obj/machinery/button/remote/airlock{
dir = 4;
- id = "dorm6";
+ id = "dorm4";
pixel_x = -27;
specialfunctions = 4
},
@@ -3471,8 +3481,11 @@
/turf/simulated/floor/tiled,
/area/groundbase/civilian/janitor)
"jY" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/outdoors/sidewalk/virgo3c,
-/area/groundbase/cargo/office)
+/area/groundbase/level2/ne)
"ka" = (
/obj/structure/sign/directions/stairs_up{
dir = 8;
@@ -3876,6 +3889,9 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
/area/groundbase/level2/ne)
"ll" = (
@@ -4936,6 +4952,9 @@
/obj/machinery/light,
/turf/simulated/floor/tiled,
/area/groundbase/science/xenobot)
+"oy" = (
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level2/se)
"oA" = (
/obj/machinery/door/blast/regular{
id = "xenobiodiv3";
@@ -5702,6 +5721,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/wood,
/area/groundbase/dorms/room6)
+"qG" = (
+/turf/simulated/floor/outdoors/sidewalk/side/virgo3c,
+/area/groundbase/level2/ne)
"qH" = (
/obj/structure/table/woodentable,
/obj/random/donkpocketbox,
@@ -6035,7 +6057,7 @@
dir = 1
},
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/cargo/office)
+/area/groundbase/level2/ne)
"rF" = (
/obj/machinery/light/small,
/turf/simulated/floor/outdoors/grass/virgo3c,
@@ -6462,6 +6484,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/bmarble,
/area/groundbase/cargo/office)
+"sQ" = (
+/obj/structure/railing/grey,
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level2/eastspur)
"sS" = (
/obj/structure/grille,
/obj/structure/window/reinforced/polarized/full{
@@ -7177,7 +7206,7 @@
"vb" = (
/obj/machinery/light/bigfloorlamp,
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/Chemistry)
+/area/groundbase/level2/ne)
"vc" = (
/obj/structure/sign/department/chem,
/turf/simulated/wall,
@@ -7792,7 +7821,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/outdoors/sidewalk/virgo3c,
-/area/groundbase/cargo/office)
+/area/groundbase/level2/ne)
"wY" = (
/obj/machinery/alarm{
dir = 8
@@ -8535,6 +8564,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"zg" = (
@@ -9176,11 +9208,6 @@
},
/turf/simulated/wall,
/area/groundbase/cargo/office)
-"AV" = (
-/turf/simulated/floor/virgo3c{
- edge_blending_priority = -1
- },
-/area/groundbase/level2/westspur)
"AX" = (
/obj/structure/table/woodentable,
/obj/random/coin/sometimes,
@@ -11894,8 +11921,15 @@
/turf/simulated/floor/tiled,
/area/groundbase/science/xenobot)
"IK" = (
-/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/lobby)
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/virgo3c{
+ edge_blending_priority = -1;
+ outdoors = 0
+ },
+/area/groundbase/cargo/office)
"IL" = (
/obj/machinery/transhuman/resleever,
/turf/simulated/floor/tiled,
@@ -12498,8 +12532,8 @@
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"Kl" = (
-/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/cargo/office)
+/turf/simulated/open/virgo3c,
+/area/groundbase/level2/nw)
"Km" = (
/obj/effect/shuttle_landmark{
base_area = /area/groundbase/cargo/bay;
@@ -12595,7 +12629,7 @@
dir = 4
},
/turf/simulated/floor/outdoors/sidewalk/side/virgo3c,
-/area/groundbase/medical/triage)
+/area/groundbase/level2/ne)
"KB" = (
/obj/structure/flora/pottedplant/minitree,
/turf/simulated/floor/wood,
@@ -13426,6 +13460,9 @@
dir = 1
},
/obj/item/weapon/stamp/accepted,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"MR" = (
@@ -13444,12 +13481,6 @@
edge_blending_priority = -1
},
/area/groundbase/level2/ne)
-"MU" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/Chemistry)
"MV" = (
/obj/machinery/alarm{
dir = 8
@@ -13650,7 +13681,7 @@
dir = 8
},
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/triage)
+/area/groundbase/level2/ne)
"Ny" = (
/turf/simulated/floor/tiled/dark,
/area/groundbase/civilian/bar/upper)
@@ -13999,7 +14030,7 @@
pixel_y = -32
},
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/lobby)
+/area/groundbase/level2/ne)
"Ov" = (
/obj/structure/closet/wardrobe/robotics_black,
/turf/simulated/floor/tiled,
@@ -14099,7 +14130,7 @@
/turf/simulated/floor/virgo3c{
edge_blending_priority = -1
},
-/area/groundbase/level2/northspur)
+/area/groundbase/level2/nw)
"OJ" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -14300,6 +14331,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"Pp" = (
@@ -15024,11 +15058,14 @@
/turf/simulated/floor/tiled,
/area/groundbase/science/xenobot/storage)
"Ro" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
-/turf/simulated/floor/outdoors/sidewalk/side/virgo3c,
-/area/groundbase/medical/lobby)
+/turf/simulated/floor/tiled/virgo3c{
+ edge_blending_priority = -1;
+ outdoors = 0
+ },
+/area/groundbase/cargo/office)
"Rp" = (
/mob/living/simple_mob/animal/passive/cow,
/turf/simulated/floor/outdoors/grass/forest/virgo3c,
@@ -15141,6 +15178,9 @@
},
/turf/simulated/floor/outdoors/grass/virgo3c,
/area/groundbase/science/rnd)
+"RF" = (
+/turf/simulated/open/virgo3c,
+/area/groundbase/level2/se)
"RG" = (
/obj/machinery/camera/network/civilian{
dir = 8
@@ -16192,8 +16232,14 @@
/turf/simulated/mineral/cave/virgo3c,
/area/groundbase/unexplored/rock)
"UI" = (
-/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/Chemistry)
+/obj/machinery/power/apc{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
+/area/groundbase/level2/ne)
"UK" = (
/obj/structure/table/glass,
/obj/item/weapon/storage/box/beakers{
@@ -16397,7 +16443,7 @@
"Vm" = (
/obj/machinery/light/small,
/turf/simulated/floor/outdoors/grass/virgo3c,
-/area/groundbase/medical/lobby)
+/area/groundbase/level2/ne)
"Vo" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
@@ -16418,8 +16464,14 @@
/turf/simulated/floor/tiled,
/area/groundbase/science/hall)
"Vs" = (
-/turf/simulated/open/virgo3c,
-/area/groundbase/level2/se)
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/outdoors/sidewalk/side/virgo3c,
+/area/groundbase/level2/ne)
"Vt" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -17762,6 +17814,9 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/effect/landmark/start/qm,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/tiled,
/area/groundbase/cargo/office)
"Zz" = (
@@ -17798,8 +17853,14 @@
/turf/simulated/floor/wood,
/area/groundbase/cargo/qm)
"ZE" = (
-/turf/simulated/floor/outdoors/newdirt/virgo3c,
-/area/groundbase/cargo/office)
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/outdoors/sidewalk/side/virgo3c,
+/area/groundbase/level2/ne)
"ZF" = (
/obj/structure/table/glass,
/obj/item/weapon/storage/box/gloves{
@@ -18121,12 +18182,12 @@ UH
UH
UH
UH
-UH
-UH
-UH
-UH
-UH
-UH
+xE
+xE
+xE
+xE
+xE
+xE
xE
xE
xE
@@ -18263,12 +18324,12 @@ UH
UH
UH
UH
-UH
-UH
-UH
-UH
-UH
-UH
+xE
+xE
+xE
+xE
+xE
+xE
xE
xE
xE
@@ -18404,13 +18465,13 @@ UH
UH
UH
UH
-UH
-UH
-UH
-UH
-UH
-UH
wS
+Hn
+Kl
+Kl
+xE
+xE
+KW
xE
xE
xE
@@ -18545,14 +18606,14 @@ UH
UH
UH
UH
-UH
-UH
-UH
-UH
wS
wS
-wS
-Fw
+Hn
+Kl
+Kl
+xE
+KW
+Fs
Fs
pw
bY
@@ -18687,14 +18748,14 @@ UH
UH
UH
UH
-UH
wS
wS
wS
wS
wS
-wS
-Fw
+xE
+Fs
+Fs
Fs
pw
bY
@@ -18834,9 +18895,9 @@ wS
wS
UH
wS
-UH
-UH
-Fw
+xE
+Fs
+Fs
Fs
pw
bY
@@ -18975,11 +19036,11 @@ wS
wS
wS
wS
-wS
-UH
-UH
Fw
Fs
+Fs
+Fs
+Fs
xE
bY
bY
@@ -19116,11 +19177,11 @@ wS
wS
wS
wS
-wS
-UH
-UH
-UH
-wS
+Fw
+Fw
+Fs
+Fs
+KW
KW
xE
bY
@@ -19260,9 +19321,9 @@ wS
wS
wS
wS
-UH
-UH
-UH
+Fs
+xE
+xE
xE
xE
bY
@@ -25544,12 +25605,12 @@ In
bY
bY
bY
-AV
-AV
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -25688,10 +25749,10 @@ bY
bY
bY
bY
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -25830,10 +25891,10 @@ bY
bY
bY
bY
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -25972,10 +26033,10 @@ bY
bY
bY
bY
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -26113,11 +26174,11 @@ bY
bY
bY
bY
-AV
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -26254,12 +26315,12 @@ In
bY
bY
bY
-AV
-AV
-AV
-AV
-AV
-AV
+OI
+OI
+OI
+OI
+OI
+OI
eN
eN
eN
@@ -28223,16 +28284,16 @@ VR
VR
VR
to
-OI
-OI
+fp
+fp
to
to
to
VR
-QD
-QD
-QD
-QD
+fp
+fp
+fp
+fp
VR
oH
oH
@@ -28370,12 +28431,12 @@ to
to
to
to
-QD
-QD
-QD
-QD
-QD
-QD
+fp
+fp
+fp
+fp
+fp
+fp
oH
oH
oH
@@ -28512,12 +28573,12 @@ iw
iw
to
to
-QD
-QD
-QD
-QD
-QD
-QD
+fp
+fp
+fp
+fp
+fp
+fp
oH
oH
oH
@@ -28632,7 +28693,7 @@ Qi
PJ
nP
YZ
-Kl
+to
Aw
XJ
to
@@ -28656,10 +28717,10 @@ iw
to
to
to
-QD
-QD
-QD
-QD
+fp
+fp
+fp
+fp
oH
oH
oH
@@ -28774,14 +28835,14 @@ sP
sI
Zh
nP
-ZE
+XJ
Aw
to
to
Ou
-IK
-IK
-Ro
+to
+to
+NC
fJ
to
to
@@ -28799,9 +28860,9 @@ to
to
to
to
-QD
-QD
-QD
+fp
+fp
+fp
oH
oH
oH
@@ -28920,7 +28981,7 @@ wX
Sp
to
to
-IK
+to
Du
mv
ci
@@ -28941,9 +29002,9 @@ to
to
to
to
-QD
-QD
-QD
+fp
+fp
+fp
oH
oH
oH
@@ -29058,11 +29119,11 @@ mq
uq
nP
nP
-Kl
+to
iD
XJ
to
-IK
+to
mv
We
tw
@@ -29084,8 +29145,8 @@ to
to
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -29196,15 +29257,15 @@ cr
Po
Zy
MQ
-mq
-uq
-nP
-nP
+en
+IK
+Ro
+Ro
jY
lk
gZ
gZ
-en
+gZ
Ft
mT
lr
@@ -29226,8 +29287,8 @@ to
to
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -29342,8 +29403,8 @@ UL
gn
nP
nP
-ZE
-NC
+XJ
+Vs
to
to
Vm
@@ -29368,8 +29429,8 @@ to
to
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -29484,8 +29545,8 @@ dH
Jt
gI
Lz
-Kl
-NC
+to
+Vs
to
to
to
@@ -29509,9 +29570,9 @@ to
to
to
to
-QD
-QD
-QD
+fp
+fp
+fp
oH
oH
oH
@@ -29627,7 +29688,7 @@ oa
oa
Wj
rE
-NC
+Vs
to
to
to
@@ -29649,11 +29710,11 @@ yG
yL
to
to
-QD
-QD
-QD
-QD
-QD
+fp
+fp
+fp
+fp
+fp
oH
oH
oH
@@ -29767,9 +29828,9 @@ dv
Wj
to
to
-to
-to
-NC
+UI
+jY
+ZE
to
to
to
@@ -29792,9 +29853,9 @@ yL
to
to
to
-QD
-QD
-QD
+fp
+fp
+fp
oH
oH
oH
@@ -30220,7 +30281,7 @@ to
to
to
to
-QD
+fp
oH
oH
oH
@@ -30362,7 +30423,7 @@ to
to
to
to
-QD
+fp
oH
oH
oH
@@ -30504,7 +30565,7 @@ to
to
to
to
-QD
+fp
oH
oH
oH
@@ -30646,7 +30707,7 @@ to
to
to
to
-QD
+fp
oH
oH
oH
@@ -30788,7 +30849,7 @@ to
iw
to
to
-QD
+fp
oH
oH
oH
@@ -30929,8 +30990,8 @@ to
iw
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -31071,8 +31132,8 @@ to
iw
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -31213,8 +31274,8 @@ to
iw
to
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -31355,8 +31416,8 @@ to
iw
iw
to
-QD
-QD
+fp
+fp
oH
oH
oH
@@ -31618,7 +31679,7 @@ to
NC
to
to
-UI
+to
sW
Mi
Xc
@@ -31760,7 +31821,7 @@ to
NC
to
vb
-UI
+to
sW
sW
ki
@@ -31902,9 +31963,9 @@ to
NC
XJ
to
-UI
-MU
-UI
+to
+Nw
+to
to
to
to
@@ -32183,7 +32244,7 @@ vk
zt
to
vb
-to
+qG
to
to
to
@@ -32325,7 +32386,7 @@ to
oH
oH
oH
-oH
+sQ
to
to
to
@@ -36036,7 +36097,7 @@ Bo
At
Bo
Bo
-Bo
+UE
UE
UE
Bo
@@ -36178,10 +36239,10 @@ Bo
At
tA
Bo
+Bo
+UE
UE
UE
-Bo
-Bo
Bo
Bu
KG
@@ -36319,12 +36380,12 @@ oH
Bo
At
gC
-UE
-UE
-UE
Bo
Bo
Bo
+UE
+UE
+Bo
Bu
KG
cG
@@ -36461,11 +36522,11 @@ oH
Bo
Bo
sr
-UE
-UE
-UE
Bo
Bo
+UE
+UE
+Bo
Bo
pe
nT
@@ -36604,7 +36665,7 @@ Bo
Bo
Bo
Bo
-UE
+Bo
UE
Bo
Bo
@@ -36745,7 +36806,7 @@ Bo
Bo
Bo
Bo
-Bo
+UE
Bo
Bo
Bo
@@ -36764,10 +36825,10 @@ cG
Zc
pe
fk
-UH
+fk
UH
wS
-UH
+wS
UH
UH
wS
@@ -36906,11 +36967,11 @@ Ju
Vz
pe
fk
-UH
+fk
+tN
+tN
wS
wS
-UH
-UH
wS
wS
wS
@@ -37025,7 +37086,7 @@ oH
oH
oH
oH
-Vs
+oH
fk
fk
fk
@@ -37047,13 +37108,13 @@ pe
Vj
LJ
pe
-fk
-UH
+RF
+RF
+oy
+tN
wS
wS
wS
-UH
-wS
wS
wS
wS
@@ -37189,10 +37250,10 @@ pe
pe
pe
pe
-fk
-UH
-wS
-wS
+RF
+RF
+oy
+tN
wS
wS
wS
@@ -37332,9 +37393,9 @@ fk
fk
fk
fk
-UH
-wS
-wS
+fk
+tN
+tN
wS
wS
wS
@@ -37474,10 +37535,10 @@ fk
fk
fk
fk
-UH
-UH
-wS
-wS
+fk
+fk
+tN
+tN
wS
UH
UH
@@ -37616,10 +37677,10 @@ fk
fk
fk
fk
-UH
-UH
-UH
-UH
+fk
+fk
+fk
+fk
UH
UH
UH
diff --git a/maps/groundbase/gb-z3.dmm b/maps/groundbase/gb-z3.dmm
index ca76c1335f..f8b3d9e6fa 100644
--- a/maps/groundbase/gb-z3.dmm
+++ b/maps/groundbase/gb-z3.dmm
@@ -455,6 +455,9 @@
},
/turf/simulated/floor,
/area/groundbase/medical/patient4)
+"ip" = (
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"it" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
@@ -547,6 +550,10 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/groundbase/medical/cmo)
+"jP" = (
+/obj/structure/bed/chair/sofa/corp/right,
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"jX" = (
/obj/structure/grille,
/obj/machinery/door/firedoor,
@@ -628,6 +635,23 @@
},
/turf/simulated/floor/tiled/white,
/area/groundbase/medical/patient4)
+"lD" = (
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "shower door";
+ req_access = null
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"lF" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/white,
@@ -1130,6 +1154,12 @@
},
/turf/simulated/floor/tiled,
/area/shuttle/groundbase/exploration)
+"uv" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"uF" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -1193,6 +1223,11 @@
edge_blending_priority = -1
},
/area/groundbase/exploration/shuttlepad)
+"vD" = (
+/obj/machinery/alarm,
+/obj/structure/bed/chair/sofa/corp/left,
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"vV" = (
/obj/structure/bed/chair/shuttle{
dir = 8
@@ -1473,6 +1508,12 @@
},
/turf/simulated/floor/tiled,
/area/shuttle/groundbase/exploration)
+"Al" = (
+/obj/machinery/light,
+/obj/structure/table/woodentable,
+/obj/random/donkpocketbox,
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"As" = (
/obj/structure/grille,
/obj/machinery/door/firedoor,
@@ -1481,6 +1522,13 @@
},
/turf/simulated/floor,
/area/groundbase/medical/patient2)
+"AY" = (
+/obj/structure/bed/double/padded,
+/obj/item/weapon/bedsheet/cosmosdouble{
+ icon_state = "dobulesheetcosmos"
+ },
+/turf/simulated/floor/wood,
+/area/groundbase/dorms/bathroom)
"Bd" = (
/obj/effect/floor_decal/industrial/warning{
dir = 1
@@ -1543,6 +1591,13 @@
"BH" = (
/turf/simulated/wall,
/area/groundbase/medical/patient3)
+"Ck" = (
+/obj/structure/table/woodentable,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = -32
+ },
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"Cv" = (
/obj/structure/bed/padded,
/obj/item/weapon/bedsheet/medical,
@@ -1565,12 +1620,27 @@
},
/turf/simulated/floor/tiled,
/area/groundbase/exploration/equipment)
+"De" = (
+/obj/structure/curtain/open/shower,
+/obj/machinery/shower{
+ pixel_y = 16
+ },
+/turf/simulated/floor/tiled{
+ icon_state = "techmaint"
+ },
+/area/groundbase/dorms/bathroom)
"Dm" = (
/obj/structure/bed/chair/shuttle{
dir = 1
},
/turf/simulated/floor/tiled,
/area/shuttle/groundbase/exploration)
+"Dw" = (
+/obj/machinery/firealarm{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/groundbase/dorms/bathroom)
"Dy" = (
/obj/effect/floor_decal/industrial/warning{
dir = 4
@@ -1757,6 +1827,9 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/groundbase/medical/patient2)
+"Fh" = (
+/turf/simulated/floor/wood,
+/area/groundbase/dorms/bathroom)
"Fx" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -2063,6 +2136,13 @@
"JL" = (
/turf/unsimulated/wall/planetary/virgo3c,
/area/groundbase/level3/se)
+"JU" = (
+/obj/machinery/door/airlock{
+ id_tag = null;
+ name = "Bathroom"
+ },
+/turf/simulated/floor/tiled/steel_ridged,
+/area/groundbase/dorms/bathroom)
"JW" = (
/obj/structure/table/glass,
/obj/machinery/computer/med_data/laptop{
@@ -2214,6 +2294,22 @@
},
/turf/simulated/floor/tiled/white,
/area/groundbase/medical/paramedic)
+"NT" = (
+/obj/machinery/alarm{
+ dir = 8
+ },
+/obj/machinery/door/window/southright{
+ dir = 1;
+ name = "shower door"
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"NX" = (
/obj/structure/table/rack/shelf,
/obj/item/weapon/tank/oxygen,
@@ -2290,6 +2386,10 @@
},
/turf/simulated/floor/outdoors/sidewalk/slab/virgo3c,
/area/groundbase/level3/nw)
+"OT" = (
+/obj/structure/lattice,
+/turf/simulated/open/virgo3c,
+/area/groundbase/dorms/bathroom)
"Pd" = (
/obj/item/device/radio/intercom{
pixel_y = -24
@@ -2331,6 +2431,16 @@
"Px" = (
/turf/simulated/open,
/area/groundbase/cargo/office)
+"PC" = (
+/obj/structure/bed/chair/sofa/corp,
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
+"PG" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/groundbase/dorms/bathroom)
"PH" = (
/turf/simulated/wall/rshull,
/area/shuttle/groundbase/exploration)
@@ -2343,6 +2453,18 @@
},
/turf/simulated/floor/tiled/white,
/area/groundbase/medical/patient3)
+"PO" = (
+/obj/structure/mirror{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"PQ" = (
/obj/machinery/camera/network/medbay{
dir = 8
@@ -2457,6 +2579,9 @@
outdoors = 0
},
/area/groundbase/level3/escapepad)
+"Rq" = (
+/turf/simulated/wall/r_wall,
+/area/groundbase/dorms/bathroom)
"RM" = (
/obj/machinery/photocopier/faxmachine{
department = "Exploration"
@@ -2608,6 +2733,11 @@
/obj/effect/map_helper/airlock/door/simple,
/turf/simulated/floor/tiled/steel_ridged,
/area/shuttle/groundbase/exploration)
+"TU" = (
+/obj/structure/table/woodentable,
+/obj/machinery/microwave,
+/turf/simulated/floor/carpet/retro,
+/area/groundbase/dorms/bathroom)
"TV" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -2805,6 +2935,9 @@
/obj/machinery/computer/ship/helm,
/turf/simulated/floor/tiled,
/area/shuttle/groundbase/exploration)
+"Yn" = (
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"Yy" = (
/obj/structure/table/rack,
/obj/item/clothing/shoes/magboots,
@@ -2813,6 +2946,12 @@
/obj/item/clothing/head/helmet/space/void/medical/emt,
/turf/simulated/floor/tiled/white,
/area/groundbase/medical/paramedic)
+"Yz" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/white,
+/area/groundbase/dorms/bathroom)
"YJ" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -8325,12 +8464,12 @@ Bg
"}
(39,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+Rq
+Rq
+Rq
+Rq
+Rq
jv
jv
jv
@@ -8467,12 +8606,12 @@ Bg
"}
(40,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+De
+lD
+PO
+uv
+Rq
jv
jv
jv
@@ -8609,12 +8748,12 @@ Bg
"}
(41,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+De
+NT
+Yn
+Yz
+Rq
jv
jv
jv
@@ -8751,12 +8890,12 @@ Bg
"}
(42,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+Rq
+Rq
+JU
+Rq
+Rq
jv
jv
jv
@@ -8893,12 +9032,12 @@ Bg
"}
(43,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+jP
+ip
+ip
+TU
+Rq
jv
jv
jv
@@ -9035,12 +9174,12 @@ Bg
"}
(44,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+PC
+ip
+ip
+Al
+Rq
jv
jv
jv
@@ -9177,12 +9316,12 @@ Bg
"}
(45,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+vD
+ip
+ip
+Ck
+Rq
jv
jv
jv
@@ -9319,12 +9458,12 @@ Bg
"}
(46,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
-jv
+Rq
+Fh
+Fh
+Fh
+Rq
+Rq
jv
jv
jv
@@ -9461,11 +9600,11 @@ Bg
"}
(47,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
+Rq
+PG
+Fh
+AY
+Rq
jv
jv
jv
@@ -9603,11 +9742,11 @@ Bg
"}
(48,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
+Rq
+Fh
+Fh
+Dw
+Rq
jv
jv
Zo
@@ -9745,11 +9884,11 @@ Bg
"}
(49,1,1) = {"
mr
-jv
-jv
-jv
-jv
-jv
+Rq
+OT
+Rq
+Rq
+Rq
jv
jv
Zo
@@ -9887,9 +10026,9 @@ Bg
"}
(50,1,1) = {"
mr
-jv
-jv
-jv
+Rq
+Rq
+Rq
jv
jv
jv
diff --git a/vorestation.dme b/vorestation.dme
index 139c0ed46c..0d58d6414b 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1950,7 +1950,6 @@
#include "code\modules\client\preference_setup\loadout\loadout_eyes.dm"
#include "code\modules\client\preference_setup\loadout\loadout_eyes_vr.dm"
#include "code\modules\client\preference_setup\loadout\loadout_eyes_yw.dm"
-#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_vr.dm"
#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_yw.dm"
#include "code\modules\client\preference_setup\loadout\loadout_general.dm"
#include "code\modules\client\preference_setup\loadout\loadout_general_vr.dm"