diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm
index 12c3fbfa13..acbf9f6ba2 100644
--- a/code/ATMOSPHERICS/components/tvalve.dm
+++ b/code/ATMOSPHERICS/components/tvalve.dm
@@ -329,9 +329,6 @@
/obj/machinery/atmospherics/tvalve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!W.is_wrench())
return ..()
- if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
- to_chat(user, "You cannot unwrench \the [src], it's too complicated.")
- return 1
if(!can_unwrench())
to_chat(user, "You cannot unwrench \the [src], it too exerted due to internal pressure.")
add_fingerprint(user)
diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm
index 465b0be8e9..47406c96d4 100644
--- a/code/__defines/is_helpers.dm
+++ b/code/__defines/is_helpers.dm
@@ -61,3 +61,4 @@
#define ismineralturf(A) istype(A, /turf/simulated/mineral)
#define istaurtail(A) istype(A, /datum/sprite_accessory/tail/taur)
+#define islongtail(A) istype(A, /datum/sprite_accessory/tail/longtail)
diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm
index c24267e678..2f1b69191c 100644
--- a/code/_helpers/sorts/comparators.dm
+++ b/code/_helpers/sorts/comparators.dm
@@ -95,3 +95,6 @@
///Species have sort_hint they self-generate to hint themselves into groups. After that, alphabetical.
/proc/cmp_species(datum/species/A, datum/species/B)
return A.sort_hint == B.sort_hint ? sorttext("[B.name]","[A.name]") : A.sort_hint - B.sort_hint
+
+/proc/cmp_stored_item_name(datum/stored_item/A, datum/stored_item/B)
+ return sorttext(B.item_name, A.item_name)
\ No newline at end of file
diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm
index d63d263801..863354a46c 100644
--- a/code/_helpers/time.dm
+++ b/code/_helpers/time.dm
@@ -50,13 +50,17 @@ var/station_date = ""
var/next_station_date_change = 1 DAY
#define duration2stationtime(time) time2text(station_time_in_ds + time, "hh:mm")
-#define worldtime2stationtime(time) time2text(GLOB.roundstart_hour HOURS + time, "hh:mm")
+#define roundstart_delay_time (world.time - round_duration_in_ds)
+#define world_time_in_ds(time) (GLOB.roundstart_hour HOURS + time - roundstart_delay_time)
#define round_duration_in_ds (GLOB.round_start_time ? REALTIMEOFDAY - GLOB.round_start_time : 0)
#define station_time_in_ds (GLOB.roundstart_hour HOURS + round_duration_in_ds)
/proc/stationtime2text()
return time2text(station_time_in_ds + GLOB.timezoneOffset, "hh:mm")
+/proc/worldtime2stationtime(time)
+ return time2text(world_time_in_ds(time) + GLOB.timezoneOffset, "hh:mm")
+
/proc/stationdate2text()
var/update_time = FALSE
if(station_time_in_ds > next_station_date_change)
diff --git a/code/datums/supplypacks/costumes_vr.dm b/code/datums/supplypacks/costumes_vr.dm
index 482f024290..4a61dd2284 100644
--- a/code/datums/supplypacks/costumes_vr.dm
+++ b/code/datums/supplypacks/costumes_vr.dm
@@ -394,4 +394,22 @@
)
cost = 10
containertype = /obj/structure/closet/crate
- containername = "Knights Gear Crate"
\ No newline at end of file
+ containername = "Knights Gear Crate"
+
+/datum/supply_pack/costumes/christmas
+ name = "Christmas costume pack"
+ contains = list(
+ /obj/item/clothing/head/santa,
+ /obj/item/clothing/head/santa/green,
+ /obj/item/clothing/suit/storage/hooded/wintercoat/christmasred,
+ /obj/item/clothing/suit/storage/hooded/wintercoat/christmasgreen,
+ /obj/item/clothing/under/christmas/red,
+ /obj/item/clothing/under/christmas/green,
+ /obj/item/clothing/under/christmas/croptop/red,
+ /obj/item/clothing/under/christmas/croptop/green,
+ /obj/item/clothing/shoes/boots/winter/christmasred,
+ /obj/item/clothing/shoes/boots/winter/christmasgreen
+ )
+ cost = 20
+ containertype = /obj/structure/closet/crate
+ containername = "Christmas costume pack"
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index c2170d5b7b..6af70dc038 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -349,10 +349,10 @@
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(target))
var/name = occupant ? occupant.name : "Unknown"
P.info = "
Body Scan - [name]
"
- P.info += "Time of scan: [worldtime2stationtime(world.time)]
"
+ P.info += "Time of scan: [stationtime2text()]
"
P.info += "[generate_printing_text()]"
P.info += "
Notes:
"
- P.name = "Body Scan - [name] ([worldtime2stationtime(world.time)]"
+ P.name = "Body Scan - [name] ([stationtime2text()]"
else
return FALSE
diff --git a/code/game/objects/effects/decals/posters/voreposters_vr.dm b/code/game/objects/effects/decals/posters/voreposters_vr.dm
index b9be74614b..f105bd0cd8 100644
--- a/code/game/objects/effects/decals/posters/voreposters_vr.dm
+++ b/code/game/objects/effects/decals/posters/voreposters_vr.dm
@@ -372,7 +372,7 @@
name = "Virgo Orbital Research Establishment"
desc = "It features the logo of the local branch of Nanotrasen; Virgo Orbital Research Establishment."
/decl/poster/vore_95
- icon_state = "3btetherposter"
+ icon_state = "tetherposter"
name = "The Frontier Awaits"
desc = "A stunning depiction of Virgo 3b in front of a field of stars, a purple nebula laces in from behind, while the shining tower of NSB Adephagia gleams in the starlight. 'The Frontier Awaits' is printed in silver lettering. It looks like a recruitment ad."
/decl/poster/vore_96
diff --git a/code/game/objects/items/devices/translocator_vr.dm b/code/game/objects/items/devices/translocator_vr.dm
index cb4ebbaf0f..c7cf0e7875 100644
--- a/code/game/objects/items/devices/translocator_vr.dm
+++ b/code/game/objects/items/devices/translocator_vr.dm
@@ -409,7 +409,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
if(confirm == "Eat it!")
var/obj/belly/bellychoice = tgui_input_list(usr, "Which belly?","Select A Belly", L.vore_organs)
if(bellychoice)
- user.visible_message("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice]!","You begin putting \the [src] into your [bellychoice]!")
+ user.visible_message("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!","You begin putting \the [src] into your [bellychoice.name]!")
if(do_after(user,5 SECONDS,src))
user.unEquip(src)
forceMove(bellychoice)
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 744cc130e2..1a19b98910 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -55,7 +55,7 @@
C.throw_mode_on()
/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W,/obj/item/device/assembly_holder) && (!stage || stage==1) && path != 2)
+ if(istype(W,/obj/item/device/assembly_holder) && (!stage || stage==1) && !detonator && path != 2)
var/obj/item/device/assembly_holder/det = W
if(istype(det.a_left,det.a_right.type) || (!isigniter(det.a_left) && !isigniter(det.a_right)))
to_chat(user, "Assembly must contain one igniter.")
@@ -314,4 +314,3 @@
beakers += B1
beakers += B2
-
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index fe034f0095..35e55428a9 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -141,6 +141,7 @@ var/last_chew = 0
/obj/item/weapon/handcuffs/fuzzy
name = "fuzzy cuffs"
icon_state = "fuzzycuff"
+ breakouttime = 100 //VOREstation edit
desc = "Use this to keep... 'prisoners' in line."
/obj/item/weapon/handcuffs/cable
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index 17d67f912c..af7092d9d6 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -6,6 +6,7 @@
starts_with = list(
/obj/item/weapon/storage/bag/plants,
/obj/item/clothing/under/rank/hydroponics,
+ /obj/item/clothing/gloves/botanic_leather,
/obj/item/device/analyzer/plant_analyzer,
/obj/item/device/radio/headset/headset_service,
/obj/item/clothing/head/greenbandana,
diff --git a/code/game/objects/structures/low_wall.dm b/code/game/objects/structures/low_wall.dm
index e6a8f0d0f3..cf9cfd0ac2 100644
--- a/code/game/objects/structures/low_wall.dm
+++ b/code/game/objects/structures/low_wall.dm
@@ -21,9 +21,9 @@
var/stripe_color
//rad_resistance_modifier = 0.5
- // blend_objects defined on subtypes
+ // blend_objects defined on subtypes
noblend_objects = list(/obj/machinery/door/window, /obj/machinery/door/firedoor)
-
+
var/default_material = DEFAULT_WALL_MATERIAL
var/datum/material/material
var/grille_type
@@ -38,9 +38,9 @@
if(!materialtype)
materialtype = default_material
-
+
material = get_material_by_name(materialtype)
-
+
health = material.integrity
return INITIALIZE_HINT_LATELOAD
@@ -79,12 +79,12 @@
if(istype(W, /obj/item/stack/rods))
handle_rod_use(user, W)
return
-
+
// Making windows, different per subtype
else if(istype(W, /obj/item/stack/material/glass))
handle_glass_use(user, W)
return
-
+
// Dismantling the half wall
if(W.is_wrench())
for(var/obj/structure/S in loc)
@@ -110,7 +110,7 @@
if(can_place_items() && user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement))
auto_align(W, click_parameters)
return 1
-
+
return ..()
/obj/structure/low_wall/proc/can_place_items()
@@ -187,7 +187,7 @@
to_chat(user, "Assembling window...")
if(!do_after(user, 4 SECONDS, G, exclusive = TASK_ALL_EXCLUSIVE))
return
- if(!G.use(2))
+ if(!G.use(4))
return
new window_type(loc, null, TRUE)
return
@@ -415,7 +415,7 @@
other_connections = list("0","0","0","0")
else
update_connections()
-
+
var/percent_damage = 0 // Used for icon state of damage layer
var/damage_alpha = 0 // Used for alpha blending of damage layer
if (maxhealth && health < maxhealth)
@@ -506,7 +506,7 @@
other_connections = list("0","0","0","0")
else
update_connections()
-
+
var/img_dir
var/image/I
for(var/i = 1 to 4)
@@ -573,14 +573,14 @@
if(locate(/obj/effect/low_wall_spawner) in oview(0, src))
warning("Duplicate low wall spawners in [x],[y],[z]!")
return INITIALIZE_HINT_QDEL
-
+
if(low_wall_type)
new low_wall_type(loc)
if(grille_type)
new grille_type(loc)
if(window_type)
new window_type(loc)
-
+
return INITIALIZE_HINT_QDEL
// Bay types
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 9662bfcd2f..e6224fa5ff 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -178,3 +178,10 @@
to_chat(user, span("notice", "You deconstruct \the [src]."))
ChangeTurf(get_base_turf_by_area(src), preserve_outdoors = TRUE)
return TRUE
+
+/turf/simulated/floor/AltClick(mob/user)
+ if(isliving(user))
+ var/mob/living/livingUser = user
+ if(try_graffiti(livingUser, livingUser.get_active_hand()))
+ return
+ . = ..()
diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm
index 1168f7a081..279cf8a5b1 100644
--- a/code/game/turfs/simulated/floor_attackby.dm
+++ b/code/game/turfs/simulated/floor_attackby.dm
@@ -9,8 +9,12 @@
attack_tile(C, L) // Be on help intent if you want to decon something.
return
- if(!(C.is_screwdriver() && flooring && (flooring.flags & TURF_REMOVE_SCREWDRIVER)) && try_graffiti(user, C))
- return
+ if(!(C.has_tool_quality(TOOL_SCREWDRIVER) && flooring && (flooring.flags & TURF_REMOVE_SCREWDRIVER)))
+ if(isliving(user))
+ var/mob/living/L = user
+ if(L.a_intent == I_HELP)
+ if(try_graffiti(L, C)) // back by unpopular demand
+ return
// Multi-z roof building
if(istype(C, /obj/item/stack/tile/roofing))
diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm
index 036cfd5728..b6999946e9 100644
--- a/code/game/turfs/simulated/wall_attacks.dm
+++ b/code/game/turfs/simulated/wall_attacks.dm
@@ -131,8 +131,9 @@
user.setClickCooldown(user.get_attack_speed(W))
- if(!construction_stage && try_graffiti(user, W))
- return
+ if(!construction_stage && user.a_intent == I_HELP)
+ if(try_graffiti(user,W))
+ return
if (!user.IsAdvancedToolUser())
to_chat(user, "You don't have the dexterity to do this!")
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index d0bb6d5640..b916884129 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -333,3 +333,10 @@
ChangeTurf(/turf/simulated/floor/airless, preserve_outdoors = TRUE)
return TRUE
return FALSE
+
+/turf/simulated/wall/AltClick(mob/user)
+ if(isliving(user))
+ var/mob/living/livingUser = user
+ if(try_graffiti(livingUser, livingUser.get_active_hand()))
+ return
+ . = ..()
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 5560eaf8cb..50d3c48459 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -234,6 +234,12 @@
ckeywhitelist = list("chaleur")
character_name = list("Hisako Arato")
+/datum/gear/fluff/jade_stamp
+ path = /obj/item/weapon/stamp/fluff/jade_horror
+ display_name = "Official Council of Mid Horror rubber stamp"
+ ckeywhitelist = list("coolcrow420")
+ character_name = list("Jade Davis")
+
// D CKEYS
/datum/gear/fluff/dhaeleena_medal
path = /obj/item/clothing/accessory/medal/silver/security/fluff/dhael
@@ -320,6 +326,7 @@
// G CKEYS
// H CKEYS
+
/datum/gear/fluff/lauren_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Lauren's Medal"
@@ -753,11 +760,17 @@
ckeywhitelist = list("pastelprincedan")
character_name = list("Kiyoshi Maki", "Masumi Maki")
-/datum/gear/fluff/masumi_overalls
- path = /obj/item/clothing/under/fluff/masumi_overalls
- display_name = "white and blue overalls"
- ckeywhitelist = list("pastelprincedan")
- character_name = list("Masumi Maki")
+/datum/gear/fluff/mechanic_overalls
+ path = /obj/item/clothing/under/fluff/mechanic_overalls
+ display_name = "mechanic overalls"
+ ckeywhitelist = list("pastelprincedan", "hatterhat")
+ character_name = list("Masumi Maki", "Harold Robinson")
+
+/datum/gear/fluff/mechanic_coat
+ path = /obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic
+ display_name = "mechanic winter coat"
+ ckeywhitelist = list("pastelprincedan", "hatterhat")
+ character_name = list("Masumi Maki", "Harold Robinson")
// Q CKEYS
diff --git a/code/modules/client/preference_setup/loadout/loadout_mask.dm b/code/modules/client/preference_setup/loadout/loadout_mask.dm
index 2c89ce66cb..a313f3023d 100644
--- a/code/modules/client/preference_setup/loadout/loadout_mask.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_mask.dm
@@ -46,13 +46,13 @@
/datum/gear/mask/gaiter
display_name = "neck gaiter selection"
- path = /obj/item/clothing/mask/gaiter
+ path = /obj/item/clothing/accessory/gaiter
cost = 1
/datum/gear/mask/gaiter/New()
..()
var/list/gaiters = list()
- for(var/gaiter in typesof(/obj/item/clothing/mask/gaiter))
- var/obj/item/clothing/mask/gaiter_type = gaiter
+ for(var/gaiter in typesof(/obj/item/clothing/accessory/gaiter))
+ var/obj/item/clothing/accessory/gaiter_type = gaiter
gaiters[initial(gaiter_type.name)] = gaiter_type
gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, /proc/cmp_text_asc))
\ No newline at end of file
diff --git a/code/modules/clothing/head/hood.dm b/code/modules/clothing/head/hood.dm
index a6bef8b838..8f7f752ee0 100644
--- a/code/modules/clothing/head/hood.dm
+++ b/code/modules/clothing/head/hood.dm
@@ -164,6 +164,16 @@
desc = "A starry winter hood."
icon_state = "winterhood_cosmic"
+/obj/item/clothing/head/hood/winter/christmasred
+ name = "red christmas winter hood"
+ desc = "A red festive winter hood."
+ icon_state = "winterhood_christmasr"
+
+/obj/item/clothing/head/hood/winter/christmasgreen
+ name = "green christmas winter hood"
+ desc = "A green festive winter hood."
+ icon_state = "winterhood_christmasg"
+
// Explorer gear
/obj/item/clothing/head/hood/explorer
name = "explorer hood"
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index 3a79b7177a..7f15afe180 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -362,33 +362,6 @@
src.icon_state = "flushed"
return
-//Gaiter scarves
-/obj/item/clothing/mask/gaiter
- name = "red neck gaiter"
- desc = "A slightly worn neck gaiter, it's loose enough to be worn comfortably like a scarf. Commonly used by outdoorsmen and mercenaries, both to keep warm and keep debris away from the face."
- icon_state = "gaiter_red"
-
-/obj/item/clothing/mask/gaiter/attack_self(mob/user as mob)
- if(src.icon_state == initial(icon_state))
- src.icon_state = "[icon_state]_up"
- to_chat(user, "You pull the gaiter up over your nose.")
- else
- src.icon_state = initial(icon_state)
- to_chat(user, "You tug the gaiter down around your neck.")
- update_clothing_icon() //so our mob-overlays update
-
-/obj/item/clothing/mask/gaiter/tan
- name = "tan neck gaiter"
- icon_state = "gaiter_tan"
-
-/obj/item/clothing/mask/gaiter/gray
- name = "gray neck gaiter"
- icon_state = "gaiter_gray"
-
-/obj/item/clothing/mask/gaiter/green
- name = "green neck gaiter"
- icon_state = "gaiter_green"
-
/obj/item/clothing/mask/mouthwheat
name = "mouth wheat"
desc = "100% synthetic \"Country Girls LLC.\" brand mouth wheat. Warning: not for actual consumption."
diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm
index b8313c5f97..f07d0ae674 100644
--- a/code/modules/clothing/rings/rings.dm
+++ b/code/modules/clothing/rings/rings.dm
@@ -63,6 +63,9 @@
/////////////////////////////////////////
//Seals and Signet Rings
+
+/obj/item/clothing/gloves/ring/seal
+ var/stamptext = null
/obj/item/clothing/gloves/ring/seal/secgen
name = "Secretary-General's official seal"
desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring."
diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm
index acdc9f84dd..4ee4395109 100644
--- a/code/modules/clothing/shoes/boots.dm
+++ b/code/modules/clothing/shoes/boots.dm
@@ -174,6 +174,16 @@
icon_state = "explorer"
armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 0, rad = 0)
+/obj/item/clothing/shoes/boots/winter/christmasred
+ name = "red christmas boots"
+ desc = "A pair of fluffy red christmas boots!"
+ icon_state = "winterboots_christmasr"
+
+/obj/item/clothing/shoes/boots/winter/christmasgreen
+ name = "green christmas boots"
+ desc = "A pair of fluffy green christmas boots!"
+ icon_state = "winterboots_christmasg"
+
// Allows the wearer to climb cliffs, which could allow for shortcuts or sequence-breaking.
/obj/item/clothing/shoes/boots/winter/climbing
name = "climbing winter boots"
diff --git a/code/modules/clothing/suits/hooded.dm b/code/modules/clothing/suits/hooded.dm
index cd5fb97d1f..89470f7e8b 100644
--- a/code/modules/clothing/suits/hooded.dm
+++ b/code/modules/clothing/suits/hooded.dm
@@ -344,6 +344,18 @@
light_power = 1.8
light_range = 1.2
light_on = TRUE
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/christmasred
+ name = "red christmas winter coat"
+ desc = "A festive red Christmas coat! Smells like Candy Cane!"
+ icon_state = "coatchristmasr"
+ hoodtype = /obj/item/clothing/head/hood/winter/christmasred
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/christmasgreen
+ name = "green christmas winter coat"
+ desc = "A festive green Christmas coat! Smells like Candy Cane!"
+ icon_state = "coatchristmasg"
+ hoodtype = /obj/item/clothing/head/hood/winter/christmasgreen
// winter coats end here
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index ca03efdec5..ec338f1d5c 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -455,4 +455,73 @@
name = "sash"
desc = "A plain, unadorned sash."
icon_state = "sash"
- slot = ACCESSORY_SLOT_OVER
\ No newline at end of file
+ slot = ACCESSORY_SLOT_OVER
+
+//Gaiter scarves
+/obj/item/clothing/accessory/gaiter
+ name = "red neck gaiter"
+ desc = "A slightly worn neck gaiter, it's loose enough to be worn comfortably like a scarf. Commonly used by outdoorsmen and mercenaries, both to keep warm and keep debris away from the face."
+ icon_state = "gaiter_red"
+ slot_flags = SLOT_MASK | SLOT_TIE
+ body_parts_covered = FACE
+ w_class = ITEMSIZE_SMALL
+ slot = ACCESSORY_SLOT_INSIGNIA // snowflakey, i know, shut up
+ item_flags = FLEXIBLEMATERIAL
+ var/breath_masked = FALSE
+ var/obj/item/clothing/mask/breath/breathmask
+ action_button_name = "Pull On Gaiter"
+
+/obj/item/clothing/accessory/gaiter/update_clothing_icon()
+ . = ..()
+ if(ismob(src.loc))
+ var/mob/M = src.loc
+ M.update_inv_wear_mask()
+
+/obj/item/clothing/accessory/gaiter/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/clothing/mask/breath))
+ to_chat(user, SPAN_NOTICE("You tuck [I] behind [src]."))
+ breathmask = I
+ breath_masked = TRUE
+ user.drop_from_inventory(I, drop_location())
+ I.forceMove(src)
+ item_flags &= ~FLEXIBLEMATERIAL
+ . = ..()
+
+/obj/item/clothing/accessory/gaiter/AltClick(mob/user)
+ . = ..()
+ if(breath_masked && breathmask)
+ to_chat(user, SPAN_NOTICE("You pull [breathmask] out from behind [src], and it drops to your feet."))
+ breathmask.forceMove(drop_location())
+ breathmask = null
+ breath_masked = FALSE
+ item_flags &= ~AIRTIGHT
+ item_flags |= FLEXIBLEMATERIAL
+
+/obj/item/clothing/accessory/gaiter/attack_self(mob/user)
+ var/gaiterstring = "You pull [src] "
+ if(src.icon_state == initial(icon_state))
+ src.icon_state = "[icon_state]_up"
+ gaiterstring += "up over your nose[breath_masked ? " and secure the mask tucked underneath." : "."]"
+ if(breath_masked)
+ item_flags |= AIRTIGHT
+ else
+ src.icon_state = initial(icon_state)
+ gaiterstring += "down around your neck[breath_masked ? " and dislodge the mask tucked underneath." : "."]"
+ body_parts_covered &= ~FACE
+ if(breath_masked)
+ item_flags &= ~AIRTIGHT
+ to_chat(user, SPAN_NOTICE(gaiterstring))
+ qdel(mob_overlay) // we're gonna need to refresh these
+ update_clothing_icon() //so our mob-overlays update
+
+/obj/item/clothing/accessory/gaiter/tan
+ name = "tan neck gaiter"
+ icon_state = "gaiter_tan"
+
+/obj/item/clothing/accessory/gaiter/gray
+ name = "gray neck gaiter"
+ icon_state = "gaiter_gray"
+
+/obj/item/clothing/accessory/gaiter/green
+ name = "green neck gaiter"
+ icon_state = "gaiter_green"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index e358ed2574..a75331692c 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -1420,4 +1420,25 @@
icon_state = "hedberg_tech"
worn_state = "hedberg_tech"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) // Equivalent to engineer's jumpsuit.
- rolled_sleeves = 0
\ No newline at end of file
+ rolled_sleeves = 0
+
+//christmas stuff
+/obj/item/clothing/under/christmas/red
+ name = "red christmas suit"
+ desc = "A simple red christmas suit that looks close to Santa's!"
+ icon_state = "christmasred"
+
+/obj/item/clothing/under/christmas/green
+ name = "green christmas suit"
+ desc = "A simple green christmas suit. Smells minty!"
+ icon_state = "christmasgreen"
+
+/obj/item/clothing/under/christmas/croptop/red
+ name = "red crop-top christmas suit"
+ desc = "A simple red christmas suit that doesn't quite looks like Mrs Claus'."
+ icon_state = "christmascroppedred"
+
+/obj/item/clothing/under/christmas/croptop/green
+ name = "green crop-top christmas suit"
+ desc = "A simple green christmas suit that doesn't quite looks like Mrs Claus'. Smells minty!"
+ icon_state = "christmascroppedgreen"
diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm
index 5c9c9a256c..a55a2753a6 100644
--- a/code/modules/economy/vending_machines.dm
+++ b/code/modules/economy/vending_machines.dm
@@ -57,7 +57,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/peppermintschnapps = 5,
@@ -587,7 +587,7 @@
icon_state = "dinnerware"
products = list(
/obj/item/weapon/reagent_containers/food/condiment/yeast = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/tray = 8,
/obj/item/weapon/material/kitchen/utensil/fork = 6,
/obj/item/weapon/material/knife/plastic = 6,
diff --git a/code/modules/emotes/emote_define.dm b/code/modules/emotes/emote_define.dm
index 4bedd91eb0..daff23f85d 100644
--- a/code/modules/emotes/emote_define.dm
+++ b/code/modules/emotes/emote_define.dm
@@ -89,15 +89,23 @@ var/global/list/emotes_by_key
var/atom/target
if(can_target() && extra_params)
- extra_params = lowertext(extra_params)
- for(var/atom/thing in view(user))
- if(extra_params == lowertext(thing.name))
- target = thing
- break
+ var/target_dist
+ extra_params = trim(lowertext(extra_params))
+ for(var/atom/thing in view((isnull(check_range) ? world.view : check_range), user))
- if(target && target != user && check_range)
- if (get_dist(user, target) > check_range)
- to_chat(user, SPAN_WARNING("\The [target] is too far away."))
+ if(!isturf(thing.loc))
+ continue
+
+ var/new_target_dist = get_dist(thing, user)
+ if(!isnull(target_dist) && target_dist > new_target_dist)
+ continue
+
+ if(findtext(lowertext(thing.name), extra_params))
+ target_dist = new_target_dist
+ target = thing
+
+ if(!target)
+ to_chat(user, SPAN_WARNING("You cannot see a '[extra_params]' within range."))
return
var/use_1p = get_emote_message_1p(user, target, extra_params)
diff --git a/code/modules/food/food/condiment.dm b/code/modules/food/food/condiment.dm
index abf4f89b37..5b137957db 100644
--- a/code/modules/food/food/condiment.dm
+++ b/code/modules/food/food/condiment.dm
@@ -101,9 +101,9 @@
desc = "Often used to flavor food or make people sneeze."
icon_state = "peppermillsmall"
center_of_mass = list("x"=17, "y"=11)
- if("cornoil")
- name = "Corn Oil"
- desc = "A delicious oil used in cooking. Made from corn."
+ if("cookingoil")
+ name = "Cooking Oil"
+ desc = "A delicious oil used in cooking. General purpose."
icon_state = "oliveoil"
center_of_mass = list("x"=16, "y"=6)
if("sugar")
@@ -175,6 +175,13 @@
. = ..()
reagents.add_reagent("capsaicin", 50)
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil
+ name = "Cooking Oil"
+
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil/Initialize()
+ . = ..()
+ reagents.add_reagent("cookingoil", 50)
+
/obj/item/weapon/reagent_containers/food/condiment/cornoil
name = "Corn Oil"
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 5b18636bf6..00f1d23690 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -3263,7 +3263,7 @@
. = ..()
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("cornoil", 1)
+ reagents.add_reagent("cookingoil", 1)
/obj/item/weapon/reagent_containers/food/snacks/turkeyslice
name = "turkey drumstick"
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index 6c2e0d9b71..bcaad4e693 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -13,13 +13,13 @@
appliancetype = FRYER
active_power_usage = 12 KILOWATTS
heating_power = 12 KILOWATTS
-
+
light_y = 15
-
+
min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80.
optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer.
optimal_power = 0.95 // .35 higher than the default to give fryers faster cooking speed.
-
+
idle_power_usage = 3.6 KILOWATTS
// Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value.
@@ -33,11 +33,11 @@
var/datum/reagents/oil
var/optimal_oil = 9000 //90 litres of cooking oil
-
+
/obj/machinery/appliance/cooker/fryer/Initialize()
. = ..()
fry_loop = new(list(src), FALSE)
-
+
oil = new/datum/reagents(optimal_oil * 1.25, src)
var/variance = rand()*0.15
// Fryer is always a little below full, but its usually negligible
@@ -45,18 +45,18 @@
if(prob(20))
// Sometimes the fryer will start with much less than full oil, significantly impacting efficiency until filled
variance = rand()*0.5
- oil.add_reagent("cornoil", optimal_oil*(1 - variance))
+ oil.add_reagent("cookingoil", optimal_oil*(1 - variance))
/obj/machinery/appliance/cooker/fryer/Destroy()
QDEL_NULL(fry_loop)
QDEL_NULL(oil)
return ..()
-
+
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
. = ..()
if(Adjacent(user))
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
-
+
/obj/machinery/appliance/cooker/fryer/update_icon() // We add our own version of the proc to use the special fryer double-lights.
cut_overlays()
var/image/light
@@ -69,7 +69,7 @@
light.pixel_x = light_x
light.pixel_y = light_y
add_overlay(light)
-
+
/obj/machinery/appliance/cooker/fryer/heat_up()
if (..())
//Set temperature of oil reagent
@@ -102,7 +102,7 @@
cooking_power *= oil_efficiency
-
+
/obj/machinery/appliance/cooker/fryer/update_icon()
if(!stat)
..()
@@ -119,7 +119,7 @@
if(fry_loop)
fry_loop.stop(src)
..()
-
+
//Fryer gradually infuses any cooked food with oil. Moar calories
//This causes a slow drop in oil levels, encouraging refill after extended use
/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI)
@@ -177,13 +177,13 @@
return
// user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!")
-
+
//Removed delay on this action in favour of a cooldown after it
//If you can lure someone close to the fryer and grab them then you deserve success.
//And a delay on this kind of niche action just ensures it never happens
//Cooldown ensures it can't be spammed to instakill someone
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3)
-
+
fry_loop.start(src)
if(!do_mob(user, victim, 20))
@@ -239,9 +239,9 @@
//Coat the victim in some oil
oil.trans_to(victim, 40)
-
+
fry_loop.stop()
-
+
/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/reagent_containers/glass) && I.reagents)
if (I.reagents.total_volume <= 0 && oil)
diff --git a/code/modules/food/kitchen/smartfridge/smartfridge.dm b/code/modules/food/kitchen/smartfridge/smartfridge.dm
index 5e0f2e4284..f98da20f8c 100644
--- a/code/modules/food/kitchen/smartfridge/smartfridge.dm
+++ b/code/modules/food/kitchen/smartfridge/smartfridge.dm
@@ -112,6 +112,7 @@
user.remove_from_mob(O)
stock(O)
user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].")
+ sortTim(item_records, /proc/cmp_stored_item_name)
else if(istype(O, /obj/item/weapon/storage/bag))
var/obj/item/weapon/storage/bag/P = O
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index c909c29fc5..34f4146159 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -522,13 +522,20 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cutlet
-/datum/recipe/roastedsunflowerseeds
+/datum/recipe/roastedcornsunflowerseeds
reagents = list("sodiumchloride" = 1, "cornoil" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+/datum/recipe/roastedsunflowerseeds
+ reagents = list("sodiumchloride" = 1, "cookingoil" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+
/datum/recipe/roastedpeanutsunflowerseeds
reagents = list("sodiumchloride" = 1, "peanutoil" = 1)
items = list(
@@ -537,10 +544,20 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
/datum/recipe/roastedpeanuts
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "cookingoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
+/datum/recipe/roastedpeanutscorn
fruit = list("peanut" = 2)
reagents = list("sodiumchloride" = 2, "cornoil" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+/datum/recipe/roastedpeanutspeanut
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "peanutoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
/datum/recipe/mint
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 67ff1de565..591bf69e2e 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -211,6 +211,7 @@
var/greater_form // Greater form, if any, ie. human for monkeys.
var/holder_type
var/gluttonous // Can eat some mobs. 1 for mice, 2 for monkeys, 3 for people.
+ var/soft_landing = FALSE // Can fall down and land safely on small falls.
var/rarity_value = 1 // Relative rarity/collector value for this species.
var/economic_modifier = 2 // How much money this species makes
@@ -546,6 +547,20 @@
H.adjustToxLoss(amount)
/datum/species/proc/handle_falling(mob/living/carbon/human/H, atom/hit_atom, damage_min, damage_max, silent, planetary)
+ if(soft_landing)
+ if(planetary || !istype(H))
+ return FALSE
+
+ var/turf/landing = get_turf(hit_atom)
+ if(!istype(landing))
+ return FALSE
+
+ if(!silent)
+ to_chat(H, SPAN_NOTICE("You manage to lower impact of the fall and land safely."))
+ landing.visible_message("\The [H] lowers down from above, landing safely.")
+ playsound(H, "rustle", 25, 1)
+ return TRUE
+
return FALSE
/datum/species/proc/post_spawn_special(mob/living/carbon/human/H)
diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
index 25f7eb890e..3438f8b0c9 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm
@@ -131,6 +131,7 @@
//brute_mod = 1.15
//burn_mod = 1.15
//gluttonous = 1
+ soft_landing = TRUE
num_alternate_languages = 3
secondary_langs = list(LANGUAGE_BIRDSONG)
name_language = LANGUAGE_BIRDSONG
@@ -402,6 +403,8 @@
min_age = 18
max_age = 80
+ soft_landing = TRUE
+
base_color = "#EECEB3"
male_scream_sound = null //CHOMPedit
diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm
index db24d0674e..fb92130126 100644
--- a/code/modules/mob/living/carbon/human/species/station/teshari.dm
+++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm
@@ -146,7 +146,7 @@
/datum/mob_descriptor/build = -3
)
- var/static/list/flight_bodyparts = list(
+/* var/static/list/flight_bodyparts = list(
BP_L_ARM,
BP_R_ARM,
BP_L_HAND,
@@ -155,7 +155,7 @@
var/static/list/flight_suit_blacklisted_types = list(
/obj/item/clothing/suit/space,
/obj/item/clothing/suit/straight_jacket
- )
+ )*/
default_emotes = list(
/decl/emote/audible/teshsqueak,
@@ -217,4 +217,4 @@
H.Stun(1)
playsound(H, "rustle", 25, 1)
return TRUE
-*/ //CHOMPedit end
+*/ //CHOMPedit end. CHOMPEdit IIC: looks like upstream disabled it too because they made it a trait instead.
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
index 7725612172..5f1fa82e65 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
@@ -161,6 +161,12 @@
H.verbs |= /mob/living/proc/flying_toggle
H.verbs |= /mob/living/proc/start_wings_hovering
+/datum/trait/positive/soft_landing
+ name = "Soft Landing"
+ desc = "You can fall from certain heights without suffering any injuries, be it via wings, lightness of frame or general dexterity."
+ cost = 1
+ var_changes = list("soft_landing" = TRUE)
+
/datum/trait/positive/hardfeet
name = "Hard Feet"
desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards."
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 62ef3c0a78..1067b3d428 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -1249,9 +1249,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
riding_datum = new /datum/riding/taur(src)
verbs |= /mob/living/carbon/human/proc/taur_mount
verbs |= /mob/living/proc/toggle_rider_reins
- return working
- else
- return working
+ else if(islongtail(tail_style))
+ working.pixel_x = -16
+ return working
return null
// TODO - Move this to where it should go ~Leshana
diff --git a/code/modules/mob/living/simple_mob/life.dm b/code/modules/mob/living/simple_mob/life.dm
index 652d7ce08e..7296343376 100644
--- a/code/modules/mob/living/simple_mob/life.dm
+++ b/code/modules/mob/living/simple_mob/life.dm
@@ -15,6 +15,7 @@
handle_special()
handle_guts()
+ do_healing() //VOREStation Add
return TRUE
@@ -54,7 +55,7 @@
healths.icon_state = "health7"
//Updates the nutrition while we're here
- var/food_per = (nutrition / 500) * 100 //VOREStation Edit: Bandaid hardcode number to avoid misleading percentage based hunger alerts with our 6k cap.
+ var/food_per = (nutrition / max_nutrition) * 100
switch(food_per)
if(90 to INFINITY)
clear_alert("nutrition")
@@ -63,6 +64,34 @@
if(-INFINITY to 50)
throw_alert("nutrition", /obj/screen/alert/starving)
+//VOREStation ADD START - I made this for catslugs but tbh it's probably cool to give to everything.
+//Gives all simplemobs passive healing as long as they can find food.
+//Slow enough that it should affect combat basically not at all
+
+/mob/living/simple_mob/proc/do_healing()
+ if(nutrition < 150)
+ return
+ if(health == maxHealth)
+ return
+ if(heal_countdown > 0)
+ heal_countdown --
+ return
+ if(resting)
+ if(bruteloss > 0)
+ adjustBruteLoss(-10)
+ else if(fireloss > 0)
+ adjustFireLoss(-10)
+ nutrition -= 50
+ heal_countdown = 5
+ return
+ if(bruteloss > 0)
+ adjustBruteLoss(-1)
+ else if(fireloss > 0)
+ adjustFireLoss(-1)
+ nutrition -= 5
+ heal_countdown = 5
+//VOREStation ADD END
+
// Override for special bullshit.
/mob/living/simple_mob/proc/handle_special()
return
diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm
index c4a4bb8c46..7b6673c2d5 100644
--- a/code/modules/mob/living/simple_mob/simple_mob.dm
+++ b/code/modules/mob/living/simple_mob/simple_mob.dm
@@ -165,6 +165,7 @@
// Used for if the mob can drop limbs. Overrides the icon cache key, so it doesn't keep remaking the icon needlessly.
var/limb_icon_key
var/understands_common = TRUE //VOREStation Edit - Makes it so that simplemobs can understand galcomm without being able to speak it.
+ var/heal_countdown = 5 //VOREStation Edit - A cooldown ticker for passive healing
/mob/living/simple_mob/Initialize()
verbs -= /mob/verb/observe
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
index 4a2ee298c9..ae9d1ff188 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm
@@ -51,7 +51,6 @@
has_langs = list("Sign Language")
- var/heal_countdown = 0
var/picked_color = FALSE
can_enter_vent_with = list(
@@ -163,39 +162,55 @@
playsound(src, 'sound/items/eatfood.ogg', 75, 1)
/mob/living/simple_mob/vore/alienanimals/catslug/attack_hand(mob/living/carbon/human/M as mob)
- if(stat != DEAD && M.a_intent == I_HELP && resting)
+
+ if(stat == DEAD)
+ return ..()
+ if(M.a_intent != I_HELP)
+ return ..()
+ playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ if(resting)
M.visible_message("\The [M.name] shakes \the [src] awake from their nap.","You shake \the [src] awake!")
- playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
lay_down()
ai_holder.go_wake()
return
+ if(M.zone_sel.selecting == BP_HEAD)
+ M.visible_message( \
+ "[M] pats \the [src] on the head.", \
+ "You pat \the [src] on the head.", )
+ if(client)
+ return
+ if(prob(10))
+ visible_message("\The [src] purrs and leans into [M]'s hand.")
+ else if(M.zone_sel.selecting == BP_R_HAND || M.zone_sel.selecting == BP_L_HAND)
+ M.visible_message( \
+ "[M] shakes \the [src]'s hand.", \
+ "You shake \the [src]'s hand.", )
+ if(client)
+ return
+ if(prob(10))
+ visible_message("\The [src]'s looks a little confused nibbles at [M]'s hand experimentally.")
+ else if(M.zone_sel.selecting == "mouth")
+ M.visible_message( \
+ "[M] boops \the [src]'s nose.", \
+ "You boop \the [src] on the nose.", )
+ if(client)
+ return
+ if(prob(10))
+ visible_message("\The [src]'s eyes widen as they stare at [M]. After a moment they rub their prodded snoot.")
+ else if(M.zone_sel.selecting == BP_GROIN)
+ M.visible_message( \
+ "[M] rubs \the [src]'s tummy...", \
+ "You rub \the [src]'s tummy... You feel the danger.", )
+ if(client)
+ return
+ visible_message("\The [src] pushes [M]'s hand away from their tummy and furrows their brow!")
+ if(prob(5))
+ ai_holder.target = M
+ ai_holder.track_target_position()
+ ai_holder.set_stance(STANCE_FIGHT)
else
return ..()
-/mob/living/simple_mob/vore/alienanimals/catslug/Life()
- . = ..()
- if(nutrition < 150)
- return
- if(health == maxHealth)
- return
- if(heal_countdown > 0)
- heal_countdown --
- return
- if(resting)
- if(bruteloss > 0)
- adjustBruteLoss(-10)
- else if(fireloss > 0)
- adjustFireLoss(-10)
- nutrition -= 50
- heal_countdown = 5
- return
- if(bruteloss > 0)
- adjustBruteLoss(-1)
- else if(fireloss > 0)
- adjustFireLoss(-1)
- nutrition -= 5
- heal_countdown = 5
-
/mob/living/simple_mob/vore/alienanimals/catslug/Login() //If someone plays as us let's just be a passive mob in case accidents happen if the player D/Cs
. = ..()
ai_holder.hostile = FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
index ded1f6ad6a..4cc14a1caa 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
@@ -9,7 +9,7 @@
/mob/living/simple_mob/vore/overmap/spacewhale
name = "space whale"
desc = "It's a space whale. I don't know what more you expected."
- scanner_desc = "It's a space whale! Woah!"
+ scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it."
catalogue_data = list(/datum/category_item/catalogue/fauna/spacewhale)
icon = 'icons/mob/alienanimals_x32.dmi'
@@ -77,6 +77,7 @@
var/hazard_drop_chance = 35
var/held_hazard
var/restless = FALSE
+ var/post_restless_tired = 0
vore_active = 1
vore_capacity = 99
@@ -133,6 +134,9 @@
/mob/living/simple_mob/vore/overmap/spacewhale/Life()
. = ..()
+ if(post_restless_tired)
+ post_restless_tired--
+ return
if(!restless && prob(0.5))
handle_restless()
@@ -143,6 +147,8 @@
hazard_drop_chance = initial(hazard_drop_chance)
movement_cooldown = initial(movement_cooldown)
ai_holder.base_wander_delay = initial(ai_holder.base_wander_delay)
+ ai_holder.wander = FALSE
+ post_restless_tired = 250
if(child_om_marker.known == TRUE)
child_om_marker.icon_state = "space_whale"
visible_message("\The [child_om_marker.name] settles down.")
@@ -198,4 +204,5 @@
skybox_pixel_x = 0
skybox_pixel_y = 0
glide_size = 0.384
- parent_mob_type = /mob/living/simple_mob/vore/overmap/spacewhale
\ No newline at end of file
+ parent_mob_type = /mob/living/simple_mob/vore/overmap/spacewhale
+ scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it."
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
index 9222975f1f..c1a7c8d084 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
@@ -118,7 +118,6 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
var/wantpet = 0
var/affection_factor = 1 //Some Teppi are more happy to be loved on than others.
var/teppi_warned = FALSE
- var/heal_countdown = 5
var/teppi_mutate = FALSE //Allows Teppi to get their children's colors scrambled, and possibly other things later on!
attacktext = list("nipped", "chomped", "bonked", "stamped on")
@@ -689,22 +688,9 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
amount_grown -= rand(100,250)
if(not_hungy)
do_breeding()
- do_healing()
if(prob(0.5))
teppi_sound()
-/mob/living/simple_mob/vore/alienanimals/teppi/proc/do_healing()
- if(health < maxHealth)
- if(heal_countdown > 0)
- heal_countdown -= 1
- return
- if(bruteloss > 0)
- adjustBruteLoss(-2)
- else if(fireloss > 0)
- adjustFireLoss(-0.5)
- nutrition -= 5
- heal_countdown = 5
-
/mob/living/simple_mob/vore/alienanimals/teppi/proc/do_breeding()
if(!breedable || prevent_breeding)
return
diff --git a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm
index 470f5412ae..9bbdc8240c 100644
--- a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm
@@ -1147,3 +1147,22 @@
ani_state = "tentacle_w"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
+
+//LONG TAILS ARE NOT TAUR BUTTS >:O
+/datum/sprite_accessory/tail/longtail
+ name = "You should not see this..."
+ icon = 'icons/mob/vore/taurs_vr.dmi'
+ do_colouration = 1 // Yes color, using tail color
+ color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail
+ name = "Shadekin Tail"
+ icon_state = "shadekin_s"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_2c
+ name = "Shadekin Tail (dual color)"
+ extra_overlay = "shadekin_markings"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_long
+ name = "Shadekin Long Tail"
+ icon_state = "shadekin_long_s"
diff --git a/code/modules/mob/new_player/sprite_accessories_taur.dm b/code/modules/mob/new_player/sprite_accessories_taur.dm
index 66233db64c..cc0d2472c2 100644
--- a/code/modules/mob/new_player/sprite_accessories_taur.dm
+++ b/code/modules/mob/new_player/sprite_accessories_taur.dm
@@ -326,20 +326,3 @@
icon_state = "mermaid_s"
can_ride = 0
icon_sprite_tag = "mermaid"
-
-/datum/sprite_accessory/tail/taur/shadekin_tail
- name = "Shadekin Tail"
- icon_state = "shadekin_s"
- can_ride = 0
- hide_body_parts = null
- clip_mask_icon = null
- clip_mask_state = null
- //species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
-
-/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_2c
- name = "Shadekin Tail (dual color)"
- extra_overlay = "shadekin_markings"
-
-/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_long
- name = "Shadekin Long Tail"
- icon_state = "shadekin_long_s"
diff --git a/code/modules/mob/new_player/sprite_accessories_taur_vr.dm b/code/modules/mob/new_player/sprite_accessories_taur_vr.dm
index 307255a371..22e1b2ce01 100644
--- a/code/modules/mob/new_player/sprite_accessories_taur_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_taur_vr.dm
@@ -480,24 +480,6 @@
msg_prey_stepunder = "You jump over %prey's thick tail."
msg_owner_stepunder = "%owner bounds over your tail."
-/datum/sprite_accessory/tail/taur/shadekin_tail
- name = "Shadekin Tail"
- icon_state = "shadekin_s"
- can_ride = 0
- hide_body_parts = null
- clip_mask_icon = null
- clip_mask_state = null
- //apply_restrictions = TRUE
- //species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
-
-/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_2c
- name = "Shadekin Tail (dual color)"
- extra_overlay = "shadekin_markings"
-
-/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_long
- name = "Shadekin Long Tail"
- icon_state = "shadekin_long_s"
-
/datum/sprite_accessory/tail/taur/pawcow // this grabs suit sprites from the normal cow, the outline is the same
name = "Cow w/ paws (Taur)"
icon_state = "pawcow_s"
diff --git a/code/modules/multiz/movement_vr.dm b/code/modules/multiz/movement_vr.dm
index 78b79c60bf..2df84190ce 100644
--- a/code/modules/multiz/movement_vr.dm
+++ b/code/modules/multiz/movement_vr.dm
@@ -36,6 +36,11 @@
if(pred.softfall || (istype(pred, /mob/living/simple_mob) && pred.mob_size <= MOB_SMALL)) // TODO: add ability for mob below to be 'soft' and cushion fall
safe_fall = TRUE
+ if(istype(pred, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = pred
+ if(H.species.soft_landing)
+ safe_fall = TRUE
+
var/mob/living/prey = src
var/fallloc = prey.loc
if(pred.can_be_drop_pred && prey.can_be_drop_prey)
diff --git a/code/modules/multiz/stairs.dm b/code/modules/multiz/stairs.dm
index 99b015c6c2..52923bfe85 100644
--- a/code/modules/multiz/stairs.dm
+++ b/code/modules/multiz/stairs.dm
@@ -206,9 +206,6 @@
if(L.grabbed_by.len) // Same as pulledby, whoever's holding you will keep you from going down stairs.
return
- if(L.has_buckled_mobs())
- return
-
if(L.buckled)
L.buckled.forceMove(get_turf(top))
@@ -460,9 +457,6 @@
if(L.grabbed_by.len) // Same as pulledby, whoever's holding you will keep you from going down stairs.
return
- if(L.has_buckled_mobs())
- return
-
if(L.buckled)
L.buckled.forceMove(get_turf(bottom))
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 0f0ea8e2ef..e0dea8e892 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -597,11 +597,20 @@
return
else if(istype(P, /obj/item/weapon/stamp) || istype(P, /obj/item/clothing/gloves/ring/seal))
+ if(istype(P, /obj/item/weapon/stamp))
+ var/obj/item/weapon/stamp/the_stamp = P
+ if(the_stamp.stamptext)
+ stamps += (stamps=="" ? "
" : "
") + "[the_stamp.stamptext]"
+ else
+ stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]."
+ else
+ var/obj/item/clothing/gloves/ring/seal/the_stamp = P
+ if(the_stamp.stamptext)
+ stamps += (stamps=="" ? "
" : "
") + "[the_stamp.stamptext]"
+ else
+ stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]."
if((!in_range(src, usr) && loc != user && !( istype(loc, /obj/item/weapon/clipboard) ) && loc.loc != user && user.get_active_hand() != P))
return
-
- stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [P.name]."
-
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
var/x, y
if(istype(P, /obj/item/weapon/stamp/captain) || istype(P, /obj/item/weapon/stamp/centcomm))
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index a1bd068f64..6948d41581 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -14,6 +14,7 @@
attack_verb = list("stamped")
drop_sound = 'sound/items/drop/device.ogg'
pickup_sound = 'sound/items/pickup/device.ogg'
+ var/stamptext = null
/obj/item/weapon/stamp/captain
name = "site manager's rubber stamp"
diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
index 7e5afdb013..42677feb07 100644
--- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm
+++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
@@ -296,7 +296,7 @@
/obj/structure/reagent_dispensers/acid/Initialize()
. = ..()
reagents.add_reagent("sacid", 1000)
-
+
/obj/structure/reagent_dispensers/water_cooler
name = "Water-Cooler"
desc = "A machine that dispenses water to drink."
@@ -461,7 +461,7 @@
/obj/structure/reagent_dispensers/cookingoil/New()
..()
- reagents.add_reagent("cornoil",5000)
+ reagents.add_reagent("cookingoil",5000)
/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/item/projectile/Proj)
if(Proj.get_structure_damage())
diff --git a/code/modules/reagents/reactions/instant/drinks.dm b/code/modules/reagents/reactions/instant/drinks.dm
index efb58fe90c..c2e0521ee6 100644
--- a/code/modules/reagents/reactions/instant/drinks.dm
+++ b/code/modules/reagents/reactions/instant/drinks.dm
@@ -141,7 +141,7 @@
name = "Space Beer"
id = "spacebeer"
result = "beer"
- required_reagents = list("cornoil" = 10)
+ required_reagents = list("cornoil" = 5, "flour" = 5)
catalysts = list("enzyme" = 5)
result_amount = 10
@@ -203,6 +203,7 @@
name = "Classic Martini"
id = "martini"
result = "martini"
+ inhibitors = list("bitters" = 1)
required_reagents = list("gin" = 2, "vermouth" = 1)
result_amount = 3
@@ -907,7 +908,7 @@
name = "Debugger"
id = "debugger"
result = "debugger"
- required_reagents = list("fuel" = 1, "sugar" = 2, "cornoil" = 2)
+ required_reagents = list("fuel" = 1, "sugar" = 2, "cookingoil" = 2)
result_amount = 5
/decl/chemical_reaction/instant/drinks/spacersbrew
@@ -1205,14 +1206,14 @@
name = "Oil Slick"
id = "oilslick"
result = "oilslick"
- required_reagents = list("cornoil" = 2, "honey" = 1)
+ required_reagents = list("cookingoil" = 2, "honey" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/slimeslam
name = "Slick Slime Slammer"
id = "slimeslammer"
result = "slimeslammer"
- required_reagents = list("cornoil" = 2, "peanutbutter" = 1)
+ required_reagents = list("cookingoil" = 2, "peanutbutter" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/virginsexonthebeach
@@ -1254,7 +1255,7 @@
name = "Soda Oil"
id = "sodaoil"
result = "sodaoil"
- required_reagents = list("cornoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
+ required_reagents = list("cookingoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/fusionnaire
diff --git a/code/modules/reagents/reactions/instant/food.dm b/code/modules/reagents/reactions/instant/food.dm
index 021bd72f41..d31ffd21b2 100644
--- a/code/modules/reagents/reactions/instant/food.dm
+++ b/code/modules/reagents/reactions/instant/food.dm
@@ -54,6 +54,22 @@
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
+/decl/chemical_reaction/instant/food/cookingoilcorn
+ name = "Cooking Oil"
+ id = "cookingoilcorn"
+ result = "cookingoil"
+ required_reagents = list("cornoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
+/decl/chemical_reaction/instant/food/cookingoilpeanut
+ name = "Cooking Oil"
+ id = "cookingoilpeanut"
+ result = "cookingoil"
+ required_reagents = list("peanutoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
/decl/chemical_reaction/instant/food/soysauce
name = "Soy Sauce"
id = "soysauce"
@@ -87,7 +103,7 @@
name = "mayonnaise"
id = "mayo"
result = "mayo"
- required_reagents = list("egg" = 9, "cornoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
+ required_reagents = list("egg" = 9, "cookingoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
result_amount = 15
/decl/chemical_reaction/instant/food/cheesewheel
diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm
index 100e4ea60a..d26f0fa312 100644
--- a/code/modules/reagents/reagents/food_drinks.dm
+++ b/code/modules/reagents/reagents/food_drinks.dm
@@ -234,6 +234,12 @@
to_chat(M, "Searing hot oil burns you, wash it off quick!")
lastburnmessage = world.time
+/datum/reagent/nutriment/triglyceride/oil/cooking
+ name = "Cooking Oil"
+ id = "cookingoil"
+ description = "A general-purpose cooking oil."
+ reagent_state = LIQUID
+
/datum/reagent/nutriment/triglyceride/oil/corn
name = "Corn Oil"
id = "cornoil"
diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index aca1e82dd3..82c3495ff9 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -28,12 +28,14 @@
var/digestchance = 0 // % Chance of stomach beginning to digest if prey struggles
var/absorbchance = 0 // % Chance of stomach beginning to absorb if prey struggles
var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles.
- var/transferchance = 0 // % Chance of prey being
+ var/transferchance = 0 // % Chance of prey being trasnsfered, goes from 0-100%
+ var/transferchance_secondary = 0 // % Chance of prey being transfered to transferchance_secondary, also goes 0-100%
var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone.
var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine.
var/display_absorbed_examine = FALSE // Do we display absorption examine messages for this belly at all?
var/shrink_grow_size = 1 // This horribly named variable determines the minimum/maximum size it will shrink/grow prey to.
var/transferlocation // Location that the prey is released if they struggle and get dropped off.
+ var/transferlocation_secondary // Secondary location that prey is released to.
var/release_sound = "Splatter" // Sound for letting someone out. Replaced from True/false
var/mode_flags = 0 // Stripping, numbing, etc.
var/fancy_vore = FALSE // Using the new sounds?
@@ -156,7 +158,9 @@
"absorbchance",
"escapechance",
"transferchance",
+ "transferchance_secondary",
"transferlocation",
+ "transferlocation_secondary",
"bulge_size",
"display_absorbed_examine",
"shrink_grow_size",
@@ -825,6 +829,27 @@
transfer_contents(R, dest_belly)
return
+ else if(prob(transferchance_secondary) && transferlocation_secondary) //After the first potential mess getting into, run the secondary one which might be even bigger of a mess.
+ var/obj/belly/dest_belly
+ for(var/obj/belly/B as anything in owner.vore_organs)
+ if(B.name == transferlocation_secondary)
+ dest_belly = B
+ break
+
+ if(!dest_belly)
+ to_chat(owner, "Something went wrong with your belly transfer settings. Your [lowertext(name)] has had it's transfer chance and transfer location cleared as a precaution.")
+ transferchance_secondary = 0
+ transferlocation_secondary = null
+ return
+
+ to_chat(R, "Your attempt to escape [lowertext(name)] has failed and your struggles only results in you sliding into [owner]'s [transferlocation_secondary]!")
+ to_chat(owner, "Someone slid into your [transferlocation_secondary] due to their struggling inside your [lowertext(name)]!")
+ if(C)
+ transfer_contents(C, dest_belly)
+ return
+ transfer_contents(R, dest_belly)
+ return
+
else if(prob(absorbchance) && digest_mode != DM_ABSORB) //After that, let's have it run the absorb chance.
to_chat(R, "In response to your struggling, \the [lowertext(name)] begins to cling more tightly...")
to_chat(owner, "You feel your [lowertext(name)] start to cling onto its contents...")
@@ -917,7 +942,9 @@
dupe.absorbchance = absorbchance
dupe.escapechance = escapechance
dupe.transferchance = transferchance
+ dupe.transferchance_secondary = transferchance_secondary
dupe.transferlocation = transferlocation
+ dupe.transferlocation_secondary = transferlocation_secondary
dupe.bulge_size = bulge_size
dupe.shrink_grow_size = shrink_grow_size
dupe.mode_flags = mode_flags
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 2cbc7a81c4..31b29a5f5b 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -211,6 +211,8 @@
selected_list["interacts"]["escapetime"] = selected.escapetime
selected_list["interacts"]["transferchance"] = selected.transferchance
selected_list["interacts"]["transferlocation"] = selected.transferlocation
+ selected_list["interacts"]["transferchance_secondary"] = selected.transferchance_secondary
+ selected_list["interacts"]["transferlocation_secondary"] = selected.transferlocation_secondary
selected_list["interacts"]["absorbchance"] = selected.absorbchance
selected_list["interacts"]["digestchance"] = selected.digestchance
@@ -1066,6 +1068,21 @@
else
host.vore_selected.transferlocation = choice.name
. = TRUE
+ if("b_transferchance_secondary")
+ var/transfer_secondary_chance_input = input(user, "Set secondary belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null
+ if(!isnull(transfer_secondary_chance_input))
+ host.vore_selected.transferchance_secondary = sanitize_integer(transfer_secondary_chance_input, 0, 100, initial(host.vore_selected.transferchance_secondary))
+ . = TRUE
+ if("b_transferlocation_secondary")
+ var/obj/belly/choice_secondary = tgui_input_list(usr, "Where do you want your [lowertext(host.vore_selected.name)] to alternately lead if prey resists?","Select Belly", (host.vore_organs + "None - Remove" - host.vore_selected))
+
+ if(!choice_secondary) //They cancelled, no changes
+ return FALSE
+ else if(choice_secondary == "None - Remove")
+ host.vore_selected.transferlocation_secondary = null
+ else
+ host.vore_selected.transferlocation_secondary = choice_secondary.name
+ . = TRUE
if("b_absorbchance")
var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null
if(!isnull(absorb_chance_input))
@@ -1134,6 +1151,10 @@
dest_for = B.name
failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. "
break
+ if(B.transferlocation_secondary == host.vore_selected)
+ dest_for = B.name
+ failure_msg += "This is the destiantion for at least '[dest_for]' secondary belly transfers. Remove it as the destination from any bellies before deleting it. "
+ break
if(host.vore_selected.contents.len)
failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same.
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index fa730032c2..a3ec12a953 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -2297,15 +2297,72 @@ Departamental Swimsuits, for general use
colorswap(usr)
-//PastelPrinceDan: Masumi Maki
-/obj/item/clothing/under/fluff/masumi_overalls
- name = "white and blue overalls"
+//PastelPrinceDan: Masumi Maki & Hatterhat: Harold Robinson
+/obj/item/clothing/under/fluff/mechanic_overalls
+ name = "mechanic overalls"
desc = "A set of white and blue overalls, paired with a yellow shirt."
icon = 'icons/vore/custom_clothes_vr.dmi'
- icon_state = "masumioveralls"
- item_state = "masumioveralls"
+ icon_state = "mechaoveralls"
+ item_state = "mechaoveralls"
icon_override = 'icons/vore/custom_onmob_vr.dmi'
+//PastelPrinceDan: Masumi Maki & Hatterhat: Harold Robinson
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic
+ name = "mechanic winter coat"
+ desc = "A blue and yellow winter coat, worn only by overachievers."
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "mechacoat"
+
+ icon_override = 'icons/vore/custom_onmob_vr.dmi'
+ item_state = "mechacoat_mob"
+ hoodtype = /obj/item/clothing/head/hood/winter/fluff/mechanic
+
+/obj/item/clothing/head/hood/winter/fluff/mechanic
+ name = "mechanic winter hood"
+ desc = "A blue and yellow winter coat's hood."
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_state = "mechahood"
+
+ icon_override = 'icons/vore/custom_onmob_vr.dmi'
+ item_state = "mechahood_mob"
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/ui_action_click()
+ ToggleHood_mechacoat()
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/equipped(mob/user, slot)
+ if(slot != slot_wear_suit)
+ RemoveHood_mechacoat()
+ ..()
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/proc/RemoveHood_mechacoat()
+ icon_state = "mechacoat"
+ item_state = "mechacoat_mob"
+ hood_up = 0
+ if(ishuman(hood.loc))
+ var/mob/living/carbon/H = hood.loc
+ H.unEquip(hood, 1)
+ H.update_inv_wear_suit()
+ hood.loc = src
+
+/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/mechanic/proc/ToggleHood_mechacoat()
+ if(!hood_up)
+ if(ishuman(loc))
+ var/mob/living/carbon/human/H = loc
+ if(H.wear_suit != src)
+ to_chat(H, "You must be wearing [src] to put up the hood!")
+ return
+ if(H.head)
+ to_chat(H, "You're already wearing something on your head!")
+ return
+ else
+ H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
+ hood_up = 1
+ icon_state = "mechacoat_t"
+ item_state = "mechacoat_mob_t"
+ H.update_inv_wear_suit()
+ else
+ RemoveHood_mechacoat()
+
//Pandora029 : Evelyn Tareen
/obj/item/clothing/suit/storage/hooded/wintercoat/security/fluff/evelyn
name = "warden's navy winter coat"
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 6621149ad9..de00e22893 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1409,3 +1409,11 @@ End CHOMP Removal*/
pickup_sound = null
origin_tech = null
matter = null
+
+//Coolcrow420 - Jade Davis
+/obj/item/weapon/stamp/fluff/jade_horror
+ name = "Council of Mid Horror rubber stamp"
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "stamp-midhorror"
+ stamptext = "This paper has been certified by The Council of Mid Horror"
+
diff --git a/icons/inventory/accessory/item.dmi b/icons/inventory/accessory/item.dmi
index 9c51533b02..766a661e79 100644
Binary files a/icons/inventory/accessory/item.dmi and b/icons/inventory/accessory/item.dmi differ
diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi
index dcf3765fe4..b6e325e2d8 100644
Binary files a/icons/inventory/accessory/mob.dmi and b/icons/inventory/accessory/mob.dmi differ
diff --git a/icons/inventory/face/item.dmi b/icons/inventory/face/item.dmi
index 0d18ec906f..fb8c950859 100644
Binary files a/icons/inventory/face/item.dmi and b/icons/inventory/face/item.dmi differ
diff --git a/icons/inventory/face/mob.dmi b/icons/inventory/face/mob.dmi
index e7e5626fde..83095f8a10 100644
Binary files a/icons/inventory/face/mob.dmi and b/icons/inventory/face/mob.dmi differ
diff --git a/icons/inventory/feet/item.dmi b/icons/inventory/feet/item.dmi
index 94c360ec2f..5da36d908a 100644
Binary files a/icons/inventory/feet/item.dmi and b/icons/inventory/feet/item.dmi differ
diff --git a/icons/inventory/feet/mob.dmi b/icons/inventory/feet/mob.dmi
index 702111404f..f89178cc90 100644
Binary files a/icons/inventory/feet/mob.dmi and b/icons/inventory/feet/mob.dmi differ
diff --git a/icons/inventory/head/item.dmi b/icons/inventory/head/item.dmi
index 3d4ec81121..d91aa7369f 100644
Binary files a/icons/inventory/head/item.dmi and b/icons/inventory/head/item.dmi differ
diff --git a/icons/inventory/suit/item.dmi b/icons/inventory/suit/item.dmi
index beb1f9c3a7..8d399661f4 100644
Binary files a/icons/inventory/suit/item.dmi and b/icons/inventory/suit/item.dmi differ
diff --git a/icons/inventory/suit/mob.dmi b/icons/inventory/suit/mob.dmi
index a313002203..871e254583 100644
Binary files a/icons/inventory/suit/mob.dmi and b/icons/inventory/suit/mob.dmi differ
diff --git a/icons/inventory/uniform/item.dmi b/icons/inventory/uniform/item.dmi
index 9f46849608..14761a73e0 100644
Binary files a/icons/inventory/uniform/item.dmi and b/icons/inventory/uniform/item.dmi differ
diff --git a/icons/inventory/uniform/mob.dmi b/icons/inventory/uniform/mob.dmi
index a6bb42e1d7..d0670504d0 100644
Binary files a/icons/inventory/uniform/mob.dmi and b/icons/inventory/uniform/mob.dmi differ
diff --git a/icons/mob/hud_jobs_vr.dmi b/icons/mob/hud_jobs_vr.dmi
index 8d8561c080..4a52481088 100644
Binary files a/icons/mob/hud_jobs_vr.dmi and b/icons/mob/hud_jobs_vr.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index f67b29720d..7d433c9f41 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/vore/tails_vr.dmi b/icons/mob/vore/tails_vr.dmi
index 17eb9d16ae..9d1c37b8da 100644
Binary files a/icons/mob/vore/tails_vr.dmi and b/icons/mob/vore/tails_vr.dmi differ
diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi
index 5d75cf88b9..3269a00d08 100644
Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ
diff --git a/icons/vore/custom_onmob_vr.dmi b/icons/vore/custom_onmob_vr.dmi
index 5e2d399fd8..03c26ba63d 100644
Binary files a/icons/vore/custom_onmob_vr.dmi and b/icons/vore/custom_onmob_vr.dmi differ
diff --git a/maps/expedition_vr/beach/submaps/BlastMine1.dmm b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
new file mode 100644
index 0000000000..388018e940
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
@@ -0,0 +1,35 @@
+"a" = (/turf/simulated/mineral,/area/submap/cave/BlastMine1)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"c" = (/obj/structure/sign/warning/bomb_range,/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
+"d" = (/obj/structure/table/rack,/obj/item/weapon/syndie/c4explosive,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"e" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"f" = (/mob/living/simple_mob/animal/sif/savik,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"g" = (/obj/structure/table/rack,/obj/item/clothing/head/bomb_hood,/obj/item/clothing/suit/bomb_suit,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"h" = (/obj/item/device/gps/internal/poi{gps_tag = "Unidentified Signal"},/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
+"i" = (/mob/living/simple_mob/animal/sif/diyaab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"j" = (/obj/structure/table/reinforced,/obj/item/weapon/flame/lighter/zippo/c4detonator{detonator_mode = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"k" = (/obj/structure/table/rack,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"l" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"m" = (/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
+"n" = (/obj/structure/girder/displaced,/obj/structure/sign/warning/bomb_range,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"o" = (/obj/structure/table,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"p" = (/obj/effect/decal/remains/human,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
+"q" = (/obj/structure/sign/warning/bomb_range,/turf/simulated/wall/sandstone{damage = 20},/area/submap/cave/BlastMine1)
+
+(1,1,1) = {"
+aaabbbaaaa
+aabbbbaaaa
+aacbbbbaaa
+aadbbbbbbb
+abdbbecbbb
+abdbfbgbbb
+abhbbbbbba
+abdibbgjaa
+bbkbilmaaa
+bbkbbbbbba
+banbbbbbbb
+abbbbbbbbb
+aaopbbqbbb
+bbbbbbbbba
+baabbbaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/CaveTrench.dmm b/maps/expedition_vr/beach/submaps/CaveTrench.dmm
new file mode 100644
index 0000000000..3221988c51
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/CaveTrench.dmm
@@ -0,0 +1,79 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/template_noop,/area/submap/Cavelake)
+"c" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/Cavelake)
+"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"e" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Cavelake)
+"g" = (/mob/living/simple_mob/animal/sif/hooligan_crab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"h" = (/turf/simulated/floor/water,/area/submap/Cavelake)
+"i" = (/mob/living/simple_mob/animal/passive/fish/perch,/turf/simulated/floor/water,/area/submap/Cavelake)
+"j" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"k" = (/mob/living/simple_mob/animal/passive/fish/trout,/turf/simulated/floor/water,/area/submap/Cavelake)
+"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"m" = (/obj/random/mob/sif,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"n" = (/obj/item/clothing/mask/snorkel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"o" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"p" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"q" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"r" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"s" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "Rellek's telling me that we're in deep shit if the townies found out I'm cooking up drones out here. Like I give a fuck, We're minning our asses off only to dig into some bug nest to get our legs chewed. Well I'm not looking a gift horse in the mouth. Those drone dudes out in the wild hooked us up with these machines so long as they get some of the metal we dig up. Win win for us, Guess we're retiring early after all."; name = "Note"},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"t" = (/obj/structure/table/steel,/obj/item/robot_parts/robot_component/actuator,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"u" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"v" = (/obj/structure/simple_door/wood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"w" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"x" = (/obj/structure/table/steel,/obj/item/device/robotanalyzer,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"y" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"z" = (/obj/structure/table/bench/steel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"A" = (/obj/effect/decal/remains,/obj/item/clothing/under/rank/miner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"B" = (/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
+"C" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
+"G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CaveTrench)
+"I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
+"J" = (/obj/machinery/drone_fabricator{fabricator_tag = "Unknown"},/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+abbbbccbbbbbbcccccccbbbbbbbbbbbbbbbbbbba
+abbbcccdddddccccccccbbbbbcccccccccccbbba
+abbcccddddddddddddddbbbbbbbccccccccccbba
+abcccdddddddddddddddddddddddddddddeccbba
+abcccddddddddddddddddddddddddddddddccbba
+acccddddddddddddddddddddddddddddddddcbba
+acccdddddddddddddddddffffffffffdddddcbba
+acccdddddddddddddgdfffhhhhhhhhffddddcbba
+acccdddddddddddddddfhhhhhhhhhhhfddddcbba
+accdddddddddddddddfhhhhhhhhhhhhffdddccba
+accdddddddddddddddfhhhhhhhhhhhhhffffccca
+acddddddddddddddddffhhhhhhihhhhhhfffffca
+acddddcccjddddddddffhhhhhhhhhhhhhhhhhfca
+acdddcccccdddddddddffhhhhhhhhhhhhhhhhfca
+acdddccccccddddddddffhhhhhhhhhhhhhhhhfca
+acdddjcccccddddddddffhhhhhhhhhhhhhhhkfca
+accddddcclmdddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddffhhhhhhhhhhhhhhhfca
+acddddddddnddddddddddfhhhhhihhhhhhhhhfca
+acddddffffffffffffdddffhhhhhhhhhhhhhhfca
+acdffffhhhhhhhhhffdddfhhhhhhhhhhhhhhffca
+acfhhhhhkhhhhhhhhfdddfhhhhhhhhhhhhffccca
+acffhhhhhhhhhhihhfdddfhhhhhhhhhhfffdccba
+acdffhhhhhhhhhhhhfddddfhhhhhhhhhfdddcbba
+acddffhhhhhkhhhhhffdddfhhhhhhhfffdddccba
+acdddfffhhhhhhhhhhffdddffffffffddddcccba
+acddgdddffffhhhhhhhfdddddffddddddddcccba
+acdddodddddfffffffffdddddddddddddddcccba
+acdddddddddddddddddddddddddddddddddccbba
+accddddddddddddddddddddddddddddddddccbba
+abccdddddddddddddddddddddddddddddddcbbba
+abbcccddddccccddddddddddddcccbbbdddcbbba
+abbbbcccccccccddddcccccccccccbbbbbcbbbba
+abbbbbbbcccccccccccbbbbbccbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/Cavelake.dmm b/maps/expedition_vr/beach/submaps/Cavelake.dmm
new file mode 100644
index 0000000000..5d803ffc01
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Cavelake.dmm
@@ -0,0 +1,58 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/template_noop,/area/submap/Cavelake)
+"c" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/Cavelake)
+"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"e" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Cavelake)
+"g" = (/mob/living/simple_mob/animal/sif/hooligan_crab,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"h" = (/turf/simulated/floor/water,/area/submap/Cavelake)
+"i" = (/mob/living/simple_mob/animal/passive/fish/perch,/turf/simulated/floor/water,/area/submap/Cavelake)
+"j" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"k" = (/mob/living/simple_mob/animal/passive/fish/trout,/turf/simulated/floor/water,/area/submap/Cavelake)
+"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"m" = (/obj/random/mob/sif,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"n" = (/obj/item/clothing/mask/snorkel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+"o" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Cavelake)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+abbbbccbbbbbbcccccccbbbbbbbbbbbbbbbbbbba
+abbbcccdddddccccccccbbbbbcccccccccccbbba
+abbcccddddddddddddddbbbbbbbccccccccccbba
+abcccdddddddddddddddddddddddddddddeccbba
+abcccddddddddddddddddddddddddddddddccbba
+acccddddddddddddddddddddddddddddddddcbba
+acccdddddddddddddddddffffffffffdddddcbba
+acccdddddddddddddgdfffhhhhhhhhffddddcbba
+acccdddddddddddddddfhhhhhhhhhhhfddddcbba
+accdddddddddddddddfhhhhhhhhhhhhffdddccba
+accdddddddddddddddfhhhhhhhhhhhhhffffccca
+acddddddddddddddddffhhhhhhihhhhhhfffffca
+acddddcccjddddddddffhhhhhhhhhhhhhhhhhfca
+acdddcccccdddddddddffhhhhhhhhhhhhhhhhfca
+acdddccccccddddddddffhhhhhhhhhhhhhhhhfca
+acdddjcccccddddddddffhhhhhhhhhhhhhhhkfca
+accddddcclmdddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
+accdddddddddddddddddffhhhhhhhhhhhhhhhfca
+acddddddddnddddddddddfhhhhhihhhhhhhhhfca
+acddddffffffffffffdddffhhhhhhhhhhhhhhfca
+acdffffhhhhhhhhhffdddfhhhhhhhhhhhhhhffca
+acfhhhhhkhhhhhhhhfdddfhhhhhhhhhhhhffccca
+acffhhhhhhhhhhihhfdddfhhhhhhhhhhfffdccba
+acdffhhhhhhhhhhhhfddddfhhhhhhhhhfdddcbba
+acddffhhhhhkhhhhhffdddfhhhhhhhfffdddccba
+acdddfffhhhhhhhhhhffdddffffffffddddcccba
+acddgdddffffhhhhhhhfdddddffddddddddcccba
+acdddodddddfffffffffdddddddddddddddcccba
+acdddddddddddddddddddddddddddddddddccbba
+accddddddddddddddddddddddddddddddddccbba
+abccdddddddddddddddddddddddddddddddcbbba
+abbcccddddccccddddddddddddcccbbbdddcbbba
+abbbbcccccccccddddcccccccccccbbbbbcbbbba
+abbbbbbbcccccccccccbbbbbccbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
+abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
\ No newline at end of file
diff --git a/maps/expedition_vr/beach/submaps/Cliff1.dmm b/maps/expedition_vr/beach/submaps/Cliff1.dmm
new file mode 100644
index 0000000000..ad388f9372
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Cliff1.dmm
@@ -0,0 +1,25 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"c" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"d" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"e" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"h" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"i" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"j" = (/obj/random/humanoidremains{spawn_nothing_percentage = 70},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+"k" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/ore_cliff)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+abbbbabbbbbbbaabbbbbbbbaaabbaa
+aakckkbdbcbbbbbbdbbcdbbkkckkaa
+aakefckkkbbdbbcbbbkkkcghhhikaa
+aakcehhfkkkkkkkkkcghhhikkkckaa
+aaajkkkehfkckghhhhikkkcjbbbaaa
+aaaaabkckehhhikkkkkkcbbbbaaaaa
+aaaaaaackkkjkkcbbcbbbaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
+
diff --git a/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm b/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm
new file mode 100644
index 0000000000..be9f0b2b7e
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm
@@ -0,0 +1,1047 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"ab" = (
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"ac" = (
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"ad" = (
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"ae" = (
+/obj/structure/sign/greencross{
+ desc = "White cross in a green field, you can get medical aid here.";
+ name = "First-Aid"
+ },
+/turf/simulated/shuttle/wall/no_join,
+/area/submap/CrashedMedShuttle)
+"af" = (
+/obj/structure/grille,
+/obj/structure/shuttle/window,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"ag" = (
+/turf/simulated/shuttle/wall,
+/area/submap/CrashedMedShuttle)
+"ah" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"ai" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aj" = (
+/obj/machinery/light/small{
+ dir = 4;
+ pixel_y = 0
+ },
+/obj/structure/sign/warning/airlock{
+ pixel_x = 32
+ },
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"ak" = (
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"al" = (
+/obj/item/weapon/storage/toolbox/mechanical,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table/standard,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"am" = (
+/obj/structure/table/standard,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"an" = (
+/obj/structure/window/reinforced,
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/loot_pile/surface/bones,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"ao" = (
+/obj/item/weapon/circuitboard/broken,
+/obj/structure/door_assembly/door_assembly_ext,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"ap" = (
+/obj/structure/door_assembly/door_assembly_ext,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"aq" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/mob/living/simple_mob/animal/giant_spider/webslinger,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ar" = (
+/obj/structure/closet/crate/medical,
+/obj/random/medical,
+/obj/random/medical,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"as" = (
+/obj/structure/table/standard,
+/obj/machinery/cell_charger,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"at" = (
+/obj/item/weapon/material/shard,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"au" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"av" = (
+/obj/random/mob/spider/mutant,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aw" = (
+/obj/machinery/door/airlock/glass,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ax" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ay" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"az" = (
+/obj/effect/decal/cleanable/blood/gibs/robot,
+/obj/item/weapon/firstaid_arm_assembly,
+/mob/living/simple_mob/animal/giant_spider/frost,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aA" = (
+/obj/item/stack/rods,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"aB" = (
+/obj/structure/lattice,
+/obj/item/stack/rods,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aC" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/item/weapon/firstaid_arm_assembly,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aD" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aE" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aF" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aG" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aH" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/structure/ghost_pod/manual/lost_drone/dogborg,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aI" = (
+/obj/structure/table/standard,
+/obj/effect/spider/stickyweb,
+/obj/machinery/light,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aJ" = (
+/obj/structure/table/standard,
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aK" = (
+/obj/structure/table/standard,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aL" = (
+/obj/structure/grille/broken,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/item/stack/rods,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"aM" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aN" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aO" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/effect/spider/stickyweb,
+/mob/living/simple_mob/animal/giant_spider/carrier,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aP" = (
+/obj/effect/decal/cleanable/blood/gibs/robot,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aQ" = (
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aR" = (
+/turf/simulated/shuttle/wall/no_join,
+/area/submap/CrashedMedShuttle)
+"aS" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/loot_pile/surface/bones,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aT" = (
+/obj/machinery/light,
+/obj/structure/table/standard,
+/obj/effect/spider/stickyweb,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aU" = (
+/obj/structure/table/standard,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/random/medical,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"aV" = (
+/obj/effect/spider/stickyweb,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aW" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"aX" = (
+/obj/machinery/computer,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/CrashedMedShuttle)
+"aY" = (
+/obj/structure/prop/blackbox/crashed_med_shuttle,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/CrashedMedShuttle)
+"aZ" = (
+/obj/effect/spider/stickyweb,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"ba" = (
+/obj/random/mob/spider/mutant,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bb" = (
+/obj/effect/spider/cocoon,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bc" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bd" = (
+/obj/item/stack/rods,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"be" = (
+/obj/effect/spider/stickyweb,
+/obj/structure/girder/displaced,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bf" = (
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -32
+ },
+/obj/structure/lattice,
+/obj/item/device/gps/internal/poi,
+/obj/structure/flora/tree/sif,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bg" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bh" = (
+/obj/structure/grille/broken,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bi" = (
+/obj/effect/decal/mecha_wreckage/odysseus,
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bj" = (
+/obj/item/weapon/material/shard,
+/obj/effect/spider/stickyweb,
+/obj/item/weapon/beartrap{
+ anchored = 1;
+ deployed = 1;
+ icon_state = "beartrap1"
+ },
+/obj/random/trash,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bk" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bl" = (
+/obj/effect/spider/stickyweb,
+/obj/item/weapon/material/shard,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bm" = (
+/obj/random/medical,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bn" = (
+/mob/living/simple_mob/animal/giant_spider/webslinger,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bo" = (
+/obj/effect/spider/cocoon,
+/obj/structure/lattice,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bp" = (
+/obj/structure/prop/fake_ai/dead/crashed_med_shuttle,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/CrashedMedShuttle)
+"bq" = (
+/obj/structure/flora/tree/sif,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"br" = (
+/obj/structure/grille/broken,
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bs" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/spider/stickyweb,
+/mob/living/simple_mob/animal/giant_spider/webslinger,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bt" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bu" = (
+/obj/effect/decal/remains/tajaran,
+/obj/item/weapon/surgical/circular_saw,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bv" = (
+/obj/effect/decal/cleanable/blood/oil,
+/obj/effect/spider/stickyweb,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bw" = (
+/obj/item/weapon/material/shard,
+/obj/structure/loot_pile/maint/technical,
+/obj/structure/lattice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bx" = (
+/obj/structure/bed/chair/office/light{
+ dir = 8
+ },
+/turf/simulated/shuttle/floor/purple,
+/area/submap/CrashedMedShuttle)
+"by" = (
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bz" = (
+/obj/structure/girder,
+/turf/template_noop,
+/area/submap/CrashedMedShuttle)
+"bA" = (
+/obj/structure/girder/displaced,
+/turf/template_noop,
+/area/submap/CrashedMedShuttle)
+"bB" = (
+/obj/structure/shuttle/engine/propulsion{
+ icon_state = "propulsion_r";
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/CrashedMedShuttle)
+"bC" = (
+/obj/structure/shuttle/engine/heater{
+ icon_state = "heater";
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/CrashedMedShuttle)
+"bD" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/firstaid/adv,
+/turf/simulated/shuttle/floor/purple,
+/area/submap/CrashedMedShuttle)
+"bE" = (
+/obj/structure/table/standard,
+/turf/simulated/shuttle/floor/purple,
+/area/submap/CrashedMedShuttle)
+"bF" = (
+/obj/random/medical/pillbottle,
+/mob/living/simple_mob/animal/giant_spider/webslinger,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bG" = (
+/obj/structure/table/standard,
+/obj/item/device/defib_kit/loaded,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bH" = (
+/obj/structure/table/standard,
+/obj/item/bodybag/cryobag,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bI" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/box/bodybags,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bJ" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bK" = (
+/obj/structure/table/standard,
+/obj/item/weapon/surgical/retractor,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bL" = (
+/obj/item/weapon/material/shard,
+/obj/structure/grille,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"bM" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor/purple,
+/area/submap/CrashedMedShuttle)
+"bN" = (
+/obj/effect/decal/cleanable/blood/gibs/robot,
+/obj/effect/spider/cocoon,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bO" = (
+/obj/machinery/light{
+ icon_state = "tube1";
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/medical_wall/anesthetics{
+ pixel_x = 32
+ },
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bP" = (
+/obj/machinery/light{
+ dir = 8;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bQ" = (
+/obj/effect/spider/cocoon,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bR" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/structure/loot_pile/surface/bones,
+/obj/item/weapon/surgical/surgicaldrill,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bS" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/structure/grille,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"bT" = (
+/obj/structure/table/standard,
+/obj/item/device/reagent_scanner/adv,
+/turf/simulated/shuttle/floor/purple,
+/area/submap/CrashedMedShuttle)
+"bU" = (
+/obj/machinery/iv_drip,
+/obj/item/weapon/reagent_containers/blood/empty,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bV" = (
+/mob/living/simple_mob/animal/giant_spider/carrier,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bW" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/box/masks,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bX" = (
+/obj/structure/table/standard,
+/obj/random/firstaid,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bY" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/backpack/medic,
+/obj/random/medical/lite,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"bZ" = (
+/obj/structure/table/standard,
+/obj/effect/spider/stickyweb,
+/obj/random/medical,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ca" = (
+/obj/structure/girder,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"cb" = (
+/obj/structure/frame,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"cc" = (
+/obj/structure/table/standard,
+/obj/structure/sign/periodic{
+ pixel_y = -32
+ },
+/obj/item/weapon/surgical/bonesetter,
+/obj/item/weapon/surgical/scalpel,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"cd" = (
+/obj/machinery/optable,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ce" = (
+/obj/structure/table/standard,
+/obj/item/weapon/surgical/bonegel,
+/obj/item/weapon/surgical/FixOVein,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"cf" = (
+/obj/machinery/embedded_controller/radio/simple_docking_controller{
+ frequency = 1380;
+ id_tag = "admin_shuttle";
+ pixel_x = -25;
+ pixel_y = 0;
+ req_one_access = list(101);
+ tag_door = "admin_shuttle_hatch"
+ },
+/obj/random/mob/spider/mutant,
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+"cg" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/belt/medical/emt,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ch" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/box/syringes,
+/obj/effect/spider/stickyweb,
+/obj/machinery/light,
+/turf/simulated/shuttle/floor/white,
+/area/submap/CrashedMedShuttle)
+"ci" = (
+/obj/machinery/door/airlock/external{
+ frequency = 1380;
+ icon_state = "door_locked";
+ id_tag = "admin_shuttle_hatch";
+ locked = 1;
+ name = "Shuttle Hatch";
+ req_access = null
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/CrashedMedShuttle)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aA
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+aa
+aa
+aa
+aa
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+aa
+aa
+aa
+aa
+ab
+bB
+ag
+ab
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+ab
+aa
+aa
+aa
+aa
+aa
+bc
+ab
+bv
+bC
+ag
+ag
+ab
+ab
+aa
+"}
+(5,1,1) = {"
+aa
+aa
+ab
+aa
+ah
+aA
+aM
+ab
+bd
+bj
+bw
+bD
+bM
+ag
+ag
+ag
+ab
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+aN
+ab
+be
+bk
+bx
+bE
+bx
+bT
+cb
+ag
+ab
+"}
+(7,1,1) = {"
+aa
+ab
+aa
+aa
+ab
+aB
+ac
+aS
+ag
+ak
+ak
+bF
+bN
+bU
+cc
+ag
+ab
+"}
+(8,1,1) = {"
+aa
+aa
+ah
+ab
+at
+aC
+aO
+aT
+ag
+bl
+ak
+ak
+ak
+bV
+cd
+ag
+ab
+"}
+(9,1,1) = {"
+aa
+aa
+ab
+an
+au
+aD
+aP
+aU
+ag
+bm
+ak
+ak
+bO
+bW
+ce
+ag
+aa
+"}
+(10,1,1) = {"
+aa
+ab
+ai
+ag
+ag
+af
+aw
+af
+ag
+af
+by
+af
+ag
+ag
+ag
+ae
+ab
+"}
+(11,1,1) = {"
+aa
+ac
+ad
+ao
+av
+ak
+ak
+aV
+bf
+bn
+ak
+aQ
+bP
+ad
+cf
+ci
+ab
+"}
+(12,1,1) = {"
+aa
+ad
+aj
+ap
+ak
+aE
+aQ
+aW
+ab
+bo
+ak
+av
+bQ
+ao
+aj
+ci
+aa
+"}
+(13,1,1) = {"
+aa
+ae
+ag
+ag
+aw
+ag
+aR
+aX
+ab
+bp
+ag
+ag
+by
+ag
+ag
+ae
+aa
+"}
+(14,1,1) = {"
+aa
+af
+ak
+aq
+ax
+aF
+ag
+aY
+bg
+bq
+bz
+bG
+ak
+bX
+cg
+af
+aa
+"}
+(15,1,1) = {"
+aa
+ag
+al
+ak
+ay
+aG
+ag
+af
+bh
+br
+bz
+bH
+ak
+ak
+ch
+ag
+ab
+"}
+(16,1,1) = {"
+aa
+ag
+am
+ak
+av
+aH
+ag
+ab
+aZ
+bs
+bA
+bI
+ak
+bY
+am
+ag
+ab
+"}
+(17,1,1) = {"
+aa
+ag
+ag
+ar
+ak
+aI
+ag
+aZ
+aV
+bt
+ag
+bJ
+av
+am
+ag
+ca
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+ag
+as
+az
+aJ
+ag
+ba
+bi
+bu
+ag
+ak
+bR
+bZ
+ca
+ab
+aa
+"}
+(19,1,1) = {"
+aa
+aa
+ag
+ag
+ak
+aK
+ag
+bb
+ab
+ab
+ag
+bK
+am
+ca
+ca
+ab
+aa
+"}
+(20,1,1) = {"
+aa
+aa
+aa
+ag
+af
+aL
+ag
+ab
+ab
+aa
+ag
+bL
+bS
+ca
+ab
+ab
+aa
+"}
+(21,1,1) = {"
+aa
+ab
+aa
+aa
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(22,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/maps/expedition_vr/beach/submaps/Geyser1.dmm b/maps/expedition_vr/beach/submaps/Geyser1.dmm
new file mode 100644
index 0000000000..c61b3d11a1
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Geyser1.dmm
@@ -0,0 +1,17 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+"c" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+"d" = (/obj/random/outcrop,/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+"e" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+"f" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_1)
+"g" = (/obj/random/turf/lava,/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_1)
+
+(1,1,1) = {"
+accbdca
+cccbccc
+ccebbcc
+ebbfbbb
+ccbbecd
+ccgbccc
+accbcca
+"}
diff --git a/maps/expedition_vr/beach/submaps/Geyser2.dmm b/maps/expedition_vr/beach/submaps/Geyser2.dmm
new file mode 100644
index 0000000000..339736597f
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Geyser2.dmm
@@ -0,0 +1,23 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"c" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"d" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"e" = (/obj/structure/fence{icon_state = "straight"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"f" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"g" = (/obj/structure/fence/cut/large,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"h" = (/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"i" = (/obj/structure/fence,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"j" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"k" = (/obj/structure/fence/door/locked,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"l" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_2)
+"m" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/mist{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/random/humanoidremains,/obj/random/medical/lite,/turf/simulated/floor/water/deep{outdoors = 0},/area/submap/geyser_2)
+
+(1,1,1) = {"
+abbcbba
+bbbhbbb
+bbdefbb
+chgmihc
+bbjklbb
+bbbhbbb
+abbcbba
+"}
diff --git a/maps/expedition_vr/beach/submaps/Geyser3.dmm b/maps/expedition_vr/beach/submaps/Geyser3.dmm
new file mode 100644
index 0000000000..70047b220a
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Geyser3.dmm
@@ -0,0 +1,28 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"c" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"d" = (/obj/random/turf/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"f" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"g" = (/turf/simulated/floor/lava,/area/submap/geyser_3)
+"h" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"i" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"j" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"k" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"l" = (/obj/effect/map_effect/interval/effect_emitter/steam,/obj/effect/map_effect/interval/effect_emitter/smoke/bad{interval_lower_bound = 100; interval_upper_bound = 3000},/obj/effect/map_effect/interval/screen_shaker{interval_upper_bound = 600},/obj/effect/map_effect/interval/effect_emitter/smoke/fire{interval_upper_bound = 1200},/turf/simulated/floor/lava,/area/submap/geyser_3)
+"m" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"n" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"o" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+"r" = (/obj/random/multiple/minevault,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/geyser_3)
+
+(1,1,1) = {"
+abcdcea
+bfghgie
+jggrggk
+jgglggk
+jgggggk
+mngggop
+amqqqpa
+"}
diff --git a/maps/expedition_vr/beach/submaps/IceCave1A.dmm b/maps/expedition_vr/beach/submaps/IceCave1A.dmm
new file mode 100644
index 0000000000..a4c7d1836a
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/IceCave1A.dmm
@@ -0,0 +1,1240 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/solidrock{
+ block_tele = 0
+ },
+/area/submap/cave/IceCave1A)
+"b" = (
+/turf/template_noop,
+/area/submap/cave/IceCave1A)
+"c" = (
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1A)
+"d" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1A)
+"e" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1A)
+"f" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1A)
+"g" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1A)
+"h" = (
+/obj/random/firstaid,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1A)
+"i" = (
+/obj/random/ammo,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1A)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+"}
+(3,1,1) = {"
+a
+a
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+a
+a
+g
+g
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+"}
+(4,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+g
+f
+g
+a
+a
+a
+a
+g
+a
+a
+f
+f
+"}
+(5,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+a
+a
+g
+f
+g
+f
+f
+a
+g
+g
+a
+a
+f
+f
+"}
+(6,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+f
+f
+f
+f
+f
+f
+f
+a
+a
+a
+f
+f
+"}
+(7,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+d
+g
+f
+f
+a
+a
+g
+f
+f
+f
+f
+g
+f
+f
+"}
+(8,1,1) = {"
+a
+a
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+g
+f
+f
+f
+f
+f
+f
+"}
+(9,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+f
+f
+f
+f
+a
+"}
+(10,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+g
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+c
+c
+c
+c
+d
+c
+c
+c
+c
+d
+c
+c
+f
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+d
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+g
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+b
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+f
+f
+a
+a
+f
+f
+g
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(22,1,1) = {"
+b
+b
+b
+b
+a
+a
+a
+a
+f
+f
+a
+a
+f
+f
+f
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+d
+c
+d
+d
+g
+f
+f
+g
+a
+a
+a
+a
+a
+a
+g
+f
+f
+g
+a
+a
+"}
+(24,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+d
+d
+d
+g
+f
+f
+a
+a
+g
+f
+f
+a
+f
+f
+f
+g
+a
+a
+"}
+(25,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+d
+a
+a
+a
+a
+f
+f
+f
+g
+f
+f
+f
+g
+f
+f
+f
+g
+a
+a
+"}
+(26,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+g
+g
+a
+f
+g
+f
+g
+f
+f
+f
+f
+f
+f
+g
+g
+a
+a
+"}
+(27,1,1) = {"
+b
+b
+b
+b
+a
+a
+d
+c
+c
+c
+a
+e
+f
+a
+f
+f
+f
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+f
+f
+f
+f
+f
+g
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+d
+a
+f
+f
+a
+a
+a
+a
+a
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+"}
+(30,1,1) = {"
+b
+b
+b
+a
+a
+a
+g
+f
+g
+g
+a
+f
+f
+f
+f
+f
+g
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(31,1,1) = {"
+b
+a
+a
+a
+a
+a
+g
+f
+g
+g
+a
+f
+f
+g
+f
+f
+f
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+f
+f
+f
+g
+g
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(33,1,1) = {"
+a
+a
+a
+g
+f
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(34,1,1) = {"
+a
+a
+e
+f
+f
+f
+f
+g
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(35,1,1) = {"
+a
+a
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(36,1,1) = {"
+a
+a
+g
+f
+f
+f
+f
+f
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(37,1,1) = {"
+a
+a
+g
+g
+f
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(38,1,1) = {"
+a
+a
+a
+h
+i
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/maps/expedition_vr/beach/submaps/IceCave1B.dmm b/maps/expedition_vr/beach/submaps/IceCave1B.dmm
new file mode 100644
index 0000000000..fb804e4f7e
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/IceCave1B.dmm
@@ -0,0 +1,1240 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/solidrock{
+ block_tele = 0
+ },
+/area/submap/cave/IceCave1B)
+"b" = (
+/turf/template_noop,
+/area/submap/cave/IceCave1B)
+"c" = (
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1B)
+"d" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1B)
+"e" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1B)
+"f" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1B)
+"g" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1B)
+"h" = (
+/obj/random/firstaid,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1B)
+"i" = (
+/obj/random/ammo,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1B)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+"}
+(3,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+g
+g
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+"}
+(4,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+a
+a
+g
+f
+g
+a
+a
+a
+a
+g
+a
+a
+f
+f
+"}
+(5,1,1) = {"
+a
+a
+c
+d
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+a
+a
+g
+f
+g
+f
+f
+a
+g
+g
+a
+a
+f
+f
+"}
+(6,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+a
+a
+f
+f
+f
+f
+f
+f
+f
+a
+a
+a
+f
+f
+"}
+(7,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+g
+f
+f
+f
+f
+g
+f
+f
+"}
+(8,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+d
+g
+f
+f
+a
+a
+a
+g
+f
+f
+f
+f
+f
+f
+"}
+(9,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+f
+f
+f
+f
+a
+"}
+(10,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+g
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+d
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+d
+c
+c
+d
+c
+c
+c
+f
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+d
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+g
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+b
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+f
+f
+a
+a
+f
+f
+g
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(22,1,1) = {"
+b
+b
+b
+b
+a
+a
+a
+a
+f
+f
+a
+a
+f
+f
+f
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+d
+c
+d
+d
+g
+f
+f
+g
+a
+a
+a
+a
+a
+a
+g
+f
+f
+g
+a
+a
+"}
+(24,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+d
+d
+d
+g
+f
+f
+a
+a
+g
+f
+f
+a
+f
+f
+f
+g
+a
+a
+"}
+(25,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+f
+f
+f
+g
+f
+f
+f
+g
+f
+f
+f
+g
+a
+a
+"}
+(26,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+g
+g
+a
+f
+g
+f
+g
+f
+f
+f
+f
+f
+f
+g
+g
+a
+a
+"}
+(27,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+e
+f
+a
+f
+f
+f
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+f
+f
+f
+f
+f
+g
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+f
+f
+a
+a
+a
+a
+a
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+"}
+(30,1,1) = {"
+b
+b
+b
+a
+a
+a
+g
+f
+g
+g
+a
+f
+f
+f
+f
+f
+g
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(31,1,1) = {"
+b
+a
+a
+a
+a
+a
+g
+f
+g
+g
+a
+f
+f
+g
+f
+f
+f
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+f
+f
+f
+g
+g
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(33,1,1) = {"
+a
+a
+a
+g
+f
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(34,1,1) = {"
+a
+a
+e
+f
+f
+f
+f
+g
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(35,1,1) = {"
+a
+a
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(36,1,1) = {"
+a
+a
+g
+f
+f
+f
+f
+f
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(37,1,1) = {"
+a
+a
+g
+g
+f
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(38,1,1) = {"
+a
+a
+a
+h
+i
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/maps/expedition_vr/beach/submaps/IceCave1C.dmm b/maps/expedition_vr/beach/submaps/IceCave1C.dmm
new file mode 100644
index 0000000000..b41b34781b
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/IceCave1C.dmm
@@ -0,0 +1,1240 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/wall/solidrock{
+ block_tele = 0
+ },
+/area/submap/cave/IceCave1C)
+"b" = (
+/turf/template_noop,
+/area/submap/cave/IceCave1C)
+"c" = (
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1C)
+"d" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/floor/outdoors/ice{
+ outdoors = 0
+ },
+/area/submap/cave/IceCave1C)
+"e" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1C)
+"f" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1C)
+"g" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1C)
+"h" = (
+/obj/random/firstaid,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1C)
+"i" = (
+/obj/random/ammo,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/IceCave1C)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+f
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+f
+"}
+(3,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+a
+a
+g
+g
+a
+a
+a
+a
+a
+a
+a
+a
+f
+f
+"}
+(4,1,1) = {"
+a
+a
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+g
+f
+g
+a
+a
+a
+a
+g
+a
+a
+f
+f
+"}
+(5,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+a
+a
+g
+f
+g
+f
+f
+a
+g
+g
+a
+a
+f
+f
+"}
+(6,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+f
+f
+f
+f
+f
+f
+f
+a
+a
+a
+f
+f
+"}
+(7,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+g
+f
+f
+f
+f
+g
+f
+f
+"}
+(8,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+g
+f
+f
+f
+f
+f
+f
+"}
+(9,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+f
+f
+f
+f
+a
+"}
+(10,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+g
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+g
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+d
+d
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+f
+d
+c
+c
+c
+c
+c
+c
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+d
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+d
+d
+a
+a
+a
+a
+f
+f
+a
+a
+a
+a
+f
+g
+a
+a
+a
+a
+c
+c
+d
+d
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+b
+a
+a
+a
+a
+a
+a
+a
+f
+g
+a
+a
+g
+f
+f
+g
+a
+a
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+b
+b
+b
+a
+a
+a
+a
+a
+f
+f
+a
+a
+f
+f
+g
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(22,1,1) = {"
+b
+b
+b
+b
+a
+a
+a
+a
+g
+f
+a
+a
+f
+f
+f
+g
+a
+a
+a
+a
+d
+d
+f
+f
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+b
+b
+b
+b
+a
+a
+d
+c
+c
+c
+d
+d
+g
+f
+f
+g
+a
+a
+a
+a
+a
+a
+g
+f
+f
+g
+a
+a
+"}
+(24,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+d
+c
+d
+d
+d
+g
+f
+f
+a
+a
+g
+f
+f
+a
+f
+f
+f
+g
+a
+a
+"}
+(25,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+a
+a
+a
+f
+f
+f
+g
+f
+f
+f
+g
+f
+f
+f
+g
+a
+a
+"}
+(26,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+c
+a
+g
+g
+a
+f
+g
+f
+g
+f
+f
+f
+f
+f
+f
+g
+g
+a
+a
+"}
+(27,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+c
+c
+d
+a
+e
+f
+a
+f
+f
+f
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+b
+b
+b
+b
+a
+a
+c
+d
+c
+d
+a
+f
+f
+f
+f
+f
+g
+g
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+b
+b
+b
+b
+a
+a
+d
+d
+c
+d
+a
+f
+f
+a
+a
+a
+a
+a
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+"}
+(30,1,1) = {"
+b
+b
+b
+a
+a
+a
+g
+g
+f
+g
+a
+f
+f
+f
+f
+f
+g
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(31,1,1) = {"
+b
+a
+a
+a
+a
+a
+f
+g
+f
+g
+a
+f
+f
+g
+f
+f
+f
+f
+f
+a
+a
+a
+a
+b
+b
+b
+b
+b
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+f
+f
+f
+f
+g
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(33,1,1) = {"
+a
+a
+a
+g
+f
+f
+f
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+"}
+(34,1,1) = {"
+a
+a
+e
+f
+f
+f
+f
+g
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(35,1,1) = {"
+a
+a
+f
+f
+f
+f
+f
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(36,1,1) = {"
+a
+a
+g
+f
+f
+f
+f
+f
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(37,1,1) = {"
+a
+a
+g
+g
+f
+f
+f
+g
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(38,1,1) = {"
+a
+a
+a
+h
+i
+e
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+"}
diff --git a/maps/expedition_vr/beach/submaps/Mineshaft1.dmm b/maps/expedition_vr/beach/submaps/Mineshaft1.dmm
new file mode 100644
index 0000000000..de64c0272f
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Mineshaft1.dmm
@@ -0,0 +1,73 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"d" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
+"e" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
+"f" = (/turf/simulated/wall,/area/submap/cave/AMine1)
+"g" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"h" = (/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"i" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"j" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"k" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light{ icon_state = "tube1"; dir = 1},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"l" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"m" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"n" = (/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"o" = (/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"p" = (/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/obj/item/weapon/ore/gold,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"q" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"r" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"s" = (/obj/structure/window/reinforced/full,/turf/simulated/wall,/area/submap/cave/AMine1)
+"t" = (/obj/machinery/light{ icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"u" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/floor,/area/submap/cave/AMine1)
+"v" = (/obj/structure/table/standard,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/simulated/floor,/area/submap/cave/AMine1)
+"w" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor,/area/submap/cave/AMine1)
+"x" = (/turf/simulated/floor,/area/submap/cave/AMine1)
+"y" = (/obj/machinery/power/apc{operating = 0; pixel_x = 31},/turf/simulated/floor,/area/submap/cave/AMine1)
+"z" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"A" = (/obj/machinery/light/small{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"B" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor,/area/submap/cave/AMine1)
+"C" = (/obj/structure/closet/crate/engineering,/turf/simulated/floor,/area/submap/cave/AMine1)
+"D" = (/obj/machinery/light,/obj/machinery/space_heater,/turf/simulated/floor,/area/submap/cave/AMine1)
+"E" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/submap/cave/AMine1)
+"F" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor,/area/submap/cave/AMine1)
+"G" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/drill,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"H" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"I" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"J" = (/obj/machinery/washing_machine,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"K" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
+"L" = (/obj/machinery/light{ icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"M" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"N" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+"O" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/AMine1)
+"P" = (/obj/structure/table/standard,/obj/item/pizzabox,/turf/simulated/floor/tiled,/area/submap/cave/AMine1)
+"Q" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/submap/cave/AMine1)
+"R" = (/obj/machinery/light{ icon_state = "tube1"; dir = 1},/turf/simulated/floor,/area/submap/cave/AMine1)
+"S" = (/obj/machinery/light/small,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/AMine1)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaa
+abbbbbbbbbbbbbcccccccccca
+abbbbbbbbbbbcddedddddedda
+abbbbbbbbbbbbdffffffffffa
+abbbcccbbbbbbdfghfijklifa
+abcccccbbbbbbdfhhmhhhhhfa
+abcccccnopbbbdfhhfiqrjifa
+abccccccccbbbdshtfffffffa
+abccccccccbbbdshhfuvvwxfa
+abccccccccbbbdshhmxxxxxfa
+abcccccccccbbdshhfxxxxyfa
+abccccccccczAdshhfBCDEFfa
+abbccccccccccdfgtfffffffa
+abbccccccccccdfGhfgHIhJfa
+abbbcccccccccKfGhfhhhhhfa
+abbbccccccccddffhfLMMMtfa
+abbbbNccccccOfffhfhjjPhfa
+abbbbcccccccdQRQhQhMMMhfa
+abbbbbbbccccdfffffffffffa
+abbbbbbbbcccddddddddddbba
+abbbbbbbbbcccccccccccbbba
+abbbbbbbbbbccccccScbbbbba
+abbbbbbbbbbbcccccbbbbbbba
+abbbbbbbbbbbcccccbbbbbbba
+aaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/Rockb1.dmm b/maps/expedition_vr/beach/submaps/Rockb1.dmm
new file mode 100644
index 0000000000..7290e089cd
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Rockb1.dmm
@@ -0,0 +1,790 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/template_noop,
+/area/submap/Rockb1)
+"c" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/Rockb1)
+"d" = (
+/turf/simulated/mineral/ignore_mapgen/cave,
+/area/submap/Rockb1)
+"e" = (
+/turf/simulated/wall/r_wall,
+/area/submap/Rockb1)
+"f" = (
+/obj/structure/table/woodentable,
+/obj/item/device/flashlight/lamp,
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"g" = (
+/obj/structure/closet/cabinet,
+/obj/item/weapon/gun/projectile/pistol,
+/obj/item/ammo_magazine/m9mm/compact,
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"h" = (
+/obj/structure/bookcase,
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"i" = (
+/obj/machinery/vending/snack,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"j" = (
+/obj/machinery/vending/coffee,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"k" = (
+/obj/machinery/vending/cola,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"l" = (
+/obj/item/seeds/ambrosiadeusseed,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"m" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"n" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"o" = (
+/obj/machinery/portable_atmospherics/hydroponics,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"p" = (
+/obj/structure/bed,
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"q" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"r" = (
+/turf/simulated/floor/lino,
+/area/submap/Rockb1)
+"s" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"t" = (
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"u" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"v" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"w" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"x" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"y" = (
+/obj/machinery/door/airlock/external,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"z" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"A" = (
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"B" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"C" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"D" = (
+/obj/structure/cable/green{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ dir = 4;
+ name = "east bump";
+ operating = 0;
+ pixel_x = 24
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"E" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"F" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Rockb1)
+"G" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/tiled/hydro,
+/area/submap/Rockb1)
+"H" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/obj/structure/cable/green,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"I" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/power/port_gen/pacman,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"J" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/excavation,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"K" = (
+/obj/structure/table/standard,
+/obj/item/weapon/pickaxe/drill,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"L" = (
+/obj/structure/table/standard,
+/obj/fiftyspawner/glass,
+/obj/fiftyspawner/steel,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"M" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/toolbox/electrical,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"N" = (
+/obj/structure/table/standard,
+/obj/item/weapon/storage/toolbox/mechanical,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"O" = (
+/obj/machinery/door/airlock/hatch,
+/turf/simulated/floor/tiled,
+/area/submap/Rockb1)
+"P" = (
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"Q" = (
+/obj/machinery/light/small{
+ brightness_color = "#DA0205";
+ brightness_power = 1;
+ brightness_range = 5
+ },
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"R" = (
+/obj/effect/decal/cleanable/greenglow,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+"S" = (
+/obj/structure/loot_pile/maint/trash,
+/turf/simulated/floor/plating,
+/area/submap/Rockb1)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(3,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+d
+d
+d
+c
+c
+c
+c
+b
+b
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+c
+c
+b
+a
+"}
+(5,1,1) = {"
+a
+c
+c
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+c
+c
+b
+a
+"}
+(6,1,1) = {"
+a
+b
+c
+d
+d
+e
+e
+e
+e
+e
+e
+e
+e
+e
+d
+d
+c
+c
+b
+a
+"}
+(7,1,1) = {"
+a
+b
+c
+d
+d
+e
+f
+p
+e
+m
+w
+A
+H
+e
+d
+d
+c
+c
+b
+a
+"}
+(8,1,1) = {"
+a
+b
+c
+d
+d
+e
+g
+q
+e
+t
+e
+B
+I
+e
+d
+d
+c
+c
+b
+a
+"}
+(9,1,1) = {"
+a
+b
+c
+d
+d
+e
+h
+r
+w
+x
+e
+C
+J
+e
+d
+d
+c
+c
+b
+a
+"}
+(10,1,1) = {"
+a
+b
+c
+d
+d
+e
+e
+e
+e
+m
+e
+D
+K
+e
+d
+d
+d
+c
+b
+a
+"}
+(11,1,1) = {"
+a
+b
+d
+d
+d
+e
+i
+s
+m
+m
+e
+e
+e
+e
+e
+e
+d
+c
+b
+a
+"}
+(12,1,1) = {"
+a
+b
+d
+d
+d
+e
+j
+t
+t
+t
+e
+t
+t
+O
+P
+e
+d
+c
+b
+a
+"}
+(13,1,1) = {"
+a
+b
+d
+d
+d
+e
+k
+m
+t
+t
+e
+E
+L
+e
+Q
+e
+d
+c
+b
+a
+"}
+(14,1,1) = {"
+a
+b
+d
+d
+d
+e
+e
+e
+e
+t
+e
+m
+M
+e
+R
+e
+d
+c
+b
+a
+"}
+(15,1,1) = {"
+a
+b
+d
+d
+d
+e
+l
+t
+w
+t
+w
+t
+N
+e
+S
+e
+d
+c
+c
+a
+"}
+(16,1,1) = {"
+a
+b
+d
+d
+d
+e
+m
+u
+e
+t
+e
+w
+e
+e
+e
+e
+d
+c
+c
+a
+"}
+(17,1,1) = {"
+a
+b
+c
+d
+d
+e
+n
+m
+e
+x
+e
+F
+e
+d
+d
+d
+d
+c
+c
+a
+"}
+(18,1,1) = {"
+a
+b
+c
+d
+d
+e
+o
+v
+e
+y
+e
+G
+e
+d
+d
+c
+d
+c
+c
+a
+"}
+(19,1,1) = {"
+a
+b
+c
+d
+d
+e
+e
+e
+e
+z
+e
+e
+e
+d
+d
+c
+d
+c
+b
+a
+"}
+(20,1,1) = {"
+a
+b
+c
+c
+d
+d
+d
+d
+e
+y
+e
+d
+d
+d
+c
+c
+c
+c
+b
+a
+"}
+(21,1,1) = {"
+a
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+a
+"}
+(22,1,1) = {"
+a
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+a
+"}
+(23,1,1) = {"
+a
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+a
+"}
+(24,1,1) = {"
+a
+b
+b
+b
+b
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/Scave1.dmm b/maps/expedition_vr/beach/submaps/Scave1.dmm
new file mode 100644
index 0000000000..0d06ce5594
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/Scave1.dmm
@@ -0,0 +1,47 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"c" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"d" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"e" = (/obj/effect/spider/spiderling/frost,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"f" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"g" = (/obj/random/mob/spider/mutant,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"h" = (/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c100,/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"i" = (/obj/random/mob/spider,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"j" = (/obj/item/weapon/grenade/spawnergrenade/spider,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"k" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"l" = (/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"m" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"n" = (/obj/item/device/flashlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"o" = (/mob/living/simple_mob/animal/giant_spider/frost,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"p" = (/obj/effect/spider/stickyweb,/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+"q" = (/obj/effect/decal/remains,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/Scave1)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaabbaaaaaaaaaaaaaaaaaaaaaaa
+aabbbbbbaabbbbbaaaaaaabbbbbaaa
+abbbbbbbbbbbbbbbbbbbbbbbbbbaaa
+aabbbbbbcbbbbbbbbbbbbbbbdbbbaa
+aabbbbdeddbbbcccbbbbbdddeddbaa
+aadbbfddddcbbdedbbbbbdgddddbaa
+aadbbhfbbiddddddbccedddbdedbba
+aabbbbbbbddcdddddddddddbjgbbaa
+aabbbbbbdddbbbkcddddddbbbbbbaa
+aabbbbbcdddbbbbbbcddddcbbbbaaa
+aabbbbbcddcbbbbbbbdiddcbbbaaaa
+aabbbbbbgdcbbbbbbbddddcbbbaaaa
+aabbbbbbdddbbbbbblddddcbbbaaaa
+aabbbbbbdcdbbbbbbmddgdcbbbaaaa
+aabbbbbbdddbbbbbbcddddcbbbaaaa
+aadbbbbbdddbbbbbbbccdddbbbaaaa
+aandbbbbddbbbbbbbbbocddbbbaaaa
+aaddbbbbdddbbbbbbbbbbddbbdaaaa
+aadddpddedddbbbbbbbbdedbbdaaaa
+aaddppcdddgddcbcdddddcbbbdaaaa
+aaqdbbbbbdddddddddddcbbbbdaaaa
+aabbbbbbbbcdddcdddddcbbbbbaaaa
+aabbbbbbbbbbbbbbbgbbbbbbbbaaaa
+aabbbbbbbbbbbbbbbbbbbbbbbbaaaa
+aaaaabbbbabbbbbbbaabbbbbbaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
\ No newline at end of file
diff --git a/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
new file mode 100644
index 0000000000..2ac5a64f9e
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
@@ -0,0 +1,23 @@
+"a" = (/turf/simulated/mineral,/area/submap/cave/SupplyDrop1)
+"b" = (/turf/template_noop,/area/template_noop)
+"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/SupplyDrop1)
+"d" = (/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+"e" = (/obj/structure/droppod_door{dir = 1},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+"f" = (/turf/simulated/floor/reinforced,/area/submap/cave/SupplyDrop1)
+"g" = (/obj/structure/droppod_door{dir = 8},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+"h" = (/obj/structure/closet/crate,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/storage/box/flare,/obj/item/stack/marker_beacon/ten,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/trash/tastybread,/obj/item/trash/tastybread,/obj/item/trash/sosjerky,/obj/item/trash/sosjerky,/obj/item/trash/liquidfood,/obj/item/trash/liquidfood,/obj/item/weapon/flame/lighter/random,/obj/item/device/gps,/turf/simulated/floor/reinforced,/area/submap/cave/SupplyDrop1)
+"i" = (/obj/structure/droppod_door{dir = 4},/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+"j" = (/obj/structure/droppod_door,/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
+
+(1,1,1) = {"
+aabbbccccb
+aacccaaccb
+acccccaccb
+acccdedccb
+cccddfddcc
+cccgfhficc
+bccddfddac
+bbcadjdcac
+bbaaacccac
+bbcccccccc
+"}
diff --git a/maps/expedition_vr/beach/submaps/SwordCave.dmm b/maps/expedition_vr/beach/submaps/SwordCave.dmm
new file mode 100644
index 0000000000..a67cccdcb8
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/SwordCave.dmm
@@ -0,0 +1,1808 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/simulated/mineral,
+/area/submap/cave/swordcave)
+"c" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"d" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"e" = (
+/turf/simulated/floor/water,
+/area/submap/cave/swordcave)
+"f" = (
+/turf/simulated/floor/water/deep,
+/area/submap/cave/swordcave)
+"g" = (
+/obj/structure/ghost_pod/manual/cursedblade,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"h" = (
+/mob/living/simple_mob/faithless/cult,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"i" = (
+/obj/item/device/gps/explorer/on,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"j" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"k" = (
+/mob/living/simple_mob/animal/space/bats,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+"l" = (
+/mob/living/simple_mob/animal/space/bats/cult,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/swordcave)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+b
+b
+b
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+b
+b
+b
+c
+c
+c
+c
+c
+c
+e
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(11,1,1) = {"
+b
+b
+c
+c
+c
+c
+c
+e
+e
+e
+e
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(12,1,1) = {"
+b
+b
+c
+c
+c
+c
+e
+e
+e
+f
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+a
+a
+"}
+(13,1,1) = {"
+b
+b
+c
+c
+c
+e
+e
+f
+f
+f
+f
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+l
+c
+c
+c
+c
+b
+b
+b
+b
+a
+a
+"}
+(14,1,1) = {"
+b
+b
+c
+c
+e
+e
+e
+e
+e
+e
+e
+e
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+a
+a
+"}
+(15,1,1) = {"
+b
+b
+c
+c
+e
+e
+f
+e
+e
+e
+e
+e
+e
+f
+f
+f
+e
+e
+c
+c
+c
+l
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+b
+b
+b
+a
+a
+"}
+(16,1,1) = {"
+b
+b
+c
+c
+e
+e
+f
+e
+c
+c
+e
+c
+e
+e
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+a
+a
+"}
+(17,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+c
+c
+c
+c
+e
+e
+e
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+a
+a
+"}
+(18,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+c
+c
+c
+i
+c
+e
+e
+f
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+a
+a
+"}
+(19,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+e
+c
+g
+j
+c
+c
+e
+e
+f
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+d
+c
+c
+c
+c
+c
+b
+b
+b
+a
+a
+"}
+(20,1,1) = {"
+b
+d
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+a
+a
+"}
+(21,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+f
+e
+e
+c
+d
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+c
+b
+a
+a
+"}
+(22,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+a
+"}
+(23,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+c
+c
+e
+e
+f
+e
+e
+d
+c
+c
+c
+l
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(24,1,1) = {"
+b
+c
+c
+c
+e
+e
+f
+e
+e
+c
+h
+c
+c
+e
+e
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+"}
+(25,1,1) = {"
+b
+b
+c
+c
+e
+e
+f
+e
+e
+c
+c
+c
+e
+e
+f
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+"}
+(26,1,1) = {"
+b
+b
+c
+c
+e
+e
+f
+e
+e
+e
+c
+c
+e
+e
+f
+f
+f
+f
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+"}
+(27,1,1) = {"
+b
+b
+c
+c
+c
+e
+e
+e
+f
+e
+e
+e
+e
+f
+f
+f
+f
+f
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+c
+c
+c
+c
+"}
+(28,1,1) = {"
+b
+b
+c
+c
+c
+c
+e
+e
+f
+f
+e
+e
+f
+f
+f
+f
+e
+e
+e
+c
+c
+c
+l
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+"}
+(29,1,1) = {"
+b
+b
+c
+c
+c
+c
+e
+e
+f
+f
+f
+f
+e
+e
+e
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+c
+c
+c
+c
+c
+"}
+(30,1,1) = {"
+b
+b
+c
+c
+c
+c
+c
+e
+e
+f
+f
+e
+e
+e
+e
+e
+c
+c
+k
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+c
+c
+c
+a
+"}
+(31,1,1) = {"
+b
+b
+c
+c
+c
+c
+c
+c
+e
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+c
+a
+a
+"}
+(32,1,1) = {"
+b
+b
+b
+c
+c
+c
+c
+c
+c
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+"}
+(33,1,1) = {"
+b
+b
+b
+d
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+l
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+"}
+(34,1,1) = {"
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+d
+c
+c
+c
+c
+d
+c
+c
+c
+l
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+"}
+(35,1,1) = {"
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(36,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(37,1,1) = {"
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(38,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+b
+b
+b
+b
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(41,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/crashed_ufo.dmm b/maps/expedition_vr/beach/submaps/crashed_ufo.dmm
new file mode 100644
index 0000000000..a93d593f39
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crashed_ufo.dmm
@@ -0,0 +1,112 @@
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/simulated/shuttle/floor/alienplating/external,/area/submap/cave/crashed_ufo)
+"ac" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo)
+"ad" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ae" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"af" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ag" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ah" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ai" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aj" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ak" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"al" = (/obj/item/weapon/tool/wrench/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"am" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"an" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ao" = (/obj/structure/table/alien,/obj/item/clothing/head/helmet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ap" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aq" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ar" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"as" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo)
+"at" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"au" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"av" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aw" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"ax" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ay" = (/obj/structure/prop/alien/computer{ icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"az" = (/obj/machinery/door/airlock/alien/locked{welded = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aA" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aB" = (/obj/item/weapon/tool/screwdriver/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aC" = (/obj/item/weapon/tool/wirecutters/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aD" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aE" = (/obj/item/device/multitool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aF" = (/obj/structure/prop/alien/computer/camera/flipped{ icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aG" = (/obj/structure/prop/alien/computer/camera{ icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aH" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aI" = (/obj/machinery/door/airlock/alien/locked{p_open = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aJ" = (/obj/effect/decal/remains/robot,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aK" = (/obj/item/weapon/tool/crowbar/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aL" = (/obj/item/stack/cable_coil/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aM" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aN" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aO" = (/obj/structure/prop/alien/computer{ icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aP" = (/obj/structure/table/alien,/obj/item/clothing/accessory/medal/dungeon/alien_ufo,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aQ" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aR" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aS" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aT" = (/obj/structure/closet/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aU" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aV" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"aW" = (/obj/structure/table/alien,/obj/item/weapon/surgical/circular_saw/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aX" = (/obj/structure/table/alien,/obj/item/weapon/surgical/FixOVein/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aY" = (/obj/structure/table/alien,/obj/item/weapon/surgical/scalpel/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"aZ" = (/obj/item/weapon/surgical/hemostat/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"ba" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bb" = (/obj/effect/decal/remains/lizard,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bc" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bd" = (/obj/structure/table/alien,/obj/item/weapon/surgical/bone_clamp/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"be" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bf" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bg" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bh" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
+"bi" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bj" = (/obj/machinery/porta_turret/alien/destroyed{ icon_state = "destroyed_target_prism"; dir = 6},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bk" = (/obj/item/weapon/cell/device/weapon/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bl" = (/obj/machinery/porta_turret/alien/destroyed{ icon_state = "destroyed_target_prism"; dir = 10},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bm" = (/obj/item/weapon/gun/energy/retro/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bn" = (/obj/item/device/gps{gps_tag = "COMDOM1"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bo" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bp" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bq" = (/obj/effect/decal/remains/human{desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"br" = (/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bs" = (/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bt" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bu" = (/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/shoes/boots/winter/command,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
+"bv" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaababababacacacacacacacababababaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaabababacacacacadadaeadadacacacacabababaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaababacacacafagafafafahafafafagafacacacababaaaaaaaaaaaaaa
+aaaaaaaaaaaaababacacafafafacafafafafafafafacafafafacacababaaaaaaaaaaaa
+aaaaaaaaaaababacacafafacacacacaiafafafaiacacacacafafacacababaaaaaaaaaa
+aaaaaaaaababacacafafacacajakacacafafalacacamahacacafafacacababaaaaaaaa
+aaaaaaababacacafafacacaiafafanacacafacacaoafahaeacacafafacacababaaaaaa
+aaaaaaabacacafafacacapafafaqanarasagasacacagacacacacacafafacacabaaaaaa
+aaaaababacafafacacapafafaqaqaqafasafasaiaqaqatauauacacacafafacababaaaa
+aaaaabacacafacacaiafafaqaqaqafafagafagafafaqaqaqavacaeacacafacacabaaaa
+aaaaabacafafacajafafaqaqaqafafajasafasawafafaqaqaxacafahacafafacabaaaa
+aaababacagacacayafaqaqaqafafadacasazasacawafafaqaqagafaAacacagacababaa
+aaabacacafafacacananaqaBaCadacacatafatacacawafafaqacaDacacafafacacabaa
+aaabacadafafaiacacaDaEahajacacaFaqafaqaGacacawafaHacacacaiafafaeacabaa
+aaabacadafafafafacasasaIasacaqaqaqaJaqaqaqacasagasasacafafafaKadacabaa
+aaabacaeafaLafafafagafafafacaiaqaMaNaraqaiacafafafagafafafafafadacabaa
+aaabacaeafafafafacasasagasacaOaqaPahaQaqaxacasagasasacahafafafaeacabaa
+aaabacadafafaiacacatacaqaRacacaqaqaqaqaqacacaSaqaqaTacacaiafafadacabaa
+aaabacacafafacacaqaqacaqaqaUacacaiaVaiacacaWaqaqaqacacacacafafacacabaa
+aaababacagacacaXaqaUasacaqaqaRacacacacacaYaHaqaqasacaZacacacagacababaa
+aaaaabacafafacavaqaqbaaqaqaqaqaUasafasaFaqaqaqaqbaaqbbaqacafafacabaaaa
+aaaaabacacafacacbcbdasaiaqacaqaqagafagaqaqaqaqaqasacaqacacafacacabaaaa
+aaaaababacafafacacacacasagasacacasafasaqaqasbaasacacacacafafacababaaaa
+aaaaaaabacacafafacacacbeafafafbeasagasbfacacaqacacacacafafacacabaaaaaa
+aaaaaaababacacafafacacbgafafbeacacafacacacaqbhaqacacafafacacababaaaaaa
+aaaaaaaaababacacafafacacbibeacacafafafacacacaqacacafafacacababaaaaaaaa
+aaaaaaaaaaababacacafafacacacacbjbkafafblacacacacafafacacababaaaaaaaaaa
+aaaaaaaaaaaaababacacafafafasafafafbmbnbobpasafafafacacababaaaaaaaaaaaa
+aaaaaaaaaaaaaaababacacacafagafbkafafbqbrbsagafacacacababaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaabababacacasacafasbtasbuacasacacabababaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaababababacasasafasacacababababaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaabvbvbvabababasbtasabababbvbvbvaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaabvbvbvbvbvbvbvbvbvbvbvbvbvbvbvaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm b/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm
new file mode 100644
index 0000000000..7a750b1456
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm
@@ -0,0 +1,154 @@
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
+"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ad" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"ae" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"an" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate)
+
+(1,1,1) = {"
+aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa
+adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa
+aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa
+aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa
+aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa
+aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa
+aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa
+adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa
+aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa
+aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa
+aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa
+aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa
+aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa
+aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa
+aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa
+aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa
+aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa
+adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa
+adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa
+adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa
+axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa
+axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa
+aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa
+aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa
+aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa
+axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa
+axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa
+adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa
+aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa
+aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa
+aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa
+aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa
+aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa
+aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa
+aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa
+aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa
+aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm b/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm
new file mode 100644
index 0000000000..f9ccb02e43
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm
@@ -0,0 +1,1139 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"ab" = (
+/obj/structure/grille,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"ac" = (
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"ad" = (
+/obj/structure/girder,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"ae" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"af" = (
+/turf/simulated/shuttle/wall/dark/hard_corner,
+/area/submap/crashedcontainmentshuttle)
+"ag" = (
+/turf/simulated/shuttle/wall/dark,
+/area/submap/crashedcontainmentshuttle)
+"ah" = (
+/obj/structure/lattice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"ai" = (
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/crashedcontainmentshuttle)
+"aj" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"ak" = (
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"al" = (
+/obj/item/stack/rods,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"am" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"an" = (
+/obj/item/stack/rods,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"ao" = (
+/obj/structure/door_assembly/door_assembly_ext,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"ap" = (
+/obj/structure/door_assembly/door_assembly_ext{
+ anchored = 1
+ },
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"aq" = (
+/obj/structure/grille,
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"ar" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"as" = (
+/obj/structure/grille{
+ density = 0;
+ icon_state = "brokengrille"
+ },
+/obj/structure/lattice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"at" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"au" = (
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"av" = (
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"aw" = (
+/obj/structure/closet/crate{
+ name = "landmines crate";
+ opened = 1
+ },
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"ax" = (
+/obj/random/landmine,
+/obj/random/landmine,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"ay" = (
+/obj/effect/decal/mecha_wreckage/gygax{
+ anchored = 1
+ },
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"az" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aA" = (
+/obj/item/clothing/suit/space/cult,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"aB" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 1e+006
+ },
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"aC" = (
+/obj/effect/decal/remains/robot,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"aD" = (
+/obj/random/landmine,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aE" = (
+/obj/effect/gibspawner/generic,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aF" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aG" = (
+/obj/structure/table/steel_reinforced,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aH" = (
+/obj/random/landmine,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"aI" = (
+/obj/effect/decal/remains/human,
+/obj/effect/gibspawner/human,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"aJ" = (
+/obj/item/clothing/head/helmet/space/cult,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"aK" = (
+/obj/item/weapon/material/knife/ritual,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"aL" = (
+/obj/structure/closet/medical_wall,
+/turf/simulated/shuttle/wall/dark,
+/area/submap/crashedcontainmentshuttle)
+"aM" = (
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aN" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aO" = (
+/obj/structure/door_assembly/door_assembly_highsecurity{
+ anchored = 1
+ },
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aP" = (
+/obj/structure/closet/walllocker/emerglocker/east,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aQ" = (
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aR" = (
+/obj/structure/grille,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"aS" = (
+/obj/item/weapon/circuitboard/broken,
+/obj/effect/decal/remains/human,
+/obj/item/weapon/gun/energy/laser,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aT" = (
+/obj/item/device/gps/internal/poi,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"aU" = (
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"aV" = (
+/obj/random/landmine,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aW" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aX" = (
+/obj/structure/frame/computer,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"aY" = (
+/obj/structure/frame,
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"aZ" = (
+/obj/effect/decal/cleanable/vomit,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"ba" = (
+/obj/effect/decal/cleanable/blood/oil,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"bb" = (
+/obj/item/weapon/material/knife/ritual,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"bc" = (
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"bd" = (
+/obj/item/weapon/circuitboard/broken,
+/obj/structure/bed/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"be" = (
+/turf/simulated/shuttle/wall/dark/no_join,
+/area/submap/crashedcontainmentshuttle)
+"bf" = (
+/obj/effect/decal/remains/robot,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"bg" = (
+/obj/effect/decal/cleanable/blood,
+/obj/random/landmine,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"bh" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/head/helmet/space/cult,
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/shuttle/floor/red,
+/area/submap/crashedcontainmentshuttle)
+"bi" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"bj" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"bk" = (
+/obj/machinery/computer,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"bl" = (
+/obj/structure/grille{
+ density = 0;
+ icon_state = "brokengrille"
+ },
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"bm" = (
+/obj/structure/bed/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/decal/remains/human,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bn" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"bo" = (
+/obj/structure/extinguisher_cabinet,
+/turf/simulated/shuttle/wall/dark,
+/area/submap/crashedcontainmentshuttle)
+"bp" = (
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"bq" = (
+/obj/structure/door_assembly,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"br" = (
+/obj/structure/table/steel_reinforced,
+/turf/simulated/shuttle/floor/yellow,
+/area/submap/crashedcontainmentshuttle)
+"bs" = (
+/obj/item/weapon/material/shard,
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"bt" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bu" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bv" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bw" = (
+/obj/structure/closet/walllocker/emerglocker/north,
+/obj/structure/frame,
+/obj/item/weapon/circuitboard/broken,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bx" = (
+/obj/structure/ghost_pod/manual/lost_drone/dogborg,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"by" = (
+/obj/structure/frame,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+"bz" = (
+/obj/item/frame/mirror,
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/shuttle/wall/dark,
+/area/submap/crashedcontainmentshuttle)
+"bA" = (
+/obj/structure/sink{
+ icon_state = "sink";
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bB" = (
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bC" = (
+/obj/effect/decal/cleanable/vomit,
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bD" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/effect/gibspawner/generic,
+/obj/effect/decal/remains/human,
+/obj/item/weapon/card/id/syndicate{
+ age = "\\42";
+ blood_type = "\\O+";
+ desc = "A strange ID card.";
+ dna_hash = "\[REDACTED]";
+ fingerprint_hash = "\\------";
+ name = "Aaron Presley's ID Card(Delivery Service) ";
+ registered_name = "Aaron Presley";
+ sex = "\\Male"
+ },
+/turf/simulated/shuttle/floor/white,
+/area/submap/crashedcontainmentshuttle)
+"bE" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4;
+ health = 1e+006
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bF" = (
+/obj/structure/door_assembly/door_assembly_ext{
+ anchored = 1
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bG" = (
+/obj/structure/grille{
+ density = 0;
+ icon_state = "brokengrille"
+ },
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/item/stack/rods,
+/turf/simulated/floor/plating,
+/area/submap/crashedcontainmentshuttle)
+"bH" = (
+/obj/effect/gibspawner/generic,
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"bI" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"bJ" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/template_noop,
+/area/submap/crashedcontainmentshuttle)
+"bK" = (
+/obj/structure/shuttle/engine/propulsion{
+ icon_state = "burst_r"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bL" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/random/landmine,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bM" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bN" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/obj/effect/decal/remains/human,
+/obj/item/weapon/flame/lighter/random,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/crashedcontainmentshuttle)
+"bO" = (
+/obj/effect/decal/cleanable/liquid_fuel,
+/turf/simulated/shuttle/floor/black,
+/area/submap/crashedcontainmentshuttle)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ag
+ai
+aa
+ai
+ai
+ai
+ak
+ai
+ai
+aa
+ag
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+am
+at
+aA
+aa
+aa
+ak
+ai
+be
+ai
+ai
+aa
+ag
+ai
+aa
+aa
+au
+bK
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+af
+ag
+aa
+au
+aa
+aI
+aa
+at
+ak
+at
+aa
+ak
+aa
+aa
+aa
+au
+aa
+aa
+aa
+aa
+ak
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+aa
+ag
+aa
+aa
+aa
+aB
+aJ
+aa
+aB
+aa
+aB
+aa
+aa
+aa
+aa
+ai
+bE
+aa
+aa
+bH
+aa
+ak
+ak
+"}
+(5,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+an
+ak
+ag
+aK
+ah
+ag
+ag
+ag
+aa
+bp
+aa
+bs
+ag
+aa
+ai
+aa
+aa
+aa
+aa
+aa
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+ak
+ao
+av
+aa
+ah
+ak
+ak
+aY
+az
+aa
+ah
+av
+ah
+bx
+ag
+ai
+ag
+ar
+aa
+aa
+aa
+"}
+(7,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ap
+aa
+ak
+ah
+an
+ak
+ak
+ak
+bn
+aD
+ak
+ak
+ak
+bF
+aa
+aa
+aa
+ak
+aa
+aa
+"}
+(8,1,1) = {"
+aa
+aa
+ab
+aa
+aa
+aq
+ak
+ak
+ah
+ak
+ak
+aZ
+aF
+aE
+ak
+ak
+az
+ak
+ah
+av
+aa
+aa
+bc
+ag
+ai
+"}
+(9,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ag
+ak
+aC
+ak
+ak
+aS
+ak
+ak
+ak
+ak
+ai
+ai
+ak
+av
+aa
+ak
+aa
+aa
+ai
+ai
+"}
+(10,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ag
+ac
+ah
+ak
+ak
+ak
+aF
+aF
+ak
+ai
+ai
+ai
+ak
+bG
+aa
+aa
+aa
+aa
+bO
+aa
+"}
+(11,1,1) = {"
+aa
+aa
+aa
+aa
+ac
+ar
+au
+aD
+ak
+ag
+ag
+ag
+ad
+ad
+ai
+ai
+aF
+ak
+ad
+ah
+aa
+bL
+bI
+bI
+aa
+"}
+(12,1,1) = {"
+aa
+aa
+ac
+aa
+ah
+as
+aw
+ax
+aD
+ag
+aT
+ba
+bf
+ag
+ak
+ak
+ak
+by
+ad
+ah
+bI
+bI
+bM
+bI
+aa
+"}
+(13,1,1) = {"
+aa
+aa
+ad
+ah
+ai
+ag
+ax
+aD
+ak
+aO
+aU
+aU
+bg
+ag
+ak
+ag
+aL
+bz
+ad
+ai
+aa
+bJ
+bN
+bI
+bI
+"}
+(14,1,1) = {"
+aa
+aa
+aa
+aa
+ai
+ag
+ay
+aE
+ak
+ag
+aU
+bb
+bh
+ag
+ak
+ad
+bt
+bA
+ag
+ai
+bJ
+aa
+bI
+aa
+aa
+"}
+(15,1,1) = {"
+aa
+aa
+aa
+ai
+ai
+ad
+ak
+aF
+an
+ad
+ag
+ag
+ad
+bo
+ak
+ag
+bu
+bB
+ag
+ai
+aa
+bI
+bI
+ac
+aa
+"}
+(16,1,1) = {"
+aa
+aa
+aa
+ai
+ak
+ad
+ak
+ak
+ak
+ak
+ak
+bc
+ak
+ak
+ak
+bq
+bv
+bC
+aq
+ah
+aa
+bH
+aa
+aa
+aa
+"}
+(17,1,1) = {"
+aa
+aa
+aa
+aa
+ai
+ag
+az
+aG
+aG
+aP
+ak
+ak
+aF
+ak
+ak
+ag
+bw
+bD
+ad
+ai
+aa
+aa
+aa
+aa
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+aa
+aj
+aa
+af
+ag
+ag
+aL
+ag
+ak
+aO
+bi
+aR
+ag
+ag
+ag
+ad
+af
+ai
+aa
+aa
+aa
+aa
+aa
+"}
+(19,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+af
+ad
+aM
+aQ
+aV
+aV
+aM
+aM
+aM
+aN
+ag
+af
+ai
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(20,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aH
+aN
+aM
+aW
+bd
+bj
+aW
+aM
+br
+ag
+ai
+ai
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(21,1,1) = {"
+aa
+aa
+ae
+aa
+al
+aa
+aa
+aa
+ad
+aM
+aX
+aX
+bk
+aX
+aM
+ag
+af
+ai
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(22,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aR
+aq
+av
+bl
+av
+aR
+ag
+ai
+aa
+bH
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(23,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ah
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(24,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+al
+aa
+aa
+aa
+bm
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(25,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/maps/expedition_vr/beach/submaps/crystal1.dmm b/maps/expedition_vr/beach/submaps/crystal1.dmm
new file mode 100644
index 0000000000..ccf9c042ce
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crystal1.dmm
@@ -0,0 +1,15 @@
+"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal1)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
+"c" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
+"d" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal1)
+
+(1,1,1) = {"
+aaabbaaa
+accbbcaa
+acdbbdca
+aacbbbda
+aacbbbba
+acbbbbba
+abbbbbca
+aaabbbaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/crystal2.dmm b/maps/expedition_vr/beach/submaps/crystal2.dmm
new file mode 100644
index 0000000000..b1cd12ecc7
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crystal2.dmm
@@ -0,0 +1,22 @@
+"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal2)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
+"c" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
+"d" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal2)
+
+(1,1,1) = {"
+aaaaaaabbbaaaaa
+aaaaaaabbbaaaaa
+aaaaacbbbbcaaaa
+aaaaabbbbbbcaaa
+aaaacbbbbdbbaaa
+aacbbbbbbbbbcaa
+bbbbbdbacbbbbca
+bbbbbbcaacbbbbb
+aabbbcaaacbbdbb
+aaabbcaacbbbbbb
+aaabbbcacbbbcaa
+aacbbbbbbbbcaaa
+aaccabbbbaaaaaa
+aaaaabbdbaaaaaa
+aaaaabbbbaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/crystal3.dmm b/maps/expedition_vr/beach/submaps/crystal3.dmm
new file mode 100644
index 0000000000..16f16785fc
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/crystal3.dmm
@@ -0,0 +1,26 @@
+"a" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/crystal3)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
+"c" = (/turf/template_noop,/area/template_noop)
+"d" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
+"e" = (/obj/item/weapon/ore/diamond,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/crystal3)
+
+(1,1,1) = {"
+aaaaaaabbbaaaaacccc
+aaaaabbbbbbbbaaaccc
+aabbbbbbbbbbbbbaaac
+bbbbbbaaaaadbbbbbac
+bbbdaaaaaaaaaabbbac
+bbbaaaaaaaaaaabbbac
+bbbaaaadddaabbdbbac
+bbbaaadebbdadbbbbac
+bbbaadbbdedbbbbbbaa
+bbbaadbdeedbbdbbbda
+bbbaadbbddbbbbbbbbb
+bbbaaadebbbbdbbbbbb
+bbbaaaaddddbaadbbbb
+bbbdaaaaaaaaaaabbba
+bbbbdaaaaaaaadbbbaa
+bbbbbbbbbbbbbbbbbaa
+cccabbbbbbbbbbaaaaa
+cccaaaaabbbbaaacccc
+"}
diff --git a/maps/expedition_vr/beach/submaps/deadBeacon.dmm b/maps/expedition_vr/beach/submaps/deadBeacon.dmm
new file mode 100644
index 0000000000..5df9d12492
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/deadBeacon.dmm
@@ -0,0 +1,62 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
+"c" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
+"d" = (/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
+"e" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"f" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"g" = (/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"h" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/submap/cave/deadBeacon)
+"i" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"j" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"k" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"l" = (/obj/item/weapon/material/shard,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"m" = (/obj/structure/table/steel,/obj/item/weapon/circuitboard/comm_server,/obj/machinery/light{dir = 8; status = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"n" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"o" = (/obj/item/weapon/paper/crumpled{info = "Sampatti Relay Sif-833
Decryption Key for 12-04-2488:
849B0022FBA920C244
Eyes Only.
The insider who knows all the secrets can bring down Lanka."; name = "Dusty Note"},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"p" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"q" = (/obj/item/stack/rods,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"r" = (/obj/machinery/telecomms/relay{active_power_usage = 1; broadcasting = 0; panel_open = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"s" = (/obj/machinery/telecomms/broadcaster{light_power = 0; on = 0},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"t" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"u" = (/obj/machinery/telecomms/receiver{light_power = 0; on = 0},/obj/structure/cable,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"v" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"w" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"x" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"y" = (/obj/effect/decal/remains/robot,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"z" = (/obj/item/stack/cable_coil{amount = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"A" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/deadBeacon)
+"B" = (/obj/structure/grille/broken,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"C" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"D" = (/obj/item/trash/cigbutt,/obj/item/weapon/tool/wrench,/obj/machinery/light,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"E" = (/obj/item/weapon/material/shard,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"F" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"G" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"H" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/cave/deadBeacon)
+"I" = (/obj/machinery/access_button/airlock_interior{dir = 4},/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
+"J" = (/obj/structure/grille/broken,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"K" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/submap/cave/deadBeacon)
+"L" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
+"M" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/submap/cave/deadBeacon)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaabbaaaaaaaa
+aaaaaabbabbcbaaaaaaa
+aaaaaadefgghidaaaaaa
+aaaaaahjkgglhibaaaaa
+aaaaahdmnoggggbaaaaa
+aaaabnpqnrsgqtbaaaaa
+aaaabngnnuvwnxaaaaaa
+aaaabhdgynnzkxbaaaaa
+aaaaAbBCDnnEFGbaaaaa
+aaaaaadidHHIJdbaaaaa
+aaaaaaabdgnKbbaaaaaa
+aaaaaaaaLHHMaaaaaaaa
+aaaaaaaabbbAaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm b/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm
new file mode 100644
index 0000000000..edf10da636
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm
@@ -0,0 +1,51 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"e" = (/mob/living/simple_mob/vore/rabbit/killer,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"g" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"h" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/template_noop)
+"m" = (/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"n" = (/obj/item/clothing/suit/storage/hooded/knight/galahad,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"q" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"r" = (/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"s" = (/obj/item/weapon/bone/ribs,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"t" = (/obj/effect/gibspawner/human,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"u" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"v" = (/obj/item/weapon/grenade/explosive/frag,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"y" = (/obj/item/weapon/bone,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"A" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"C" = (/obj/item/clothing/suit/storage/hooded/knight/lancelot,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"E" = (/obj/item/clothing/suit/armor/combat/crusader/bedevere,/obj/item/clothing/head/helmet/combat/bedevere,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"F" = (/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"I" = (/obj/item/clothing/suit/storage/hooded/knight/robin,/obj/effect/decal/cleanable/blood/splatter,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"J" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"K" = (/obj/item/clothing/suit/armor/combat/crusader,/obj/item/clothing/head/helmet/combat/crusader,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"L" = (/obj/structure/barricade/cutout/fukken_xeno,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"P" = (/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"Q" = (/obj/item/weapon/bone,/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"T" = (/obj/structure/barricade,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"U" = (/obj/item/weapon/bone/ribs,/obj/item/clothing/suit/storage/hooded/knight,/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/obj/item/clothing/shoes/knight/black,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"V" = (/obj/item/weapon/bone,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"Y" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+
+(1,1,1) = {"
+aahhhhhhhhhhhhhhhhaa
+aahhhhhhhhhhhhhhhhaa
+aahhhhhhhhhhhhhhhhaa
+aahhhgggggegtmghhhaa
+ahhhgggggggggEgghhha
+ahhhgsggghhggtgbhhha
+ahhhmIVgghhgmKgghhha
+ahhhgtgggggggggthhha
+ahhhgggUggggggCmhhha
+ahhhgntgggVggggghhha
+ahhhgmggghhggggghhha
+aahhhhggbhhggghhhhaa
+aahhhhgghhhhgghhhhaa
+aahhhhgghhhhgghhhhaa
+aagbhhggvhhvgVhhLgaa
+aaaghhggghhTTThhgaaa
+aaaahhTThhhhYThhaaaa
+aaaamqThhhhhhJbmaaaa
+aaaaguAFhhhhPryraaaa
+aaaaggggQhhrgrPraaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/deadspy.dmm b/maps/expedition_vr/beach/submaps/deadspy.dmm
new file mode 100644
index 0000000000..5f3da504c7
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/deadspy.dmm
@@ -0,0 +1,32 @@
+"a" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/fire/firefighter,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"c" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"d" = (/obj/item/weapon/flamethrower,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"e" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"f" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"g" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/ash,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"h" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"i" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"j" = (/obj/item/weapon/material/butterfly,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"k" = (/obj/effect/decal/remains/human,/obj/item/weapon/tool/wrench,/obj/item/clothing/head/hardhat,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"l" = (/obj/item/weapon/flame/lighter/zippo,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"m" = (/obj/effect/decal/remains/human,/obj/item/clothing/mask/balaclava,/obj/item/clothing/under/suit_jacket/really_black,/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"n" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"o" = (/obj/machinery/porta_turret/poi{desc = "Looking at this heavy caliber, tripod-mounted, little ol' number makes you want to square-dance."; lethal = 0; name = "sentry turret"},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"p" = (/obj/item/weapon/deadringer,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"q" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/cleanable/liquid_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"r" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/item/weapon/storage/fancy/cigarettes/professionals,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"s" = (/obj/item/weapon/card/emag_broken,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"t" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"u" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
+"v" = (/turf/simulated/mineral,/area/submap/deadspy)
+
+(1,1,1) = {"
+abbbbvv
+bcdefgb
+bfhijfk
+bflmnfo
+vfpqrfs
+vtfuffb
+vvbbbvb
+"}
diff --git a/maps/expedition_vr/beach/submaps/digsite.dmm b/maps/expedition_vr/beach/submaps/digsite.dmm
new file mode 100644
index 0000000000..5f1d321e08
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/digsite.dmm
@@ -0,0 +1,64 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/submap/cave/digsite)
+"c" = (/turf/simulated/wall/sandstone,/area/submap/cave/digsite)
+"d" = (/obj/structure/boulder,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"e" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"f" = (/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"g" = (/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"h" = (/obj/item/weapon/ore,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"i" = (/obj/structure/bed/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"j" = (/obj/structure/cult/talisman,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"k" = (/obj/machinery/artifact,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"l" = (/obj/structure/simple_door/sandstone,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"m" = (/obj/structure/loot_pile/surface/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"n" = (/mob/living/simple_mob/animal/passive/tindalos,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite)
+"o" = (/obj/structure/closet/crate/secure/loot,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"p" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"q" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"r" = (/obj/structure/anomaly_container,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"s" = (/turf/simulated/wall,/area/submap/cave/digsite)
+"t" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"u" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"v" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"w" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"x" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"y" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"z" = (/obj/structure/table/steel,/obj/item/weapon/folder,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"A" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"B" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"C" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"D" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"E" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"F" = (/obj/structure/boulder,/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"G" = (/obj/structure/boulder,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"H" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating/external,/area/submap/cave/digsite)
+"I" = (/obj/structure/table/steel,/obj/item/weapon/tool/wrench,/obj/item/weapon/storage/box/samplebags,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"J" = (/obj/structure/table/steel,/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"K" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"L" = (/obj/structure/closet/crate,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"M" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+"N" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/digsite)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaa
+aaabbbbbbbbbbbbbbbaa
+aabccccccccdccccceea
+abccffcfffghgcficcea
+abcfffcffjggfcfffcea
+abcfkflffggfffffmcea
+abcfffcffffffgfffcea
+abccffcffffffgnfccea
+abbccccclccfhccggeea
+abbbbboeffffepqeeeea
+abbbbbbeeeeeeeeeeeea
+abbbbbbpeeeeeqereeea
+abbbbsteeuveeeerbeea
+abbbbwxeyzAeqeBbbbea
+abbbbCgeyDEeeeeFbbba
+abeeGHgeqIJeeeqbbbba
+aeeeKeeeeLMeeeNbbeaa
+aaeeeeeeeeeeeeNeeeaa
+aaaaaeeeeeeeeeeeeaaa
+aaaaaaaaaaaaaaaaaaaa
+"}
+
diff --git a/maps/expedition_vr/beach/submaps/excavation1.dmm b/maps/expedition_vr/beach/submaps/excavation1.dmm
new file mode 100644
index 0000000000..3cacccb2eb
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/excavation1.dmm
@@ -0,0 +1,51 @@
+"a" = (/turf/simulated/mineral,/area/template_noop)
+"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"d" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"e" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"g" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"h" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"i" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"j" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"k" = (/obj/mecha/working/ripley,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"m" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/tool/drill/bore,/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"n" = (/obj/item/weapon/ore,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"o" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"q" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"r" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"s" = (/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"t" = (/obj/item/weapon/ore/gold,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"u" = (/obj/item/weapon/ore/diamond,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"v" = (/mob/living/simple_mob/mechanical/mining_drone,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"w" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"x" = (/obj/structure/table/sifwoodentable,/obj/random/projectile/scrapped_grenadelauncher,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"y" = (/obj/structure/table/sifwoodentable,/obj/random/medical/pillbottle,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"z" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"A" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/mining_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"B" = (/obj/structure/table/sifwoodentable,/obj/random/cigarettes,/obj/random/tool/powermaint,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
+"C" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"D" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"E" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"F" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+"G" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
+
+(1,1,1) = {"
+aabbbbbbbaa
+accdeeefcca
+bcdghhijfcb
+bdghikihjfb
+bliimnoiipb
+blhiqirihpb
+bliniisnhpb
+blhtiuiiipb
+bliviinvhpb
+blhwinixipb
+blhynitzhpb
+bliAiniBhpb
+bliisinihpb
+aCDEniiFDGa
+aabbbbbbbaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/lava_trench.dmm b/maps/expedition_vr/beach/submaps/lava_trench.dmm
new file mode 100644
index 0000000000..74a497ee46
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/lava_trench.dmm
@@ -0,0 +1,146 @@
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ac" = (/obj/structure/cliff/automatic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ad" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ae" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"af" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ag" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ah" = (/obj/structure/fence/end{icon_state = "end"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ai" = (/obj/structure/fence/post{icon_state = "post"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aj" = (/obj/structure/fence/door/opened,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ak" = (/obj/structure/fence/end{icon_state = "end"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"al" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"am" = (/obj/structure/fence/end{icon_state = "end"; dir = 1},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"an" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"ao" = (/obj/structure/cliff/automatic,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"ap" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aq" = (/obj/structure/sign/warning/lava,/turf/simulated/wall,/area/submap/lava_trench)
+"ar" = (/obj/structure/fence/post,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"as" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"at" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"au" = (/turf/simulated/floor/lava,/area/submap/lava_trench)
+"av" = (/obj/structure/cliff/automatic/corner,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aw" = (/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ax" = (/obj/structure/catwalk,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"ay" = (/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"az" = (/obj/structure/fence/door/opened{icon_state = "door_opened"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aA" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aB" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
+"aC" = (/turf/simulated/floor/outdoors/rocks/caves,/area/template_noop)
+"aD" = (/obj/structure/cliff/automatic,/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aE" = (/obj/structure/cliff/automatic,/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aF" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aG" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aH" = (/obj/structure/railing{icon_state = "railing0"; dir = 4},/obj/effect/step_trigger/teleporter/offset/east,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aI" = (/obj/structure/catwalk,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aJ" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"aK" = (/obj/structure/railing{icon_state = "railing0"; dir = 8},/obj/effect/step_trigger/teleporter/offset/west,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aL" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aM" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aN" = (/obj/machinery/door/airlock/hatch{normalspeed = 0; safe = 0},/obj/effect/map_effect/interval/effect_emitter/sparks,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"aO" = (/turf/simulated/wall/rshull,/area/submap/lava_trench/outpost)
+"aP" = (/obj/machinery/door/airlock/hatch{normalspeed = 0; safe = 0},/obj/effect/map_effect/interval/effect_emitter/sparks,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"aQ" = (/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"aR" = (/obj/effect/floor_decal/corner_oldtile/blue/full{icon_state = "corner_oldtile_full"; dir = 8},/obj/machinery/microscope,/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"aS" = (/obj/effect/floor_decal/corner_oldtile/blue/full{icon_state = "corner_oldtile_full"; dir = 8},/obj/structure/table/standard,/obj/random/unidentified_medicine/scientific,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"aT" = (/obj/structure/fence/end,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aU" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aV" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aW" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"aX" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aY" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"aZ" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/obj/structure/railing{icon_state = "railing0"; dir = 8},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"ba" = (/obj/machinery/crystal/lava,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bb" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bc" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bd" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"be" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/template_noop)
+"bf" = (/obj/structure/railing,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bg" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bh" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bi" = (/obj/structure/railing,/obj/effect/step_trigger/teleporter/offset/south,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bj" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bk" = (/obj/structure/catwalk,/obj/structure/railing,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bl" = (/obj/structure/catwalk,/obj/structure/railing,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bm" = (/obj/structure/fence/door/opened{icon_state = "door_opened"; dir = 4},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bn" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bo" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bp" = (/obj/machinery/floodlight,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bq" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"br" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 1},/obj/structure/bed/chair/office/light{icon_state = "officechair_white"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bs" = (/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
+"bt" = (/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bu" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bv" = (/obj/item/slime_crystal,/obj/item/slime_crystal,/obj/item/slime_crystal,/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 9},/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bw" = (/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"bx" = (/obj/machinery/crystal/ice,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"by" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bz" = (/obj/effect/floor_decal/corner_oldtile{icon_state = "corner_oldtile"; dir = 1},/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
+"bA" = (/obj/effect/floor_decal/corner_oldtile{icon_state = "corner_oldtile"; dir = 4},/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
+"bB" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bC" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 1},/obj/item/weapon/pickaxe/drill,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bD" = (/obj/effect/step_trigger/teleporter/offset/north,/turf/simulated/floor/lava,/area/submap/lava_trench)
+"bE" = (/obj/machinery/crystal/lava,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"bF" = (/obj/structure/table/rack,/obj/random/tool/powermaint,/obj/random/tool/powermaint,/obj/effect/floor_decal/corner_oldtile/purple{icon_state = "corner_oldtile"; dir = 6},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bG" = (/obj/effect/floor_decal/corner_oldtile/purple,/obj/structure/table/steel,/obj/item/device/xenoarch_multi_tool,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bH" = (/obj/effect/floor_decal/corner_oldtile/purple,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bI" = (/obj/item/device/gps/science{gps_tag = "CRYSTALS"},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bK" = (/obj/effect/floor_decal/corner_oldtile/blue/full,/obj/random/drinkbottle,/obj/random/maintenance/research,/obj/structure/table/standard,/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bL" = (/obj/structure/flora/pottedplant/crystal,/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 8},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bM" = (/obj/structure/cult/pylon,/obj/effect/floor_decal/industrial/outline,/turf/simulated/floor/tiled/old_tile/gray,/area/submap/lava_trench/outpost)
+"bN" = (/obj/structure/anomaly_container,/obj/machinery/artifact,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bO" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bP" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 4},/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 4},/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bQ" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 8},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bR" = (/obj/machinery/light/small/flicker{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bS" = (/obj/effect/floor_decal/corner_oldtile/blue{icon_state = "corner_oldtile"; dir = 1},/obj/structure/loot_pile/surface/medicine_cabinet{pixel_y = 28},/obj/structure/table/standard,/obj/item/device/healthanalyzer/improved,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bT" = (/obj/machinery/suspension_gen{anchored = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bU" = (/obj/machinery/light/small/flicker,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"bW" = (/obj/structure/anomaly_container,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"bX" = (/obj/effect/floor_decal/corner_oldtile/purple/full{icon_state = "corner_oldtile_full"; dir = 4},/obj/item/weapon/storage/box/samplebags,/obj/structure/table/steel,/obj/item/stack/flag/red,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"bY" = (/obj/machinery/crystal,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"bZ" = (/obj/structure/table/steel,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"ca" = (/obj/structure/table/steel,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"cb" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"ce" = (/obj/effect/floor_decal/corner_oldtile/blue/full,/obj/structure/table/standard,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"ch" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+"cj" = (/obj/item/clothing/head/bio_hood/anomaly,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"ck" = (/obj/item/clothing/suit/bio_suit/anomaly,/turf/simulated/floor/tiled/old_tile,/area/submap/lava_trench/outpost)
+"co" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"cp" = (/obj/machinery/light/small/flicker,/obj/structure/closet/crate/secure/loot,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"cq" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"cr" = (/obj/structure/table/steel,/obj/item/weapon/material/shard/phoron,/turf/simulated/floor/tiled/asteroid_steel,/area/submap/lava_trench)
+"cs" = (/obj/item/weapon/banner/nt,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/lava_trench)
+
+(1,1,1) = {"
+aBaBabacacacacacacacacacacadaBaBaBaBaBaCaCaCaBaBaBaBaBaBaBaBaBaBaBaBbebebeaaaaaaaaaaaaaaaaaaaaaa
+aBabaeafafafafafafafafafafagacacacacahaiajaiakacadaBaBaBaBaBaBaBaBaBaBbebebeaaaaaaaaaaaaaaaaaaaa
+aBalafafafafafafafafafafafafafafafafafafafafafafagacacacacacacacadaBaBaBbebebeaaaaaaaaaaaaaaaaaa
+aBamafafbaanaoaoaoaoapafafafafafafafafafafafafaqafafafafafafafafagadaBaBaBbebebeaaaaaaaaaaaaaaaa
+afarafafanatauauauauavaoaoaoaoaoaoaoapawaxayafafafafafafafafafafafagadaBaBaBbebebeaaaaaaaaaaaaaa
+afazafafaAauauauauauauauauauauauauauavaDaxaEaoaoaoaoaoaoaoapafafafafagadaBaBbebebebebebebebeaaaa
+afarafafaFaGauauauauauauauauauauauauauaHaxaKauauauauauauauavapafafafafaLaBaBaBaBbebebebebebebeaa
+aBaTafafafaFaUaGauauauauauauauafauauauaHaIaKauauauauauauauauavapafafafaLaBaBaBaBaBaBaBaBaBbebeaa
+aBalafafafafafaFaGauafauauauauauauauauaHaIaKauauafauauafafauauavapafafagacacadaBaBaBaBaBaBbebeaa
+aBaVaWafafaqafafaFaUafaUaGauauauauauaXaYaIaZaGauauauauauafbaauaubbafafafafafagacacacadaBaBaBaBaB
+aBaBaVaWafafafafafafafafaFaUaUaUaUaUbcawaxayaFaUaUaGauauauauauaubbafafafafafafafafafamaBaBaBaBaB
+aBaBaBalafafafafafafafafafafafafafafafafbwafafafbfbgbhbibibibibibjbfbfafafbaafafafafarafaBaBaBaB
+beaBaBalafafafafbwbwbwbwbwafafafafafafafbwbwbwbwbkbkblblblblblblblbkbkafafafafafafafbmafaBaBaBaB
+beaBaBalafafafafbwbxbEbYbwbwbwbwbwbwbwbwbwbwbwafafafaAbDbDbDbDbDavapafafafafafafafafarafaBaBaBaB
+beaBaBalafafafafbwbZcacrbwbwbwcqbUaJaOaNaOcocpcsafaqaAauauauauauaubbafafafafafafafafaTafaBaBaBaB
+beaBaBalafafafafbwbwbwbwbwbwaJaOaOaOaObOaOaOaOaOafafaFaGauauafauaubbafafaqbpafafafafaLafaBaBaBaB
+beaBaBaVbnbnaWafafbwbwbwbwbwaOaOaSbSaOaPaObdboaOaOafafaAauauauauauavapafafafafafafafaLaBaBaBaBaB
+beaBaBaBaBaBalafafafafafafafaOaRbraQbqaQbycjbtbCaOafafaAauauauauauauavapafafafbaafafaLaBaBbeaBaB
+beaBaBaBaBaBalafafafafafafaMaObvaQaQaQaQaQcbbIbFaObQafaFaGauauauauauaubbafafafafafafaLaBaBbebebe
+bebebebeaBaBaVbnbnbnbnaWafafaOcebBaQaQbTckaQbHbXaOafafafaAauauafauauaubbafafafafafafaLaBaBbebeaa
+bebebebeaBaBaBaBaBaBaBalafafaOaObKbLbzbsbAbGbPaOaOafafafaAauauafbaauaubbafafbaafafafaLaBaBbebeaa
+aaaabebebeaBaBaBaBaBaBalafafafaOaOaObsbMbsaOaOaObNafafafafafauafafauaubbafafafafafbuasaBaBbebeaa
+aaaaaabebebebebebeaBaBaVbnaWafafchaOaOaOaOaObNbWafafafafaAauauauafauaubbafafafbubnasaBaBaBbebeaa
+aaaaaaaabebebebebeaBaBaBaBalafafafafafbRafafafafafafafafaAauauauauauauavapafafaLaBaBaBaBbebebeaa
+aaaaaaaaaaaaaabebebeaBaBaBalafafafafafafafafafafafafafafaFaGauauauauauaubbafafaLaBaBaBbebebeaaaa
+aaaaaaaaaaaaaaaabebebebeaBaVbnbnbnbnbnbnbnbnbnbnbnaWafafafaFaGauauauauaubbafafaLaBaBbebebeaaaaaa
+aaaaaaaaaaaaaaaaaabebebeaBaBaBaBaBaBaBaBaBaBaBaBaBalafafafafaFaUaUaUaUaUbcafafaLaBaBbebeaaaaaaaa
+aaaaaaaaaaaaaaaaaaaabebebeaBaBaBaBaBaBaBaBaBaBaBaBaVbnaWafafafafafafafafafafafaLaBaBbebeaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaabebebebebebebebebebebebeaBaBaBaBaVaWafafafafafafafafafafaLaBaBbebeaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaabebebebebebebebebebebebeaBaBaBaBaVbnbnbnbnahaiajaiakbnasaBaBbebeaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/lost_explorer.dmm b/maps/expedition_vr/beach/submaps/lost_explorer.dmm
new file mode 100644
index 0000000000..683acd2757
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/lost_explorer.dmm
@@ -0,0 +1,74 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"b" = (
+/obj/item/device/geiger,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"c" = (
+/obj/item/clothing/mask/gas/explorer,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"d" = (
+/obj/item/weapon/material/knife/tacknife/survival,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"e" = (
+/obj/item/clothing/shoes/boots/winter/explorer,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"f" = (
+/obj/item/clothing/under/explorer,
+/obj/effect/decal/remains,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"g" = (
+/obj/item/clothing/suit/storage/hooded/explorer,
+/obj/item/weapon/cell/device,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"h" = (
+/obj/item/device/gps/explorer,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+"i" = (
+/obj/item/device/flashlight/lantern,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/lost_explorer)
+
+(1,1,1) = {"
+a
+a
+a
+a
+i
+"}
+(2,1,1) = {"
+a
+c
+e
+a
+a
+"}
+(3,1,1) = {"
+b
+a
+f
+g
+a
+"}
+(4,1,1) = {"
+a
+d
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+h
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/mountains.dm b/maps/expedition_vr/beach/submaps/mountains.dm
index 9150c690c2..e097ac4da1 100644
--- a/maps/expedition_vr/beach/submaps/mountains.dm
+++ b/maps/expedition_vr/beach/submaps/mountains.dm
@@ -68,82 +68,82 @@
/datum/map_template/surface/mountains/normal/deadBeacon
name = "Abandoned Relay"
desc = "An unregistered comms relay, abandoned to the elements."
- mappath = 'maps/expedition_vr/beach/submaps/deadBeacon.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/deadBeacon.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/prepper1
name = "Prepper Bunker"
desc = "A little hideaway for someone with more time and money than sense."
- mappath = 'maps/expedition_vr/beach/submaps/prepper1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/prepper1.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/qshuttle
name = "Quarantined Shuttle"
desc = "An emergency landing turned viral outbreak turned tragedy."
- mappath = 'maps/expedition_vr/beach/submaps/quarantineshuttle.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/Mineshaft1
name = "Abandoned Mineshaft 1"
desc = "An abandoned minning tunnel from a lost money making effort."
- mappath = 'maps/expedition_vr/beach/submaps/Mineshaft1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Mineshaft1.dmm'
cost = 5
/datum/map_template/surface/mountains/normal/crystal1
name = "Crystal Cave 1"
desc = "A small cave with glowing gems and diamonds."
- mappath = 'maps/expedition_vr/beach/submaps/crystal1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crystal1.dmm'
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 2"
desc = "A moderate sized cave with glowing gems and diamonds."
- mappath = 'maps/expedition_vr/beach/submaps/crystal2.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crystal2.dmm'
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 3"
desc = "A large spiral of crystals with diamonds in the center."
- mappath = 'maps/expedition_vr/beach/submaps/crystal3.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crystal3.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/lost_explorer
name = "Lost Explorer"
desc = "The remains of an explorer who rotted away ages ago, and their equipment."
- mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/Rockb1
name = "Rocky Base 1"
desc = "Someones underground hidey hole"
- mappath = 'maps/expedition_vr/beach/submaps/Rockb1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Rockb1.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/corgiritual
name = "Dark Ritual"
desc = "Who put all these plushies here? What are they doing?"
- mappath = 'maps/expedition_vr/beach/submaps/ritual.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/ritual.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/abandonedtemple
name = "Abandoned Temple"
desc = "An ancient temple, long since abandoned. Perhaps alien in origin?"
- mappath = 'maps/expedition_vr/beach/submaps/temple.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/temple.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/digsite
name = "Dig Site"
desc = "A small abandoned dig site."
- mappath = 'maps/expedition_vr/beach/submaps/digsite.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/digsite.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/vault1
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -151,7 +151,7 @@
/datum/map_template/surface/mountains/normal/vault2
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -159,56 +159,56 @@
/datum/map_template/surface/mountains/normal/vault3
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/IceCave1A
name = "Ice Cave 1A"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1A.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/IceCave1A.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1B
name = "Ice Cave 1B"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1B.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/IceCave1B.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1C
name = "Ice Cave 1C"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1C.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/IceCave1C.dmm'
cost = 10
/datum/map_template/surface/mountains/normal/SwordCave
name = "Cursed Sword Cave"
desc = "An underground lake. The sword on the lake's island holds a terrible secret."
- mappath = 'maps/expedition_vr/beach/submaps/SwordCave.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/SwordCave.dmm'
/datum/map_template/surface/mountains/normal/supplydrop1
name = "Supply Drop 1"
desc = "A drop pod that landed deep within the mountains."
- mappath = 'maps/expedition_vr/beach/submaps/SupplyDrop1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/SupplyDrop1.dmm'
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crashedcontainmentshuttle
name = "Crashed Cargo Shuttle"
desc = "A severely damaged military shuttle, its cargo seems to remain intact."
- mappath = 'maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle.dmm'
cost = 30
/datum/map_template/surface/mountains/normal/deadspy
name = "Spy Remains"
desc = "W+M1 = Salt."
- mappath = 'maps/expedition_vr/beach/submaps/deadspy.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/deadspy.dmm'
cost = 15
/datum/map_template/surface/mountains/normal/geyser1
name = "Ore-Rich Geyser"
desc = "A subterranean geyser that produces steam. This one has a particularly abundant amount of materials surrounding it."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Geyser1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -216,7 +216,7 @@
/datum/map_template/surface/mountains/normal/geyser2
name = "Fenced Geyser"
desc = "A subterranean geyser that produces steam. This one has a damaged fence surrounding it."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -224,7 +224,7 @@
/datum/map_template/surface/mountains/normal/geyser3
name = "Magmatic Geyser"
desc = "A subterranean geyser that produces incendiary gas. It is recessed into the ground, and filled with magma. It's a relatively dormant volcano."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
cost = 10
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -232,7 +232,7 @@
/datum/map_template/surface/mountains/normal/cliff1
name = "Ore-Topped Cliff"
desc = "A raised area of rock created by volcanic forces."
- mappath = 'maps/expedition_vr/beach/submaps/Cliff1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Cliff1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Underground Cliffs"
@@ -240,7 +240,7 @@
/datum/map_template/surface/mountains/normal/deadly_rabbit // VOREStation Edit
name = "The Killer Rabbit"
desc = "A cave where the Knights of the Round have fallen to a murderous Rabbit."
- mappath = 'maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/deadly_rabbit_vr.dmm'
cost = 5
allow_duplicates = FALSE
@@ -252,46 +252,46 @@
/datum/map_template/surface/mountains/deep/lost_explorer
name = "Lost Explorer, Deep"
desc = "The remains of an explorer who rotted away ages ago, and their equipment. Again."
- mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
cost = 5
allow_duplicates = TRUE */
/datum/map_template/surface/mountains/normal/crashed_ufo //VOREStation Edit
name = "Crashed UFO"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet it still seems to be running..."
- mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo.dmm'
cost = 40
discard_prob = 50
/datum/map_template/surface/mountains/normal/crashed_ufo_frigate //VOREStation Edit
name = "Crashed UFO Frigate"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet the combat protocols still seem to be running..."
- mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm'
cost = 60
discard_prob = 50
/datum/map_template/surface/mountains/normal/Scave1 //VOREStation Edit
name = "Spider Cave 1"
desc = "A minning tunnel home to an aggressive collection of spiders."
- mappath = 'maps/expedition_vr/beach/submaps/Scave1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Scave1.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/CaveTrench //VOREStation Edit
name = "Cave River"
desc = "A strange underground river."
- mappath = 'maps/expedition_vr/beach/submaps/CaveTrench.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/CaveTrench.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/Cavelake //VOREStation Edit
name = "Cave Lake"
desc = "A large underground lake."
- mappath = 'maps/expedition_vr/beach/submaps/Cavelake.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/vault1 //VOREStation Edit
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -299,7 +299,7 @@
/datum/map_template/surface/mountains/normal/vault2 //VOREStation Edit
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -307,68 +307,68 @@
/datum/map_template/surface/mountains/normal/vault3 //VOREStation Edit
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault4 //VOREStation Edit
name = "Mine Vault 4"
desc = "A small xeno vault with potential loot. Also horrible suprises."
- mappath = 'maps/expedition_vr/beach/submaps/vault4.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault4.dmm'
cost = 20
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault5 //VOREStation Edit
name = "Mine Vault 5"
desc = "A small xeno vault with potential loot. Also major horrible suprises."
- mappath = 'maps/expedition_vr/beach/submaps/vault5.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault5.dmm'
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault6 //VOREStation Edit
name = "Mine Vault 6"
desc = "A small mercenary tower with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault6.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/vault6.dmm'
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/BlastMine1 //VOREStation Edit
name = "Blast Mine 1"
desc = "An abandoned blast mining site, seems that local wildlife has moved in."
- mappath = 'maps/expedition_vr/beach/submaps/BlastMine1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/BlastMine1.dmm'
cost = 20
/datum/map_template/surface/mountains/normal/lava_trench //VOREStation Edit
name = "lava trench"
desc = "A long stretch of lava underground, almost river-like, with a small crystal research outpost on the side."
- mappath = 'maps/expedition_vr/beach/submaps/lava_trench.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/lava_trench.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/crashedmedshuttle //VOREStation Edit
name = "Crashed Med Shuttle"
desc = "A medical response shuttle that went missing some time ago. So this is where they went."
- mappath = 'maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/excavation1 //VOREStation Edit
name = "Excavation Site"
desc = "An abandoned mining site."
- mappath = 'maps/expedition_vr/beach/submaps/excavation1.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/excavation1.dmm'
cost = 20
/datum/map_template/surface/mountains/deep/spatial_anomaly
name = "spatial anomaly"
desc = "A strange section of the caves that seems twist and turn in ways that shouldn't be physically possible."
- mappath = 'maps/expedition_vr/beach/submaps/spatial_anomaly.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm'
cost = 20
fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/Speakeasy //VOREStation add
name = "Speakeasy"
desc = "A hidden underground bar to serve drinks in secret and in style."
- mappath = 'maps/expedition_vr/beach/submaps/speakeasy_vr.dmm'
+ mappath = 'maps/submaps/surface_submaps/mountains/speakeasy_vr.dmm'
cost = 10
allow_duplicates = FALSE
-
+
diff --git a/maps/expedition_vr/beach/submaps/mountains_areas.dm b/maps/expedition_vr/beach/submaps/mountains_areas.dm
new file mode 100644
index 0000000000..eed32e1ca5
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/mountains_areas.dm
@@ -0,0 +1,170 @@
+/area/submap/cave
+ name = "Cave Submap Area"
+ icon_state = "submap"
+ ambience = AMBIENCE_RUINS
+ base_turf = /turf/simulated/mineral/floor/ignore_mapgen/cave
+
+/area/submap/cave/deadBeacon
+ name = "POI - abandoned relay"
+ ambience = AMBIENCE_TECH_RUINS
+
+/area/submap/cave/prepper1
+ name = "POI - Prepper Bunker"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/qShuttle
+ name = "POI - Quarantined Shuttle"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/cave/AMine1
+ name = "POI - Abandoned Mine"
+
+/area/submap/cave/Scave1
+ name = "POI - Spider Cave 1"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/crashed_ufo
+ name = "POI - Crashed Alien Vessel"
+ requires_power = FALSE
+ ambience = AMBIENCE_OTHERWORLDLY
+
+/area/submap/cave/crashed_ufo_frigate
+ name = "POI - Crashed Alien Frigate"
+ requires_power = FALSE
+ ambience = AMBIENCE_OTHERWORLDLY
+
+/area/submap/cave/crystal1
+ name = "POI - Crystaline Cave"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/crystal2
+ name = "POI - Crystaline Cave"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/crystal3
+ name = "POI - Crystaline Cave"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/lost_explorer
+ name = "POI - Final Resting Place"
+ ambience = AMBIENCE_GHOSTLY
+
+/area/submap/Rockb1
+ name = "POI - RockyBase1"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/Cavelake
+ name = "POI - Cavelake"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/CaveTrench
+ name = "POI - Cave River"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/CorgiRitual
+ name = "POI - Dark Ritual"
+ ambience = AMBIENCE_UNHOLY
+
+/area/submap/AbandonedTemple
+ name = "POI - Abandoned Temple"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/CrashedMedShuttle
+ name = "POI - Crashed Med Shuttle"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/cave/digsite
+ name = "POI - Dig Site"
+ ambience = AMBIENCE_OTHERWORLDLY
+
+/area/submap/cave/vault1
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/vault2
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/vault3
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/vault4
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/vault5
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/vault6
+ name = "POI - Mine Vault"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/cave/IceCave1A
+ name = "POI - Ice Cave 1A"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/IceCave1B
+ name = "POI - Ice Cave 1B"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/IceCave1C
+ name = "POI - Ice Cave 1C"
+ ambience = AMBIENCE_SPACE
+
+/area/submap/cave/swordcave
+ name = "POI - Cursed Sword Cave"
+ ambience = AMBIENCE_UNHOLY
+
+/area/submap/cave/SupplyDrop1
+ name = "POI - Supply Drop 1"
+ ambience = AMBIENCE_TECH_RUINS
+
+/area/submap/cave/BlastMine1
+ name = "POI - Blast Mine 1"
+
+/area/submap/crashedcontainmentshuttle
+ name = "POI - Crashed Containment Shuttle"
+ ambience = AMBIENCE_HIGHSEC
+
+/area/submap/geyser_1
+ name = "POI - Ore-Rich Geyser"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/geyser_2
+ name = "POI - Fenced Geyser"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/geyser_3
+ name = "POI - Magmatic Geyser"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/ore_cliff
+ name = "POI - Ore-Topped Cliff"
+ ambience = AMBIENCE_RUINS
+
+/area/submap/deadspy
+ name = "POI - Dead Spy"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/lava_trench
+ name = "POI - Lava Trench"
+ ambience = AMBIENCE_LAVA
+
+/area/submap/lava_trench/outpost
+ name = "POI - Trench Outpost"
+ requires_power = FALSE
+ icon_state = "submap2"
+
+/area/submap/Excavation
+ name = "POI - Excavation Site"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/spatial_anomaly
+ name = "POI - Spatial Anomaly"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/Speakeasy //VOREStation add
+ name = "POI - Speakeasy"
+ requires_power = FALSE
\ No newline at end of file
diff --git a/maps/expedition_vr/beach/submaps/prepper1.dmm b/maps/expedition_vr/beach/submaps/prepper1.dmm
new file mode 100644
index 0000000000..2e9f7a24d4
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/prepper1.dmm
@@ -0,0 +1,33 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/wall/r_wall,/area/submap/cave/prepper1)
+"c" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"d" = (/obj/structure/table/steel,/obj/random/maintenance/security,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"e" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"f" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"g" = (/obj/structure/table/steel,/obj/item/weapon/storage/box/glasses,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"h" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"i" = (/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"j" = (/obj/structure/table/steel,/obj/item/weapon/tape_roll,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"k" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/item/stack/tile/floor/steel,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"l" = (/obj/structure/inflatable/door,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"m" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"n" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"o" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"p" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"q" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/material/makeshift,/obj/item/clothing/head/helmet/bucket,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"r" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"s" = (/obj/structure/table/steel,/obj/item/device/flashlight/lantern,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+"t" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever,/obj/item/ammo_magazine/clip/c762,/obj/item/ammo_magazine/clip/c762,/turf/simulated/floor/plating,/area/submap/cave/prepper1)
+
+(1,1,1) = {"
+aaaaaaaaaa
+aabbbbbbaa
+abbcdefbba
+abghiijkba
+aliiiiimba
+aliiiiinba
+aboiiipnba
+abbqrstbba
+aabbbbbbaa
+aaaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/quarantineshuttle.dmm b/maps/expedition_vr/beach/submaps/quarantineshuttle.dmm
new file mode 100644
index 0000000000..beeb7784ff
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/quarantineshuttle.dmm
@@ -0,0 +1,1518 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/template_noop,
+/area/template_noop)
+"ab" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ac" = (
+/obj/item/clothing/head/cone,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ad" = (
+/turf/simulated/shuttle/wall,
+/area/submap/cave/qShuttle)
+"ae" = (
+/obj/structure/inflatable,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"af" = (
+/obj/structure/inflatable/door,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ag" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 4;
+ icon_state = "heater"
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"ah" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_l"
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"ai" = (
+/obj/structure/grille,
+/obj/structure/shuttle/window,
+/obj/machinery/door/blast/regular{
+ dir = 8;
+ id = "QShuttlePoIDoors";
+ layer = 3.3;
+ name = "Emergency Lockdown Shutters"
+ },
+/obj/item/tape/medical{
+ dir = 4;
+ icon_state = "tape_door_0";
+ layer = 3.4
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"aj" = (
+/turf/simulated/shuttle/wall/hard_corner,
+/area/submap/cave/qShuttle)
+"ak" = (
+/obj/machinery/door/airlock/external{
+ desc = "It opens and closes. It is stamped with the logo of Major Bill's Transportation";
+ frequency = 1380;
+ icon_state = "door_locked";
+ id_tag = null;
+ locked = 1;
+ name = "MBT-540"
+ },
+/obj/item/tape/medical{
+ dir = 4;
+ icon_state = "tape_door_0";
+ layer = 3.4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"al" = (
+/obj/structure/sign/biohazard{
+ dir = 1
+ },
+/turf/simulated/shuttle/wall/hard_corner,
+/area/submap/cave/qShuttle)
+"am" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"an" = (
+/obj/machinery/door/airlock{
+ name = "Restroom"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"ao" = (
+/obj/effect/decal/cleanable/vomit,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"ap" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/suit/space/emergency,
+/obj/item/clothing/head/helmet/space/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aq" = (
+/obj/structure/bed/chair,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"ar" = (
+/obj/structure/bed/chair,
+/obj/effect/decal/remains/human,
+/obj/item/clothing/suit/space/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"as" = (
+/obj/machinery/vending/snack{
+ contraband = null;
+ products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 0, /obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 0, /obj/item/weapon/reagent_containers/food/snacks/chips = 0, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 0, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 0, /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie = 0, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 0, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 0, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 0)
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"at" = (
+/obj/machinery/vending/cola{
+ contraband = null;
+ products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 0, /obj/item/weapon/reagent_containers/food/drinks/cans/gingerale = 0)
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"au" = (
+/obj/structure/closet/crate/secure/loot,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"av" = (
+/obj/item/weapon/pickaxe/drill,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aw" = (
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"ax" = (
+/obj/effect/decal/cleanable/generic,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"ay" = (
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"az" = (
+/obj/item/trash/syndi_cakes,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aA" = (
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aB" = (
+/obj/item/trash/cigbutt,
+/obj/item/weapon/tank/emergency/oxygen,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aC" = (
+/obj/item/weapon/material/knife/tacknife/boot,
+/obj/item/clothing/mask/breath,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aD" = (
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aE" = (
+/obj/item/trash/sosjerky,
+/obj/item/weapon/storage/box/donut/empty,
+/obj/item/weapon/reagent_containers/food/drinks/sillycup,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aF" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 1;
+ health = 1e+006
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"aG" = (
+/obj/machinery/door/airlock/glass,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aH" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced{
+ dir = 1;
+ health = 1e+006
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"aI" = (
+/obj/machinery/button{
+ name = "Cargo Hatch"
+ },
+/turf/simulated/shuttle/wall,
+/area/submap/cave/qShuttle)
+"aJ" = (
+/obj/machinery/computer,
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"aK" = (
+/obj/structure/bed/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/vomit,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aL" = (
+/obj/structure/prop/blackbox/quarantined_shuttle,
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"aM" = (
+/obj/item/trash/cheesie,
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aN" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aO" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aP" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/effect/decal/remains/human,
+/obj/item/clothing/mask/breath,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aQ" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aR" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aS" = (
+/obj/effect/decal/cleanable/vomit,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aT" = (
+/obj/item/clothing/head/helmet/space/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"aU" = (
+/obj/machinery/door/airlock/engineering{
+ icon_state = "door_locked";
+ locked = 1;
+ name = "Cargo Bay"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aV" = (
+/obj/item/weapon/virusdish/random,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aW" = (
+/obj/item/weapon/material/shard,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aX" = (
+/obj/item/device/paicard,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aY" = (
+/obj/machinery/door/blast/regular{
+ name = "Cargo Door"
+ },
+/obj/item/tape/medical{
+ dir = 4;
+ icon_state = "tape_door_0";
+ layer = 3.4
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"aZ" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/under/mbill{
+ desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date.";
+ name = "\improper old Major Bill's uniform"
+ },
+/obj/item/clothing/head/soft/mbill{
+ desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date.";
+ name = "old shipping cap"
+ },
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"ba" = (
+/obj/item/trash/cigbutt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bb" = (
+/obj/machinery/door/airlock/command{
+ icon_state = "door_locked";
+ locked = 1
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bc" = (
+/obj/item/weapon/tank/emergency/oxygen/engi,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bd" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/suit/space/emergency,
+/obj/item/clothing/head/helmet/space/emergency,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"be" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ health = 1e+006
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"bf" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1;
+ health = 1e+006
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"bg" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ health = 1e+006
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"bh" = (
+/obj/item/clothing/suit/space/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bi" = (
+/obj/item/trash/candy,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bj" = (
+/obj/structure/table/rack,
+/obj/structure/loot_pile/maint/boxfort,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bk" = (
+/obj/structure/table/rack,
+/obj/item/weapon/shovel,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bl" = (
+/obj/structure/closet/crate/secure/science{
+ icon_state = "scisecurecrateopen";
+ locked = 0;
+ name = "Virus Samples - FRAGILE";
+ opened = 1
+ },
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/obj/item/weapon/virusdish/random,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bm" = (
+/obj/structure/bed/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/decal/remains/human,
+/obj/item/clothing/under/mbill{
+ desc = "A uniform belonging to Major Bill's Transportation, a shipping megacorporation. This looks at least a few decades out of date.";
+ name = "\improper old Major Bill's uniform"
+ },
+/obj/item/clothing/head/soft/mbill{
+ desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date.";
+ name = "old shipping cap"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bn" = (
+/obj/structure/table/standard,
+/obj/item/device/taperecorder,
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"bo" = (
+/obj/item/weapon/tool/crowbar/red,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bp" = (
+/obj/item/trash/chips,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bq" = (
+/obj/structure/bed/chair,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"br" = (
+/obj/structure/bed/chair,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bs" = (
+/obj/structure/bed/chair,
+/obj/effect/decal/remains/human,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/head/soft/mbill{
+ desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date.";
+ name = "old shipping cap"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bt" = (
+/obj/structure/bed/chair,
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bu" = (
+/obj/effect/decal/remains/xeno,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bv" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bw" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bx" = (
+/obj/random/maintenance,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"by" = (
+/obj/item/weapon/coin/silver,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bz" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/suit/space/emergency,
+/obj/item/clothing/head/helmet/space/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bA" = (
+/obj/effect/decal/cleanable/generic,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bB" = (
+/obj/item/weapon/tank/emergency/oxygen/engi,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bC" = (
+/obj/item/trash/sosjerky,
+/obj/effect/decal/remains/human,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bD" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/mask/breath,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bE" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"bF" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/shuttle/plating,
+/area/submap/cave/qShuttle)
+"bG" = (
+/obj/machinery/button{
+ dir = 4;
+ name = "Cargo Access"
+ },
+/turf/simulated/shuttle/wall,
+/area/submap/cave/qShuttle)
+"bH" = (
+/obj/machinery/recharge_station,
+/turf/simulated/shuttle/floor,
+/area/submap/cave/qShuttle)
+"bI" = (
+/obj/machinery/door/airlock{
+ name = "Charge Station"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bJ" = (
+/obj/item/trash/tastybread,
+/obj/item/weapon/material/butterfly/boxcutter,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bK" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/cleanable/mucus/mapped,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bL" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/effect/decal/remains/xeno,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bM" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/obj/item/weapon/card/id/external{
+ desc = "An identification card of some sort. Looks like this one was issued by the Vir Independent Mining Corp.";
+ name = "VIMC identification card";
+ rank = "Miner";
+ registered_name = "Nadia Chu"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bN" = (
+/obj/structure/table/rack,
+/obj/item/weapon/storage/toolbox/emergency,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bO" = (
+/obj/structure/table/rack,
+/obj/item/clothing/head/soft/mbill{
+ desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date.";
+ name = "old shipping cap"
+ },
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_white"
+ },
+/area/submap/cave/qShuttle)
+"bP" = (
+/obj/structure/ore_box,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bQ" = (
+/obj/item/poster,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bR" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/shuttle/floor{
+ icon_state = "floor_yellow"
+ },
+/area/submap/cave/qShuttle)
+"bS" = (
+/obj/structure/sign/biohazard,
+/turf/simulated/shuttle/wall/hard_corner,
+/area/submap/cave/qShuttle)
+"bT" = (
+/obj/item/tape/medical{
+ icon_state = "tape_v_0"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"bU" = (
+/obj/item/taperoll/medical,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"bV" = (
+/obj/item/tape/medical{
+ dir = 1;
+ icon_state = "tape_dir_0"
+ },
+/obj/item/tape/medical{
+ dir = 4;
+ icon_state = "tape_dir_0"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"bW" = (
+/obj/item/tape/medical{
+ icon_state = "tape_h_0"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"bX" = (
+/obj/structure/lattice,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"bY" = (
+/obj/structure/sign/warning/secure_area,
+/turf/simulated/wall/iron,
+/area/submap/cave/qShuttle)
+"bZ" = (
+/obj/structure/sign/kiddieplaque{
+ desc = "By order of the S.D.D.C, this site or craft is to be buried and not disturbed until such time that sterility can be confirmed. Dated: 20/12/2491 ";
+ name = "\improper Sif Department of Disease Control notice"
+ },
+/turf/simulated/wall/iron,
+/area/submap/cave/qShuttle)
+"ca" = (
+/obj/structure/sign/warning,
+/turf/simulated/wall/iron,
+/area/submap/cave/qShuttle)
+"cb" = (
+/obj/item/bodybag,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cc" = (
+/obj/structure/table/steel,
+/obj/item/weapon/storage/box/bodybags,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cd" = (
+/obj/structure/table/steel,
+/obj/item/clothing/suit/bio_suit,
+/obj/random/medical/lite,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ce" = (
+/obj/structure/closet/l3closet/virology,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cf" = (
+/obj/item/weapon/reagent_containers/syringe/antiviral,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cg" = (
+/obj/structure/dispenser/oxygen,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ch" = (
+/obj/structure/table/steel,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ci" = (
+/obj/structure/table/steel,
+/obj/item/weapon/reagent_containers/syringe/antiviral,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cj" = (
+/obj/structure/table/steel,
+/obj/item/weapon/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'";
+ name = "Chemistry Cleaner"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"ck" = (
+/obj/structure/table/steel,
+/obj/item/weapon/tool/crowbar/power,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cl" = (
+/obj/structure/table/rack,
+/obj/item/clothing/head/bio_hood,
+/obj/item/clothing/suit/bio_suit,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cm" = (
+/obj/item/weapon/weldingtool/largetank,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+"cn" = (
+/obj/structure/closet/crate/medical,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/cave/qShuttle)
+
+(1,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ac
+ab
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(3,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ab
+ad
+ai
+ai
+ai
+ad
+ab
+ac
+ab
+ab
+ab
+ac
+aa
+aa
+aa
+aa
+aa
+"}
+(4,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ad
+ad
+aJ
+aZ
+aJ
+ad
+ad
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(5,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ad
+ad
+ad
+aK
+ba
+bm
+ad
+ad
+ad
+bT
+bV
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(6,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ai
+am
+ad
+aL
+ba
+bn
+ad
+bH
+ai
+ab
+bW
+ab
+cg
+cn
+aa
+aa
+aa
+aa
+"}
+(7,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+aj
+an
+ad
+ad
+bb
+ad
+ad
+bI
+aj
+ae
+bW
+ab
+ch
+ch
+aa
+aa
+aa
+aa
+"}
+(8,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+af
+ak
+ao
+aw
+aM
+bc
+bo
+aD
+bJ
+ak
+ae
+bW
+ab
+ci
+ab
+aa
+aa
+aa
+aa
+"}
+(9,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+ak
+ap
+ax
+aN
+bd
+bp
+by
+bK
+ak
+af
+bW
+ab
+cj
+ab
+aa
+aa
+aa
+aa
+"}
+(10,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ae
+al
+ad
+ay
+aO
+ad
+bq
+aA
+ad
+bS
+ae
+bW
+ab
+ck
+ab
+aa
+aa
+aa
+aa
+"}
+(11,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ai
+aq
+az
+aP
+be
+br
+bz
+bL
+ai
+ab
+bW
+bX
+cl
+ab
+aa
+aa
+aa
+aa
+"}
+(12,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ad
+aq
+aA
+aQ
+bf
+bs
+aA
+aQ
+ad
+ab
+bW
+bY
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(13,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+ai
+ar
+aB
+aQ
+bg
+bt
+bA
+bM
+ai
+ab
+bW
+bZ
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(14,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ad
+ad
+aC
+aR
+ad
+bq
+bB
+ad
+ad
+ab
+bW
+ca
+cm
+ab
+aa
+aa
+aa
+aa
+"}
+(15,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ad
+as
+aD
+aS
+bh
+aN
+bC
+bN
+ad
+bU
+bW
+cb
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(16,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ac
+ab
+ad
+at
+aE
+aT
+bi
+bu
+bD
+bO
+ad
+ab
+bW
+cb
+cb
+aa
+aa
+aa
+aa
+aa
+"}
+(17,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ad
+ad
+ad
+aU
+ad
+aU
+ad
+ad
+ad
+ab
+bW
+cb
+cb
+aa
+aa
+aa
+aa
+aa
+"}
+(18,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ab
+ab
+ad
+au
+aF
+aV
+bj
+bv
+bE
+bP
+ad
+ab
+bW
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+"}
+(19,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ad
+av
+aG
+aA
+aA
+aA
+aG
+bQ
+ad
+ab
+bW
+cc
+ab
+aa
+aa
+aa
+aa
+aa
+"}
+(20,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+ab
+ad
+au
+aH
+aW
+bk
+bw
+bF
+bR
+ad
+ab
+bW
+cd
+ab
+aa
+aa
+aa
+aa
+aa
+"}
+(21,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ad
+ad
+ad
+ad
+ad
+aX
+aA
+aV
+ad
+ad
+ad
+ad
+ad
+ce
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(22,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+ad
+ag
+ad
+ag
+aI
+aA
+bl
+bx
+ad
+ag
+ad
+ag
+ad
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+"}
+(23,1,1) = {"
+aa
+aa
+aa
+aa
+ab
+ad
+ah
+ad
+ah
+ad
+aY
+aY
+aY
+bG
+ah
+ad
+ah
+ad
+cf
+ab
+ac
+aa
+aa
+aa
+aa
+"}
+(24,1,1) = {"
+aa
+aa
+aa
+aa
+ab
+ac
+ab
+aa
+aa
+ab
+ab
+ab
+ab
+ab
+ab
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(25,1,1) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
diff --git a/maps/expedition_vr/beach/submaps/ritual.dmm b/maps/expedition_vr/beach/submaps/ritual.dmm
new file mode 100644
index 0000000000..8aab49c009
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/ritual.dmm
@@ -0,0 +1,15 @@
+"a" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"b" = (/obj/structure/plushie/ian,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"c" = (/obj/item/weapon/flame/candle/everburn,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"d" = (/obj/structure/plushie/ian{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"e" = (/obj/structure/plushie/ian{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"f" = (/obj/structure/ghost_pod/manual/corgi,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+"g" = (/obj/structure/plushie/ian{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/CorgiRitual)
+
+(1,1,1) = {"
+aabaa
+acacd
+eafad
+ecaca
+aagaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm b/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm
new file mode 100644
index 0000000000..0adb4b8937
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/spatial_anomaly.dmm
@@ -0,0 +1,82 @@
+"a" = (/turf/simulated/wall/solidrock,/area/submap/spatial_anomaly)
+"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"c" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"d" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"e" = (/obj/structure/barricade,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"f" = (/turf/template_noop,/area/template_noop)
+"g" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"h" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 4},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"i" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 8},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"j" = (/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
+"k" = (/obj/item/weapon/disposable_teleporter/slime,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"l" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"m" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"n" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"o" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"p" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"q" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"r" = (/obj/effect/map_effect/portal/line/side_b,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"s" = (/obj/machinery/crystal/lava,/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
+"t" = (/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"u" = (/obj/effect/map_effect/portal/master/side_a{portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"v" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"w" = (/obj/structure/table/steel_reinforced,/obj/item/device/xenoarch_multi_tool,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"x" = (/turf/simulated/wall/solidrock,/area/template_noop)
+"y" = (/obj/random/technology_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"z" = (/obj/structure/table/steel_reinforced,/obj/random/unidentified_medicine/scientific,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"A" = (/obj/structure/table/steel_reinforced,/obj/random/tool/power,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"B" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/ore/diamond,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"C" = (/obj/structure/sign/warning/lava,/turf/simulated/wall,/area/submap/spatial_anomaly)
+"D" = (/obj/effect/map_effect/portal/line/side_a,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"E" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"F" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"G" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"H" = (/turf/unsimulated/wall,/area/template_noop)
+"I" = (/obj/effect/map_effect/portal/master/side_b{dir = 1; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"J" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"K" = (/obj/item/weapon/mining_scanner,/obj/structure/table/rack,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"L" = (/obj/item/weapon/storage/belt/archaeology,/obj/effect/decal/remains/human,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"M" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"N" = (/obj/item/weapon/pickaxe/brush,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"O" = (/obj/item/weapon/pickaxe/one_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"P" = (/obj/item/weapon/pickaxe/four_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"Q" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"R" = (/obj/item/weapon/pickaxe/five_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"S" = (/obj/item/weapon/pickaxe/six_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"T" = (/obj/item/weapon/pickaxe/two_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"U" = (/obj/item/device/measuring_tape,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"X" = (/obj/item/weapon/pickaxe/three_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"Y" = (/obj/item/weapon/pickaxe/excavationdrill,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+
+(1,1,1) = {"
+ffffffffffffffffffffffffffffff
+fffffffffffffxxxxxxfffffffffff
+fffffxxxxxxxxaaaaaaxxxxxffffff
+ffffxaaaaaaaaaaaaaaaaaaaxfffff
+ffffaataatcbbbbjjjsjkbdtaxffff
+fffxaagaathbbbbbjjjjbbitaaffff
+fffaaabaaaaaabCbbsaaaaaaaaffff
+fffaaaObaaaabbNbbaaaaaaaaaxfff
+ffxaaabbblbbbybbaabPbbblaaafff
+ffaaaaaaaaabbbtmaabbaaabaaafff
+ffaaaaaaaaatttttaabaaaabaaafff
+ffaalbbbbbaatvtQaalaaaabaaafff
+ffaabaaaabaaBwzAaabaaaabaaffff
+ffaabaaaabaaaaaaaabatnbbaaHHHf
+ffxabaaaaoaaaaaaabbaaaaaaaffHf
+ffxabaaaataatttaabbaaaaaaaffHf
+ffxabRbptaaaqrraabSaatttaaHHaf
+ffxaaaaaaaaabbbaabbaauDDablbaf
+fffaaaaaaaaabbbaablaabbbaeeaaf
+fffaaaalbbbabbbaabbaabbbblbaaf
+ffffaabbaabababbbbbaaUbbbEKaff
+ffffaaTbbabXbabbLbYaabbbaaaaff
+ffffaabbbabbbabbmttaaFGGaaafff
+ffffaaIJJablbabtttMaatttaaffff
+fffffatttaaaaaaaaaaaaaaaafffff
+fffffaaaaaaaaaaaaaaaaaaaffffff
+fffffaaaaffaaaaaaaafffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+"}
diff --git a/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm b/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm
new file mode 100644
index 0000000000..d4e01a8df1
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/speakeasy_vr.dmm
@@ -0,0 +1,54 @@
+"a" = (/turf/template_noop,/area/submap/Speakeasy)
+"c" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+"f" = (/obj/structure/table/gamblingtable,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"g" = (/obj/structure/bed/chair/wood{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"h" = (/obj/random/handgun,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"i" = (/obj/item/clothing/head/fedora,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"j" = (/obj/structure/bookcase,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"k" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"l" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+"m" = (/obj/structure/table/woodentable,/obj/machinery/light/poi{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"n" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"o" = (/obj/structure/simple_door/wood,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"p" = (/obj/machinery/media/jukebox,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"s" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"u" = (/obj/structure/table/gamblingtable,/obj/machinery/light/poi{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"v" = (/obj/structure/table/fancyblack,/obj/item/clothing/mask/smokable/cigarette/cigar,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+"w" = (/turf/simulated/wall/wood,/area/submap/Speakeasy)
+"x" = (/obj/structure/bed/chair/sofa/blue/left{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"B" = (/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"C" = (/turf/simulated/mineral/floor/cave,/area/submap/Speakeasy)
+"D" = (/obj/structure/bed/chair/sofa/black/corner{dir = 4},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"E" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+"H" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"I" = (/obj/structure/table/woodentable,/obj/random/drinkbottle,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"K" = (/obj/effect/floor_decal/corner/black/diagonal,/turf/simulated/floor/tiled/neutral,/area/submap/Speakeasy)
+"L" = (/obj/structure/bed/chair/wood{dir = 8},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"M" = (/obj/machinery/light/poi{dir = 1},/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+"N" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"O" = (/obj/machinery/light/poi{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"R" = (/obj/structure/bed/chair/sofa/black{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"U" = (/obj/structure/bed/chair/sofa/blue/right{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"V" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_soft/full{dir = 1},/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"W" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"X" = (/obj/structure/table/woodentable,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/floor/wood,/area/submap/Speakeasy)
+"Y" = (/obj/structure/table/fancyblack,/obj/random/cash/big,/turf/simulated/floor/carpet/turcarpet,/area/submap/Speakeasy)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaa
+awwwwwwwwwwaaaaa
+awnnwBMlMBwwwwaa
+awiBjBYvYBwfLwwa
+awhBjBcEcBwgBBwa
+awwwwBBBBBwBWWwa
+awXHwwwowwwBNmwa
+awBBBOBBBBBBNNwa
+awVNININNIBBggwa
+awBkkkkkkkBBBBwa
+awpBBBBBBBKKKWwa
+awwxffBBBBKKKuwa
+aawDRUBBBBKKKgwa
+aawwwwBBBBsfLwwa
+aaaaawwowwwwwwaa
+aaaaaaCCCaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/temple.dmm b/maps/expedition_vr/beach/submaps/temple.dmm
new file mode 100644
index 0000000000..53e0515434
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/temple.dmm
@@ -0,0 +1,886 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/submap/AbandonedTemple)
+"b" = (
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/AbandonedTemple)
+"c" = (
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"d" = (
+/turf/simulated/wall/sandstone,
+/area/submap/AbandonedTemple)
+"e" = (
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"f" = (
+/obj/effect/decal/remains/mummy1,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"g" = (
+/turf/simulated/wall/sandstonediamond,
+/area/submap/AbandonedTemple)
+"h" = (
+/obj/item/weapon/flame/candle/everburn,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"i" = (
+/obj/item/weapon/ectoplasm,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"j" = (
+/obj/structure/table/wooden_reinforced,
+/obj/item/weapon/coin/iron,
+/obj/item/weapon/coin/platinum,
+/obj/item/weapon/coin/uranium,
+/obj/item/weapon/coin/diamond,
+/obj/item/weapon/coin/iron,
+/obj/item/weapon/coin/uranium,
+/obj/item/weapon/coin/iron,
+/obj/item/weapon/coin/phoron,
+/obj/item/weapon/coin/platinum,
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"k" = (
+/obj/structure/table/wooden_reinforced,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/silver,
+/obj/item/weapon/coin/silver,
+/obj/item/weapon/coin/silver,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/gold,
+/obj/item/weapon/coin/silver,
+/obj/item/weapon/coin/silver,
+/obj/item/weapon/coin/silver,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"l" = (
+/obj/effect/decal/remains/xeno,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"m" = (
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"n" = (
+/obj/structure/loot_pile/maint/technical,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"o" = (
+/obj/structure/loot_pile/maint/technical,
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"p" = (
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"q" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/flame/lighter/zippo/royal,
+/obj/item/clothing/mask/smokable/pipe,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"r" = (
+/obj/effect/rune,
+/obj/effect/decal/remains/human,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"s" = (
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"t" = (
+/obj/machinery/artifact,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"u" = (
+/obj/structure/bed/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"v" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/paper,
+/obj/item/weapon/pen/fountain,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"w" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"x" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/obj/effect/decal/remains/posi,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"y" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/flame/candle/candelabra/everburn,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"z" = (
+/obj/structure/simple_door/gold,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"A" = (
+/obj/effect/decal/remains/posi,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"B" = (
+/obj/machinery/crystal{
+ icon_state = "crystal3";
+ light_color = "#f44256";
+ light_power = 3
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/cave/crystal1)
+"C" = (
+/obj/structure/flora/pottedplant/dead,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"D" = (
+/obj/machinery/crystal{
+ icon_state = "crystal3";
+ light_color = "#f44256";
+ light_power = 3
+ },
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"E" = (
+/obj/effect/decal/remains/human,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"F" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/remains/human,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"G" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/paper/alien{
+ desc = "";
+ icon_state = "alienpaper_words";
+ info = "(On the screen of the tablet are several lines of characters written in a language you don't seem to recognize. At the end of each line is a set of numbers seperated by a colon. The screen flickers occasionally, as if damaged. Nothing about the tablet seems particularly interesting, but it does seem very, very old.)"
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"H" = (
+/obj/effect/decal/cleanable/blood/xeno,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/AbandonedTemple)
+"I" = (
+/obj/structure/table/bench/wooden,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"J" = (
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"K" = (
+/obj/structure/table/bench/wooden,
+/obj/effect/decal/remains/xeno,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"L" = (
+/obj/structure/simple_door/sandstone,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"M" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/weapon/flame/candle/candelabra/everburn,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"N" = (
+/obj/effect/decal/cleanable/cobweb2,
+/obj/item/weapon/flame/candle/candelabra/everburn,
+/turf/simulated/floor/tiled/asteroid_steel,
+/area/submap/AbandonedTemple)
+"O" = (
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/mineral/floor/ignore_mapgen/cave,
+/area/submap/AbandonedTemple)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+b
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+m
+c
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+b
+c
+d
+e
+p
+u
+p
+p
+p
+w
+c
+c
+d
+d
+m
+c
+b
+b
+b
+b
+b
+b
+a
+a
+"}
+(6,1,1) = {"
+a
+b
+c
+d
+f
+q
+v
+y
+p
+p
+c
+E
+c
+s
+d
+d
+c
+c
+b
+b
+b
+b
+b
+a
+a
+"}
+(7,1,1) = {"
+a
+b
+c
+d
+g
+g
+g
+g
+g
+g
+g
+g
+z
+g
+g
+d
+d
+c
+c
+b
+b
+b
+b
+a
+a
+"}
+(8,1,1) = {"
+a
+b
+c
+d
+h
+c
+h
+z
+c
+g
+B
+c
+c
+c
+c
+c
+d
+d
+c
+b
+b
+b
+b
+a
+a
+"}
+(9,1,1) = {"
+a
+b
+c
+d
+i
+r
+c
+g
+c
+g
+C
+c
+c
+c
+c
+c
+D
+d
+m
+c
+c
+s
+b
+a
+a
+"}
+(10,1,1) = {"
+a
+b
+c
+d
+h
+s
+h
+g
+c
+g
+c
+w
+c
+I
+c
+K
+c
+d
+d
+d
+d
+c
+b
+a
+a
+"}
+(11,1,1) = {"
+a
+b
+c
+d
+g
+g
+g
+g
+c
+z
+c
+p
+p
+I
+c
+I
+c
+d
+M
+c
+d
+c
+b
+a
+a
+"}
+(12,1,1) = {"
+a
+b
+c
+d
+j
+c
+p
+p
+c
+g
+c
+F
+G
+c
+c
+c
+w
+L
+c
+w
+L
+c
+b
+a
+a
+"}
+(13,1,1) = {"
+a
+b
+c
+d
+k
+c
+p
+p
+c
+g
+c
+p
+y
+c
+c
+c
+s
+L
+c
+c
+L
+c
+O
+a
+a
+"}
+(14,1,1) = {"
+a
+b
+c
+d
+g
+g
+g
+g
+c
+z
+c
+p
+H
+I
+c
+I
+c
+d
+N
+c
+d
+s
+b
+a
+a
+"}
+(15,1,1) = {"
+a
+b
+c
+d
+c
+c
+w
+g
+c
+g
+c
+c
+l
+I
+c
+I
+c
+d
+d
+d
+d
+c
+b
+a
+a
+"}
+(16,1,1) = {"
+a
+b
+c
+d
+l
+t
+c
+g
+c
+g
+C
+c
+c
+c
+c
+c
+D
+d
+s
+c
+c
+c
+b
+a
+a
+"}
+(17,1,1) = {"
+a
+b
+c
+d
+m
+c
+c
+z
+c
+g
+D
+c
+c
+c
+c
+s
+d
+d
+c
+b
+b
+b
+b
+a
+a
+"}
+(18,1,1) = {"
+a
+b
+c
+d
+g
+g
+g
+g
+g
+g
+g
+g
+z
+g
+g
+d
+d
+J
+c
+b
+b
+b
+b
+a
+a
+"}
+(19,1,1) = {"
+a
+b
+c
+d
+n
+c
+c
+n
+c
+c
+c
+c
+w
+n
+d
+d
+c
+c
+b
+b
+b
+b
+b
+a
+a
+"}
+(20,1,1) = {"
+a
+b
+c
+d
+o
+c
+x
+c
+c
+A
+n
+l
+n
+d
+d
+c
+c
+b
+b
+b
+b
+b
+b
+a
+a
+"}
+(21,1,1) = {"
+a
+b
+c
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+J
+c
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
+(22,1,1) = {"
+a
+a
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+"}
+(24,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault1.dmm b/maps/expedition_vr/beach/submaps/vault1.dmm
new file mode 100644
index 0000000000..c1a5ddadd8
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault1.dmm
@@ -0,0 +1,17 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/wall,/area/submap/cave/vault1)
+"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault1)
+"d" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/vault1)
+"e" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault1)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbbbbaa
+abbcdcbba
+abcccccba
+abcceccba
+abcccccba
+abbcccbba
+aabbbbbaa
+aaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault2.dmm b/maps/expedition_vr/beach/submaps/vault2.dmm
new file mode 100644
index 0000000000..0c8e85ce2c
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault2.dmm
@@ -0,0 +1,16 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/wall,/area/submap/cave/vault2)
+"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault2)
+"d" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault2)
+
+(1,1,1) = {"
+aaaaaaaaa
+abbaaabba
+abbbbbbba
+aabcccbaa
+aabcdcbaa
+aabcccbaa
+abbbbbbba
+abbaaabba
+aaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault3.dmm b/maps/expedition_vr/beach/submaps/vault3.dmm
new file mode 100644
index 0000000000..bd93aba096
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault3.dmm
@@ -0,0 +1,21 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/turf/simulated/wall,/area/submap/cave/vault3)
+"c" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"d" = (/obj/structure/loot_pile/maint/technical,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"e" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"f" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"g" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"h" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+"i" = (/obj/structure/bed/nest,/turf/simulated/floor/plating,/area/submap/cave/vault3)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbbbbaa
+abbcdcbba
+abefffgba
+abgfhfgba
+abgfffeba
+abbigibba
+aabbbbbaa
+aaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault4.dmm b/maps/expedition_vr/beach/submaps/vault4.dmm
new file mode 100644
index 0000000000..2884a6f60f
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault4.dmm
@@ -0,0 +1,22 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault4)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abdeeghba
+aciejeica
+abhgeedba
+abbfedbba
+aabbcbbaa
+aaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault5.dmm b/maps/expedition_vr/beach/submaps/vault5.dmm
new file mode 100644
index 0000000000..34789a3922
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault5.dmm
@@ -0,0 +1,23 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault5)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abgeeehba
+abiejeiba
+abheeegba
+abbkegbba
+aabbcbbaa
+aaaaaaaaa
+"}
diff --git a/maps/expedition_vr/beach/submaps/vault6.dmm b/maps/expedition_vr/beach/submaps/vault6.dmm
new file mode 100644
index 0000000000..d71ea78b38
--- /dev/null
+++ b/maps/expedition_vr/beach/submaps/vault6.dmm
@@ -0,0 +1,31 @@
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"c" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"d" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"e" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"f" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"g" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"h" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"i" = (/mob/living/simple_mob/humanoid/merc/ranged/grenadier,/turf/simulated/floor/cult,/area/submap/cave/vault6)
+"j" = (/turf/simulated/floor/cult,/area/submap/cave/vault6)
+"k" = (/obj/random/tool/power,/obj/random/tech_supply,/turf/simulated/floor/cult,/area/submap/cave/vault6)
+"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"m" = (/obj/structure/bonfire/permanent/sifwood,/obj/structure/grille/rustic,/turf/simulated/floor/cult,/area/submap/cave/vault6)
+"n" = (/obj/random/multiple/minevault,/turf/simulated/floor/cult,/area/submap/cave/vault6)
+"o" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"q" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"r" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+"s" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/vault6)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabcccdaa
+abefffgda
+ahfijkfla
+ahfjmjfla
+ahfnjjfla
+aopfffqra
+aaosssraa
+aaaaaaaaa
+"}
diff --git a/maps/gateway_vr/eggnogtownunderground.dmm b/maps/gateway_vr/eggnogtownunderground.dmm
index c88b450f4c..823c61dda0 100644
--- a/maps/gateway_vr/eggnogtownunderground.dmm
+++ b/maps/gateway_vr/eggnogtownunderground.dmm
@@ -142,7 +142,7 @@
},
/area/gateway/eggnogtown/vibeout)
"gA" = (
-/turf/unsimulated/beach/water{
+/turf/simulated/floor/beach/water{
name = "hot spring";
temperature = 303.15
},
@@ -267,7 +267,7 @@
/obj/machinery/light/small{
dir = 8
},
-/turf/unsimulated/beach/water{
+/turf/simulated/floor/beach/water{
name = "hot spring";
temperature = 303.15
},
@@ -345,7 +345,7 @@
/area/gateway/eggnogtown/vibeout)
"sc" = (
/obj/random/mob/semirandom_mob_spawner/vore/passive,
-/turf/unsimulated/beach/water{
+/turf/simulated/floor/beach/water{
name = "hot spring";
temperature = 303.15
},
@@ -705,6 +705,13 @@
temperature = 303.15
},
/area/gateway/eggnogtown/underground)
+"QL" = (
+/obj/effect/map_effect/interval/effect_emitter/steam,
+/turf/simulated/floor/beach/water{
+ name = "hot spring";
+ temperature = 303.15
+ },
+/area/gateway/eggnogtown/underground)
"Rv" = (
/obj/structure/railing,
/obj/structure/bonfire,
@@ -1784,7 +1791,7 @@ Da
ab
gA
gA
-gA
+QL
gA
gA
gA
@@ -2078,7 +2085,7 @@ gA
gA
gA
gA
-gA
+QL
gA
gA
gA
@@ -2202,7 +2209,7 @@ Da
gA
gA
gA
-gA
+QL
gA
gA
gA
@@ -11982,7 +11989,7 @@ Da
Da
gA
gA
-gA
+QL
gA
gA
gA
@@ -12460,7 +12467,7 @@ Da
gA
gA
gA
-gA
+QL
gA
gA
gA
@@ -13541,7 +13548,7 @@ Da
gA
gA
gA
-gA
+QL
gA
gA
gA
diff --git a/maps/submaps/pois_vr/debris_field/mining_drones.dmm b/maps/submaps/pois_vr/debris_field/mining_drones.dmm
index c94ba77182..cff4af2101 100644
--- a/maps/submaps/pois_vr/debris_field/mining_drones.dmm
+++ b/maps/submaps/pois_vr/debris_field/mining_drones.dmm
@@ -95,13 +95,6 @@
},
/turf/simulated/floor/airless,
/area/submap/debrisfield/mining_outpost)
-"r" = (
-/obj/random/multiple/underdark/ores,
-/obj/structure/closet/syndicate/resources{
- name = "storage locker"
- },
-/turf/simulated/floor/tiled/airless,
-/area/submap/debrisfield/mining_outpost)
"s" = (
/obj/structure/bed/chair{
dir = 4
@@ -303,7 +296,7 @@ d
h
m
z
-r
+H
g
S
g
diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js
index 9eaf8d446d..fbdbc4a80f 100644
--- a/tgui/packages/tgui/interfaces/VorePanel.js
+++ b/tgui/packages/tgui/interfaces/VorePanel.js
@@ -17,12 +17,12 @@ const digestModeToColor = {
"Digest": "red",
"Absorb": "purple",
"Unabsorb": "purple",
- "Drain": "purple",
- "Shrink": "purple",
- "Grow": "purple",
- "Size Steal": "purple",
- "Heal": "purple",
- "Encase In Egg": "purple",
+ "Drain": "orange",
+ "Shrink": "teal",
+ "Grow": "teal",
+ "Size Steal": "teal",
+ "Heal": "green",
+ "Encase In Egg": "blue",
};
const digestModeToPreyMode = {
@@ -759,6 +759,17 @@ const VoreSelectedBellyInteractions = (props, context) => {
onClick={() => act("set_attribute", { attribute: "b_transferlocation" })} />
+
+
+
+
+