diff --git a/_maps/icebox.json b/_maps/icebox.json
index 2e1be3eaad38..22376fda369b 100644
--- a/_maps/icebox.json
+++ b/_maps/icebox.json
@@ -17,7 +17,7 @@
],
"traits": [
{
- "Up": 1,
+ "Up": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
@@ -27,8 +27,8 @@
"No Parallax": true
},
{
- "Down": -1,
- "Up": 1,
+ "Down": true,
+ "Up": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
@@ -38,7 +38,7 @@
"No Parallax": true
},
{
- "Down": -1,
+ "Down": true,
"Mining": true,
"Linkage": null,
"Gravity": true,
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 3b9beee06e03..05e321c81c21 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -3655,15 +3655,11 @@
/area/station/science/robotics/lab)
"aPD" = (
/obj/structure/disposalpipe/segment,
-/obj/machinery/door/airlock/mining{
- name = "Mining Dock"
- },
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"aPO" = (
@@ -5194,14 +5190,10 @@
/turf/open/floor/iron/grimy,
/area/station/command/heads_quarters/hos)
"bkr" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment,
/obj/machinery/conveyor{
id = "cargodisposals"
},
-/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/plating,
/area/station/cargo/sorting)
"bkD" = (
@@ -8189,6 +8181,14 @@
/obj/effect/landmark/start/assistant,
/turf/open/floor/iron/cafeteria,
/area/station/service/cafeteria)
+"bSR" = (
+/obj/machinery/door/airlock/mining{
+ name = "Mining Dock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"bSU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/stripes/line,
@@ -10092,6 +10092,10 @@
/obj/effect/turf_decal/siding/dark_red,
/turf/open/floor/iron/dark,
/area/station/security/execution/transfer)
+"cpH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"cpI" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
@@ -10536,10 +10540,20 @@
/turf/open/floor/iron,
/area/station/engineering/supermatter/room)
"cwK" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plating,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/iron,
/area/station/maintenance/starboard/fore)
"cwV" = (
/obj/effect/landmark/start/hangover,
@@ -10659,13 +10673,10 @@
/turf/open/floor/iron,
/area/station/medical/treatment_center)
"cyc" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/netpod,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"cyq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -11378,9 +11389,6 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/iron/grimy,
/area/station/tcommsat/computer)
-"cGV" = (
-/turf/closed/wall,
-/area/station/cargo/miningoffice)
"cHb" = (
/obj/machinery/door/firedoor/heavy,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -14359,11 +14367,16 @@
/turf/open/floor/iron/dark,
/area/station/science/xenobiology)
"dux" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/start/shaft_miner,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 4
+ },
+/obj/item/clipboard,
+/obj/item/toy/figure/miner,
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron/half{
+ dir = 1
+ },
/area/station/cargo/miningoffice)
"duA" = (
/turf/closed/wall/r_wall,
@@ -14945,6 +14958,16 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"dBM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"dBO" = (
/obj/structure/cable,
/turf/open/floor/circuit,
@@ -16018,14 +16041,9 @@
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
"dPC" = (
-/obj/structure/table,
-/obj/machinery/microwave{
- desc = "Cooks and boils stuff, somehow.";
- pixel_x = -3;
- pixel_y = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
+/obj/structure/closet/secure_closet/miner,
+/obj/effect/turf_decal/delivery,
+/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"dPD" = (
@@ -16545,6 +16563,9 @@
dir = 4
},
/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"dXB" = (
@@ -17631,13 +17652,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/command/gateway)
-"elO" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/maintenance/starboard/fore)
"elP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/yellow/fourcorners,
@@ -19199,11 +19213,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"eFU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/fore)
"eFZ" = (
/obj/structure/table/wood,
/obj/item/storage/dice,
@@ -20742,7 +20751,12 @@
/turf/open/floor/iron/dark,
/area/station/engineering/storage_shared)
"eYt" = (
-/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/machinery/computer/order_console/mining,
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/firealarm/directional/west{
+ pixel_y = -9
+ },
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"eYy" = (
@@ -20935,13 +20949,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/science/xenobiology)
-"fbu" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"fbF" = (
/obj/effect/landmark/start/hangover,
/obj/effect/turf_decal/tile/neutral,
@@ -22525,11 +22532,13 @@
/turf/open/floor/iron/grimy,
/area/station/service/library)
"ftS" = (
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 4
},
/obj/structure/cable,
+/obj/effect/turf_decal/tile/purple/half/contrasted{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"ftU" = (
@@ -23032,12 +23041,14 @@
/turf/open/floor/iron,
/area/station/engineering/storage)
"fAj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
+/turf/open/floor/iron/herringbone,
/area/station/cargo/miningoffice)
"fAn" = (
/obj/machinery/holopad,
@@ -25122,8 +25133,13 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
"gco" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
-/obj/effect/turf_decal/tile/brown/half/contrasted,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"gcr" = (
@@ -26650,8 +26666,11 @@
/turf/open/floor/iron,
/area/station/commons/storage/primary)
"guj" = (
-/obj/effect/landmark/start/shaft_miner,
/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"guo" = (
@@ -29899,9 +29918,10 @@
/turf/open/floor/iron/white/smooth_large,
/area/station/medical/medbay)
"hkn" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/airalarm/directional/south,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"hkt" = (
@@ -31031,11 +31051,8 @@
/area/station/maintenance/department/science/xenobiology)
"hzs" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/turf/closed/wall,
+/area/station/bitrunning/den)
"hzA" = (
/obj/item/kirbyplants/random,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -32653,20 +32670,14 @@
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
"hXd" = (
-/obj/structure/rack,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/toolbox/emergency{
- pixel_x = -3;
- pixel_y = 3
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
},
-/obj/item/storage/toolbox/emergency,
-/obj/item/shovel,
-/obj/item/shovel,
-/obj/item/pickaxe,
-/obj/item/pickaxe,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/light/directional/south,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"hXf" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -33767,10 +33778,11 @@
/turf/open/floor/plating,
/area/station/medical/virology)
"iio" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/loading_area{
dir = 1
},
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"iiy" = (
@@ -34566,6 +34578,19 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/station/maintenance/port/fore)
+"itp" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/machinery/computer/order_console/bitrunning,
+/obj/effect/turf_decal/stripes/end,
+/turf/open/floor/iron/half{
+ dir = 1
+ },
+/area/station/cargo/miningoffice)
"itF" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 6
@@ -35010,14 +35035,12 @@
},
/area/station/service/kitchen)
"izj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/turf/open/floor/iron,
+/turf/open/floor/iron/herringbone,
/area/station/cargo/miningoffice)
"izo" = (
/obj/structure/table/wood,
@@ -36708,12 +36731,9 @@
/turf/open/floor/iron,
/area/station/engineering/lobby)
"iXd" = (
-/obj/effect/landmark/start/shaft_miner,
/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"iXj" = (
/obj/effect/landmark/start/hangover,
@@ -37526,7 +37546,9 @@
/turf/open/floor/plating,
/area/station/engineering/atmos/mix)
"jfO" = (
-/obj/structure/table,
+/obj/structure/closet/wardrobe/miner,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/backpack/satchel/explorer,
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
@@ -39371,10 +39393,8 @@
/turf/open/floor/iron,
/area/station/science/lobby)
"jBM" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"jBR" = (
@@ -39462,10 +39482,10 @@
/turf/open/floor/wood,
/area/station/service/library/abandoned)
"jCu" = (
-/obj/machinery/computer/order_console/mining,
+/obj/structure/closet/secure_closet/miner,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"jCv" = (
@@ -40118,13 +40138,17 @@
/turf/open/floor/iron/white,
/area/station/medical/medbay)
"jKY" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/bot,
-/obj/structure/table,
-/obj/item/storage/medkit/regular,
-/obj/machinery/power/apc/auto_name/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/obj/machinery/camera/directional/south,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"jKZ" = (
/obj/structure/table/reinforced,
/obj/machinery/button/door{
@@ -40701,8 +40725,16 @@
/turf/open/floor/iron/white,
/area/station/medical/medbay)
"jRc" = (
-/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"jRg" = (
@@ -44226,10 +44258,13 @@
/turf/closed/wall,
/area/station/hallway/secondary/entry)
"kKx" = (
-/obj/effect/turf_decal/loading_area{
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/half{
dir = 1
},
-/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"kKz" = (
/obj/machinery/turretid{
@@ -44927,11 +44962,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark,
/area/station/engineering/main)
-"kTs" = (
-/obj/structure/closet/secure_closet/miner,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"kTy" = (
/obj/structure/chair/office{
dir = 8
@@ -46282,10 +46312,12 @@
/turf/open/floor/iron,
/area/station/maintenance/solars/starboard/fore)
"ljQ" = (
-/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/loading_area{
dir = 1
},
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"ljS" = (
@@ -46384,8 +46416,11 @@
/obj/structure/disposalpipe/segment{
dir = 9
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/herringbone,
/area/station/cargo/miningoffice)
"llz" = (
/obj/effect/decal/cleanable/oil,
@@ -49789,6 +49824,9 @@
/obj/structure/sign/poster/official/random/directional/south,
/turf/open/floor/iron/dark,
/area/station/security/checkpoint/customs/fore)
+"mdR" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"mef" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
/obj/machinery/meter,
@@ -50320,13 +50358,14 @@
/turf/closed/wall/r_wall,
/area/station/ai_monitored/command/storage/eva)
"mlF" = (
-/obj/item/kirbyplants/random,
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 8
},
/obj/structure/sign/poster/official/random/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/computer/quantum_console,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/iron/dark/smooth_corner,
+/area/station/bitrunning/den)
"mlT" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -50982,11 +51021,9 @@
/turf/open/floor/iron,
/area/station/engineering/storage)
"mtL" = (
-/obj/structure/closet/secure_closet/miner,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/delivery,
+/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/status_display/evac/directional/north,
-/turf/open/floor/iron,
+/turf/open/floor/plating,
/area/station/cargo/miningoffice)
"mtO" = (
/obj/effect/turf_decal/tile/yellow{
@@ -51710,9 +51747,12 @@
/turf/open/floor/engine,
/area/station/maintenance/disposal/incinerator)
"mDm" = (
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/quantum_server,
+/obj/effect/turf_decal/bot/left,
+/turf/open/floor/iron/dark/smooth_corner{
+ dir = 4
+ },
+/area/station/bitrunning/den)
"mDo" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/brown{
@@ -52491,6 +52531,8 @@
dir = 4
},
/obj/machinery/firealarm/directional/east,
+/obj/machinery/firealarm/directional/east,
+/obj/machinery/light/small/directional/east,
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
"mKO" = (
@@ -54120,8 +54162,14 @@
/turf/open/floor/plating,
/area/station/maintenance/department/chapel)
"nhj" = (
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/table,
+/obj/machinery/microwave{
+ desc = "Cooks and boils stuff, somehow.";
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/structure/sign/poster/official/random/directional/west,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"nhm" = (
@@ -55571,6 +55619,18 @@
},
/turf/open/space/basic,
/area/space)
+"nzO" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 1
+ },
+/obj/effect/landmark/start/shaft_miner,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"nzR" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/red/half/contrasted{
@@ -55946,11 +56006,11 @@
/turf/open/floor/iron,
/area/station/maintenance/port)
"nEE" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/netpod,
+/obj/structure/sign/poster/random/directional/north,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"nEJ" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/yellow/line,
@@ -58467,12 +58527,23 @@
/turf/open/floor/iron,
/area/station/security/prison/garden)
"okN" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/start/bitrunner,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"okV" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/reagent_dispensers/plumbed{
@@ -59265,11 +59336,10 @@
/turf/open/floor/iron,
/area/station/maintenance/port)
"owZ" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/effect/turf_decal/tile/purple/half/contrasted,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/table,
+/obj/item/storage/medkit/regular,
+/obj/machinery/light/directional/west,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"oxb" = (
@@ -59560,15 +59630,27 @@
/turf/open/floor/iron,
/area/station/engineering/main)
"oAV" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 6
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
},
-/obj/effect/turf_decal/tile/brown/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"oAW" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -63172,7 +63254,19 @@
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
"pxS" = (
-/turf/open/floor/iron,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/half{
+ dir = 1
+ },
/area/station/cargo/miningoffice)
"pxT" = (
/obj/effect/spawner/random/structure/crate,
@@ -65204,15 +65298,16 @@
/turf/open/floor/iron/dark/corner,
/area/station/engineering/atmos/pumproom)
"pUs" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Bitrunning Den"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"pUw" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -66471,20 +66566,16 @@
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"qko" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/clipboard,
-/obj/item/toy/figure/miner,
-/obj/machinery/light/directional/north,
-/obj/machinery/light_switch/directional/west{
- pixel_x = -42
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 8
},
-/obj/effect/turf_decal/bot,
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/poster/official/random/directional/west,
+/turf/open/floor/iron/half{
dir = 1
},
-/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"qkA" = (
/obj/effect/turf_decal/tile/red{
@@ -66674,9 +66765,11 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 8
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/iron,
/area/station/maintenance/starboard/fore)
@@ -67094,13 +67187,21 @@
/turf/open/floor/iron,
/area/station/science/xenobiology)
"qsF" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable,
-/obj/structure/extinguisher_cabinet/directional/west,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 8
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
},
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"qsN" = (
/obj/structure/chair{
dir = 4
@@ -67796,11 +67897,12 @@
/obj/structure/closet/wardrobe/miner,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/south,
-/obj/item/storage/backpack/satchel/explorer,
/obj/effect/turf_decal/bot,
/obj/item/radio/intercom/directional/south,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/netpod,
+/obj/effect/decal/cleanable/robot_debris,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"qBY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -69938,6 +70040,16 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/station/maintenance/port)
+"rer" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron/herringbone,
+/area/station/cargo/miningoffice)
"rev" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -70060,9 +70172,7 @@
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"rgC" = (
-/obj/structure/cable,
/obj/structure/table/reinforced,
-/obj/effect/decal/cleanable/dirt,
/obj/item/folder/yellow,
/obj/item/gps/mining,
/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
@@ -70685,15 +70795,11 @@
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/airlock/mining{
- name = "Mining Dock"
- },
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"rmI" = (
@@ -71677,6 +71783,9 @@
/area/station/cargo/storage)
"rAl" = (
/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
/obj/machinery/conveyor{
id = "cargodisposals"
},
@@ -71887,6 +71996,13 @@
dir = 8
},
/area/station/engineering/lobby)
+"rCK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"rCM" = (
/obj/effect/turf_decal/tile/red/anticorner/contrasted{
dir = 4
@@ -75146,11 +75262,7 @@
/area/station/medical/pharmacy)
"stf" = (
/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/purple/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
+/turf/open/floor/iron/herringbone,
/area/station/cargo/miningoffice)
"stx" = (
/obj/structure/chair/pew/left,
@@ -75856,6 +75968,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"sCr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"sCx" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -75914,6 +76031,7 @@
},
/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
/obj/effect/mapping_helpers/airlock/access/any/supply/shipping,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
/turf/open/floor/iron,
/area/station/cargo/sorting)
"sCY" = (
@@ -76665,8 +76783,6 @@
/turf/open/floor/iron,
/area/station/science/robotics/mechbay)
"sLg" = (
-/obj/machinery/rnd/bepis,
-/obj/effect/turf_decal/box/white,
/turf/open/floor/iron,
/area/station/cargo/storage)
"sLx" = (
@@ -78090,10 +78206,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/station/engineering/supermatter/room)
-"tcB" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"tcG" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -78796,14 +78908,11 @@
/turf/open/floor/iron,
/area/station/hallway/primary/central/aft)
"toy" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
+/turf/open/floor/iron/herringbone,
/area/station/cargo/miningoffice)
"toB" = (
/obj/machinery/light/directional/west,
@@ -80880,26 +80989,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/server)
-"tNn" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/requests_console/directional/south{
- department = "Mining";
- name = "Mining Requests Console"
- },
-/obj/machinery/requests_console/directional/south{
- department = "Mining";
- name = "Mining Requests Console"
- },
-/obj/machinery/camera/directional/south{
- c_tag = "Cargo - Mining Dock";
- name = "cargo camera"
- },
-/obj/effect/turf_decal/tile/brown/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"tNq" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -81344,6 +81433,13 @@
"tSj" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"tSo" = (
@@ -83452,7 +83548,8 @@
},
/area/station/medical/morgue)
"usJ" = (
-/obj/effect/turf_decal/tile/purple/half/contrasted{
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/loading_area{
dir = 1
},
/turf/open/floor/iron,
@@ -85014,12 +85111,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/segment{
- dir = 9
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"uNE" = (
/obj/machinery/atmospherics/components/unary/passive_vent{
@@ -85074,12 +85171,12 @@
/turf/open/floor/iron/white,
/area/station/science/ordnance/office)
"uOk" = (
-/obj/structure/cable,
/obj/structure/chair/office{
dir = 4
},
+/obj/effect/turf_decal/tile/brown/half/contrasted,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/purple/half/contrasted,
+/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"uOl" = (
@@ -88513,11 +88610,24 @@
/turf/open/floor/iron,
/area/station/cargo/sorting)
"vDj" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -8;
+ pixel_y = 17
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/purple/half/contrasted,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/machinery/holopad,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"vDm" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -88866,15 +88976,22 @@
/turf/open/floor/plating,
/area/station/maintenance/department/security)
"vId" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/effect/decal/cleanable/oil,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"vIq" = (
/obj/structure/cable,
/obj/structure/disposalpipe/junction{
@@ -89211,13 +89328,20 @@
/turf/open/floor/iron,
/area/station/security/checkpoint/engineering)
"vNV" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 8
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/turf_decal/tile/purple{
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/half{
dir = 1
},
-/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"vOh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -90754,6 +90878,7 @@
},
/obj/effect/mapping_helpers/airlock/access/any/supply/shipping,
/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
/turf/open/floor/iron,
/area/station/cargo/sorting)
"whc" = (
@@ -92237,14 +92362,26 @@
/turf/open/floor/iron,
/area/station/maintenance/port/aft)
"wwk" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
- },
-/obj/machinery/disposal/bin,
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/delivery,
/obj/structure/sign/poster/official/random/directional/south,
+/obj/structure/rack,
+/obj/item/storage/toolbox/emergency{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/emergency,
+/obj/item/shovel,
+/obj/item/shovel,
+/obj/item/pickaxe,
+/obj/item/pickaxe,
+/obj/effect/turf_decal/bot,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/machinery/light_switch/directional/west{
+ pixel_x = -38
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"wwr" = (
@@ -93743,6 +93880,15 @@
},
/turf/open/floor/iron/white,
/area/station/command/heads_quarters/cmo)
+"wRm" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"wRp" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -97428,14 +97574,9 @@
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai)
"xMZ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"xNe" = (
/obj/structure/lattice,
/obj/structure/grille/broken,
@@ -98033,9 +98174,13 @@
/turf/open/floor/plating,
/area/station/service/abandoned_gambling_den)
"xVv" = (
-/obj/effect/turf_decal/tile/purple/half/contrasted{
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
dir = 4
},
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"xVI" = (
@@ -143123,12 +143268,12 @@ ohH
xhW
xhW
nPo
-kGo
-nPo
-xhW
-xhW
-xhW
-xhW
+rCK
+mdR
+mdR
+mdR
+mdR
+mdR
uBd
mKN
vPp
@@ -143385,7 +143530,7 @@ xMZ
mlF
qsF
jKY
-tpZ
+mdR
lDY
tpZ
kOj
@@ -143637,12 +143782,12 @@ uzM
aPD
stf
llj
-mDm
-fbu
+rer
+xMZ
mDm
vDj
hXd
-tpZ
+mdR
qmT
tpZ
aaa
@@ -143899,7 +144044,7 @@ pUs
okN
oAV
vId
-qyX
+mdR
uND
tpZ
aaa
@@ -144149,15 +144294,15 @@ fya
cSK
pok
rWo
-llJ
+itp
kKx
dux
-tcB
+mdR
nEE
cyc
qBS
-tpZ
-eFU
+mdR
+uND
tpZ
aad
lhY
@@ -144407,13 +144552,13 @@ krp
krp
aJE
mtL
-kKx
+bSR
iXd
-eYt
+mdR
hzs
-tNn
-cGV
-tpZ
+mdR
+mdR
+mdR
jRc
tpZ
aaa
@@ -144663,7 +144808,7 @@ jmp
cQo
gkP
krp
-kTs
+llJ
ljQ
guj
eYt
@@ -144671,7 +144816,7 @@ nhj
owZ
wwk
tpZ
-elO
+uND
tpZ
aaa
lhY
@@ -144922,12 +145067,12 @@ iIj
aJE
jCu
iio
-mDm
-eYt
+nzO
+dBM
tSj
gco
hkn
-tpZ
+qyX
cwK
tpZ
aaa
@@ -145179,9 +145324,9 @@ eGC
aJE
dPC
usJ
-nhj
-mDm
-mDm
+wRm
+sCr
+cpH
uOk
pPp
tpZ
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 202a5feb524f..8e2776eef326 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -2078,6 +2078,10 @@
},
/turf/open/floor/plating,
/area/station/engineering/transit_tube)
+"aKb" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"aKf" = (
/obj/machinery/light_switch/directional/south,
/obj/structure/chair/comfy/brown{
@@ -2760,6 +2764,7 @@
/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
dir = 4
},
+/obj/item/radio/intercom/directional/east,
/turf/open/floor/iron/dark,
/area/station/cargo/miningdock)
"aVH" = (
@@ -4179,12 +4184,6 @@
},
/turf/open/floor/iron/dark,
/area/mine/storage)
-"bsx" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"bsG" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/research/glass{
@@ -10963,6 +10962,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
+"dsp" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"dsA" = (
/obj/machinery/light/small/directional/east,
/obj/machinery/atmospherics/components/tank/air{
@@ -11022,6 +11034,13 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment,
/turf/open/floor/iron,
/area/station/engineering/engine_smes)
+"dtn" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light_switch/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/miningdock)
"dtr" = (
/obj/machinery/computer/records/medical,
/obj/effect/turf_decal/tile/green/anticorner/contrasted,
@@ -11798,6 +11817,11 @@
/obj/effect/decal/cleanable/food/egg_smudge,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
+"dGi" = (
+/obj/machinery/netpod,
+/obj/machinery/camera/directional/south,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"dGK" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -12252,6 +12276,9 @@
/obj/item/pickaxe{
pixel_x = 5
},
+/obj/item/shovel{
+ pixel_x = -5
+ },
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"dPy" = (
@@ -12549,12 +12576,10 @@
/turf/open/floor/iron/freezer,
/area/mine/laborcamp)
"dUK" = (
-/obj/machinery/camera/directional/west{
- c_tag = "Mining Dock"
- },
-/obj/machinery/computer/security/mining,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/obj/machinery/netpod,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"dUL" = (
/obj/machinery/door/poddoor/preopen{
id = "maint1"
@@ -13262,6 +13287,9 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron,
/area/station/commons/locker)
+"ehu" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"ehy" = (
/obj/machinery/keycard_auth/directional/east,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -13604,6 +13632,13 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"emT" = (
+/obj/machinery/light/small/directional/east,
+/obj/machinery/computer/order_console/bitrunning{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"ena" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -14158,10 +14193,9 @@
/turf/open/floor/iron,
/area/station/maintenance/department/medical/central)
"ewq" = (
-/obj/machinery/light_switch/directional/north,
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/area/station/cargo/storage)
"ewz" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/window/reinforced/spawner/directional/north,
@@ -16226,6 +16260,7 @@
/area/mine/laborcamp)
"feB" = (
/obj/machinery/airalarm/directional/east,
+/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"feJ" = (
@@ -16618,13 +16653,14 @@
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"flq" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/quantum_server,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/iron/dark/smooth_corner{
+ dir = 4
},
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/area/station/bitrunning/den)
"flx" = (
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=HOP";
@@ -17814,6 +17850,12 @@
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron/dark/side,
/area/station/security/prison)
+"fHn" = (
+/obj/machinery/firealarm/directional/north,
+/obj/structure/chair,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"fHo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/dark_green{
@@ -18226,12 +18268,6 @@
dir = 1
},
/area/station/engineering/engine_smes)
-"fNx" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"fNA" = (
/turf/open/openspace,
/area/station/medical/medbay/central)
@@ -20242,6 +20278,21 @@
"gwK" = (
/turf/closed/wall/r_wall,
/area/station/security/checkpoint/engineering)
+"gxb" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"gxn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
@@ -20392,12 +20443,6 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/iron,
/area/station/science/robotics/mechbay)
-"gzN" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"gzV" = (
/obj/structure/mineral_door/paperframe{
name = "Meditation Room"
@@ -26935,6 +26980,20 @@
},
/turf/open/floor/plating/icemoon,
/area/station/science/ordnance/bomb)
+"iKe" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/effect/landmark/start/bitrunner,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"iKl" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -31903,6 +31962,14 @@
},
/turf/open/floor/iron/smooth,
/area/station/security/holding_cell)
+"kpn" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"kpp" = (
/obj/structure/table/wood,
/obj/item/storage/box/matches,
@@ -33667,10 +33734,11 @@
/turf/open/floor/plating,
/area/station/maintenance/fore)
"kQL" = (
-/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
+/obj/structure/chair,
+/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/area/station/cargo/storage)
"kQM" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 5
@@ -40144,13 +40212,12 @@
},
/area/mine/eva)
"naO" = (
-/obj/structure/rack,
-/obj/item/shovel{
- pixel_x = -5
- },
/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
dir = 8
},
+/obj/machinery/computer/security/mining{
+ dir = 1
+ },
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"naP" = (
@@ -40528,6 +40595,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/fore)
+"nfV" = (
+/obj/machinery/netpod,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"ngj" = (
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 9
@@ -42797,9 +42869,9 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/area/station/cargo/storage)
"nME" = (
/obj/item/clothing/head/utility/hardhat,
/turf/open/floor/plating/snowed/icemoon,
@@ -44578,6 +44650,10 @@
},
/turf/open/floor/plating/snowed/icemoon,
/area/icemoon/surface/outdoors/nospawn)
+"oou" = (
+/obj/structure/chair,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"ooL" = (
/obj/effect/turf_decal/weather/snow/corner{
dir = 4
@@ -46567,11 +46643,6 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
-"oVf" = (
-/obj/effect/landmark/start/shaft_miner,
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"oVy" = (
/obj/machinery/door/airlock/security{
name = "Permabrig Lab"
@@ -47139,6 +47210,13 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"pfc" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/power/apc/auto_name/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/miningdock)
"pfe" = (
/turf/closed/wall,
/area/station/hallway/primary/fore)
@@ -47560,6 +47638,19 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth,
/area/station/security/holding_cell)
+"pmQ" = (
+/obj/machinery/light_switch/directional/west,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"pna" = (
/obj/machinery/door/poddoor/preopen{
id = "Engineering";
@@ -51057,14 +51148,6 @@
/obj/machinery/light/directional/north,
/turf/open/misc/asteroid/snow/icemoon,
/area/icemoon/underground/explored)
-"qtT" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "Mining Dock"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"qum" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
@@ -51966,6 +52049,13 @@
/area/mine/eva/lower)
"qJJ" = (
/obj/machinery/firealarm/directional/east,
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/folder/yellow,
+/obj/item/pen,
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"qJT" = (
@@ -51994,6 +52084,17 @@
/obj/effect/mapping_helpers/airlock/access/all/security/brig,
/turf/open/floor/plating,
/area/station/security/prison/safe)
+"qKk" = (
+/obj/machinery/door/airlock/mining/glass{
+ id_tag = "innercargo";
+ name = "Bitrunning Den"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"qKq" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -55796,6 +55897,10 @@
},
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
+"rVt" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/iron,
+/area/station/cargo/miningdock)
"rVy" = (
/obj/item/kirbyplants/random,
/turf/open/floor/iron/dark/textured,
@@ -59989,13 +60094,6 @@
/obj/item/key/janitor,
/turf/open/floor/iron,
/area/station/service/janitor)
-"tqC" = (
-/obj/structure/table,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"tqQ" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -60481,7 +60579,11 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/landmark/event_spawn,
+/obj/machinery/door/airlock/mining{
+ name = "Mining Dock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"tyK" = (
@@ -60974,11 +61076,11 @@
/area/station/science/lab)
"tFP" = (
/obj/structure/closet/crate,
-/obj/machinery/light/small/directional/east,
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/machinery/light/small/directional/north,
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"tFV" = (
@@ -61377,6 +61479,13 @@
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 8
},
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/requests_console/directional/west{
+ department = "Mining";
+ name = "Mining Requests Console"
+ },
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"tMe" = (
@@ -63729,6 +63838,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"uAS" = (
+/obj/machinery/airalarm/directional/west,
+/obj/effect/landmark/start/bitrunner,
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/robot_debris,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"uBi" = (
/turf/closed/wall,
/area/station/ai_monitored/turret_protected/ai)
@@ -64919,6 +65035,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
+"uXn" = (
+/obj/structure/cable,
+/obj/machinery/computer/quantum_console,
+/turf/open/floor/iron/dark/smooth_corner,
+/area/station/bitrunning/den)
"uXr" = (
/obj/machinery/camera/directional/east{
c_tag = "Chapel East"
@@ -65347,10 +65468,7 @@
/turf/open/floor/iron/grimy,
/area/station/security/prison/work)
"veh" = (
-/obj/machinery/rnd/bepis,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
+/obj/machinery/vending/wardrobe/cargo_wardrobe,
/turf/open/floor/iron,
/area/station/cargo/storage)
"vek" = (
@@ -65506,8 +65624,10 @@
/area/station/medical/medbay/aft)
"vgC" = (
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/area/station/cargo/storage)
"vgD" = (
/obj/structure/rack,
/obj/item/stack/sheet/iron/fifty,
@@ -67991,13 +68111,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/command/bridge)
-"vWV" = (
-/obj/structure/chair/office{
- dir = 8
- },
-/obj/effect/landmark/start/shaft_miner,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
"vWW" = (
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron,
@@ -68224,10 +68337,11 @@
},
/obj/structure/table,
/obj/item/hand_labeler,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
/obj/item/folder/yellow,
+/obj/machinery/requests_console/directional/north{
+ department = "Cargo Bay";
+ name = "Cargo Bay Requests Console"
+ },
/turf/open/floor/iron,
/area/station/cargo/storage)
"waL" = (
@@ -70635,17 +70749,17 @@
},
/area/station/science/research)
"wMq" = (
-/obj/structure/table,
-/obj/item/folder/yellow,
-/obj/item/pen,
-/obj/machinery/light/directional/west,
-/obj/machinery/requests_console/directional/west{
- department = "Mining";
- name = "Mining Requests Console";
- supplies_requestable = 1
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/machinery/holopad,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"wMt" = (
/turf/closed/wall,
/area/station/hallway/primary/central/fore)
@@ -71743,12 +71857,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/medical/storage)
-"xdz" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"xdA" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -225859,7 +225967,7 @@ pdf
lAr
tKI
veh
-gzN
+ajw
ajw
vlN
mmi
@@ -226116,7 +226224,7 @@ sIM
lAr
tKI
waE
-xdz
+ajw
kXs
vlN
mmi
@@ -227156,7 +227264,7 @@ irD
irD
pzX
gdN
-ajw
+emT
maT
bln
qjQ
@@ -227413,11 +227521,11 @@ iaF
ajw
ajw
vVN
-kXr
-kXr
-bln
-qjQ
-qjQ
+ehu
+ehu
+aKb
+ehu
+ehu
ojk
bVJ
dSO
@@ -227670,11 +227778,11 @@ qqJ
gjP
ajw
ajw
-maT
-bln
-bln
-bln
-qjQ
+aKb
+pmQ
+kpn
+uAS
+ehu
tFP
hxE
xtr
@@ -227925,13 +228033,13 @@ kXr
kXr
kXr
kXr
-ajw
-ajw
-kXr
-bln
-bln
-qjQ
-qjQ
+fHn
+eMa
+qKk
+dsp
+gxb
+dGi
+ehu
qjQ
rVe
qjQ
@@ -228181,14 +228289,14 @@ xNu
vra
lZQ
wXR
-qjQ
-aOd
-qtT
-aOd
-qjQ
-qjQ
-qjQ
-tqC
+kXr
+oou
+eMa
+ehu
+uXn
+iKe
+nfV
+ehu
tLX
jBf
naO
@@ -228438,15 +228546,15 @@ kXA
oDt
kRU
oQa
-qjQ
+kXr
kQL
vgC
-hoD
+ehu
flq
wMq
dUK
-hoD
-hoD
+ehu
+rVt
hxE
dPn
aOd
@@ -228695,14 +228803,14 @@ cXl
uxl
oRy
aHC
-qjQ
+kXr
ewq
-oVf
-hoD
-hoD
-vWV
-fNx
-hoD
+vgC
+ehu
+aKb
+aKb
+ehu
+ehu
iVA
hxE
aCh
@@ -228953,13 +229061,13 @@ cHb
psW
psW
nMB
-hxE
-hxE
+vgC
+vgC
tyH
hxE
hxE
-hxE
-hxE
+pfc
+dtn
hxE
hxE
wBV
@@ -229209,13 +229317,13 @@ ljl
kXA
rLu
nRq
+maT
+ajw
+eMa
aOd
-hoD
-bsx
-hoD
qJJ
hxE
-hoD
+iVA
hoD
hoD
vdo
@@ -229469,8 +229577,8 @@ uuP
tue
nZh
lNG
-nZh
tue
+qjQ
hxE
feB
lis
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 3b5e17859caa..d19cbd5e49e6 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -23091,7 +23091,6 @@
/area/station/medical/virology)
"hGC" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/rnd/bepis,
/obj/effect/turf_decal/box/white,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 20b55db673a0..5d3a454518ed 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -449,6 +449,14 @@
},
/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
/area/station/service/kitchen/coldroom)
+"aiW" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"aja" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -3427,12 +3435,18 @@
/turf/open/floor/iron/white,
/area/station/medical/abandoned)
"bje" = (
-/obj/structure/closet/emcloset,
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/effect/turf_decal/box/corners{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"bjB" = (
/obj/structure/sign/directions/security{
dir = 1;
@@ -3813,6 +3827,23 @@
},
/turf/open/floor/carpet/red,
/area/station/command/heads_quarters/qm)
+"boz" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark/corner{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/textured_half,
+/area/station/bitrunning/den)
"boD" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -4548,6 +4579,16 @@
"bDq" = (
/turf/closed/wall/r_wall,
/area/station/engineering/transit_tube)
+"bDK" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"bDN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -4656,14 +4697,15 @@
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
"bGM" = (
-/obj/machinery/door/airlock/mining{
- name = "Mining Office"
- },
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/machinery/door/airlock/mining{
+ name = "Mining Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"bGV" = (
@@ -4941,6 +4983,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/security/execution/education)
+"bMW" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"bMY" = (
/turf/closed/wall,
/area/station/medical/office)
@@ -7118,13 +7168,14 @@
/turf/open/floor/plating,
/area/station/security/brig)
"cGL" = (
+/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 1
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
},
-/obj/effect/mapping_helpers/mail_sorting/supply/disposals,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"cGS" = (
/obj/machinery/airalarm/directional/west,
/obj/machinery/camera/directional/west{
@@ -9170,10 +9221,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/station/engineering/atmos)
-"dwA" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"dwJ" = (
/obj/structure/lattice,
/obj/effect/spawner/random/structure/grille,
@@ -10900,12 +10947,14 @@
/turf/open/floor/plating,
/area/station/cargo/sorting)
"edP" = (
-/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"edQ" = (
@@ -12324,10 +12373,21 @@
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/captain/private)
"eEb" = (
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 8
+ },
/obj/structure/cable,
-/obj/effect/mapping_helpers/broken_floor,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/airlock/mining{
+ name = "Bitrunning Den"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/turf/open/floor/iron/dark/textured_half,
+/area/station/bitrunning/den)
"eEf" = (
/obj/machinery/camera/directional/north{
c_tag = "Bar - Backroom"
@@ -14583,13 +14643,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"fBl" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"fBt" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -15228,7 +15281,8 @@
name = "Mining Dock Maintenance"
},
/obj/structure/cable,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"fNI" = (
@@ -17034,12 +17088,6 @@
"guX" = (
/turf/closed/wall,
/area/station/commons/storage/primary)
-"guZ" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"gva" = (
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
@@ -18114,12 +18162,6 @@
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
/turf/open/space/basic,
/area/space/nearstation)
-"gQv" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
"gQw" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line,
@@ -18416,15 +18458,10 @@
/turf/open/floor/wood,
/area/station/commons/lounge)
"gVb" = (
-/obj/effect/decal/cleanable/cobweb,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil/slippery,
-/obj/effect/decal/cleanable/blood/gibs/down,
-/mob/living/simple_animal/bot/mulebot{
- name = "Leaping Rabbit"
- },
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/station/maintenance/port/fore)
"gVj" = (
/obj/effect/turf_decal/tile/blue,
@@ -22178,6 +22215,15 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"inp" = (
+/obj/effect/spawner/random/maintenance,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"inw" = (
/obj/machinery/disposal/bin{
desc = "A pneumatic waste disposal unit. This one leads into space!";
@@ -29418,13 +29464,35 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"kHM" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_half,
+/area/station/bitrunning/den)
"kHU" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/structure/disposalpipe/segment{
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
dir = 4
},
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light_switch/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"kIG" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance/two,
@@ -29598,6 +29666,13 @@
/obj/structure/window/spawner/directional/east,
/turf/open/floor/plating,
/area/station/service/chapel/funeral)
+"kLY" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/computer/order_console/bitrunning,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"kLZ" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -31427,6 +31502,10 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/security/evidence)
+"lqG" = (
+/obj/machinery/netpod,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"lqL" = (
/obj/effect/turf_decal/siding{
dir = 1
@@ -32907,6 +32986,9 @@
"lUe" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/structure/sign/poster/contraband/random/directional/north,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"lUj" = (
@@ -34299,6 +34381,12 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/science/research)
+"muJ" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"mvg" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -34532,6 +34620,9 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"mzu" = (
@@ -34609,9 +34700,8 @@
/turf/open/floor/iron/dark,
/area/station/medical/morgue)
"mAy" = (
-/obj/machinery/computer/order_console/mining,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 8
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
},
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
@@ -38194,6 +38284,9 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/storage/toolbox/emergency,
/obj/effect/spawner/random/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"nMF" = (
@@ -40445,6 +40538,10 @@
/obj/effect/landmark/start/medical_doctor,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"oBV" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"oCb" = (
/obj/structure/chair,
/obj/item/radio/intercom/chapel/directional/west,
@@ -43518,6 +43615,21 @@
/obj/machinery/research/anomaly_refinery,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
+"pII" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_half,
+/area/station/bitrunning/den)
"pJf" = (
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -43898,6 +44010,9 @@
/obj/effect/mapping_helpers/airlock/access/all/security/brig,
/turf/open/floor/iron,
/area/station/security/prison/safe)
+"pPV" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"pQj" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -46565,6 +46680,21 @@
},
/turf/open/floor/iron,
/area/station/security/prison)
+"qNS" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/start/bitrunner,
+/obj/machinery/holopad,
+/turf/open/floor/iron/dark/textured_half,
+/area/station/bitrunning/den)
"qNV" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -47356,6 +47486,16 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"rcs" = (
+/obj/machinery/quantum_server,
+/obj/effect/turf_decal/bot/left,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 6
+ },
+/obj/machinery/light/directional/north,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"rcF" = (
/obj/structure/table/wood,
/obj/item/storage/crayons,
@@ -49214,6 +49354,16 @@
},
/turf/open/floor/iron,
/area/station/science/xenobiology)
+"rKh" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"rKB" = (
/obj/machinery/airalarm/directional/east,
/turf/open/floor/engine,
@@ -49443,10 +49593,14 @@
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"rNV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/disposalpipe/segment{
- dir = 6
+/obj/machinery/door/airlock/maintenance{
+ name = "Mining Dock Maintenance"
},
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"rOz" = (
@@ -49691,10 +49845,14 @@
/turf/open/floor/plating,
/area/station/service/chapel)
"rSa" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/effect/decal/cleanable/blood/gibs/down,
+/mob/living/simple_animal/bot/mulebot{
+ name = "Leaping Rabbit"
},
-/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"rSb" = (
@@ -54201,12 +54359,10 @@
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"ttG" = (
-/obj/item/clothing/gloves/color/rainbow,
-/obj/item/clothing/shoes/sneakers/rainbow,
-/obj/item/clothing/under/color/rainbow,
-/obj/item/clothing/head/soft/rainbow,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/machinery/netpod,
+/obj/effect/decal/cleanable/robot_debris,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"ttM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -57285,13 +57441,6 @@
/obj/effect/turf_decal/tile/red/half/contrasted,
/turf/open/floor/iron/dark,
/area/station/security/execution/education)
-"uyj" = (
-/obj/machinery/rnd/bepis,
-/obj/effect/turf_decal/stripes/end{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"uyr" = (
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/tile/neutral{
@@ -57685,6 +57834,12 @@
/obj/machinery/photocopier,
/turf/open/floor/iron,
/area/station/engineering/break_room)
+"uFF" = (
+/obj/machinery/netpod,
+/obj/machinery/light/directional/west,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"uFK" = (
/obj/structure/table,
/obj/item/clothing/under/rank/prisoner/skirt{
@@ -59752,7 +59907,7 @@
"vpU" = (
/obj/effect/spawner/random/structure/crate,
/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 5
},
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
@@ -62801,6 +62956,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/grass,
/area/station/service/hydroponics)
+"wvC" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/computer/order_console/mining,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"wvP" = (
/obj/effect/turf_decal/tile/blue/fourcorners,
/obj/machinery/iv_drip,
@@ -64026,6 +64188,15 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"wST" = (
+/obj/machinery/computer/quantum_console,
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/camera/directional/north{
+ c_tag = "Mining Dock"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"wTp" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/brigdoor{
@@ -64603,7 +64774,8 @@
},
/obj/structure/cable,
/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"xej" = (
@@ -65175,15 +65347,15 @@
/turf/open/floor/iron/dark,
/area/station/science/genetics)
"xoc" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Mining Dock Maintenance"
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
-/turf/open/floor/plating,
-/area/station/maintenance/port/fore)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"xoj" = (
/obj/structure/table/reinforced,
/obj/machinery/microwave{
@@ -84115,10 +84287,10 @@ nmg
vEV
ovy
jXu
-aaa
-aaa
-aaa
-pnI
+pPV
+pPV
+pPV
+hKg
bUm
kRe
qfi
@@ -84372,9 +84544,9 @@ jXu
kXA
ufv
jXu
-aaa
-aaa
-aaa
+wST
+kHM
+uFF
hKg
hKg
fQW
@@ -84629,10 +84801,10 @@ jXu
jXu
hWS
jXu
-jXu
-jXu
-jXu
-jXu
+rcs
+qNS
+lqG
+oBV
qvY
kRe
dCp
@@ -84651,8 +84823,8 @@ hxo
hxo
hxo
cbz
-uyj
pyv
+bDK
jLb
tTa
kQP
@@ -84885,11 +85057,11 @@ lBm
dHa
ugJ
edP
-dwA
-bje
jXu
+bje
+pII
ttG
-jXu
+oBV
pPh
aFd
nVG
@@ -85142,11 +85314,11 @@ vfv
cTQ
xte
mzs
-sHu
-kHU
-jXu
-jXu
jXu
+kHU
+boz
+pPV
+pPV
jpG
kRe
nVG
@@ -85398,11 +85570,11 @@ gYE
uEC
wgw
twr
-uuD
-xgB
-fBl
-eEb
+bSm
jXu
+oBV
+eEb
+pPV
ouc
dSG
cLj
@@ -85655,12 +85827,12 @@ pQu
vEH
jXu
lUe
-uuD
+bMW
rNV
cGL
-guZ
xoc
-xyz
+xoc
+rKh
xyz
fgT
btt
@@ -85912,11 +86084,11 @@ tWJ
aQE
jXu
nME
-iUE
-gQv
-jXu
-jXu
+inp
jXu
+kLY
+muJ
+wvC
mAy
cLj
kRe
@@ -86169,8 +86341,8 @@ jXu
jXu
jXu
jXu
-uuD
-gQv
+bSm
+jXu
jXu
gVb
jXu
@@ -86426,7 +86598,7 @@ dOS
xxp
twr
sxn
-uuD
+aiW
vpU
twr
rSa
diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm
index 20d097488bdd..0217356bd591 100644
--- a/_maps/map_files/NorthStar/north_star.dmm
+++ b/_maps/map_files/NorthStar/north_star.dmm
@@ -604,16 +604,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/station/command/heads_quarters/hop)
-"ahC" = (
-/obj/machinery/exoscanner,
-/obj/effect/turf_decal/stripes{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/corner,
-/area/station/cargo/drone_bay)
"ahG" = (
/obj/machinery/modular_computer/console/preset/research{
dir = 4
@@ -1067,9 +1057,6 @@
/turf/open/floor/iron/dark,
/area/station/security/warden)
"ann" = (
-/obj/structure/railing{
- dir = 1
- },
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5736,12 +5723,12 @@
/turf/open/floor/iron/white/smooth_large,
/area/station/science/robotics/lab)
"brL" = (
-/obj/effect/turf_decal/stripes{
- dir = 6
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/iron/stairs{
+ dir = 1
},
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
+/area/station/bitrunning/den)
"brN" = (
/obj/effect/spawner/structure/window/hollow/reinforced/directional,
/obj/structure/disposalpipe/segment,
@@ -5776,10 +5763,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/medical/abandoned)
-"bsq" = (
-/obj/effect/turf_decal/stripes,
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
"bsu" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -6578,13 +6561,9 @@
},
/area/station/hallway/floor3/aft)
"bAh" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/catwalk_floor,
+/obj/effect/spawner/random/structure/table_or_rack,
+/obj/effect/spawner/random/trash/soap,
+/turf/open/floor/plating,
/area/station/maintenance/floor1/starboard/fore)
"bAj" = (
/obj/machinery/conveyor{
@@ -6699,6 +6678,17 @@
/obj/machinery/computer/order_console/mining,
/turf/open/floor/iron,
/area/station/cargo/miningdock)
+"bBW" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"bCh" = (
/obj/structure/table/reinforced,
/obj/item/mmi{
@@ -8400,6 +8390,19 @@
dir = 4
},
/area/station/hallway/floor2/aft)
+"caN" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"caQ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -9827,9 +9830,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/item/radio/intercom/directional/south,
-/obj/structure/railing/corner{
- dir = 1
- },
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"csY" = (
@@ -10330,13 +10330,20 @@
/turf/open/floor/iron/dark/side,
/area/station/hallway/floor3/aft)
"cBT" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
},
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/pod/light,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/effect/turf_decal/arrows{
+ dir = 4
+ },
+/obj/structure/railing{
+ layer = 3.1
+ },
+/obj/effect/decal/cleanable/robot_debris,
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"cBU" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/flora/bush/sunny/style_random,
@@ -10429,11 +10436,11 @@
/turf/open/floor/iron,
/area/station/service/hydroponics)
"cDe" = (
-/obj/effect/turf_decal/stripes{
- dir = 1
+/obj/machinery/computer/quantum_console{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
+/turf/open/floor/iron/dark/smooth_corner,
+/area/station/bitrunning/den)
"cDj" = (
/obj/effect/turf_decal/delivery,
/obj/structure/sign/departments/cargo/directional/north,
@@ -11654,6 +11661,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
+"cUk" = (
+/obj/structure/rack,
+/obj/item/stack/sheet/leather,
+/turf/open/floor/plating,
+/area/station/maintenance/floor1/starboard/fore)
"cUm" = (
/obj/effect/turf_decal/siding/wood,
/obj/machinery/power/apc/auto_name/directional/east,
@@ -16903,7 +16915,6 @@
"eoo" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
/obj/structure/railing/corner{
dir = 4
},
@@ -16913,6 +16924,10 @@
/obj/structure/disposalpipe/segment{
dir = 5
},
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
"eov" = (
@@ -17101,17 +17116,19 @@
/turf/open/floor/catwalk_floor,
/area/station/maintenance/floor1/starboard)
"erV" = (
-/obj/machinery/door/firedoor/border_only{
+/obj/effect/turf_decal/trimline/brown/line{
dir = 1
},
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/effect/turf_decal/stripes{
+ dir = 1
},
-/turf/open/floor/catwalk_floor,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/stripes,
+/obj/effect/turf_decal/trimline/brown/line,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/bitrunning/den)
"erY" = (
/obj/machinery/vending/wardrobe/bar_wardrobe,
/turf/open/floor/wood,
@@ -17250,12 +17267,6 @@
},
/turf/open/floor/pod/dark,
/area/station/maintenance/floor3/starboard)
-"eul" = (
-/obj/effect/turf_decal/stripes{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
"eur" = (
/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
/obj/machinery/door/airlock/glass_large{
@@ -20812,6 +20823,20 @@
/obj/machinery/light/warm/directional/north,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/cmo)
+"fxr" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/shieldgen,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/siding/thinplating_new{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/iron/smooth,
+/area/station/cargo/warehouse)
"fxC" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -21162,12 +21187,13 @@
/turf/open/floor/pod/light,
/area/station/maintenance/floor2/port)
"fCw" = (
-/obj/effect/turf_decal/stripes{
- dir = 4
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 8
},
-/obj/structure/disposalpipe/trunk/multiz,
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/machinery/holopad,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"fCx" = (
/obj/structure/rack,
/turf/open/floor/pod/dark,
@@ -24178,7 +24204,9 @@
dir = 4
},
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/storage)
"gsp" = (
@@ -25094,6 +25122,7 @@
/area/station/maintenance/floor2/starboard/aft)
"gFU" = (
/obj/machinery/computer/exodrone_control_console,
+/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/iron/dark,
/area/station/cargo/drone_bay)
"gGu" = (
@@ -28473,7 +28502,7 @@
"hBR" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/broken/directional/north,
-/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/station/cargo/warehouse)
"hBT" = (
@@ -30160,10 +30189,15 @@
/turf/open/floor/iron/dark,
/area/station/commons/dorms/room4)
"iaJ" = (
-/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
-/turf/open/floor/pod/light,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/machinery/netpod,
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = -12;
+ pixel_y = -13
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"iaM" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 6
@@ -32133,13 +32167,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/catwalk_floor,
/area/station/maintenance/floor3/starboard/fore)
-"iDJ" = (
-/obj/effect/turf_decal/stripes{
- dir = 10
- },
-/obj/effect/mapping_helpers/broken_floor,
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
"iDP" = (
/obj/structure/cable/multilayer/multiz,
/turf/open/floor/plating,
@@ -34475,9 +34502,6 @@
/turf/open/floor/iron/white,
/area/station/science/cytology)
"jmm" = (
-/obj/structure/railing/corner{
- dir = 8
- },
/turf/open/floor/iron/textured,
/area/station/cargo/storage)
"jmr" = (
@@ -35672,19 +35696,6 @@
},
/turf/open/floor/carpet/royalblack,
/area/station/service/kitchen/diner)
-"jAr" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/stripes{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"jAF" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -37387,6 +37398,9 @@
/area/station/medical/medbay/central)
"jWJ" = (
/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/cargo/storage)
"jWR" = (
@@ -41890,11 +41904,14 @@
},
/area/station/hallway/floor2/fore)
"lgs" = (
-/obj/effect/turf_decal/stripes{
- dir = 5
+/obj/structure/sign/poster/random/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/decal/cleanable/oil,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"lgt" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
@@ -45173,6 +45190,12 @@
/area/station/maintenance/floor3/starboard)
"lWl" = (
/obj/machinery/light/directional/west,
+/obj/machinery/computer/order_console/bitrunning{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/end{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/cargo/storage)
"lWm" = (
@@ -46154,6 +46177,13 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/science/lobby)
+"mhU" = (
+/obj/machinery/netpod,
+/obj/structure/railing{
+ layer = 3.1
+ },
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"mhY" = (
/obj/machinery/door/firedoor/border_only{
dir = 1
@@ -47673,15 +47703,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/floor1/aft)
-"mCp" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/textured,
-/area/station/cargo/storage)
"mCt" = (
/obj/structure/cable,
/turf/open/floor/plating/airless,
@@ -50525,21 +50546,27 @@
/turf/open/floor/iron/dark,
/area/station/hallway/floor3/aft)
"nkT" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 4
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
},
-/obj/machinery/door/airlock/hatch{
- name = "Maintenance Access"
+/obj/effect/turf_decal/stripes{
+ dir = 1
},
-/obj/effect/mapping_helpers/airlock/access/any/supply/general,
-/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/pod/dark,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/smooth_corner{
+ dir = 8
+ },
+/area/station/bitrunning/den)
"nkY" = (
/obj/machinery/light/directional/west,
/obj/structure/chair/sofa/corp/left{
@@ -51578,6 +51605,24 @@
},
/turf/open/floor/pod/dark,
/area/station/maintenance/floor3/starboard/fore)
+"nxs" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = 8
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/bitrunning/den)
"nxy" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -55414,14 +55459,21 @@
/turf/open/floor/iron/dark/side,
/area/station/security/checkpoint)
"owk" = (
-/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 1
+ },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes,
+/obj/effect/turf_decal/trimline/brown/line,
/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 5
},
-/turf/open/floor/catwalk_floor,
-/area/station/maintenance/floor1/starboard/fore)
+/turf/open/floor/iron/dark/smooth_half,
+/area/station/bitrunning/den)
"owo" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -56934,6 +56986,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/security/warden)
+"oRZ" = (
+/obj/machinery/netpod,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/station/bitrunning/den)
"oSb" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 8
@@ -58562,6 +58622,8 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/storage)
"prn" = (
@@ -59383,7 +59445,6 @@
/area/station/medical/virology)
"pCW" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/rnd/bepis,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
@@ -64066,6 +64127,7 @@
dir = 4
},
/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
"qOs" = (
@@ -66145,6 +66207,8 @@
dir = 10
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/cargo/storage)
"rqC" = (
@@ -67161,7 +67225,7 @@
/area/station/medical/abandoned)
"rGF" = (
/obj/effect/turf_decal/bot,
-/obj/structure/sign/poster/random/directional/north,
+/obj/machinery/light/broken/directional/north,
/turf/open/floor/iron/smooth,
/area/station/cargo/warehouse)
"rGH" = (
@@ -68050,6 +68114,10 @@
},
/turf/open/floor/iron,
/area/station/maintenance/floor1/starboard/fore)
+"rTq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"rTt" = (
/obj/machinery/space_heater,
/turf/open/floor/pod/light,
@@ -69368,6 +69436,7 @@
/obj/effect/turf_decal/stripes{
dir = 4
},
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
"srq" = (
@@ -70855,11 +70924,16 @@
/turf/open/floor/plating,
/area/station/maintenance/floor2/starboard)
"sLq" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
},
-/turf/open/floor/pod/light,
-/area/station/maintenance/floor1/starboard/fore)
+/obj/effect/turf_decal/arrows{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/disposalpipe/trunk/multiz,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"sLA" = (
/obj/effect/turf_decal/tile/red/opposingcorners{
dir = 1
@@ -72230,6 +72304,22 @@
/obj/effect/spawner/random/contraband/landmine,
/turf/open/floor/pod/dark,
/area/station/service/kitchen/abandoned)
+"tel" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Bitrunning Den"
+ },
+/turf/open/floor/pod/dark,
+/area/station/bitrunning/den)
"teq" = (
/turf/closed/wall/r_wall,
/area/station/maintenance/floor1/starboard/aft)
@@ -75262,9 +75352,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/structure/railing/corner{
- dir = 4
- },
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"tXR" = (
@@ -77909,6 +77996,15 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/carpet/royalblue,
/area/station/commons/dorms/room4)
+"uLN" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"uLO" = (
/obj/structure/showcase/cyborg/old{
dir = 4;
@@ -81617,6 +81713,9 @@
},
/turf/open/floor/iron/dark,
/area/station/command/gateway)
+"vII" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"vIO" = (
/obj/effect/decal/cleanable/glitter,
/turf/open/floor/carpet/neon/simple/pink/nodots,
@@ -83376,12 +83475,6 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/pod/dark,
/area/station/maintenance/floor2/starboard)
-"whN" = (
-/obj/effect/turf_decal/stripes{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/station/maintenance/floor1/starboard/fore)
"whR" = (
/turf/closed/wall,
/area/station/service/bar)
@@ -85547,10 +85640,6 @@
/obj/effect/landmark/carpspawn,
/turf/open/space/openspace,
/area/space)
-"wIr" = (
-/obj/structure/railing/corner,
-/turf/open/floor/iron/textured_large,
-/area/station/cargo/storage)
"wIw" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -87274,7 +87363,6 @@
/turf/open/floor/catwalk_floor,
/area/station/maintenance/floor1/port/aft)
"xeu" = (
-/obj/structure/railing,
/turf/open/floor/iron/stairs{
dir = 8
},
@@ -89818,11 +89906,9 @@
/turf/open/floor/catwalk_floor,
/area/station/maintenance/floor2/starboard/fore)
"xOd" = (
-/obj/machinery/modular_computer/console/preset/civilian,
-/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/cargo/drone_bay)
+/turf/closed/wall,
+/area/station/bitrunning/den)
"xOe" = (
/obj/machinery/light/cold/no_nightlight/directional/north,
/turf/open/floor/engine,
@@ -90493,6 +90579,13 @@
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
+"xYW" = (
+/obj/machinery/quantum_server,
+/obj/effect/turf_decal/bot/left,
+/turf/open/floor/iron/dark/smooth_corner{
+ dir = 4
+ },
+/area/station/bitrunning/den)
"xYY" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 8
@@ -113870,13 +113963,13 @@ owI
owI
owI
owI
-oic
-oic
-whN
-eul
-iDJ
+vII
+vII
+vII
+vII
+vII
bAh
-oic
+cUk
oic
oic
oic
@@ -114127,14 +114220,14 @@ owI
owI
owI
owI
-oic
-oic
+vII
+vII
cDe
-oic
-bsq
-bAh
-uNF
-oic
+xYW
+vII
+vII
+vII
+vII
gUS
nOj
dzo
@@ -114384,14 +114477,14 @@ owI
owI
owI
owI
-oic
-oic
+vII
+vII
lgs
fCw
brL
erV
-uNF
-oic
+caN
+vII
rGF
yiZ
yiZ
@@ -114641,14 +114734,14 @@ owI
owI
owI
owI
-oic
-oic
-sLq
+vII
+vII
+bBW
sLq
cBT
owk
-uNF
-oic
+uLN
+rTq
hBR
qWJ
qWJ
@@ -114898,14 +114991,14 @@ owI
owI
owI
owI
-oic
-oic
+vII
+vII
iaJ
-oic
-oic
+oRZ
+mhU
nkT
-oic
-oic
+nxs
+rTq
rYA
eEB
lUY
@@ -115155,15 +115248,15 @@ owI
owI
owI
owI
-oic
-oic
-oic
-oic
+vII
+vII
+vII
+vII
xOd
-xxQ
-ahC
-aQK
-fve
+tel
+vII
+vII
+fxr
fve
aSL
iCn
@@ -116447,7 +116540,7 @@ xsL
sqK
rqB
prm
-jAr
+gso
gso
qOr
eoo
@@ -120563,7 +120656,7 @@ tJG
irS
hMu
hKN
-wIr
+tHL
hLP
hLP
hLP
@@ -121078,7 +121171,7 @@ jdT
tGE
mar
jmm
-mCp
+ujC
dpH
has
kLn
diff --git a/_maps/map_files/Oshan/oshan.dmm b/_maps/map_files/Oshan/oshan.dmm
index 99bb93b3be96..1b18be14c7d6 100644
--- a/_maps/map_files/Oshan/oshan.dmm
+++ b/_maps/map_files/Oshan/oshan.dmm
@@ -41,24 +41,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
-"aaK" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
-"abb" = (
-/obj/structure/table,
-/obj/machinery/camera/directional/north{
- c_tag = "Medbay Paramedic Dispatch";
- name = "medical camera";
- network = list("ss13","medical")
- },
-/obj/machinery/fax{
- fax_name = "Medical";
- name = "Medical Fax Machine"
- },
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
"abe" = (
/obj/structure/table/reinforced,
/obj/item/stock_parts/cell/high{
@@ -84,25 +66,20 @@
color = "#D381C9"
},
/area/station/science/robotics)
+"abg" = (
+/obj/machinery/computer/records/medical{
+ dir = 4
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/newscaster/directional/west,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"abD" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/disposal)
-"abG" = (
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"abL" = (
/obj/structure/cable,
/obj/structure/chair{
@@ -141,9 +118,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/medical/surgery/aft)
-"acG" = (
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"acI" = (
/obj/machinery/firealarm/directional/south,
/turf/open/floor/wood,
@@ -351,6 +325,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth,
/area/station/science/genetics)
+"agm" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/medical{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"ags" = (
/obj/structure/disposalpipe/segment,
/obj/structure/sign/warning/radiation/rad_area/directional/west,
@@ -359,12 +344,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
-"agA" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8
- },
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"agP" = (
/obj/structure/cable,
/turf/open/floor/iron/smooth,
@@ -413,11 +392,42 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"ahL" = (
+/obj/effect/landmark/start/virologist,
+/obj/structure/chair/sofa/left{
+ dir = 8
+ },
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"ahN" = (
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
+"ahZ" = (
+/obj/effect/turf_decal/stripes{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ space_dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8;
+ id_tag = "engine_outdoors"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/main)
"aih" = (
/obj/machinery/computer/security/telescreen/entertainment/directional/east,
/obj/structure/chair/comfy,
@@ -493,12 +503,6 @@
},
/turf/open/floor/iron/dark,
/area/station/security/office)
-"ake" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"akj" = (
/obj/machinery/door/airlock/command{
name = "E.V.A. Storage"
@@ -509,13 +513,6 @@
/obj/effect/landmark/navigate_destination,
/turf/open/floor/mineral/titanium,
/area/station/ai_monitored/command/storage/eva)
-"akn" = (
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Escape-4";
- location = "Escape-3"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/secondary/exit/departure_lounge)
"akv" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -531,6 +528,11 @@
/obj/effect/turf_decal/tile/brown/fourcorners,
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
+"akV" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/floor/plating,
+/area/station/maintenance/department/electrical)
"alb" = (
/obj/machinery/light/small/directional/south,
/obj/effect/turf_decal/trimline/blue/filled/line,
@@ -573,22 +575,6 @@
/obj/machinery/duct/industrial/waste,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"amR" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/machinery/ticket_machine/directional/north{
- id = "ticket_machine_cargo"
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"anc" = (
/obj/structure/dresser,
/obj/machinery/light/dim/directional/north,
@@ -640,22 +626,6 @@
/obj/machinery/suit_storage_unit/cmo,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/cmo)
-"apr" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 6
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-21";
- location = "Hall-20"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
"apz" = (
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
@@ -747,6 +717,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/carpet/red,
/area/station/security/office)
+"asu" = (
+/obj/structure/cable,
+/obj/machinery/computer/records/security{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/security/office)
"asA" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
@@ -767,6 +744,13 @@
/obj/effect/turf_decal/trimline/green/line,
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"atn" = (
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"atC" = (
/obj/machinery/door/poddoor/preopen{
id = "xenobio6";
@@ -780,10 +764,6 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"atG" = (
-/obj/structure/lattice,
-/turf/open/floor/plating/ocean,
-/area/station/science/xenobiology)
"atI" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -823,12 +803,6 @@
"aus" = (
/turf/closed/wall/r_wall,
/area/station/security/courtroom)
-"auL" = (
-/obj/structure/chair/sofa/right{
- dir = 8
- },
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"auP" = (
/obj/effect/turf_decal/trimline/blue/line{
dir = 6
@@ -858,6 +832,7 @@
/area/station/engineering/atmos)
"avq" = (
/obj/machinery/camera/directional/east,
+/obj/machinery/light_switch/directional/south,
/turf/open/floor/wood,
/area/station/cargo/miningoffice)
"avv" = (
@@ -870,6 +845,14 @@
/obj/machinery/vending/wallmed/directional/west,
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
+"avO" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/rack,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"avX" = (
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
@@ -903,12 +886,6 @@
dir = 8
},
/area/station/service/hydroponics)
-"axu" = (
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"axQ" = (
/obj/machinery/door/airlock/maintenance,
/obj/structure/disposalpipe/segment{
@@ -981,13 +958,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
/area/station/command/heads_quarters/rd)
-"aAJ" = (
-/obj/machinery/duct/industrial/waste,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"aAK" = (
/obj/machinery/door/firedoor,
/obj/structure/table/reinforced,
@@ -1015,11 +985,6 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
-"aBn" = (
-/obj/structure/fans/tiny/forcefield,
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"aBy" = (
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/ce)
@@ -1069,16 +1034,15 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/dark/textured,
/area/station/commons/storage/primary)
+"aDi" = (
+/obj/machinery/light/directional/east,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/floor/wood,
+/area/station/commons/fitness/recreation/entertainment)
"aDn" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
-"aDo" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"aDB" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/no_smoking,
@@ -1126,12 +1090,26 @@
/obj/structure/cable,
/turf/closed/wall/r_wall,
/area/station/engineering/main)
-"aFE" = (
-/obj/structure/closet/secure_closet/miner,
-/obj/machinery/camera/autoname/directional/north,
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+"aFI" = (
+/obj/machinery/door/window/right/directional/south{
+ dir = 4;
+ name = "Surgical Supplies";
+ req_access = list("surgery")
+ },
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/table/reinforced,
+/obj/item/stack/sticky_tape/surgical,
+/obj/item/stack/medical/bone_gel,
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/item/clothing/gloves/latex/nitrile,
+/obj/item/clothing/gloves/latex/nitrile,
+/obj/item/clothing/gloves/latex/nitrile,
+/obj/item/book/manual/wiki/surgery,
+/turf/open/floor/iron/white,
+/area/station/medical/surgery/theatre)
"aFP" = (
/obj/machinery/camera/directional/east{
c_tag = "Atmospherics Tank - N2"
@@ -1402,17 +1380,6 @@
"aNi" = (
/turf/open/floor/engine,
/area/station/engineering/main)
-"aNn" = (
-/obj/machinery/camera/autoname/directional/south,
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 8;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"aOa" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -1453,14 +1420,6 @@
color = "#999999"
},
/area/station/science/robotics)
-"aOZ" = (
-/obj/machinery/vending/cigarette,
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"aPd" = (
/obj/machinery/computer/rdconsole{
dir = 1
@@ -1877,10 +1836,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
-"aXp" = (
-/obj/structure/cable,
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
"aXt" = (
/obj/machinery/camera/directional/north{
c_tag = "Chief Engineer's Office"
@@ -1950,6 +1905,15 @@
/obj/structure/sign/departments/engineering,
/turf/closed/wall/r_wall,
/area/station/engineering/break_room)
+"aZF" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/obj/structure/cable/industrial,
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/ce)
"aZL" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -2172,17 +2136,6 @@
"bfx" = (
/turf/closed/wall/r_wall,
/area/station/medical/virology)
-"bfB" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/landmark/start/virologist,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"bfN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -2190,22 +2143,6 @@
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"bgu" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 4
- },
-/obj/item/shield/riot{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/shield/riot,
-/obj/item/shield/riot{
- pixel_x = -3;
- pixel_y = 3
- },
-/turf/open/floor/iron/smooth,
-/area/station/ai_monitored/security/armory)
"bgy" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/structure/cable,
@@ -2218,6 +2155,7 @@
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 8
},
+/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"bgQ" = (
@@ -2233,10 +2171,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/courtroom)
-"bht" = (
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"bhD" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/camera/directional/west,
@@ -2282,12 +2216,22 @@
/obj/structure/window/spawner/directional/west,
/turf/open/floor/iron/vaporwave,
/area/station/service/library)
-"biq" = (
-/obj/structure/cable,
+"bjl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/purple/filled/warning,
+/obj/effect/turf_decal/trimline/purple/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/purple/filled/mid_joiner,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-5";
+ location = "Hall-4"
+ },
+/turf/open/floor/iron/dark/textured_edge,
+/area/station/hallway/primary/central)
"bjp" = (
/obj/effect/turf_decal/trimline/red/filled/warning{
dir = 4
@@ -2352,19 +2296,6 @@
},
/turf/open/floor/wood,
/area/station/service/abandoned_gambling_den/gaming)
-"bkC" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/line,
-/obj/machinery/light/directional/north,
-/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"bkF" = (
/obj/effect/decal/cleanable/blood/tracks,
/turf/open/floor/noslip{
@@ -2395,13 +2326,6 @@
/obj/machinery/vending/wallmed/directional/south,
/turf/open/floor/iron/white/textured,
/area/station/medical/surgery/aft)
-"blk" = (
-/obj/machinery/rnd/bepis,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"blt" = (
/obj/structure/cable,
/obj/machinery/light/small/directional/east{
@@ -2418,12 +2342,6 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/wood,
/area/station/command/heads_quarters/hop)
-"blP" = (
-/obj/machinery/door/poddoor/shutters{
- id = "cargodoor"
- },
-/turf/open/floor/plating,
-/area/station/cargo/warehouse)
"blR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -2444,6 +2362,12 @@
/obj/effect/mapping_helpers/airlock/access/all/service/bar,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
+"bmb" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"bmd" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/chem_dispenser{
@@ -2470,15 +2394,6 @@
},
/turf/open/floor/plating,
/area/station/security/warden)
-"bmq" = (
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 6
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"bmG" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/red/line,
@@ -2535,16 +2450,6 @@
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
-"bnU" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "Mining Base"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"bou" = (
/obj/structure/closet/secure_closet/atmospherics,
/obj/machinery/camera/directional/west,
@@ -2624,15 +2529,6 @@
/obj/effect/turf_decal/trimline/brown,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"bpK" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "Xenolab";
- name = "Test Chamber Blast Door"
- },
-/obj/structure/cable,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"bpX" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -2664,6 +2560,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"bqJ" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/external/glass,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"bqT" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 8
@@ -2684,19 +2586,6 @@
/obj/structure/disposalpipe/junction/yjunction,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"bsc" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/machinery/ticket_machine/directional/north{
- id = "ticket_machine_med"
- },
-/obj/effect/turf_decal/trimline/blue/line,
-/mob/living/simple_animal/bot/medbot/autopatrol,
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/medbay/lobby)
"bsd" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 4
@@ -2731,26 +2620,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"bsW" = (
-/obj/machinery/door/airlock/highsecurity{
- name = "AI Chamber"
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "AI Chamber entrance shutters";
- name = "AI Chamber Lockdown Shutter"
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/flasher/directional/west{
- id = "AI";
- name = "Meatbag Pacifier"
- },
-/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload,
-/obj/structure/cable/layer3,
-/obj/structure/fans/tiny/forcefield,
-/obj/effect/base_turf_modifier/pit,
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/turret_protected/ai)
"btf" = (
/obj/effect/landmark/start/geneticist,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -2764,7 +2633,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
+/area/station/bitrunning/den)
"btu" = (
/obj/effect/turf_decal/siding/blue,
/turf/open/floor/wood/large,
@@ -2778,33 +2647,6 @@
},
/turf/open/floor/wood,
/area/station/service/cafeteria)
-"btG" = (
-/obj/structure/rack,
-/obj/item/storage/box/beakers{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/storage/box/syringes,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
-"btR" = (
-/obj/machinery/door/airlock/medical/glass{
- id_tag = "MedbayFoyer";
- name = "Medbay Clinic"
- },
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/central)
"bul" = (
/obj/machinery/suit_storage_unit/mining,
/obj/machinery/light/directional/north,
@@ -2854,22 +2696,6 @@
/obj/effect/spawner/random/vending/colavend,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/break_room)
-"bvF" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/white/filled/line{
- color = "#009dc4";
- dir = 5
- },
-/obj/effect/turf_decal/trimline/white/corner{
- color = "#009dc4";
- dir = 8
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-14";
- location = "Hall-13"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/commons/dorms)
"bvJ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -2883,13 +2709,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"bwi" = (
-/obj/machinery/light_switch/directional/north{
- pixel_y = -21;
- pixel_x = -21
- },
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/fore)
"bwn" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/yellow/filled/warning{
@@ -2987,22 +2806,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/medical/surgery/theatre)
-"byv" = (
-/obj/machinery/conveyor/auto{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner/directional/east,
-/obj/structure/window/reinforced/spawner/directional/west,
-/obj/machinery/door/window/left/directional/west{
- dir = 2;
- name = "Crate Security Door";
- req_access = list("shipping")
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"byC" = (
/obj/structure/window/spawner/directional/south,
/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
@@ -3062,26 +2865,6 @@
/obj/effect/landmark/start/captain,
/turf/open/floor/carpet/purple,
/area/station/command/heads_quarters/captain/private)
-"bAM" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/machinery/light_switch/directional/north,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/structure/table/reinforced,
-/obj/item/roller{
- pixel_y = 6
- },
-/obj/item/roller{
- pixel_y = 6
- },
-/obj/item/roller{
- pixel_y = 6
- },
-/obj/structure/window/spawner/directional/south,
-/obj/structure/window/spawner/directional/east,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/storage)
"bAN" = (
/obj/structure/closet/crate/coffin,
/obj/machinery/camera/autoname/directional/north,
@@ -3090,6 +2873,12 @@
"bAP" = (
/turf/closed/wall/r_wall,
/area/station/command/teleporter)
+"bAT" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"bAX" = (
/obj/machinery/turretid{
icon_state = "control_stun";
@@ -3178,6 +2967,10 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/station/ai_monitored/command/storage/eva)
+"bCi" = (
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"bCl" = (
/obj/structure/closet/emcloset,
/obj/effect/turf_decal/trimline/white/filled/end{
@@ -3241,6 +3034,18 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron/white,
/area/station/science/lab)
+"bDj" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/red/fourcorners,
+/obj/item/food/spaghetti/security,
+/obj/item/food/spaghetti/security,
+/obj/item/food/spaghetti/security,
+/obj/item/food/spaghetti/security,
+/turf/open/floor/iron/smooth,
+/area/station/ai_monitored/security/armory)
"bDs" = (
/obj/machinery/light/small/directional/north,
/obj/machinery/camera/directional/west,
@@ -3254,6 +3059,7 @@
/area/station/commons/fitness/recreation)
"bDv" = (
/obj/effect/landmark/start/scientist,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/science/xenobiology)
"bDw" = (
@@ -3297,12 +3103,6 @@
/obj/machinery/air_sensor/carbon_tank,
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
-"bEl" = (
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"bEp" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/cable,
@@ -3322,12 +3122,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
-"bEQ" = (
-/obj/effect/landmark/start/cargo_technician,
-/obj/machinery/light/floor/has_bulb,
-/obj/effect/turf_decal/trimline/brown,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"bER" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning,
/obj/effect/turf_decal/trimline/dark_blue/warning{
@@ -3351,13 +3145,6 @@
/obj/structure/flora/ocean/longseaweed,
/turf/open/floor/holofloor/beach/water,
/area/station/maintenance/starboard/aft)
-"bFI" = (
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"bFK" = (
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
@@ -3404,21 +3191,27 @@
"bGX" = (
/turf/open/floor/carpet/blue,
/area/station/commons/fitness/recreation/entertainment)
-"bHd" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/purple/filled/warning{
- dir = 6
+"bHk" = (
+/obj/machinery/keycard_auth/directional/south{
+ pixel_x = -6
},
-/obj/effect/turf_decal/trimline/purple/corner{
- dir = 1
+/obj/machinery/button/door/directional/south{
+ id = "qmprivacy";
+ name = "Privacy Shutters Control";
+ req_access = list("qm");
+ pixel_y = -26;
+ pixel_x = 8
},
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-4";
- location = "Hall-3"
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
},
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/ore_silo,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"bHq" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -3431,6 +3224,13 @@
/obj/structure/plasticflaps,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"bHw" = (
+/obj/machinery/light/floor/has_bulb,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/camera/autoname/directional/north,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"bHy" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -3577,6 +3377,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
+"bKh" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"bKz" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 4
@@ -3634,6 +3440,10 @@
},
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
+"bMd" = (
+/obj/machinery/monkey_recycler,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"bMn" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment,
@@ -3673,6 +3483,10 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"bMY" = (
+/obj/item/food/grown/banana,
+/turf/open/misc/grass/jungle,
+/area/station/maintenance/port/central)
"bNb" = (
/obj/effect/turf_decal/trimline/brown/warning{
dir = 8
@@ -3718,6 +3532,19 @@
},
/turf/open/floor/iron/textured,
/area/station/science/robotics/lab)
+"bOO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/line,
+/obj/structure/closet/crate/freezer/surplus_limbs,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"bOR" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
@@ -3773,6 +3600,14 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"bPM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/textured,
+/area/station/engineering/break_room)
"bPZ" = (
/obj/item/radio/intercom/directional/north,
/obj/machinery/light/small/directional/west,
@@ -3928,6 +3763,11 @@
/obj/structure/cable,
/turf/open/floor/iron/white/textured,
/area/station/medical/surgery/aft)
+"bUk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/station/science/xenobiology)
"bUr" = (
/obj/machinery/seed_extractor,
/turf/open/floor/grass,
@@ -3980,6 +3820,16 @@
/obj/effect/landmark/start/bartender,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/service)
+"bWB" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/machinery/stasis{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"bWP" = (
/obj/effect/turf_decal/stripes{
dir = 8
@@ -4010,11 +3860,29 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/n2,
/area/station/engineering/atmos)
+"bXl" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/service/hydroponics/upper)
"bXn" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/service/electronic_marketing_den)
+"bXE" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"bYt" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -4045,16 +3913,6 @@
},
/turf/open/floor/iron/dark/herringbone,
/area/station/science/server)
-"bZc" = (
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 4;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"bZk" = (
/obj/structure/railing{
dir = 4
@@ -4064,12 +3922,6 @@
},
/turf/open/floor/pod/dark,
/area/station/security/warden)
-"bZJ" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"bZS" = (
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
@@ -4226,13 +4078,6 @@
/obj/structure/cable,
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen)
-"cei" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/turf/closed/wall/r_wall,
-/area/station/medical/treatment_center)
"cem" = (
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
@@ -4277,22 +4122,6 @@
/obj/structure/cable,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
-"cfi" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
-"cfu" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 6
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"cfz" = (
/obj/structure/lattice,
/obj/structure/disposalpipe/segment{
@@ -4301,11 +4130,6 @@
},
/turf/open/floor/plating/ocean,
/area/ocean)
-"cfE" = (
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable,
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
"cfI" = (
/obj/machinery/door/airlock/public/glass{
name = "Fitness"
@@ -4480,12 +4304,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/hop)
-"clo" = (
-/obj/machinery/light/floor/has_bulb,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/brown,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"clw" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/random/maintenance,
@@ -4507,15 +4325,23 @@
/obj/machinery/light/directional/north,
/turf/open/floor/wood,
/area/station/service/hydroponics/upper)
-"clZ" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/window/preopen{
- name = "Security Lockdown Shutters";
- id = "securityshutter"
+"cmf" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/plating,
+/area/station/tcommsat/server)
+"cmt" = (
+/obj/machinery/processor/slime,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
+"cmE" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
},
-/obj/structure/sign/departments/security,
+/obj/structure/cable/industrial,
+/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
-/area/station/security/office)
+/area/station/maintenance/starboard/fore)
"cmI" = (
/obj/structure/cable,
/turf/open/floor/iron/dark,
@@ -4541,6 +4367,18 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
+"cnK" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 1
+ },
+/obj/structure/table/glass,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/machinery/defibrillator_mount/directional/south,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"cnV" = (
/obj/machinery/power/turbine/inlet_compressor{
dir = 4
@@ -4562,12 +4400,6 @@
/obj/effect/turf_decal/trimline/yellow/filled/corner,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"cov" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/crate,
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"coH" = (
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
@@ -4632,6 +4464,10 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"cql" = (
+/obj/structure/cable,
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
"cqr" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/garbage,
@@ -4662,43 +4498,9 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"crT" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
-"csw" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 8
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"csW" = (
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"ctS" = (
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
"ctX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -4772,22 +4574,12 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"cvJ" = (
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"cwn" = (
/turf/open/floor/iron/dark,
/area/station/science/ordnance/office)
-"cwQ" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/purple/filled/corner,
-/obj/effect/turf_decal/trimline/purple/arrow_cw{
- dir = 9
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/lobby)
"cwX" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -4822,13 +4614,6 @@
"cxv" = (
/turf/open/floor/engine,
/area/station/hallway/secondary/exit/departure_lounge)
-"cxG" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/machinery/light_switch/directional/east,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"cxM" = (
/obj/effect/turf_decal/delivery,
/obj/effect/spawner/random/maintenance,
@@ -4877,10 +4662,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"czC" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"czE" = (
/mob/living/basic/cockroach,
/turf/open/floor/iron,
/area/station/maintenance/port/central)
+"czN" = (
+/obj/machinery/duct/industrial/waste,
+/turf/closed/wall/r_wall,
+/area/station/cargo/warehouse/upper)
"cAb" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -4902,11 +4699,23 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"cAu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"cAB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/grass,
/area/station/science/genetics)
+"cAG" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/obj/item/airlock_painter/decal,
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"cAT" = (
/obj/effect/turf_decal/bot,
/obj/effect/spawner/random/maintenance,
@@ -4974,14 +4783,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/interrogation)
-"cBY" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/obj/effect/turf_decal/trimline/blue/warning{
- dir = 1
- },
-/turf/closed/wall/r_wall,
-/area/station/medical/treatment_center)
"cCg" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5097,27 +4898,6 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
-"cDZ" = (
-/obj/machinery/keycard_auth/directional/south{
- pixel_x = -6
- },
-/obj/machinery/button/door/directional/south{
- id = "qmprivacy";
- name = "Privacy Shutters Control";
- req_access = list("qm");
- pixel_y = -26;
- pixel_x = 8
- },
-/obj/machinery/light/neon_lining{
- dir = 4;
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/obj/machinery/ore_silo,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"cES" = (
/obj/effect/turf_decal/siding/wood,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5170,6 +4950,14 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
+"cGk" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
+/obj/structure/cable,
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Network Access"
+ },
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"cGK" = (
/obj/effect/turf_decal/tile/purple/opposingcorners,
/mob/living/basic/lizard/wags_his_tail{
@@ -5178,6 +4966,12 @@
/obj/structure/chair/stool/directional/west,
/turf/open/floor/iron/dark,
/area/station/service/janitor)
+"cGL" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"cGU" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line{
dir = 1
@@ -5191,6 +4985,10 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
+"cHj" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"cHm" = (
/obj/machinery/door/airlock/bathroom{
name = "Showers"
@@ -5212,16 +5010,6 @@
/obj/structure/table/glass,
/turf/open/floor/iron/dark/textured,
/area/station/command/bridge)
-"cHC" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/treatment_center)
"cHF" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/brown/fourcorners,
@@ -5325,23 +5113,6 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron,
/area/station/service/library)
-"cLu" = (
-/obj/structure/table,
-/obj/machinery/light/directional/west,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/spawner/random/food_or_drink/donkpockets{
- pixel_x = -9;
- pixel_y = 3
- },
-/obj/item/reagent_containers/cup/glass/waterbottle/large{
- pixel_x = 5;
- pixel_y = 20
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"cLv" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/red/filled/corner,
@@ -5423,6 +5194,10 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron/white/textured,
/area/station/science/genetics)
+"cOl" = (
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"cOq" = (
/obj/machinery/blackbox_recorder,
/obj/machinery/light/directional/south,
@@ -5465,6 +5240,19 @@
/obj/effect/turf_decal/trimline/red/filled/warning,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
+"cOZ" = (
+/obj/item/storage/box/monkeycubes,
+/obj/item/storage/box/monkeycubes,
+/obj/structure/table/glass,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
+"cPy" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 1
+ },
+/obj/machinery/keycard_auth/directional/north,
+/turf/open/floor/carpet/executive,
+/area/station/command/bridge)
"cPD" = (
/obj/structure/cable,
/obj/machinery/holopad,
@@ -5560,25 +5348,6 @@
/obj/structure/cable/multilayer/connected,
/turf/open/floor/iron/dark/textured,
/area/station/command/bridge)
-"cQS" = (
-/obj/structure/bed{
- dir = 4
- },
-/obj/item/bedsheet/medical{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
-"cRm" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/blue/corner,
-/obj/machinery/computer/operating,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"cRO" = (
/obj/machinery/camera/autoname/directional/west,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -5663,30 +5432,6 @@
dir = 8
},
/area/station/engineering/break_room)
-"cSM" = (
-/obj/structure/table/glass,
-/obj/machinery/reagentgrinder{
- pixel_x = -1;
- pixel_y = 8
- },
-/obj/item/stack/sheet/mineral/plasma{
- pixel_y = 4
- },
-/obj/item/reagent_containers/cup/beaker/large{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/reagent_containers/dropper,
-/obj/item/reagent_containers/dropper,
-/obj/item/reagent_containers/dropper,
-/obj/item/reagent_containers/dropper,
-/obj/item/reagent_containers/cup/beaker{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/item/knife/kitchen,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"cSR" = (
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/iron,
@@ -5728,15 +5473,6 @@
/obj/structure/closet/secure_closet/engineering_welding,
/turf/open/floor/iron/dark/textured_corner,
/area/station/engineering/main)
-"cUa" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"cUk" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -5846,14 +5582,14 @@
/obj/effect/spawner/random/structure/table_or_rack,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"cXc" = (
-/obj/structure/table,
-/obj/machinery/light/directional/west,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
+"cXs" = (
+/obj/structure/cable,
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ space_dir = 4
},
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+/turf/open/floor/plating,
+/area/station/maintenance/starboard/fore)
"cXO" = (
/obj/effect/turf_decal/stripes{
dir = 8
@@ -5875,16 +5611,11 @@
/obj/structure/nestbox,
/turf/open/misc/sandy_dirt,
/area/station/service/hydroponics/upper)
-"cYi" = (
-/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/door/airlock/highsecurity{
- name = "Secure Network Access"
- },
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
+"cYo" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/external/glass,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"cYt" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/trimline/dark_red/filled/warning{
@@ -6019,6 +5750,20 @@
dir = 4
},
/area/station/engineering/main)
+"ddE" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"ddJ" = (
/obj/structure/window/spawner/directional/south,
/turf/open/floor/iron/dark/textured,
@@ -6042,6 +5787,11 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"ddY" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/obj/structure/cable,
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
"dee" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/effect/mapping_helpers/airlock/access/all/security/general,
@@ -6171,6 +5921,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"dhx" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"dhy" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -6295,13 +6054,6 @@
luminosity = 2
},
/area/station/ai_monitored/turret_protected/ai)
-"djC" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"djK" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -6332,6 +6084,13 @@
/obj/effect/turf_decal/tile/blue/diagonal_centre,
/turf/open/floor/iron/white/diagonal,
/area/station/medical/medbay/lobby)
+"dky" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 8
+ },
+/obj/effect/spawner/random/engineering/tracking_beacon,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"dkJ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
@@ -6384,15 +6143,6 @@
/obj/effect/spawner/random/structure/crate_loot,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
-"dmc" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/railing{
- dir = 5
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"dme" = (
/obj/structure/chair,
/turf/open/floor/iron/dark,
@@ -6409,6 +6159,22 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"dml" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/white/filled/line{
+ color = "#009dc4";
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/white/corner{
+ color = "#009dc4";
+ dir = 8
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-14";
+ location = "Hall-13"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/commons/dorms)
"dmm" = (
/obj/structure/table,
/obj/structure/window/reinforced/spawner/directional/south,
@@ -6474,27 +6240,6 @@
/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner,
/turf/open/floor/engine,
/area/station/engineering/main)
-"dnv" = (
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/structure/table/reinforced,
-/obj/item/wheelchair{
- pixel_y = 3
- },
-/obj/item/wheelchair{
- pixel_y = 3
- },
-/obj/item/wheelchair{
- pixel_y = 3
- },
-/obj/item/wheelchair{
- pixel_y = 3
- },
-/obj/structure/window/spawner/directional/south,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/storage)
"dnA" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
/turf/open/floor/plating/ocean,
@@ -6648,14 +6393,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/science/genetics)
-"dqy" = (
-/obj/machinery/vending/coffee,
-/obj/effect/turf_decal/trimline/brown/corner,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"dqA" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks/beer{
@@ -6670,13 +6407,6 @@
/obj/effect/landmark/start/botanist,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"dqW" = (
-/obj/machinery/light/floor/has_bulb,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/machinery/camera/autoname/directional/north,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"drc" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer"
@@ -6786,30 +6516,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"dsW" = (
-/obj/effect/turf_decal/stripes{
- dir = 1
- },
-/obj/machinery/door/airlock/external{
- name = "Escape Pod Four";
- space_dir = 4
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/stripes{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8;
- id_tag = "engine_outdoors"
- },
-/turf/open/floor/engine,
-/area/station/engineering/main)
"dtb" = (
/obj/machinery/vending/coffee,
/obj/structure/disposalpipe/segment{
@@ -6839,14 +6545,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"dtJ" = (
-/obj/machinery/light/floor/has_bulb,
-/obj/effect/turf_decal/trimline/blue,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/lobby)
"dtY" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -6892,11 +6590,6 @@
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/station/engineering/atmos)
-"dvq" = (
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"dvM" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment,
@@ -6924,18 +6617,6 @@
icon_state = "boxing"
},
/area/station/commons/fitness)
-"dwP" = (
-/obj/structure/table,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"dxd" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -7003,21 +6684,20 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"dyN" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Central Access"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"dzq" = (
/obj/machinery/light/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/storage/tech)
+"dzt" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/cytology,
+/turf/open/floor/holofloor/dark,
+/area/station/science/cytology)
"dzK" = (
/obj/structure/chair/stool/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -7062,6 +6742,17 @@
},
/turf/open/floor/mineral/titanium/purple,
/area/station/command/teleporter)
+"dBg" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/mid_joiner,
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"dBk" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -7075,6 +6766,10 @@
/obj/machinery/light/floor/has_bulb,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"dBV" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"dCe" = (
/obj/structure/table/glass,
/obj/structure/showcase/machinery/tv{
@@ -7126,6 +6821,21 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"dDv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/vehicle/ridden/cargo_train,
+/obj/machinery/button/door/directional/east{
+ id = "cargodoor"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"dDy" = (
/obj/machinery/ocean_elevator{
elevator_id = "prison";
@@ -7170,15 +6880,9 @@
luminosity = 2
},
/area/station/ai_monitored/turret_protected/ai)
-"dEZ" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/power/terminal{
- dir = 4
- },
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
+"dFf" = (
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"dFg" = (
/obj/machinery/holopad{
pixel_x = 17
@@ -7275,15 +6979,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"dGR" = (
-/obj/machinery/fax{
- fax_name = "Chief Engineer's Office";
- name = "Chief Engineer's Fax Machine"
- },
-/obj/structure/table/reinforced,
-/obj/machinery/light/directional/east,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"dGS" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -7328,10 +7023,6 @@
},
/turf/open/floor/wood/large,
/area/station/command/bridge)
-"dHU" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"dHZ" = (
/obj/structure/table/reinforced/rglass,
/turf/open/floor/iron,
@@ -7432,16 +7123,6 @@
/obj/structure/reagent_dispensers/wall/peppertank/directional/east,
/turf/open/floor/iron,
/area/station/security/checkpoint/science)
-"dLA" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/line,
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 1
- },
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/treatment_center)
"dLS" = (
/obj/effect/turf_decal/trimline/yellow/filled/corner,
/obj/effect/landmark/start/station_engineer,
@@ -7614,6 +7295,14 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"dPW" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/obj/effect/turf_decal/trimline/blue/warning{
+ dir = 1
+ },
+/turf/closed/wall/r_wall,
+/area/station/medical/treatment_center)
"dQd" = (
/turf/open/floor/engine/plasma,
/area/station/engineering/atmos)
@@ -7878,6 +7567,13 @@
"dXQ" = (
/turf/open/floor/iron/white,
/area/station/medical/virology)
+"dXR" = (
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"dYc" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/obj/machinery/portable_atmospherics/pump,
@@ -7935,6 +7631,15 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/white/textured,
/area/station/medical/surgery/aft)
+"dZw" = (
+/obj/effect/turf_decal/trimline/purple/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/arrow_cw{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/lobby)
"dZx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/chair/comfy/shuttle/tactical{
@@ -8023,12 +7728,32 @@
icon_state = "clown_carpet"
},
/area/station/commons/dorms)
+"eaZ" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor/auto,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/obj/machinery/door/window/left/directional/west{
+ dir = 2;
+ name = "Crate Security Door";
+ req_access = list("shipping")
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"ebe" = (
/obj/machinery/rnd/production/techfab/department/medical,
/obj/machinery/airalarm/directional/west,
/obj/effect/turf_decal/tile/blue/full,
/turf/open/floor/iron/dark/textured_large,
/area/station/medical/medbay/central)
+"ecd" = (
+/obj/machinery/telecomms/processor/preset_two,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"eco" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -8073,14 +7798,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"ecI" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"ecM" = (
/obj/structure/table/wood,
/turf/open/floor/iron/chapel{
@@ -8198,39 +7915,6 @@
dir = 8
},
/area/station/engineering/main)
-"egh" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 9
- },
-/obj/machinery/button/door{
- desc = "A door remote control switch for the interior brig doors.";
- id = "innerbrig";
- name = "Brig Interior Door Control";
- normaldoorcontrol = 1;
- pixel_x = -9;
- pixel_y = 10;
- req_access = list("security")
- },
-/obj/machinery/button/door{
- desc = "A door remote control switch for the exterior brig doors.";
- id = "outerbrig";
- name = "Brig Exterior Door Control";
- normaldoorcontrol = 1;
- pixel_x = 9;
- pixel_y = 10;
- req_access = list("security")
- },
-/obj/structure/table,
-/obj/machinery/button/flasher{
- id = "secentranceflasher";
- name = "Brig Entrance Flasher";
- pixel_y = -5;
- req_access = list("security");
- pixel_x = -10
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
"egY" = (
/obj/structure/chair/office{
dir = 8
@@ -8238,6 +7922,11 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/white,
/area/station/science/robotics/mechbay)
+"eha" = (
+/obj/machinery/smartfridge/organ,
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"ehb" = (
/obj/effect/turf_decal/trimline/red/filled/warning{
dir = 9
@@ -8247,6 +7936,15 @@
"ehz" = (
/turf/open/floor/iron/white/textured,
/area/station/medical/storage)
+"ehA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench/left{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"ehK" = (
/obj/structure/cable,
/obj/machinery/light/directional/east,
@@ -8274,14 +7972,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/service/hydroponics/upper)
-"eih" = (
-/obj/structure/chair/comfy/black{
- dir = 4
- },
-/obj/effect/landmark/start/scientist,
-/obj/machinery/light_switch/directional/south,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"eip" = (
/obj/structure/chair/wood{
dir = 4
@@ -8318,6 +8008,15 @@
/obj/effect/turf_decal/siding/purple,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/storage)
+"ejk" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 4
+ },
+/obj/structure/chair/sofa/corp/right{
+ dir = 8
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/storage)
"ejr" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -8333,29 +8032,6 @@
/obj/structure/table/reinforced,
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
-"ejT" = (
-/obj/effect/turf_decal/stripes,
-/obj/machinery/door/airlock/external{
- name = "Escape Pod Four";
- space_dir = 4
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4;
- id_tag = "engine_outdoors"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/station/engineering/main)
"ekq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -8398,17 +8074,6 @@
color = "#D381C9"
},
/area/station/science/robotics)
-"ell" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"elt" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 9
@@ -8461,12 +8126,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"enB" = (
-/obj/machinery/light/directional/south,
-/obj/machinery/suit_storage_unit/ce,
-/obj/machinery/computer/security/telescreen/entertainment/directional/south,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"enN" = (
/obj/effect/landmark/start/head_of_personnel,
/turf/open/floor/carpet/executive,
@@ -8476,6 +8135,10 @@
/obj/machinery/light/directional/east,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"eoW" = (
+/obj/structure/cable,
+/turf/open/floor/iron/stairs,
+/area/station/cargo/warehouse/upper)
"epb" = (
/obj/machinery/firealarm/directional/south,
/obj/machinery/camera/autoname/directional/south,
@@ -8621,10 +8284,6 @@
/obj/effect/base_turf_modifier/pit,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
-"erU" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"esa" = (
/obj/structure/cable,
/obj/machinery/defibrillator_mount/directional/south,
@@ -8688,6 +8347,12 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/storage/tech)
+"esM" = (
+/obj/item/storage/secure/safe/directional/north,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/suit_storage_unit/security,
+/turf/open/floor/pod/dark,
+/area/station/security/warden)
"etx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -8737,6 +8402,10 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance/storage)
+"euD" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"euG" = (
/obj/machinery/computer/accounting{
dir = 8
@@ -8766,6 +8435,14 @@
/obj/item/flashlight/seclite,
/turf/open/floor/iron/dark/textured,
/area/station/security/lockers)
+"evU" = (
+/obj/structure/table,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"ewc" = (
/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{
dir = 8
@@ -8895,22 +8572,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"ezh" = (
-/obj/machinery/light/neon_lining{
- dir = 8;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
-"ezn" = (
-/obj/machinery/computer/pandemic,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
-"ezr" = (
-/obj/effect/turf_decal/trimline/brown/filled/corner,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"ezE" = (
/obj/structure/falsewall,
/turf/open/floor/iron/dark,
@@ -8960,17 +8621,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"eAt" = (
-/obj/structure/cable,
-/obj/machinery/stasis,
-/obj/machinery/door/window/right/directional/south{
- dir = 1;
- name = "Medical Reception Desk";
- req_access = list("medical")
- },
-/obj/machinery/door/window/right/directional/south,
-/turf/open/floor/iron/dark/small,
-/area/station/medical/treatment_center)
"eAI" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -9090,50 +8740,18 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/storage/tech)
-"eDo" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/effect/mapping_helpers/airlock/unres,
-/obj/machinery/door/airlock/mining/glass{
- id_tag = "innercargo";
- name = "Cargo Bay"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"eDq" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"eDx" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/structure/tank_holder/extinguisher,
-/turf/open/floor/plating,
-/area/station/maintenance/department/electrical)
"eDz" = (
/obj/machinery/door/airlock/maintenance{
name = "Atmospherics Maintenance"
},
/turf/open/floor/iron/dark,
/area/station/maintenance/department/electrical)
-"eDD" = (
-/obj/structure/table,
-/obj/effect/turf_decal/siding/white/corner,
-/obj/machinery/firealarm/directional/north,
-/obj/item/clipboard,
-/obj/item/paper,
-/obj/item/pen,
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
"eDF" = (
/obj/structure/table,
/obj/machinery/infuser,
@@ -9243,9 +8861,9 @@
},
/area/station/science/lobby)
"eGh" = (
-/obj/structure/tank_dispenser/oxygen,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
/turf/open/floor/carpet/neon/simple/orange/nodots,
-/area/station/cargo/miningoffice)
+/area/station/bitrunning/den)
"eGI" = (
/obj/machinery/rnd/production/protolathe/department/science,
/obj/effect/turf_decal/siding/purple,
@@ -9344,6 +8962,14 @@
"eIg" = (
/turf/open/floor/iron/stairs,
/area/station/engineering/main)
+"eIs" = (
+/obj/structure/table,
+/obj/item/stack/sheet/iron{
+ amount = 10
+ },
+/obj/item/electropack,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"eIP" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 4
@@ -9435,23 +9061,11 @@
/obj/machinery/light/directional/north,
/turf/open/floor/wood/large,
/area/station/security/checkpoint/customs)
-"eLs" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/yellow/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 4
- },
-/obj/machinery/ticket_machine/directional/east{
- id = "ticket_machine_engie"
- },
-/obj/structure/railing{
- dir = 8
- },
-/turf/open/floor/plastic,
-/area/station/hallway/primary/central)
+"eKU" = (
+/obj/machinery/duct/industrial/waste,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"eLw" = (
/obj/structure/table/wood,
/obj/machinery/computer/security/wooden_tv{
@@ -9477,22 +9091,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"eLH" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/station/science/xenobiology)
-"eLO" = (
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/red/corner{
- dir = 8
- },
-/obj/machinery/light/floor/has_bulb,
-/mob/living/simple_animal/bot/secbot/beepsky,
-/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
"eLS" = (
/obj/machinery/duct/industrial/waste,
/turf/open/floor/iron/dark/textured,
@@ -9697,6 +9295,10 @@
/obj/machinery/vending/imported/yangyu,
/turf/open/floor/iron/smooth,
/area/station/commons/fitness/recreation)
+"eQz" = (
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/science/xenobiology)
"eQB" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible,
@@ -9733,6 +9335,17 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"eRJ" = (
+/obj/structure/cable,
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-3";
+ location = "Hall-2"
+ },
+/turf/open/floor/plastic,
+/area/station/hallway/primary/central)
"eSf" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/white/filled/warning{
@@ -9800,6 +9413,17 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/cargo/storage)
+"eTm" = (
+/obj/structure/cable,
+/obj/machinery/stasis,
+/obj/machinery/door/window/right/directional/south{
+ dir = 1;
+ name = "Medical Reception Desk";
+ req_access = list("medical")
+ },
+/obj/machinery/door/window/right/directional/south,
+/turf/open/floor/iron/dark/small,
+/area/station/medical/treatment_center)
"eTz" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -9834,6 +9458,14 @@
},
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
+"eUj" = (
+/obj/machinery/airalarm/directional/north,
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"eUn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -10023,6 +9655,15 @@
/obj/item/clothing/under/rank/centcom/military/eng,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"eZF" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
"eZG" = (
/obj/structure/window/spawner/directional/east,
/obj/structure/window/spawner/directional/north,
@@ -10094,6 +9735,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/brig)
+"fbj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 6
+ },
+/obj/machinery/cart,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"fbt" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line{
dir = 8
@@ -10355,16 +10005,19 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security/checkpoint/science)
-"fhv" = (
-/obj/structure/table,
-/obj/machinery/cell_charger{
- pixel_y = 5
+"fhp" = (
+/obj/structure/table/glass,
+/obj/structure/microscope,
+/obj/item/storage/box/syringes{
+ pixel_x = -4;
+ pixel_y = 4
},
-/obj/item/stack/cable_coil,
-/obj/item/multitool,
-/obj/item/stock_parts/cell/high,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
+/obj/item/storage/box/beakers{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"fhw" = (
/obj/machinery/mineral/stacking_machine{
input_dir = 2
@@ -10459,22 +10112,6 @@
/obj/effect/spawner/structure/window/plasma,
/turf/open/floor/iron/white,
/area/station/maintenance/starboard/upper)
-"fjT" = (
-/obj/effect/turf_decal/tile/neutral/fourcorners{
- color = "#009dc4"
- },
-/obj/machinery/vending/boozeomat{
- pixel_y = -32
- },
-/obj/effect/turf_decal/trimline/red/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/red/filled/warning{
- dir = 10
- },
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/turret_protected/ai_upload)
"fkl" = (
/obj/structure/extinguisher_cabinet/directional/north,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -10532,15 +10169,23 @@
/obj/machinery/power/apc/auto_name/directional/south,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/office)
-"fnj" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/door/airlock/virology/glass{
- name = "Isolation B"
+"fnB" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Base"
},
-/obj/effect/mapping_helpers/airlock/access/all/medical/virology,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/miningoffice)
"fnW" = (
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
@@ -10682,6 +10327,10 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
+"fru" = (
+/obj/machinery/door/airlock/external/glass,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"frv" = (
/obj/effect/decal/cleanable/confetti,
/obj/structure/disposalpipe/segment,
@@ -10693,22 +10342,6 @@
"frP" = (
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
-"frU" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/white/filled/warning{
- dir = 1;
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/warning{
- color = "#009dc4"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-13";
- location = "Hall-12"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"fsb" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 6
@@ -10743,13 +10376,6 @@
/obj/machinery/atmospherics/components/unary/thermomachine/heater/on,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"fte" = (
-/obj/structure/cable,
-/obj/machinery/computer/records/security{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
"ftk" = (
/obj/machinery/porta_turret/ai,
/obj/effect/turf_decal/bot_red,
@@ -10784,14 +10410,6 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/cargo/storage)
-"fuu" = (
-/obj/structure/sign/poster/contraband/punch_shit{
- pixel_y = 35
- },
-/obj/effect/decal/cleanable/garbage,
-/obj/machinery/light/very_dim/directional/north,
-/turf/open/floor/iron,
-/area/station/service/theater/abandoned)
"fuw" = (
/obj/structure/table/glass,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -10855,6 +10473,12 @@
/obj/effect/turf_decal/trimline/purple/warning,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"fvR" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"fvS" = (
/obj/machinery/camera/autoname/directional/south,
/obj/effect/turf_decal/tile/neutral/fourcorners{
@@ -10885,6 +10509,25 @@
/obj/effect/turf_decal/trimline/dark_blue,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"fwV" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/blue/corner,
+/obj/machinery/computer/operating,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
+"fwW" = (
+/obj/docking_port/stationary{
+ dir = 2;
+ dwidth = 2;
+ height = 13;
+ name = "port bay 2";
+ shuttle_id = "ferry_home";
+ width = 5
+ },
+/turf/open/floor/plating/ocean,
+/area/ocean)
"fxe" = (
/turf/closed/wall/r_wall,
/area/station/science/xenobiology)
@@ -10920,6 +10563,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"fxS" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plating,
+/area/station/maintenance/starboard/aft)
"fxX" = (
/obj/effect/turf_decal/stripes{
dir = 4
@@ -10936,11 +10586,6 @@
},
/turf/open/floor/iron/dark/smooth_large,
/area/station/cargo/sorting)
-"fya" = (
-/obj/structure/flora/rock/pile/jungle/style_random,
-/obj/item/food/grown/banana,
-/turf/open/misc/grass/jungle,
-/area/station/maintenance/port/central)
"fyz" = (
/obj/effect/turf_decal/stripes{
dir = 4
@@ -11205,21 +10850,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"fGy" = (
-/obj/structure/closet/secure_closet/engineering_chief,
-/obj/item/storage/secure/briefcase,
-/obj/item/crowbar/large/heavy,
-/obj/item/rwd/loaded,
-/obj/item/construction/plumbing/engineering,
-/obj/machinery/button/door/directional/west{
- id = "Engineering";
- name = "Engineering Lockdown";
- pixel_y = -33;
- req_access = list("engineering");
- pixel_x = 0
- },
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"fGC" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -11288,6 +10918,26 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"fHB" = (
+/obj/machinery/door/airlock/highsecurity{
+ name = "AI Chamber"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "AI Chamber entrance shutters";
+ name = "AI Chamber Lockdown Shutter"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/flasher/directional/west{
+ id = "AI";
+ name = "Meatbag Pacifier"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload,
+/obj/structure/cable/layer3,
+/obj/structure/fans/tiny/forcefield,
+/obj/effect/base_turf_modifier/pit,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/turret_protected/ai)
"fHN" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -11381,6 +11031,22 @@
},
/turf/closed/wall,
/area/station/maintenance/starboard/aft)
+"fKV" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/white/filled/warning{
+ dir = 1;
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/warning{
+ color = "#009dc4"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-13";
+ location = "Hall-12"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"fLc" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -11565,6 +11231,11 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"fPP" = (
+/obj/machinery/atmospherics/components/binary/pump,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"fPW" = (
/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{
dir = 8
@@ -11597,17 +11268,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
-"fQo" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 9
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"fQp" = (
/obj/structure/tank_dispenser/oxygen,
/obj/effect/turf_decal/trimline/red/filled/warning{
@@ -11667,15 +11327,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/warden)
-"fRu" = (
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/structure/cable/industrial,
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/fore)
"fRB" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -11717,6 +11368,11 @@
/obj/effect/turf_decal/trimline/yellow/line,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"fTx" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"fTy" = (
/obj/machinery/atmospherics/pipe/smart/simple/purple/visible,
/obj/effect/turf_decal/trimline/yellow/filled/corner,
@@ -11736,14 +11392,6 @@
/obj/effect/turf_decal/trimline/blue,
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/lobby)
-"fUp" = (
-/obj/machinery/light/directional/north,
-/obj/effect/landmark/start/shaft_miner,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"fUy" = (
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{
dir = 4
@@ -11790,6 +11438,14 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/o2,
/area/station/engineering/atmos)
+"fVz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/floor/has_bulb,
+/obj/effect/turf_decal/trimline/brown,
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"fVA" = (
/obj/machinery/light{
dir = 1
@@ -11806,10 +11462,6 @@
/obj/effect/turf_decal/trimline/brown/filled/warning,
/turf/open/floor/iron/dark/textured,
/area/station/cargo/sorting)
-"fWk" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/plating,
-/area/station/cargo/warehouse)
"fWt" = (
/obj/structure/table,
/obj/item/stack/cable_coil,
@@ -11844,6 +11496,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/service)
+"fXc" = (
+/obj/structure/chair/sofa/right{
+ dir = 8
+ },
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"fXj" = (
/obj/effect/turf_decal/stripes,
/turf/open/floor/engine,
@@ -11868,16 +11526,6 @@
},
/turf/open/floor/plating/ocean,
/area/ocean/near_station_powered)
-"fXG" = (
-/obj/item/book/manual/wiki/infections{
- pixel_y = 7
- },
-/obj/item/reagent_containers/syringe/antiviral,
-/obj/item/reagent_containers/dropper,
-/obj/item/reagent_containers/spray/cleaner,
-/obj/structure/table/glass,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
"fXH" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -11914,6 +11562,15 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"fYu" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-9";
+ location = "Hall-8"
+ },
+/turf/open/floor/iron/chapel{
+ dir = 4
+ },
+/area/station/service/chapel)
"fYz" = (
/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
@@ -11934,10 +11591,17 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/n2o,
/area/station/engineering/atmos)
-"fYW" = (
-/obj/effect/turf_decal/delivery,
+"fYV" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/red/corner{
+ dir = 8
+ },
+/obj/machinery/light/floor/has_bulb,
+/mob/living/simple_animal/bot/secbot/beepsky,
/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
+/area/station/security/office)
"fZc" = (
/obj/structure/window/spawner/directional/west,
/obj/structure/table/wood,
@@ -11999,6 +11663,13 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/auxiliary)
+"fZX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"gak" = (
/obj/structure/chair{
dir = 1
@@ -12117,20 +11788,6 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/lobby)
-"gce" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/brown/corner,
-/obj/machinery/vending/coffee,
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 8
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"gco" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/yellow/filled/warning{
@@ -12176,15 +11833,6 @@
/obj/effect/spawner/random/aimodule/harmful,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
-"gcG" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 4
- },
-/obj/structure/chair/sofa/corp/right{
- dir = 8
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/storage)
"gdg" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plating,
@@ -12234,28 +11882,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"geD" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "Mining Base"
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/miningoffice)
-"geH" = (
-/obj/item/storage/secure/safe/directional/north,
-/obj/machinery/light/small/directional/west,
-/obj/machinery/suit_storage_unit/security,
-/turf/open/floor/pod/dark,
-/area/station/security/warden)
"geR" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -12313,16 +11939,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"gfL" = (
-/obj/effect/turf_decal/trimline/blue/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/warning{
- dir = 4
- },
-/obj/machinery/iv_drip,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"gfV" = (
/obj/structure/reagent_dispensers/water_cooler,
/turf/open/floor/wood/parquet,
@@ -12338,13 +11954,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"ggD" = (
-/obj/machinery/door/airlock/research{
- name = "Ordnance Lab"
- },
-/obj/effect/mapping_helpers/airlock/access/all/science/xenobio,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"ggI" = (
/obj/effect/mapping_helpers/airlock/access/all/command/general,
/obj/machinery/door/firedoor,
@@ -12418,12 +12027,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"giM" = (
-/obj/structure/cable/industrial,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/plating/ocean,
-/area/ocean)
"giS" = (
/obj/effect/spawner/random/vending/snackvend,
/obj/effect/turf_decal/bot,
@@ -12637,18 +12240,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"gre" = (
-/obj/machinery/computer/piratepad_control/civilian{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"gro" = (
/turf/open/floor/engine,
/area/station/science/xenobiology)
@@ -12659,25 +12250,23 @@
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/eighties/red,
/area/station/service/electronic_marketing_den)
-"grB" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Central Access"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"grG" = (
/obj/structure/chair/sofa/middle{
dir = 4
},
/turf/open/floor/carpet/blue,
/area/station/commons/fitness/recreation/entertainment)
+"grX" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/green/filled/warning{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-19";
+ location = "Hall-18"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/commons/lounge)
"gsm" = (
/obj/structure/cable,
/obj/effect/spawner/random/trash/graffiti,
@@ -12737,6 +12326,17 @@
/obj/machinery/light/floor/has_bulb,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"guc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/tile/brown/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/station/cargo/sorting)
"gud" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -12762,22 +12362,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"gun" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/white/filled/warning{
- dir = 9;
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/corner{
- color = "#009dc4"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-18";
- location = "Hall-17"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"guV" = (
/obj/machinery/door/airlock/maintenance,
/obj/structure/disposalpipe/segment{
@@ -12785,6 +12369,12 @@
},
/turf/open/floor/iron,
/area/station/commons/storage/emergency/port)
+"gvn" = (
+/obj/machinery/light/floor/has_bulb,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"gvw" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -12854,15 +12444,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"gxq" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/box,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"gxr" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/cable,
@@ -12898,6 +12479,12 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"gyE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"gyG" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/structure/table/reinforced,
@@ -12970,10 +12557,34 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"gzY" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock";
+ space_dir = 4
+ },
+/obj/structure/fans/tiny/forcefield,
+/turf/open/floor/plating,
+/area/station/hallway/secondary/exit/departure_lounge)
"gzZ" = (
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"gAb" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
+"gAg" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners{
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 1
+ },
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/turret_protected/ai_upload)
"gAk" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron/dark,
@@ -13033,16 +12644,12 @@
},
/turf/open/floor/plating/ocean,
/area/ocean/near_station_powered)
-"gBc" = (
-/obj/effect/turf_decal/tile/neutral/fourcorners{
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/green/filled/line{
- dir = 1
+"gBj" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
},
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/turret_protected/ai_upload)
+/turf/closed/wall/r_wall,
+/area/station/cargo/miningoffice)
"gBL" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -13051,6 +12658,7 @@
/area/station/science/ordnance/office)
"gCe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/science/xenobiology)
"gCo" = (
@@ -13058,18 +12666,6 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/iron/dark/textured,
/area/station/cargo/storage)
-"gCN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/door/airlock{
- id_tag = "Dorm1";
- name = "Cabin 1"
- },
-/obj/machinery/door/firedoor,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/service/abandoned_gambling_den/gaming)
"gCU" = (
/obj/machinery/button/ticket_machine{
pixel_y = 22;
@@ -13085,6 +12681,21 @@
dir = 1
},
/area/station/science/lab)
+"gDi" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/dark_blue/corner{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-24";
+ location = "Hall-23"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central/fore)
"gDp" = (
/obj/machinery/button/door/directional/south{
id = "lawyer_shutters";
@@ -13191,10 +12802,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/morgue)
-"gGj" = (
-/obj/machinery/duct/industrial/waste,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"gGL" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/unres{
@@ -13318,6 +12925,7 @@
"gKd" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/science/xenobiology)
"gKx" = (
@@ -13374,23 +12982,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
-"gMi" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/blue/corner,
-/obj/machinery/door/airlock/medical/glass{
- name = "Cryogenics Bay"
- },
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- id_tag = "medlobby"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/medbay/lobby)
"gMj" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -13416,24 +13007,6 @@
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"gMZ" = (
-/obj/item/grown/bananapeel,
-/turf/open/misc/grass/jungle,
-/area/station/maintenance/port/central)
-"gNq" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/box,
-/obj/machinery/portable_atmospherics/canister,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
-"gNC" = (
-/obj/structure/table/wood,
-/obj/item/food/baguette,
-/obj/item/reagent_containers/cup/glass/bottle/bottleofnothing,
-/obj/machinery/light/very_dim/directional/north,
-/turf/open/floor/iron/grimy,
-/area/station/service/theater/abandoned)
"gNH" = (
/obj/effect/turf_decal/delivery,
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
@@ -13444,9 +13017,6 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/iron/dark/textured,
/area/station/commons/vacant_room/commissary)
-"gNL" = (
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"gOb" = (
/obj/machinery/light/small/directional/north,
/obj/effect/turf_decal/sand/plating,
@@ -13469,15 +13039,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"gPc" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 9
- },
-/obj/machinery/stasis{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"gPk" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/white/warning{
@@ -13494,17 +13055,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2,
/turf/open/floor/engine,
/area/station/maintenance/disposal/incinerator)
-"gPp" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"gPH" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -13653,11 +13203,6 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/grass,
/area/station/service/hydroponics)
-"gUE" = (
-/obj/structure/sign/warning/secure_area,
-/obj/effect/base_turf_modifier/pit,
-/turf/closed/wall/r_wall/rust,
-/area/station/ai_monitored/turret_protected/ai)
"gUL" = (
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/engine,
@@ -13773,25 +13318,6 @@
},
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
-"gXq" = (
-/obj/machinery/airalarm/directional/north,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/structure/table/reinforced,
-/obj/item/clothing/suit/jacket/straight_jacket,
-/obj/item/clothing/glasses/eyepatch,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/clothing/glasses/blindfold,
-/obj/item/clothing/glasses/blindfold,
-/obj/machinery/door/window/right/directional/south{
- dir = 2;
- name = "First Aid Supplies";
- req_access = list("medical")
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/storage)
"gXr" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -13813,6 +13339,19 @@
/obj/machinery/vending/mechcomp,
/turf/open/floor/iron/smooth,
/area/station/commons/fitness/recreation)
+"gXR" = (
+/obj/machinery/light_switch/directional/south,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/machinery/defibrillator_mount/directional/south,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"gYs" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2,
@@ -13904,18 +13443,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"gZV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/window/reinforced/spawner/directional/north,
-/obj/structure/window/reinforced/spawner/directional/east,
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/red/fourcorners,
-/obj/item/food/spaghetti/security,
-/obj/item/food/spaghetti/security,
-/obj/item/food/spaghetti/security,
-/obj/item/food/spaghetti/security,
-/turf/open/floor/iron/smooth,
-/area/station/ai_monitored/security/armory)
"hag" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/obj/structure/cable,
@@ -13957,11 +13484,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/courtroom)
-"haA" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"haN" = (
/obj/structure/disposalpipe/junction/yjunction,
/obj/effect/turf_decal/trimline/purple/filled/line{
@@ -14003,21 +13525,6 @@
},
/turf/open/floor/plating,
/area/station/service/chapel)
-"hbm" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Central Access"
- },
-/obj/machinery/door/firedoor,
-/obj/structure/cable,
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"hby" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/effect/turf_decal/tile/dark_blue/opposingcorners{
@@ -14034,15 +13541,6 @@
/obj/machinery/vending/wallmed/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
-"hbV" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Escape-1";
- location = "Hall-24"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central/fore)
"hcx" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -14169,6 +13667,19 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/break_room)
+"hfF" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"hfR" = (
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron/dark/textured,
@@ -14327,6 +13838,18 @@
/obj/effect/turf_decal/trimline/green/line,
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"hkH" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"hkS" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 4
@@ -14346,6 +13869,13 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/grass,
/area/station/medical/virology)
+"hlS" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/obj/structure/rack,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"hmh" = (
/turf/open/floor/engine,
/area/station/security/office)
@@ -14355,6 +13885,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"hmt" = (
+/obj/item/book/manual/wiki/infections{
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/structure/table/glass,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"hmD" = (
/turf/closed/wall/r_wall,
/area/station/security/detectives_office)
@@ -14401,11 +13941,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"hon" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/external/glass,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"hoo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -14516,11 +14051,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
-"hst" = (
-/obj/machinery/telecomms/processor/preset_two,
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"hsV" = (
/obj/structure/railing,
/turf/open/misc/sandy_dirt,
@@ -14538,11 +14068,6 @@
},
/turf/open/floor/engine,
/area/station/cargo/miningoffice)
-"htk" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/structure/closet/l3closet/virology,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"htl" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/trimline/brown/warning{
@@ -14592,12 +14117,22 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
-"htZ" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 6
+"hux" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners{
+ color = "#009dc4"
},
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
+/obj/machinery/vending/boozeomat{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/trimline/red/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/red/filled/warning{
+ dir = 10
+ },
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/turret_protected/ai_upload)
"huL" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -14609,6 +14144,11 @@
dir = 1
},
/area/station/engineering/main)
+"hva" = (
+/obj/machinery/computer/pandemic,
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"hvh" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/stripes{
@@ -14946,49 +14486,30 @@
/obj/effect/turf_decal/trimline/yellow/filled/warning,
/turf/open/floor/iron/dark,
/area/station/security/office)
-"hDO" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/warning,
-/obj/machinery/door/airlock/medical/glass{
- name = "Cryogenics Bay"
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- id_tag = "medlobby"
+"hDB" = (
+/obj/machinery/door/airlock/research{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "xeno_airlock_exterior";
+ name = "Xenobiology Lab External Airlock"
},
+/obj/effect/mapping_helpers/airlock/access/all/science/xenobio,
/turf/open/floor/iron/dark/textured,
-/area/station/medical/medbay/lobby)
-"hDP" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
+/area/station/medical/virology)
"hDQ" = (
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"hDR" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Network Access"
+ },
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"hDV" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible,
/turf/open/floor/iron,
@@ -15030,6 +14551,11 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"hFr" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable,
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
"hFs" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -15042,6 +14568,12 @@
/obj/effect/turf_decal/trimline/dark_blue/warning,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"hFF" = (
+/obj/structure/chair/sofa/middle{
+ dir = 8
+ },
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"hFV" = (
/obj/machinery/ai_slipper{
uses = 10
@@ -15090,6 +14622,13 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"hGs" = (
+/obj/item/storage/secure/safe/directional/west,
+/obj/machinery/computer/apc_control{
+ dir = 4
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"hGz" = (
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
@@ -15140,6 +14679,16 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/commons/dorms)
+"hHx" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"hHy" = (
/obj/structure/table/glass,
/obj/item/radio/intercom/directional/west{
@@ -15153,6 +14702,39 @@
},
/turf/open/floor/iron/showroomfloor,
/area/station/medical/pharmacy)
+"hHK" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 9
+ },
+/obj/machinery/button/door{
+ desc = "A door remote control switch for the interior brig doors.";
+ id = "innerbrig";
+ name = "Brig Interior Door Control";
+ normaldoorcontrol = 1;
+ pixel_x = -9;
+ pixel_y = 10;
+ req_access = list("security")
+ },
+/obj/machinery/button/door{
+ desc = "A door remote control switch for the exterior brig doors.";
+ id = "outerbrig";
+ name = "Brig Exterior Door Control";
+ normaldoorcontrol = 1;
+ pixel_x = 9;
+ pixel_y = 10;
+ req_access = list("security")
+ },
+/obj/structure/table,
+/obj/machinery/button/flasher{
+ id = "secentranceflasher";
+ name = "Brig Entrance Flasher";
+ pixel_y = -5;
+ req_access = list("security");
+ pixel_x = -10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/security/office)
"hIn" = (
/obj/structure/fans/tiny/forcefield{
dir = 8
@@ -15221,15 +14803,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"hJH" = (
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
"hJI" = (
/obj/structure/flora/bush/jungle/b/style_random,
/obj/structure/flora/bush/flowers_pp/style_random,
/turf/open/floor/grass,
/area/station/medical/virology)
-"hKs" = (
-/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"hKQ" = (
/obj/effect/turf_decal/stripes{
dir = 5
@@ -15353,6 +14935,10 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"hNg" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"hNi" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible,
/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{
@@ -15462,19 +15048,24 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"hPo" = (
-/obj/structure/chair/wood{
- dir = 8
- },
-/obj/effect/landmark/start/shaft_miner,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"hPI" = (
/obj/effect/turf_decal/siding/white{
dir = 8
},
/turf/closed/wall,
/area/station/service/kitchen)
+"hPK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ id_tag = "Dorm1";
+ name = "Cabin 1"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/service/abandoned_gambling_den/gaming)
"hPO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/effect/turf_decal/trimline/purple/filled/warning,
@@ -15519,6 +15110,14 @@
dir = 1
},
/area/station/engineering/atmos/hfr_room)
+"hQv" = (
+/obj/item/kirbyplants/random,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-11";
+ location = "Hall-10"
+ },
+/turf/open/floor/carpet,
+/area/station/service/chapel)
"hQQ" = (
/obj/machinery/camera/autoname/directional/north,
/obj/machinery/light_switch/directional/north,
@@ -15561,24 +15160,15 @@
dir = 4
},
/area/station/service/chapel)
-"hSy" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/white/line{
- dir = 10;
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/filled/corner{
- color = "#009dc4";
- dir = 4
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-2";
- location = "Hall-1"
+"hSt" = (
+/obj/machinery/fax{
+ fax_name = "Chief Engineer's Office";
+ name = "Chief Engineer's Fax Machine"
},
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central/fore)
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/east,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"hSR" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/highsecurity{
@@ -15651,11 +15241,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"hVc" = (
-/obj/machinery/telecomms/broadcaster/preset_left,
-/obj/structure/cable,
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
"hVe" = (
/obj/machinery/door/airlock/research{
name = "Robotics Lab"
@@ -15827,6 +15412,30 @@
/obj/effect/turf_decal/stripes,
/turf/open/floor/engine,
/area/station/engineering/main)
+"hZz" = (
+/obj/structure/table,
+/obj/item/assembly/igniter{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = 6
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/machinery/camera/directional/east{
+ c_tag = "Xenobiology Lab - Test Chamber";
+ network = list("ss13","rd","xeno")
+ },
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"hZB" = (
/obj/effect/turf_decal/trimline/green/filled/warning,
/obj/effect/turf_decal/trimline/green/warning{
@@ -15835,6 +15444,16 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"hZH" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"hZJ" = (
/obj/structure/closet/secure_closet/atmospherics,
/obj/effect/turf_decal/bot{
@@ -15843,20 +15462,6 @@
/obj/effect/turf_decal/board_number,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"hZV" = (
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
-"iao" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/effect/turf_decal/trimline/brown/mid_joiner,
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"iax" = (
/obj/effect/spawner/random/trash/graffiti,
/obj/structure/cable,
@@ -15943,11 +15548,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
-"idl" = (
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable/industrial,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"idm" = (
/obj/structure/disposaloutlet{
name = "Prisoner Delivery"
@@ -16058,6 +15658,10 @@
/obj/machinery/light/directional/east,
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
+"igF" = (
+/obj/item/grown/bananapeel,
+/turf/open/misc/grass/jungle,
+/area/station/maintenance/port/central)
"ihh" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -16131,6 +15735,26 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"ijh" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Cryogenics Bay"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ id_tag = "medlobby";
+ cycle_id = "medbay_lobby"
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/treatment_center)
"ijM" = (
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/trimline/yellow/filled/corner,
@@ -16158,6 +15782,15 @@
/obj/effect/turf_decal/trimline/blue/line,
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/lobby)
+"ilb" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"ilm" = (
/obj/machinery/door/airlock/public/glass{
name = "General Breakroom"
@@ -16165,15 +15798,10 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/eighties/red,
/area/station/service/electronic_marketing_den)
-"ilC" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 6
- },
-/obj/structure/chair/sofa/corp/left{
- dir = 8
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/storage)
+"ilo" = (
+/obj/machinery/camera/directional/south,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"ilO" = (
/obj/effect/mapping_helpers/airlock/unres{
dir = 4
@@ -16211,6 +15839,16 @@
"imn" = (
/turf/closed/wall/r_wall,
/area/station/science/ordnance/office)
+"imo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/obj/effect/turf_decal/trimline/blue/line{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/treatment_center)
"imq" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 4
@@ -16242,6 +15880,17 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
+"imE" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Base"
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
+/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"imJ" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/red/filled/warning{
@@ -16261,19 +15910,6 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
-"imV" = (
-/obj/structure/cable,
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"inf" = (
/obj/machinery/disposal/delivery_chute,
/obj/structure/disposalpipe/trunk,
@@ -16301,44 +15937,12 @@
dir = 8
},
/area/station/command/bridge)
-"inW" = (
-/obj/structure/closet/secure_closet/warden,
-/obj/item/book/manual/wiki/security_space_law,
-/obj/item/flashlight/seclite,
-/obj/item/gun/ballistic/automatic/pistol/paco,
-/obj/item/ammo_box/magazine/m35/rubber{
- pixel_y = -3;
- pixel_x = -8;
- layer = 3.1
- },
-/obj/item/ammo_box/magazine/m35{
- pixel_y = 10;
- pixel_x = -8;
- layer = 3.1
- },
-/turf/open/floor/pod/dark,
-/area/station/security/warden)
"iok" = (
/mob/living/carbon/human/species/monkey,
/obj/structure/flora/bush/jungle/b/style_random,
/obj/structure/flora/bush/lavendergrass/style_random,
/turf/open/floor/grass,
/area/station/medical/virology)
-"ioy" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/dark_blue/corner{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-24";
- location = "Hall-23"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central/fore)
"ioX" = (
/obj/effect/landmark/start/lawyer,
/obj/machinery/light/directional/west,
@@ -16356,6 +15960,10 @@
},
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
+"ipi" = (
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"ipq" = (
/obj/effect/turf_decal/bot,
/obj/effect/spawner/random/structure/crate_empty,
@@ -16366,6 +15974,14 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/cargo/warehouse)
+"ipv" = (
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
+"ipR" = (
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"iqc" = (
/obj/structure/sign/poster/contraband/rebels_unite{
pixel_y = 36
@@ -16457,6 +16073,14 @@
/obj/machinery/status_display/evac/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"ise" = (
+/obj/item/kirbyplants/random,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-10";
+ location = "Hall-9"
+ },
+/turf/open/floor/carpet,
+/area/station/service/chapel)
"ish" = (
/obj/machinery/computer/scan_consolenew{
dir = 4
@@ -16474,6 +16098,11 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron/dark,
/area/station/service/janitor)
+"isG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/camera/autoname/directional/north,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"itp" = (
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
@@ -16589,11 +16218,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/lab)
-"ivC" = (
-/obj/machinery/duct/industrial/waste,
-/mob/living/simple_animal/bot/cleanbot/autopatrol,
-/turf/open/floor/wood,
-/area/station/commons/lounge)
"ivH" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -16651,10 +16275,6 @@
/obj/machinery/duct/industrial/waste,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
-"ixt" = (
-/obj/machinery/door/airlock/external/glass,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"ixz" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/effect/turf_decal/tile/dark_blue/opposingcorners{
@@ -16675,6 +16295,28 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"ixG" = (
+/obj/machinery/button/ignition{
+ id = "Xenobio";
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/obj/machinery/button/door/directional/north{
+ id = "Xenolab";
+ name = "Test Chamber Blast Doors";
+ pixel_x = 6;
+ pixel_y = -2;
+ req_access = list("xenobiology")
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/machinery/computer/security/telescreen{
+ name = "Test Chamber Monitor";
+ network = list("xeno");
+ pixel_y = 9
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"iya" = (
/obj/effect/spawner/random/trash,
/obj/effect/spawner/random/structure/grille,
@@ -16715,6 +16357,13 @@
/obj/effect/turf_decal/trimline/blue/warning,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"iyU" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"izd" = (
/turf/open/floor/iron/stairs{
dir = 8
@@ -16746,17 +16395,6 @@
/obj/structure/closet/crate/coffin,
/turf/open/floor/carpet/lone/star,
/area/station/service/chapel/office)
-"iAz" = (
-/obj/effect/turf_decal/trimline/brown/corner,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-22";
- location = "Hall-21"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
"iAJ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -16829,30 +16467,16 @@
/obj/effect/turf_decal/trimline/green/line,
/turf/open/floor/iron/dark,
/area/station/service/cafeteria)
-"iDY" = (
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-9";
- location = "Hall-8"
- },
-/turf/open/floor/iron/chapel{
- dir = 4
- },
-/area/station/service/chapel)
+"iDO" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/machinery/light/floor/has_bulb,
+/obj/effect/turf_decal/trimline/brown,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"iEa" = (
/obj/structure/flora/grass/jungle/b/style_random,
/turf/open/misc/grass/jungle,
/area/station/maintenance/port/central)
-"iEh" = (
-/obj/machinery/camera/autoname/directional/south,
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 4;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"iEx" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2,
@@ -16912,15 +16536,6 @@
color = "#999999"
},
/area/station/science/robotics)
-"iGp" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/obj/structure/cable/industrial,
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/turf/open/floor/plating,
-/area/station/command/heads_quarters/ce)
"iGA" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -16929,24 +16544,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"iGD" = (
-/obj/effect/turf_decal/trimline/purple/filled/line{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/turf/open/floor/iron/dark/textured_corner{
- dir = 8
- },
-/area/station/science/lobby)
"iGL" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/structure/window/reinforced/spawner/directional/east,
@@ -17212,10 +16809,6 @@
/obj/structure/sign/departments/science,
/turf/closed/wall/r_wall,
/area/station/science/lobby)
-"iLU" = (
-/obj/machinery/processor/slime,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"iLY" = (
/obj/structure/chair{
dir = 1
@@ -17230,6 +16823,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
+"iMn" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"iMo" = (
/obj/machinery/light/directional/south,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -17302,28 +16900,30 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"iNI" = (
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/obj/effect/turf_decal/trimline/blue/line{
+ dir = 1
+ },
+/obj/machinery/computer/operating{
+ dir = 1
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"iNW" = (
/turf/closed/wall,
/area/station/hallway/secondary/exit/departure_lounge)
-"iNX" = (
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
-"iON" = (
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 8
+"iOf" = (
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
},
-/obj/machinery/camera/autoname/directional/west,
-/obj/machinery/button/door/directional/west{
- id = "cargodoor"
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
},
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"iPh" = (
/obj/structure/cable,
/turf/closed/wall,
@@ -17452,12 +17052,6 @@
color = "#999999"
},
/area/station/science/robotics)
-"iTd" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/closed/wall,
-/area/station/cargo/storage)
"iTD" = (
/obj/structure/table/wood,
/obj/machinery/computer/security/wooden_tv,
@@ -17471,21 +17065,19 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
-"iUt" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
-"iUE" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"iUj" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
},
-/obj/machinery/camera/autoname/directional/south,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 10
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/machinery/status_display/evac/directional/north,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-1";
+ location = "Escape-4"
},
/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+/area/station/hallway/secondary/exit/departure_lounge)
"iUI" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -17569,6 +17161,15 @@
"iWZ" = (
/turf/closed/wall,
/area/station/service/theater)
+"iXo" = (
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"iXN" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -17602,12 +17203,6 @@
dir = 8
},
/area/station/service/chapel)
-"iYs" = (
-/obj/machinery/sparker/directional/north{
- id = "Xenobio"
- },
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"iYt" = (
/obj/structure/disposalpipe/segment,
/obj/structure/disposalpipe/segment{
@@ -17616,6 +17211,10 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/surgery/theatre)
+"iZv" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"iZy" = (
/obj/structure/table/reinforced,
/obj/item/storage/secure/safe/directional/north,
@@ -17685,6 +17284,13 @@
/obj/effect/landmark/start/warden,
/turf/open/floor/wood/large,
/area/station/security/warden)
+"jbP" = (
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"jbU" = (
/obj/structure/cable/industrial,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -17792,6 +17398,13 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"jef" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/box,
+/obj/machinery/portable_atmospherics/canister,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"jej" = (
/obj/machinery/door/airlock/external,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -17816,6 +17429,11 @@
/obj/machinery/plumbing/floor_pump/input/on/waste/directional/south,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"jeA" = (
+/obj/machinery/cart,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"jeT" = (
/obj/structure/table,
/obj/item/paper_bin,
@@ -17967,21 +17585,6 @@
/obj/machinery/air_sensor/nitrogen_tank,
/turf/open/floor/engine/n2,
/area/station/engineering/atmos)
-"jja" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 8
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"jjd" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -18063,15 +17666,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"jkE" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"jkG" = (
/obj/structure/table/reinforced,
/obj/item/stack/sheet/plasteel{
@@ -18134,13 +17728,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"jlQ" = (
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/structure/disposalpipe/segment,
-/obj/effect/mapping_helpers/airlock/unres,
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/aft)
"jmd" = (
/obj/structure/bodycontainer/morgue,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -18155,6 +17742,17 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"jns" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"jnw" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -18224,20 +17822,13 @@
/turf/open/floor/iron/dark,
/area/station/security/office)
"jpe" = (
-/obj/machinery/airalarm/directional/north,
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 1
},
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
-"jpi" = (
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 10
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+/area/station/bitrunning/den)
"jpm" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment{
@@ -18255,10 +17846,6 @@
/obj/structure/table/wood,
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
-"jpS" = (
-/obj/effect/turf_decal/tile/blue/fourcorners,
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"jpZ" = (
/obj/machinery/computer/security{
dir = 8
@@ -18282,22 +17869,6 @@
/obj/structure/altar_of_gods,
/turf/open/floor/carpet,
/area/station/service/chapel)
-"jqM" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/white/filled/warning{
- dir = 1;
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/warning{
- color = "#009dc4"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-15";
- location = "Hall-14"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"jrg" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/turf_decal/bot,
@@ -18362,21 +17933,27 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"jtw" = (
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 10
+"jtG" = (
+/obj/structure/table,
+/obj/item/reagent_containers/cup/glass/waterbottle/large{
+ pixel_x = 5;
+ pixel_y = 20
},
-/obj/effect/turf_decal/trimline/red/corner{
- dir = 4
+/obj/item/reagent_containers/cup/glass/waterbottle{
+ pixel_x = 7
},
-/obj/machinery/flasher/directional/east{
- id = "secentranceflasher";
- pixel_x = -26
+/obj/item/plate{
+ pixel_x = -9
+ },
+/obj/effect/spawner/random/food_or_drink/donkpockets{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
},
-/obj/machinery/light/floor/has_bulb,
-/mob/living/simple_animal/bot/secbot/beepsky,
/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
+/area/station/cargo/storage)
"jtJ" = (
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
@@ -18396,6 +17973,12 @@
/obj/effect/turf_decal/trimline/purple/filled/line,
/turf/open/floor/iron/white/textured_large,
/area/station/science/robotics/lab)
+"jug" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/spawner/random/structure/crate_empty,
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"juZ" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Power Monitoring"
@@ -18429,6 +18012,17 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/storage)
+"jve" = (
+/obj/machinery/camera/autoname/directional/south,
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"jvk" = (
/obj/structure/table,
/obj/structure/window/reinforced/spawner/directional/east,
@@ -18491,13 +18085,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
-"jwO" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"jwY" = (
/obj/effect/turf_decal/trimline/brown/filled/warning{
dir = 8
@@ -18561,6 +18148,18 @@
/obj/effect/mapping_helpers/airlock/access/all/supply/mining,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
+"jzn" = (
+/obj/structure/lattice,
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/plating/ocean,
+/area/ocean/near_station_powered)
"jzp" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/cable,
@@ -18597,6 +18196,16 @@
/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
+"jAu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera/autoname/directional/south,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"jAG" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
@@ -18722,10 +18331,6 @@
/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen)
-"jCH" = (
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"jDm" = (
/obj/effect/spawner/random/vendor_meal_sides,
/obj/structure/closet/emcloset,
@@ -18796,6 +18401,13 @@
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"jEU" = (
+/obj/machinery/camera/autoname/directional/south,
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/item/stock_parts/cell,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"jFi" = (
/obj/effect/turf_decal/stripes{
dir = 9
@@ -18863,6 +18475,18 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
+"jGW" = (
+/obj/machinery/computer/piratepad_control/civilian{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"jGY" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -18891,6 +18515,12 @@
/obj/structure/cable,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/cmo)
+"jId" = (
+/obj/structure/cable/industrial,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/plating/ocean,
+/area/ocean)
"jIt" = (
/obj/structure/bed,
/obj/item/bedsheet/dorms,
@@ -18911,6 +18541,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
+"jIO" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"jIQ" = (
/obj/structure/cable,
/turf/open/floor/wood,
@@ -18935,6 +18574,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"jJi" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/corner{
+ dir = 8
+ },
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring"
+ },
+/turf/open/floor/iron/dark,
+/area/station/engineering/atmos)
"jJy" = (
/obj/effect/turf_decal/tile/neutral/fourcorners{
color = "#009dc4"
@@ -19059,24 +18711,17 @@
/obj/effect/turf_decal/trimline/green/line,
/turf/open/floor/iron/dark,
/area/station/service/cafeteria)
+"jMb" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"jMd" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
-"jMi" = (
-/obj/machinery/light_switch/directional/south,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 4
- },
-/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/machinery/defibrillator_mount/directional/south,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"jMq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -19134,16 +18779,6 @@
/obj/structure/table/wood,
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
-"jNs" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/closet/secure_closet/cytology,
-/turf/open/floor/holofloor/dark,
-/area/station/science/cytology)
"jNH" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -19242,6 +18877,15 @@
/obj/structure/cable/industrial,
/turf/open/floor/glass/reinforced,
/area/station/engineering/main)
+"jPF" = (
+/obj/structure/rack,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/syringes,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"jQc" = (
/obj/machinery/camera/directional/north{
c_tag = "AI Upload Foyer";
@@ -19261,6 +18905,22 @@
},
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
+"jQl" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 6
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-21";
+ location = "Hall-20"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"jQW" = (
/obj/structure/rack,
/obj/machinery/light_switch/directional/west,
@@ -19283,14 +18943,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"jRw" = (
-/obj/structure/cable/industrial,
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 1
- },
-/obj/machinery/computer/cargo/engineering,
-/turf/open/floor/iron/dark/textured,
-/area/station/engineering/main)
"jRC" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -19303,18 +18955,21 @@
"jRD" = (
/turf/closed/wall,
/area/station/science/lobby)
-"jRR" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
+"jRG" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Xenolab";
+ name = "Test Chamber Blast Door"
},
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
+/obj/machinery/door/window/left/directional/south{
+ dir = 4;
+ name = "Maximum Security Test Chamber";
+ req_access = list("xenobiology")
},
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
+/obj/structure/cable,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"jRX" = (
/obj/structure/cable,
/obj/effect/turf_decal/plaque{
@@ -19405,24 +19060,6 @@
},
/turf/open/floor/iron/kitchen_coldroom/freezerfloor,
/area/station/medical/coldroom)
-"jUd" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/tile/brown/opposingcorners{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/cargo/sorting)
-"jUk" = (
-/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
-/obj/machinery/door/airlock/highsecurity{
- name = "Secure Network Access"
- },
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"jUr" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -19494,6 +19131,14 @@
dir = 8
},
/area/station/cargo/miningoffice)
+"jWG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/holopad,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"jWO" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -19690,6 +19335,12 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
+"jZW" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"jZX" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -19713,6 +19364,17 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/brig)
+"kaH" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
+"kbi" = (
+/obj/structure/flora/grass/jungle/a/style_random,
+/mob/living/carbon/human/species/monkey,
+/turf/open/misc/grass/jungle,
+/area/station/maintenance/port/central)
"kbp" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -19735,14 +19397,6 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
-"kcC" = (
-/obj/structure/cable,
-/obj/machinery/door/airlock/external{
- name = "Escape Pod Four";
- space_dir = 4
- },
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/fore)
"kcH" = (
/obj/machinery/button/door/directional/north{
id = "roboticsprivacy";
@@ -19802,15 +19456,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"kdI" = (
-/obj/structure/table/wood,
-/obj/machinery/light_switch/directional/east,
-/obj/item/reagent_containers/cup/rag{
- pixel_y = 7
- },
-/obj/item/holosign_creator/robot_seat/bar,
-/turf/open/floor/carpet/neon/simple/green/nodots,
-/area/station/service/bar)
"kdT" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 1
@@ -19995,15 +19640,6 @@
},
/turf/open/floor/plating,
/area/station/cargo/warehouse)
-"khS" = (
-/obj/effect/turf_decal/trimline/purple/filled/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/arrow_cw{
- dir = 10
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/lobby)
"kie" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/purple/filled/warning,
@@ -20027,6 +19663,9 @@
},
/turf/open/floor/iron/white/textured_edge,
/area/station/command/bridge)
+"kiM" = (
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"kjc" = (
/obj/effect/spawner/random/structure/crate_loot,
/turf/open/floor/plating,
@@ -20065,6 +19704,14 @@
},
/turf/open/floor/iron/dark,
/area/station/commons/fitness/recreation/entertainment)
+"kkl" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/effect/landmark/start/scientist,
+/obj/machinery/light_switch/directional/south,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"kkp" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -20093,11 +19740,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"kkX" = (
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/north,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"klb" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -20428,6 +20070,26 @@
/obj/effect/base_turf_modifier/pit,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
+"ktm" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/wood,
+/area/station/cargo/miningoffice)
+"kto" = (
+/obj/structure/fans/tiny/forcefield,
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit/departure_lounge)
+"kty" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"ktC" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -20439,6 +20101,21 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"kuM" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/red/corner{
+ dir = 4
+ },
+/obj/machinery/flasher/directional/east{
+ id = "secentranceflasher";
+ pixel_x = -26
+ },
+/obj/machinery/light/floor/has_bulb,
+/mob/living/simple_animal/bot/secbot/beepsky,
+/turf/open/floor/iron/dark/textured,
+/area/station/security/office)
"kuO" = (
/turf/open/floor/iron/vaporwave,
/area/station/service/library)
@@ -20467,19 +20144,17 @@
/obj/effect/landmark/start/detective,
/turf/open/floor/iron/grimy,
/area/station/security/detectives_office)
-"kwc" = (
-/obj/effect/turf_decal/trimline/green/filled/line{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/green/corner{
- dir = 4
+"kvV" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
},
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-16";
- location = "Hall-15"
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
},
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"kwp" = (
/obj/structure/cable,
/obj/machinery/light/floor/has_bulb,
@@ -20522,15 +20197,9 @@
/obj/item/stack/sheet/rglass/fifty,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"kxu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 6
- },
-/obj/machinery/cart,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+"kxG" = (
+/turf/closed/wall/r_wall,
+/area/station/cargo/warehouse/upper)
"kxO" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment{
@@ -20578,18 +20247,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit/departure_lounge)
-"kyM" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/trimline/brown/mid_joiner,
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"kzg" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light/directional/west,
@@ -20613,11 +20270,6 @@
/obj/structure/fans/tiny/forcefield,
/turf/open/floor/iron/dark,
/area/station/commons/fitness/recreation/entertainment)
-"kzJ" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/structure/closet/l3closet/virology,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"kzO" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -20704,6 +20356,11 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"kBA" = (
+/obj/structure/sign/warning/secure_area,
+/obj/effect/base_turf_modifier/pit,
+/turf/closed/wall/r_wall/rust,
+/area/station/ai_monitored/turret_protected/ai)
"kBB" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -20744,11 +20401,6 @@
},
/turf/open/floor/iron/dark,
/area/station/security/office)
-"kCx" = (
-/obj/machinery/atmospherics/components/binary/pump,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"kCz" = (
/turf/closed/wall/r_wall,
/area/station/service/theater)
@@ -20843,28 +20495,6 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/engine,
/area/station/hallway/secondary/entry)
-"kEz" = (
-/obj/machinery/button/ignition{
- id = "Xenobio";
- pixel_x = -4;
- pixel_y = -3
- },
-/obj/machinery/button/door/directional/north{
- id = "Xenolab";
- name = "Test Chamber Blast Doors";
- pixel_x = 6;
- pixel_y = -2;
- req_access = list("xenobiology")
- },
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/machinery/computer/security/telescreen{
- name = "Test Chamber Monitor";
- network = list("xeno");
- pixel_y = 9
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"kFG" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -20925,6 +20555,12 @@
},
/turf/open/floor/carpet/executive,
/area/station/commons/vacant_room/commissary)
+"kGm" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/start/shaft_miner,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"kGz" = (
/obj/effect/landmark/start/chaplain,
/obj/structure/cable,
@@ -20933,17 +20569,6 @@
},
/turf/open/floor/carpet/lone/star,
/area/station/service/chapel/office)
-"kGA" = (
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/machinery/door/airlock/command/glass{
- name = "Chief Engineer"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/ce,
-/turf/open/floor/iron,
-/area/station/command/heads_quarters/ce)
"kGQ" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -20969,9 +20594,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"kHV" = (
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"kHX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -21052,19 +20674,19 @@
},
/turf/open/floor/engine,
/area/station/science/xenobiology)
-"kJB" = (
+"kJA" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
+ dir = 6
},
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
+/obj/effect/turf_decal/trimline/purple/filled/corner,
+/obj/effect/turf_decal/trimline/purple/arrow_cw{
+ dir = 9
},
/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
+/area/station/science/lobby)
"kJF" = (
/obj/machinery/newscaster/directional/east,
/obj/effect/turf_decal/trimline/green/line,
@@ -21128,12 +20750,39 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
+"kKC" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"kKO" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 8
},
/turf/open/floor/iron/dark/textured,
/area/station/security/courtroom)
+"kKP" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-7";
+ location = "Hall-6"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/medbay/lobby)
"kKW" = (
/obj/effect/turf_decal/stripes{
dir = 4
@@ -21165,10 +20814,6 @@
},
/turf/open/floor/plating,
/area/station/security/checkpoint/customs)
-"kLz" = (
-/obj/effect/landmark/start/shaft_miner,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"kLF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -21279,6 +20924,21 @@
/obj/effect/base_turf_modifier/pit,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
+"kNY" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/effect/mapping_helpers/airlock/unres,
+/obj/machinery/door/airlock/mining/glass{
+ id_tag = "innercargo";
+ name = "Cargo Bay"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"kOf" = (
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/eighties/red,
@@ -21312,20 +20972,6 @@
/obj/machinery/power/apc/auto_name/directional/east,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
-"kOL" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-8";
- location = "Hall-7"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"kOM" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -21412,16 +21058,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/lockers)
-"kQD" = (
-/obj/machinery/computer/prisoner/management{
- dir = 4
- },
-/obj/item/food/spaghetti/security{
- pixel_x = 5;
- pixel_y = 5
- },
-/turf/open/floor/carpet/red,
-/area/station/command/heads_quarters/hos)
"kQL" = (
/obj/structure/table/reinforced,
/obj/item/stack/sheet/glass/fifty,
@@ -21558,6 +21194,9 @@
/obj/effect/turf_decal/tile/blue/full,
/turf/open/floor/iron/dark/textured_large,
/area/station/medical/medbay/central)
+"kUi" = (
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"kUl" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -21611,6 +21250,17 @@
/obj/effect/turf_decal/trimline/blue/filled/warning,
/turf/open/floor/iron/showroomfloor,
/area/station/commons/toilet/restrooms)
+"kUY" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/cargo/miningoffice)
"kVq" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
@@ -21656,6 +21306,12 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/iron/dark,
/area/station/service/chapel/office)
+"kWk" = (
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"kWz" = (
/obj/machinery/camera/directional/west,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -21795,6 +21451,17 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"lbi" = (
+/obj/effect/turf_decal/trimline/brown/corner,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-22";
+ location = "Hall-21"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"lbq" = (
/obj/effect/turf_decal/tile/neutral/fourcorners{
color = "#009dc4"
@@ -21913,11 +21580,6 @@
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"lfN" = (
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"lfO" = (
/obj/structure/cable,
/turf/open/floor/carpet,
@@ -21949,6 +21611,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"lfY" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/spawner/random/structure/crate_empty,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"lgg" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/holopad,
@@ -21984,6 +21655,12 @@
/obj/effect/turf_decal/trimline/red/filled/warning,
/turf/open/floor/iron/dark/textured,
/area/station/security/interrogation)
+"lgN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/station/cargo/storage)
"lgP" = (
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/siding/wood{
@@ -22023,23 +21700,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/maintenance/port/aft)
-"lhq" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/white/warning{
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/filled/warning{
- dir = 1;
- color = "#009dc4"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-12";
- location = "Hall-11"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"lhr" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Power Monitoring"
@@ -22131,21 +21791,6 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/station/service/electronic_marketing_den)
-"ljE" = (
-/obj/machinery/door/airlock/medical/glass{
- id_tag = "MedbayFoyer";
- name = "Medbay Clinic"
- },
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/central)
"lkB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
@@ -22222,15 +21867,6 @@
},
/turf/open/floor/carpet,
/area/station/medical/medbay/central)
-"lmk" = (
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 5
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"lms" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/green/filled/warning,
@@ -22267,6 +21903,11 @@
/obj/machinery/computer/old,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"lmI" = (
+/obj/machinery/duct/industrial/waste,
+/mob/living/simple_animal/bot/cleanbot/autopatrol,
+/turf/open/floor/wood,
+/area/station/commons/lounge)
"lmO" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/green/filled/warning,
@@ -22278,11 +21919,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
-"loR" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/machinery/camera/autoname/directional/north,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"loV" = (
/obj/machinery/door/airlock/command/glass{
name = "Bridge"
@@ -22313,26 +21949,12 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"lpP" = (
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"lpX" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
/turf/open/floor/engine,
/area/station/science/robotics/mechbay)
-"lpY" = (
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
"lqa" = (
/obj/structure/cable,
/turf/open/floor/iron,
@@ -22355,6 +21977,15 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"lrg" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"lrt" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -22366,6 +21997,14 @@
},
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"lrK" = (
+/obj/effect/spawner/random/structure/crate_empty,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"lrO" = (
/obj/machinery/door/airlock/security{
name = "Armory"
@@ -22443,22 +22082,6 @@
},
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
-"ltW" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/purple/filled/warning,
-/obj/effect/turf_decal/trimline/purple/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/purple/filled/mid_joiner,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-5";
- location = "Hall-4"
- },
-/turf/open/floor/iron/dark/textured_edge,
-/area/station/hallway/primary/central)
"ltZ" = (
/obj/effect/turf_decal/tile/blue/full,
/obj/effect/turf_decal/siding/white{
@@ -22520,6 +22143,12 @@
},
/turf/closed/wall,
/area/station/maintenance/starboard/aft)
+"lvt" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"lvw" = (
/turf/open/floor/iron,
/area/station/engineering/atmos)
@@ -22560,20 +22189,6 @@
/obj/effect/turf_decal/trimline/red/filled/warning,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
-"lwj" = (
-/obj/structure/plasticflaps,
-/obj/machinery/conveyor/auto{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner/directional/east,
-/obj/structure/window/reinforced/spawner/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"lwu" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -22630,13 +22245,6 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/freezer,
/area/station/service/kitchen/coldroom)
-"lyz" = (
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/obj/machinery/disposal/bin,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"lyP" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor,
@@ -22679,6 +22287,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/large,
/area/station/security/warden)
+"lzG" = (
+/obj/machinery/light/floor/has_bulb,
+/obj/effect/turf_decal/trimline/blue,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/lobby)
"lzJ" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 10
@@ -22715,6 +22331,15 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/commons/storage/emergency/port)
+"lzS" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/blue/line{
+ dir = 10
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/lobby)
"lzW" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -22770,6 +22395,10 @@
"lAH" = (
/turf/open/floor/carpet/neon/simple/white,
/area/station/commons/dorms)
+"lAK" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/plating,
+/area/station/cargo/warehouse/upper)
"lAM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -22780,6 +22409,11 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/central)
+"lAP" = (
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/north,
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"lBf" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -22787,6 +22421,14 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/science/lobby)
+"lBo" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/trimline/brown/corner,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"lBw" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
@@ -22833,16 +22475,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"lCu" = (
-/obj/machinery/light/neon_lining{
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 8;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"lCz" = (
/obj/structure/sign/departments/chemistry/pharmacy,
/obj/machinery/vending/drugs,
@@ -22958,6 +22590,10 @@
/obj/machinery/disposal/bin,
/turf/open/floor/iron/dark,
/area/station/service/chapel/office)
+"lEJ" = (
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"lFa" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
@@ -23081,9 +22717,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"lHr" = (
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"lHt" = (
/turf/open/floor/iron/chapel{
dir = 8
@@ -23115,15 +22748,14 @@
/mob/living/basic/cockroach,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
-"lHT" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 8
+"lHR" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 9
},
+/obj/effect/turf_decal/trimline/red/corner,
+/obj/machinery/light/floor/has_bulb,
/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
+/area/station/security/office)
"lHZ" = (
/obj/machinery/door/window{
atom_integrity = 300;
@@ -23165,6 +22797,28 @@
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"lJl" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/obj/effect/turf_decal/trimline/blue/warning{
+ dir = 1
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Cryogenics Bay"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ id_tag = "medlobby";
+ cycle_id = "medbay_lobby"
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/treatment_center)
"lJE" = (
/obj/structure/table/glass/plasmaglass,
/obj/item/electronics/airlock,
@@ -23253,26 +22907,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
-"lMc" = (
-/obj/machinery/piratepad/civilian,
-/obj/effect/turf_decal/bot_white,
-/obj/structure/railing{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"lMo" = (
/obj/structure/window/spawner/directional/south,
/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{
@@ -23291,6 +22925,10 @@
},
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
+"lMM" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"lNA" = (
/obj/effect/turf_decal/trimline/yellow/filled/line,
/turf/open/floor/iron/dark/textured,
@@ -23404,16 +23042,13 @@
dir = 4
},
/area/station/engineering/atmos/hfr_room)
-"lQe" = (
-/obj/machinery/computer/records/medical{
- dir = 4
- },
-/obj/machinery/light/directional/west,
-/obj/machinery/newscaster/directional/west,
-/obj/structure/cable,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
+"lPX" = (
+/obj/structure/table/wood,
+/obj/item/food/baguette,
+/obj/item/reagent_containers/cup/glass/bottle/bottleofnothing,
+/obj/machinery/light/very_dim/directional/north,
+/turf/open/floor/iron/grimy,
+/area/station/service/theater/abandoned)
"lQl" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{
dir = 1
@@ -23427,19 +23062,6 @@
/obj/structure/cable,
/turf/open/floor/iron/grimy,
/area/station/commons/fitness/recreation)
-"lQN" = (
-/obj/machinery/meter,
-/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/yellow/filled/corner{
- dir = 8
- },
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring"
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/atmos)
"lQP" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
@@ -23450,6 +23072,11 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/hallway/primary/central)
+"lQT" = (
+/obj/machinery/light/directional/south,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"lRd" = (
/obj/structure/cable,
/obj/effect/turf_decal/plaque{
@@ -23462,6 +23089,22 @@
/obj/item/phone,
/turf/open/floor/carpet/blue,
/area/station/security/checkpoint/customs)
+"lRh" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/item/shield/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/shield/riot,
+/obj/item/shield/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/floor/iron/smooth,
+/area/station/ai_monitored/security/armory)
"lRV" = (
/obj/structure/bed/dogbed,
/mob/living/basic/chicken/clown,
@@ -23520,13 +23163,6 @@
"lTb" = (
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/cmo)
-"lTI" = (
-/obj/structure/chair/comfy/black{
- dir = 4
- },
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"lTN" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 6
@@ -23591,19 +23227,6 @@
/obj/machinery/modular_computer/console/preset/id,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
-"lVC" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/green/corner,
-/obj/effect/turf_decal/trimline/green/filled/warning{
- dir = 9
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-17";
- location = "Hall-16"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"lVD" = (
/obj/machinery/camera/directional/north,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -23672,34 +23295,26 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"lXt" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
+"lYf" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "cargodoor"
},
-/obj/structure/cable/industrial,
/turf/open/floor/plating,
-/area/station/command/heads_quarters/ce)
-"lYm" = (
-/obj/structure/closet/emcloset,
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
-"lYV" = (
-/obj/machinery/airalarm/directional/north,
-/obj/structure/closet/crate/freezer,
-/obj/item/reagent_containers/blood/random,
-/obj/item/reagent_containers/blood/random,
-/obj/item/reagent_containers/blood/random,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
-"lZa" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
+/area/station/cargo/storage)
+"lYt" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/purple/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/purple/corner{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-6";
+ location = "Hall-5"
},
/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+/area/station/hallway/primary/central)
"lZe" = (
/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4,
/turf/open/floor/iron,
@@ -23745,6 +23360,48 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"mam" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -3
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -3
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -3
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -3
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 3
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 3
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 3
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 3
+ },
+/obj/machinery/door/window/right/directional/south{
+ name = "Surgical Supplies";
+ req_access = list("surgery")
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"maA" = (
/obj/structure/chair/office{
dir = 8
@@ -23789,20 +23446,30 @@
},
/turf/open/floor/iron,
/area/station/commons/vacant_room/commissary)
-"mbF" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/light/floor/has_bulb,
-/obj/effect/turf_decal/trimline/brown,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"mca" = (
/turf/open/floor/engine,
/area/station/commons/storage/emergency/port)
"mcu" = (
/turf/closed/wall/rust,
/area/station/service/library)
+"mcB" = (
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
+"mcL" = (
+/obj/structure/table/reinforced,
+/obj/item/flashlight/lamp,
+/obj/item/computer_disk/atmos,
+/obj/machinery/camera/directional/north{
+ c_tag = "Chief Engineer's Office"
+ },
+/obj/machinery/requests_console/directional/north{
+ announcementConsole = 1;
+ department = "Chief Engineer's Desk";
+ name = "Chief Engineer's Requests Console";
+ anon_tips_receiver = 1
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"mdc" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -23815,6 +23482,11 @@
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/wood,
/area/station/commons/lounge)
+"mdl" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"mdD" = (
/obj/structure/cable,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
@@ -23877,6 +23549,19 @@
/obj/structure/cable,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar/backroom)
+"mfz" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/tile/neutral/fourcorners{
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/red/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/warning,
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/turret_protected/ai_upload)
"mgc" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/trimline/purple/filled/line{
@@ -23887,6 +23572,24 @@
},
/turf/open/floor/iron/white/textured_large,
/area/station/science/robotics/lab)
+"mgA" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/effect/mapping_helpers/airlock/unres,
+/obj/machinery/door/airlock/mining/glass{
+ id_tag = "innercargo";
+ name = "Cargo Bay"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"mhc" = (
/obj/effect/turf_decal/stripes{
dir = 4
@@ -23957,15 +23660,6 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/engine,
/area/station/science/robotics/mechbay)
-"mjS" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 4
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"mjY" = (
/obj/structure/cable,
/obj/structure/disposalpipe/junction{
@@ -23974,6 +23668,13 @@
/obj/effect/turf_decal/trimline/purple/filled/warning,
/turf/open/floor/iron/white,
/area/station/science/robotics/mechbay)
+"mko" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/turf/closed/wall/r_wall,
+/area/station/medical/treatment_center)
"mkv" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -23981,16 +23682,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"mkz" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"mkE" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod Two";
@@ -24020,6 +23711,15 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"mln" = (
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/mob/living/simple_animal/sloth/citrus,
+/turf/open/floor/wood,
+/area/station/command/heads_quarters/qm)
"mlu" = (
/obj/effect/turf_decal/tile/green/half/contrasted{
dir = 8
@@ -24087,12 +23787,6 @@
/obj/effect/turf_decal/trimline/yellow/filled/corner,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"mnJ" = (
-/obj/machinery/door/poddoor/shutters{
- id = "cargodoor"
- },
-/turf/open/floor/plating,
-/area/station/cargo/storage)
"mnO" = (
/obj/machinery/door/window/brigdoor/security/cell{
id = "Cell 1";
@@ -24190,6 +23884,18 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark/textured,
/area/station/commons/storage/primary)
+"mpz" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/trimline/brown/mid_joiner,
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"mqy" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 9
@@ -24242,17 +23948,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white/textured_edge,
/area/station/command/bridge)
-"mrI" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Central Access"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"mrJ" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 5
@@ -24294,6 +23989,17 @@
/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"msl" = (
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"msv" = (
/obj/structure/fans/tiny/forcefield,
/obj/machinery/door/poddoor/shutters{
@@ -24311,6 +24017,39 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"msQ" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/warning,
+/obj/machinery/door/airlock/medical/glass{
+ name = "Cryogenics Bay"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ id_tag = "medlobby";
+ cycle_id = "medbay_lobby"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/medbay/lobby)
+"msT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"mtb" = (
/obj/structure/table/wood/fancy/orange,
/obj/item/clothing/mask/cigarette/cigar{
@@ -24358,6 +24097,16 @@
dir = 4
},
/area/station/engineering/main)
+"mtQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Xenolab";
+ name = "Test Chamber Blast Door"
+ },
+/obj/structure/cable,
+/obj/structure/sign/warning/electric_shock,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"mtV" = (
/obj/machinery/computer/cargo,
/obj/machinery/light/neon_lining{
@@ -24478,13 +24227,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"mwD" = (
-/obj/structure/closet/secure_closet/miner,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"mxp" = (
/obj/structure/cable,
/obj/machinery/plumbing/floor_pump/input/on/waste/directional/south,
@@ -24532,14 +24274,6 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
-"myB" = (
-/obj/item/kirbyplants/random,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-11";
- location = "Hall-10"
- },
-/turf/open/floor/carpet,
-/area/station/service/chapel)
"mzD" = (
/obj/effect/spawner/random/structure/table_or_rack,
/obj/structure/cable,
@@ -24557,6 +24291,18 @@
/obj/effect/turf_decal/tile/purple/opposingcorners,
/turf/open/floor/iron/dark/textured,
/area/station/science/lab)
+"mAg" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
+"mAw" = (
+/obj/structure/closet/secure_closet/miner,
+/turf/open/floor/engine,
+/area/station/cargo/miningoffice)
"mAA" = (
/obj/machinery/telecomms/bus/preset_four,
/turf/open/floor/iron/dark/telecomms,
@@ -24632,10 +24378,27 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/brig)
+"mCi" = (
+/obj/machinery/telecomms/processor/preset_three,
+/obj/machinery/camera/autoname/directional/east,
+/turf/open/floor/circuit/green/telecomms/mainframe,
+/area/station/tcommsat/server)
+"mCB" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/landmark/start/virologist,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"mCG" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/science/xenobiology)
"mCO" = (
@@ -24822,6 +24585,26 @@
/obj/machinery/camera/directional/north,
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen)
+"mIl" = (
+/obj/structure/rack,
+/obj/item/grenade/barrier{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/grenade/barrier,
+/obj/item/grenade/barrier{
+ pixel_x = 3;
+ pixel_y = -1
+ },
+/obj/item/grenade/barrier{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 6
+ },
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/security/armory)
"mIp" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/security_space_law,
@@ -24878,22 +24661,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"mKe" = (
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring"
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/atmos)
-"mKj" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"mKU" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/bedsheet/mime/double,
@@ -25159,27 +24926,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"mRF" = (
-/obj/structure/table,
-/obj/item/reagent_containers/cup/glass/waterbottle/large{
- pixel_x = 5;
- pixel_y = 20
- },
-/obj/item/reagent_containers/cup/glass/waterbottle{
- pixel_x = 7
- },
-/obj/item/plate{
- pixel_x = -9
- },
-/obj/effect/spawner/random/food_or_drink/donkpockets{
- pixel_x = -9;
- pixel_y = 3
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 10
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"mRO" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/brown/filled/warning,
@@ -25224,22 +24970,6 @@
"mSq" = (
/turf/closed/wall,
/area/station/maintenance/port/central)
-"mSN" = (
-/obj/effect/turf_decal/siding/brown{
- dir = 1
- },
-/obj/machinery/keycard_auth/directional/north,
-/turf/open/floor/carpet/executive,
-/area/station/command/bridge)
-"mSO" = (
-/obj/structure/cable/industrial,
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/plating,
-/area/station/command/heads_quarters/ce)
"mSS" = (
/obj/structure/spider/stickyweb,
/turf/open/floor/plating,
@@ -25254,11 +24984,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
-"mTs" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/turf/open/floor/wood,
-/area/station/service/hydroponics/upper)
"mTt" = (
/obj/machinery/shower/directional/north,
/obj/structure/curtain,
@@ -25292,26 +25017,6 @@
/obj/effect/spawner/random/structure/musician/piano/random_piano,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"mTM" = (
-/obj/structure/rack,
-/obj/item/grenade/barrier{
- pixel_x = -3;
- pixel_y = 1
- },
-/obj/item/grenade/barrier,
-/obj/item/grenade/barrier{
- pixel_x = 3;
- pixel_y = -1
- },
-/obj/item/grenade/barrier{
- pixel_x = 6;
- pixel_y = -2
- },
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/security/armory)
"mUa" = (
/obj/structure/cable,
/obj/machinery/door/airlock/security{
@@ -25332,6 +25037,10 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"mUq" = (
+/obj/structure/lattice,
+/turf/open/floor/plating/ocean,
+/area/station/science/xenobiology)
"mUx" = (
/obj/structure/cable,
/obj/structure/disposalpipe/trunk{
@@ -25470,21 +25179,6 @@
},
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
-"mXO" = (
-/obj/machinery/door/poddoor/preopen{
- id = "Xenolab";
- name = "Test Chamber Blast Door"
- },
-/obj/effect/turf_decal/bot,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
-/obj/machinery/door/window/left/directional/south{
- dir = 4;
- name = "Maximum Security Test Chamber";
- req_access = list("xenobiology")
- },
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"mYo" = (
/obj/effect/landmark/start/assistant,
/obj/effect/turf_decal/tile/blue/diagonal_centre,
@@ -25659,6 +25353,13 @@
/obj/effect/turf_decal/tile/brown/fourcorners,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
+"ncf" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/blue/line{
+ dir = 9
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/lobby)
"ncg" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -25726,6 +25427,25 @@
dir = 4
},
/area/station/science/lobby)
+"neg" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"neh" = (
/obj/effect/turf_decal/siding/blue{
dir = 8
@@ -25829,6 +25549,14 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"ngJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"ngN" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -26087,6 +25815,23 @@
/obj/item/reagent_containers/cup/glass/bottle/hooch,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"nls" = (
+/obj/structure/closet/secure_closet/warden,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/flashlight/seclite,
+/obj/item/gun/ballistic/automatic/pistol/paco,
+/obj/item/ammo_box/magazine/m35/rubber{
+ pixel_y = -3;
+ pixel_x = -8;
+ layer = 3.1
+ },
+/obj/item/ammo_box/magazine/m35{
+ pixel_y = 10;
+ pixel_x = -8;
+ layer = 3.1
+ },
+/turf/open/floor/pod/dark,
+/area/station/security/warden)
"nlQ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -26135,6 +25880,17 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/textured_large,
/area/station/hallway/primary/central)
+"nnb" = (
+/obj/machinery/camera/autoname/directional/south,
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"nnv" = (
/obj/structure/fireaxecabinet/mechremoval/directional/east,
/turf/open/floor/noslip{
@@ -26168,6 +25924,12 @@
/obj/structure/cable,
/turf/open/floor/iron/stairs,
/area/station/service/chapel)
+"noq" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"noF" = (
/turf/open/floor/carpet,
/area/station/medical/medbay/central)
@@ -26243,6 +26005,11 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"nqv" = (
+/obj/structure/cable/industrial,
+/obj/effect/landmark/start/chief_engineer,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"nqF" = (
/obj/structure/chair/office/light{
dir = 4
@@ -26286,13 +26053,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"nrV" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/sign/departments/cargo,
-/turf/closed/wall,
-/area/station/cargo/lobby)
"nsb" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/extinguisher_cabinet/directional/north,
@@ -26319,11 +26079,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"nsH" = (
-/obj/machinery/light/directional/south,
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"nsM" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -26389,6 +26144,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"ntZ" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"nuk" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 8
@@ -26410,6 +26174,10 @@
/obj/effect/turf_decal/tile/green/half/contrasted,
/turf/open/floor/iron/smooth,
/area/station/science/genetics)
+"nuV" = (
+/obj/machinery/duct/industrial/waste,
+/turf/open/floor/iron/stairs,
+/area/station/cargo/warehouse/upper)
"nuX" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -26459,16 +26227,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"nvC" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "Xenolab";
- name = "Test Chamber Blast Door"
- },
-/obj/structure/cable,
-/obj/structure/sign/warning/electric_shock,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"nvL" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
@@ -26481,11 +26239,6 @@
},
/turf/open/floor/iron/white/textured_large,
/area/station/medical/medbay/central)
-"nvS" = (
-/obj/machinery/smartfridge/organ,
-/obj/machinery/light/directional/north,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"nvY" = (
/obj/effect/turf_decal/sand,
/turf/open/floor/plating/ocean,
@@ -26497,11 +26250,16 @@
/obj/structure/cable,
/turf/open/floor/wood/parquet,
/area/station/medical/medbay/central)
-"nwZ" = (
-/obj/structure/flora/grass/jungle/a/style_random,
-/mob/living/carbon/human/species/monkey,
-/turf/open/misc/grass/jungle,
-/area/station/maintenance/port/central)
+"nwW" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"nxd" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -26654,6 +26412,10 @@
/obj/structure/closet/secure_closet/hydroponics,
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"nzZ" = (
+/obj/machinery/camera/autoname/directional/north,
+/turf/open/floor/plating/ocean,
+/area/station/ai_monitored/turret_protected/ai)
"nAd" = (
/obj/machinery/light/directional/south,
/obj/structure/extinguisher_cabinet/directional/south,
@@ -26662,10 +26424,6 @@
},
/turf/open/floor/iron/white/textured,
/area/station/science/genetics)
-"nAe" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"nAn" = (
/mob/living/carbon/human/species/monkey,
/obj/machinery/door/window/right/directional/south{
@@ -26696,6 +26454,20 @@
},
/turf/open/floor/iron/dark,
/area/station/security/office)
+"nAS" = (
+/obj/structure/sign/warning/cold_temp/directional/north{
+ pixel_y = 0;
+ pixel_x = -32
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"nBu" = (
/obj/machinery/griddle,
/turf/open/floor/iron/kitchen,
@@ -26744,6 +26516,22 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
+"nCE" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/white/filled/warning{
+ dir = 9;
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/corner{
+ color = "#009dc4"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-18";
+ location = "Hall-17"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"nCM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -26781,11 +26569,6 @@
"nDB" = (
/turf/open/floor/grass,
/area/station/maintenance/starboard/upper)
-"nDE" = (
-/obj/effect/spawner/random/trash/graffiti,
-/obj/structure/cable/industrial,
-/turf/open/floor/plating,
-/area/station/maintenance/starboard/fore)
"nDK" = (
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
@@ -26798,6 +26581,14 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/command/bridge)
+"nEH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"nFf" = (
/obj/machinery/door/window/left/directional/north{
base_state = "right";
@@ -26937,13 +26728,6 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
-"nHR" = (
-/obj/machinery/camera/autoname/directional/south,
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/obj/item/stock_parts/cell,
-/obj/effect/spawner/random/maintenance,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"nHZ" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -26989,14 +26773,6 @@
/obj/machinery/smartfridge/petri/preloaded,
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"nJP" = (
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/red/corner,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
"nJU" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/wood,
@@ -27119,6 +26895,13 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"nLQ" = (
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/plate,
+/obj/item/holosign_creator/robot_seat/restaurant,
+/turf/open/floor/iron/kitchen,
+/area/station/service/kitchen)
"nLV" = (
/turf/closed/wall,
/area/station/service/chapel)
@@ -27193,6 +26976,10 @@
/obj/effect/turf_decal/trimline/green/line,
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"nNX" = (
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse/upper)
"nOf" = (
/obj/machinery/door/airlock/public/glass{
name = "Fitness"
@@ -27211,11 +26998,25 @@
/obj/structure/cable,
/turf/open/floor/carpet/executive,
/area/station/command/heads_quarters/hop)
-"nOx" = (
-/obj/vehicle/ridden/cargo_train,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
+"nOy" = (
+/obj/machinery/airalarm/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/suit/jacket/straight_jacket,
+/obj/item/clothing/glasses/eyepatch,
+/obj/item/clothing/ears/earmuffs,
+/obj/item/clothing/ears/earmuffs,
+/obj/item/clothing/glasses/blindfold,
+/obj/item/clothing/glasses/blindfold,
+/obj/machinery/door/window/right/directional/south{
+ dir = 2;
+ name = "First Aid Supplies";
+ req_access = list("medical")
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/storage)
"nOV" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment{
@@ -27284,6 +27085,15 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron/white/textured,
/area/station/medical/pharmacy)
+"nRv" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Isolation B"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/virology,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"nRM" = (
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
@@ -27301,6 +27111,15 @@
/obj/machinery/duct/industrial/waste,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"nTg" = (
+/obj/machinery/computer/crew{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"nTi" = (
/turf/closed/wall,
/area/station/engineering/main)
@@ -27376,10 +27195,16 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/courtroom)
-"nUK" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/textured,
+"nUz" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{
+ dir = 1;
+ initialize_directions = 4;
+ name = "euthanization chamber freezer"
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/window/reinforced/spawner/directional/north,
+/turf/open/floor/plating,
/area/station/science/xenobiology)
"nUL" = (
/obj/machinery/ntnet_relay,
@@ -27458,19 +27283,6 @@
},
/turf/open/floor/iron/dark,
/area/station/cargo/storage)
-"nWw" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"nWE" = (
/obj/effect/turf_decal/trimline/red/filled/warning{
dir = 4
@@ -27491,23 +27303,14 @@
/obj/machinery/status_display/ai,
/turf/closed/wall,
/area/station/hallway/secondary/exit/departure_lounge)
-"nYw" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/dark_blue/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/dark_blue/line{
- dir = 8
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-23";
- location = "Hall-22"
+"nYg" = (
+/obj/effect/turf_decal/tile/yellow/opposingcorners{
+ dir = 1
},
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron/dark,
+/area/station/cargo/storage)
"nYD" = (
/obj/effect/turf_decal/trimline/purple/filled/line,
/obj/structure/disposalpipe/segment{
@@ -27553,10 +27356,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/glass/reinforced,
/area/station/engineering/main)
-"oag" = (
-/obj/machinery/camera/directional/south,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"oas" = (
/turf/open/floor/iron/smooth,
/area/station/commons/fitness/recreation)
@@ -27576,26 +27375,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"obH" = (
-/obj/structure/table/glass,
-/obj/item/book/manual/wiki/cytology{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/biopsy_tool{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/item/storage/box/petridish{
- pixel_x = -5;
- pixel_y = 8
- },
-/obj/item/storage/box/petridish{
- pixel_x = -5;
- pixel_y = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"obQ" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -27603,21 +27382,48 @@
/obj/effect/spawner/random/structure/grille,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
-"ocd" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{
- dir = 1;
- initialize_directions = 4;
- name = "euthanization chamber freezer"
+"obX" = (
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
},
-/obj/structure/window/reinforced/spawner/directional/west,
-/obj/structure/window/reinforced/spawner/directional/east,
-/obj/structure/window/reinforced/spawner/directional/north,
-/turf/open/floor/plating,
-/area/station/science/xenobiology)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining/glass{
+ id_tag = "innercargo";
+ name = "Cargo Bay"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/sorting)
"oce" = (
/obj/effect/turf_decal/trimline/red/filled/warning,
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
+"ocg" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/machinery/door/window/left/directional/west{
+ dir = 2;
+ name = "Crate Security Door";
+ req_access = list("shipping")
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"ock" = (
/obj/machinery/atmospherics/components/binary/pump{
name = "Air to Mix"
@@ -27625,15 +27431,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"ocv" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"ocM" = (
/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible,
/obj/effect/turf_decal/trimline/yellow/filled/corner{
@@ -27641,6 +27438,11 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"ocP" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/structure/closet/l3closet/virology,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"ocU" = (
/obj/item/radio/intercom/directional/west{
freerange = 1;
@@ -27686,13 +27488,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/plasma,
/area/station/engineering/atmos)
-"odT" = (
-/obj/machinery/light/neon_lining{
- dir = 1;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"oes" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -27702,6 +27497,11 @@
},
/turf/open/floor/plating,
/area/station/command/heads_quarters/cmo)
+"oex" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/machinery/computer/order_console/bitrunning,
+/turf/open/floor/iron,
+/area/station/cargo/miningoffice)
"oeO" = (
/obj/machinery/light/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -27807,6 +27607,13 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/command/bridge)
+"ogA" = (
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/misc/sandy_dirt,
+/area/station/service/hydroponics/upper)
"ogJ" = (
/obj/effect/turf_decal/trimline/red/line{
dir = 4
@@ -27865,17 +27672,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"oiq" = (
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"oiy" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -28134,21 +27930,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/lab)
-"ooa" = (
-/obj/structure/plasticflaps,
-/obj/machinery/conveyor/auto,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/machinery/door/window/left/directional/west{
- dir = 2;
- name = "Crate Security Door";
- req_access = list("shipping")
- },
-/turf/open/floor/iron,
-/area/station/cargo/storage)
"ooi" = (
/obj/structure/cable,
/turf/open/floor/noslip{
@@ -28272,30 +28053,6 @@
},
/turf/open/misc/sandy_dirt,
/area/station/service/hydroponics/upper)
-"oqT" = (
-/obj/structure/table,
-/obj/item/assembly/igniter{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/assembly/igniter{
- pixel_x = 5;
- pixel_y = -4
- },
-/obj/item/assembly/igniter{
- pixel_x = 2;
- pixel_y = 6
- },
-/obj/item/assembly/igniter{
- pixel_x = 2;
- pixel_y = -1
- },
-/obj/machinery/camera/directional/east{
- c_tag = "Xenobiology Lab - Test Chamber";
- network = list("ss13","rd","xeno")
- },
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"ord" = (
/obj/item/radio/intercom/directional/west,
/obj/machinery/camera/directional/west,
@@ -28379,6 +28136,24 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/mineral/titanium/yellow,
/area/station/maintenance/starboard/aft)
+"otn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Pharmacy"
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy,
+/obj/effect/mapping_helpers/airlock/access/any/medical/general,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/central)
"otz" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 1
@@ -28425,28 +28200,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"ouo" = (
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/structure/cable,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/machinery/door/airlock/mining/glass{
- id_tag = "innercargo";
- name = "Cargo Bay"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/sorting)
"ouC" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/vending/wardrobe/chem_wardrobe,
@@ -28479,6 +28232,14 @@
},
/turf/open/floor/iron/dark,
/area/station/service/chapel)
+"ouW" = (
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
+/obj/structure/fans/tiny/forcefield,
+/turf/open/floor/plating,
+/area/station/engineering/atmos)
"ovi" = (
/obj/effect/turf_decal/trimline/blue/filled/end,
/obj/machinery/disposal/bin,
@@ -28487,6 +28248,15 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"ovm" = (
+/obj/machinery/camera/autoname/directional/east,
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/closet/l3closet/scientist,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"ovu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -28502,6 +28272,23 @@
dir = 4
},
/area/station/hallway/primary/central)
+"ovH" = (
+/obj/structure/table,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/spawner/random/food_or_drink/donkpockets{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/cup/glass/waterbottle/large{
+ pixel_x = 5;
+ pixel_y = 20
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"ovT" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/white/filled/corner{
@@ -28714,10 +28501,6 @@
/obj/structure/window/reinforced/plasma/spawner/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/security/brig)
-"oAr" = (
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"oAL" = (
/obj/item/radio/intercom/directional/west,
/obj/structure/closet/secure_closet/security/science,
@@ -28748,6 +28531,17 @@
/obj/machinery/air_sensor/plasma_tank,
/turf/open/floor/engine/plasma,
/area/station/engineering/atmos)
+"oBZ" = (
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
+"oCO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/floor/has_bulb,
+/obj/effect/turf_decal/trimline/brown,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"oCP" = (
/obj/machinery/telecomms/server/presets/service,
/turf/open/floor/circuit,
@@ -28792,11 +28586,6 @@
"oDX" = (
/turf/open/floor/iron/dark,
/area/station/service/chapel/office)
-"oDZ" = (
-/obj/structure/cable/industrial,
-/obj/effect/landmark/start/chief_engineer,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"oEo" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -28852,15 +28641,6 @@
/obj/effect/base_turf_modifier/pit,
/turf/closed/wall/r_wall/rust,
/area/station/ai_monitored/turret_protected/ai)
-"oGE" = (
-/obj/machinery/computer/crew{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
"oGQ" = (
/obj/effect/decal/cleanable/blood/tracks,
/obj/structure/cable,
@@ -28945,13 +28725,6 @@
/obj/effect/turf_decal/tile/blue/diagonal_centre,
/turf/open/floor/iron/white/diagonal,
/area/station/medical/medbay/lobby)
-"oII" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"oIJ" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 5
@@ -28984,6 +28757,24 @@
},
/turf/open/floor/iron/dark/textured_large,
/area/station/commons/storage/emergency/starboard)
+"oKa" = (
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay Clinic"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/central)
"oKD" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -29078,6 +28869,10 @@
/obj/item/clothing/glasses/sunglasses,
/turf/open/floor/iron/grimy,
/area/station/service/lawoffice)
+"oPj" = (
+/obj/structure/sign/departments/cargo,
+/turf/closed/wall,
+/area/station/cargo/lobby)
"oPk" = (
/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{
dir = 9
@@ -29087,15 +28882,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"oPs" = (
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/obj/structure/cable/industrial,
-/turf/open/floor/plating,
-/area/station/command/heads_quarters/ce)
"oPx" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/obj/structure/cable,
@@ -29218,17 +29004,6 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
-"oSA" = (
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
-"oTe" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/textured,
-/area/station/engineering/break_room)
"oTl" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/delivery,
@@ -29308,6 +29083,17 @@
color = "#D381C9"
},
/area/station/science/robotics)
+"oUK" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 9
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"oVc" = (
/obj/structure/window/spawner/directional/east,
/obj/structure/bookcase{
@@ -29518,6 +29304,23 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"pay" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/obj/machinery/ticket_machine/directional/east{
+ id = "ticket_machine_engie"
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plastic,
+/area/station/hallway/primary/central)
"paJ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -29551,16 +29354,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/courtroom)
-"pbq" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"pcx" = (
/obj/machinery/atmospherics/pipe/smart/simple/green/visible,
/turf/open/floor/plating/ocean,
@@ -29647,27 +29440,6 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/storage/tech)
-"pfK" = (
-/obj/machinery/computer/atmos_control/mix_tank{
- dir = 1
- },
-/obj/structure/window/spawner/directional/south,
-/obj/effect/turf_decal/tile/green/half/contrasted,
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring"
- },
-/turf/open/floor/iron/dark,
-/area/station/engineering/atmos)
-"pfW" = (
-/obj/effect/turf_decal/trimline/blue/filled/line,
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 1
- },
-/obj/machinery/computer/operating{
- dir = 1
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"pfX" = (
/obj/machinery/door/airlock/public/glass{
name = "Escape"
@@ -29818,13 +29590,6 @@
},
/turf/open/floor/iron/dark,
/area/station/commons/dorms)
-"piW" = (
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/obj/machinery/disposal/bin,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
"pjd" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -29833,6 +29598,15 @@
/obj/structure/cable,
/turf/open/floor/wood/parquet,
/area/station/medical/medbay/central)
+"pjg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Xenolab";
+ name = "Test Chamber Blast Door"
+ },
+/obj/structure/cable,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"pkl" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/trimline/blue/filled/warning,
@@ -29968,6 +29742,13 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
+"pmG" = (
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/netpod,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"pmN" = (
/obj/machinery/door/firedoor/border_only{
dir = 1
@@ -30041,6 +29822,21 @@
/obj/machinery/vending/wardrobe/curator_wardrobe,
/turf/open/floor/iron/vaporwave,
/area/station/service/library)
+"pom" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"poE" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer"
@@ -30070,6 +29866,14 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/break_room)
+"poH" = (
+/obj/structure/cable/industrial,
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 1
+ },
+/obj/machinery/computer/cargo/engineering,
+/turf/open/floor/iron/dark/textured,
+/area/station/engineering/main)
"poN" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/mineral/titanium/blue,
@@ -30290,15 +30094,6 @@
dir = 1
},
/area/station/science/lab)
-"pua" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"pug" = (
/turf/closed/wall,
/area/station/commons/fitness)
@@ -30315,9 +30110,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/main)
-"puS" = (
-/turf/closed/wall/r_wall,
-/area/station/cargo/warehouse/upper)
"puW" = (
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -30342,18 +30134,41 @@
},
/turf/open/floor/plating,
/area/station/service/kitchen/kitchen_backroom)
-"pvw" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"pwa" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
/turf/open/floor/iron,
/area/station/commons/fitness/recreation/entertainment)
+"pww" = (
+/obj/machinery/door/airlock,
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
+"pwA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/window/preopen{
+ name = "Security Lockdown Shutters";
+ id = "securityshutter"
+ },
+/obj/structure/sign/departments/security,
+/turf/open/floor/plating,
+/area/station/security/office)
+"pwD" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/misc/sandy_dirt,
+/area/station/service/hydroponics/upper)
"pwU" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/turf_decal/stripes/line{
@@ -30438,18 +30253,34 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"pzQ" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder{
+ pixel_x = -1;
+ pixel_y = 8
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/cup/beaker/large{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/cup/beaker{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/knife/kitchen,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"pzX" = (
/obj/structure/closet/crate,
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
-"pzZ" = (
-/obj/item/kirbyplants/random,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-10";
- location = "Hall-9"
- },
-/turf/open/floor/carpet,
-/area/station/service/chapel)
"pAg" = (
/obj/machinery/computer/security/mining{
dir = 4
@@ -30505,23 +30336,6 @@
dir = 4
},
/area/station/science/lobby)
-"pCy" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/line,
-/obj/machinery/light/directional/north,
-/obj/structure/window/reinforced/spawner/directional/west,
-/obj/structure/table/reinforced,
-/obj/item/stack/medical/bone_gel,
-/obj/item/stack/sticky_tape/surgical,
-/obj/structure/window/reinforced/spawner/directional/south,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"pCM" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line,
/obj/effect/turf_decal/trimline/dark_blue/line{
@@ -30537,16 +30351,6 @@
/obj/item/book/manual/wiki/security_space_law,
/turf/open/floor/iron/grimy,
/area/station/service/lawoffice)
-"pDw" = (
-/obj/machinery/computer/camera_advanced/xenobio{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
-"pDF" = (
-/obj/machinery/monkey_recycler,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"pDI" = (
/obj/structure/rack,
/obj/item/storage/box/lights/mixed,
@@ -30585,27 +30389,6 @@
/obj/structure/closet/emcloset,
/turf/open/floor/engine,
/area/station/cargo/miningoffice)
-"pEl" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral/fourcorners{
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/red/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/red/filled/warning,
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/turret_protected/ai_upload)
-"pEw" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"pEL" = (
/obj/effect/spawner/structure/window/reinforced/plasma,
/obj/structure/disposalpipe/segment,
@@ -30663,15 +30446,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"pFJ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/chair/sofa/bench/left{
- dir = 1
+"pFD" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
},
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
+/turf/open/floor/carpet/neon/simple/cyan/nodots,
+/area/station/medical/virology)
"pFK" = (
/obj/effect/turf_decal/tile/green/fourcorners,
/obj/structure/chair/office/light{
@@ -30897,6 +30677,15 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"pJS" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"pKk" = (
/obj/structure/disposaloutlet{
dir = 4;
@@ -30924,10 +30713,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"pKF" = (
-/obj/item/food/grown/banana,
-/turf/open/misc/grass/jungle,
-/area/station/maintenance/port/central)
"pLb" = (
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/hop)
@@ -30951,6 +30736,39 @@
/obj/effect/turf_decal/tile/brown/fourcorners,
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
+"pLo" = (
+/obj/effect/turf_decal/stripes{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 1
+ },
+/obj/item/construction/plumbing/engineering,
+/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{
+ dir = 1
+ },
+/obj/item/book/manual/wiki/plumbing,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/stack/cable_coil/industrial,
+/obj/item/rwd/industrial,
+/obj/item/rwd/industrial,
+/obj/item/rwd/industrial,
+/obj/item/rwd/industrial,
+/obj/item/rwd/industrial,
+/turf/open/floor/engine,
+/area/station/engineering/main)
"pLr" = (
/obj/machinery/light/directional/south,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -30981,26 +30799,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
-"pMT" = (
-/obj/machinery/door/window/right/directional/south{
- dir = 4;
- name = "Surgical Supplies";
- req_access = list("surgery")
- },
-/obj/structure/window/reinforced/spawner/directional/north,
-/obj/structure/table/reinforced,
-/obj/item/stack/sticky_tape/surgical,
-/obj/item/stack/medical/bone_gel,
-/obj/effect/turf_decal/tile/blue/fourcorners,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/item/clothing/gloves/latex/nitrile,
-/obj/item/clothing/gloves/latex/nitrile,
-/obj/item/clothing/gloves/latex/nitrile,
-/obj/item/book/manual/wiki/surgery,
-/turf/open/floor/iron/white,
-/area/station/medical/surgery/theatre)
"pMX" = (
/obj/machinery/conveyor/auto{
dir = 7
@@ -31209,6 +31007,34 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
+"pQX" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/white/line{
+ dir = 10;
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/filled/corner{
+ color = "#009dc4";
+ dir = 4
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-2";
+ location = "Hall-1"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central/fore)
+"pQZ" = (
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"pRH" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -31220,22 +31046,20 @@
/obj/structure/cable/industrial,
/turf/open/floor/plating/ocean,
/area/ocean)
-"pSS" = (
-/obj/machinery/light_switch/directional/north,
+"pTo" = (
+/obj/machinery/telecomms/message_server/preset,
+/turf/open/floor/circuit/green/telecomms/mainframe,
+/area/station/tcommsat/server)
+"pTB" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 5
+ dir = 4
},
-/obj/effect/turf_decal/trimline/blue/corner{
+/obj/effect/turf_decal/trimline/blue/line{
dir = 8
},
-/obj/structure/table/optable,
-/obj/machinery/defibrillator_mount/directional/east,
+/obj/machinery/iv_drip,
/turf/open/floor/iron/white/textured,
/area/station/medical/surgery/theatre)
-"pTo" = (
-/obj/machinery/telecomms/message_server/preset,
-/turf/open/floor/circuit/green/telecomms/mainframe,
-/area/station/tcommsat/server)
"pTF" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 8
@@ -31288,6 +31112,10 @@
/obj/effect/spawner/random/structure/crate_loot,
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
+"pUV" = (
+/obj/machinery/firealarm/directional/west,
+/turf/closed/wall/r_wall,
+/area/station/command/heads_quarters/ce)
"pVn" = (
/obj/effect/spawner/random/structure/table_or_rack,
/turf/open/floor/plating,
@@ -31310,26 +31138,6 @@
dir = 8
},
/area/station/engineering/main)
-"pVC" = (
-/obj/effect/turf_decal/stripes,
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/stripes,
-/obj/machinery/door/airlock/external{
- name = "Escape Pod Four";
- space_dir = 4
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8;
- id_tag = "engine_outdoors"
- },
-/turf/open/floor/engine,
-/area/station/engineering/main)
"pVF" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -31588,6 +31396,11 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/engineering/main)
+"qaY" = (
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/machinery/camera/autoname/directional/south,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"qbg" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/turf/open/floor/eighties/red{
@@ -31611,6 +31424,13 @@
},
/turf/open/floor/iron/dark,
/area/station/cargo/sorting)
+"qbI" = (
+/obj/machinery/door/airlock/research{
+ name = "Ordnance Lab"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/science/xenobio,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"qbO" = (
/obj/effect/landmark/start/station_engineer,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -31638,15 +31458,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"qbT" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/closet/l3closet/scientist,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"qck" = (
/obj/structure/chair/comfy/teal{
dir = 8
@@ -31742,21 +31553,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/station/service/electronic_marketing_den)
-"qeu" = (
-/obj/docking_port/stationary{
- dir = 2;
- dwidth = 2;
- height = 13;
- name = "port bay 2";
- shuttle_id = "ferry_home";
- width = 5
- },
-/turf/open/floor/plating/ocean,
-/area/ocean)
-"qeF" = (
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"qeK" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 1
@@ -31776,6 +31572,12 @@
/obj/structure/bookcase/random/religion,
/turf/open/floor/iron,
/area/station/service/library)
+"qfe" = (
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"qfx" = (
/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{
dir = 10
@@ -31829,6 +31631,11 @@
/obj/machinery/telecomms/server/presets/common,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"qgp" = (
+/obj/vehicle/ridden/cargo_train,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"qgs" = (
/obj/machinery/door/airlock/external,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -31950,15 +31757,15 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"qkx" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"qkz" = (
/obj/effect/spawner/random/vending/colavend,
/turf/open/floor/wood,
/area/station/commons/lounge)
-"qkC" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"qkH" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -31970,15 +31777,6 @@
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/mineral/titanium/yellow,
/area/station/maintenance/starboard/aft)
-"qlB" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 10
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/lobby)
"qlH" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
@@ -32043,12 +31841,6 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos/hfr_room)
-"qnC" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/external/glass,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"qnD" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -32099,6 +31891,15 @@
/obj/structure/flora/bush/ferny/style_random,
/turf/open/floor/grass,
/area/station/medical/virology)
+"qoJ" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/structure/cable/industrial,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/ce)
"qoO" = (
/obj/effect/turf_decal/trimline/red/filled/corner,
/turf/open/floor/iron/smooth,
@@ -32117,21 +31918,6 @@
"qpf" = (
/turf/closed/wall,
/area/station/maintenance/starboard/upper)
-"qpA" = (
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/machinery/door/airlock/mining/glass{
- id_tag = "innercargo";
- name = "Cargo Bay"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/sorting)
"qpL" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{
dir = 1
@@ -32200,15 +31986,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security/checkpoint/science)
-"qry" = (
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/machinery/light/neon_lining{
- dir = 1;
- icon_state = "pink2_1"
- },
-/mob/living/simple_animal/sloth/citrus,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/qm)
"qrD" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 4
@@ -32237,17 +32014,6 @@
},
/turf/open/floor/engine,
/area/station/maintenance/disposal/incinerator)
-"qrS" = (
-/obj/machinery/duct/industrial/waste,
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"qrV" = (
/obj/structure/chair/wood{
dir = 4
@@ -32258,21 +32024,6 @@
"qrW" = (
/turf/open/floor/carpet/purple,
/area/station/command/heads_quarters/captain/private)
-"qrZ" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/obj/effect/mapping_helpers/airlock/unres,
-/obj/machinery/door/airlock/mining/glass{
- id_tag = "innercargo";
- name = "Cargo Bay"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"qsc" = (
/obj/machinery/light_switch/directional/north,
/obj/item/clothing/gloves/cargo_gauntlet{
@@ -32330,18 +32081,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/lobby)
-"qsJ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"qsX" = (
/obj/effect/turf_decal/stripes,
/obj/effect/turf_decal/stripes{
@@ -32353,6 +32092,19 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"qth" = (
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/green/corner{
+ dir = 4
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-16";
+ location = "Hall-15"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"qti" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 10
@@ -32362,6 +32114,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
+"qtl" = (
+/obj/machinery/modular_computer/console/preset/id{
+ dir = 4
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"qtN" = (
/obj/structure/cable,
/obj/machinery/light/directional/south,
@@ -32391,6 +32149,21 @@
},
/turf/open/floor/iron/dark,
/area/station/maintenance/starboard/aft)
+"qui" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/purple/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/purple/corner{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-4";
+ location = "Hall-3"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"qus" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -32451,12 +32224,6 @@
/obj/machinery/light/directional/east,
/turf/open/floor/carpet/purple,
/area/station/command/heads_quarters/rd)
-"qvN" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"qwm" = (
/obj/effect/landmark/start/hangover,
/turf/open/floor/carpet/executive,
@@ -32471,6 +32238,16 @@
},
/turf/open/floor/plating,
/area/station/cargo/storage)
+"qwR" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"qxd" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -32478,11 +32255,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/eighties/red,
/area/station/service/electronic_marketing_den)
-"qxh" = (
-/obj/machinery/cart,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"qxw" = (
/obj/structure/window/spawner/directional/west,
/obj/structure/rack,
@@ -32504,14 +32276,6 @@
},
/turf/open/floor/iron/textured,
/area/station/science/robotics/lab)
-"qxC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/station/cargo/sorting)
"qxF" = (
/turf/closed/wall,
/area/station/maintenance/starboard/central)
@@ -32543,14 +32307,6 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"qyZ" = (
-/obj/machinery/firealarm/directional/south,
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"qza" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/structure/chair/office/light,
@@ -32561,6 +32317,13 @@
/obj/machinery/light_switch/directional/east,
/turf/open/floor/wood,
/area/station/service/library)
+"qzk" = (
+/obj/structure/cable,
+/obj/machinery/door/airlock{
+ name = "Bedroom"
+ },
+/turf/open/floor/eighties,
+/area/station/service/abandoned_gambling_den/gaming)
"qzG" = (
/obj/structure/chair/wood{
dir = 8
@@ -32651,6 +32414,14 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"qCa" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/machinery/light_switch/directional/east,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"qCk" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -32669,6 +32440,24 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/hfr_room)
+"qCK" = (
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/turf/open/floor/iron/dark/textured_corner{
+ dir = 8
+ },
+/area/station/science/lobby)
"qCR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -32703,17 +32492,6 @@
dir = 4
},
/area/station/science/lab)
-"qDE" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/plating,
-/area/station/tcommsat/server)
-"qEb" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/misc/sandy_dirt,
-/area/station/service/hydroponics/upper)
"qEi" = (
/turf/closed/wall/r_wall,
/area/station/science/robotics/mechbay)
@@ -32848,16 +32626,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/lobby)
-"qJu" = (
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 5
- },
-/obj/machinery/stasis{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"qJD" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
@@ -32960,19 +32728,6 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/disposal)
-"qLh" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"qLF" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/effect/turf_decal/tile/dark_blue/opposingcorners{
@@ -33008,14 +32763,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/brig)
-"qMR" = (
-/obj/structure/table,
-/obj/item/stack/sheet/iron{
- amount = 10
- },
-/obj/item/electropack,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"qMV" = (
/obj/structure/table/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -33098,9 +32845,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"qOf" = (
-/turf/closed/wall,
-/area/station/cargo/lobby)
"qOj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -33120,6 +32864,13 @@
dir = 1
},
/area/station/science/lobby)
+"qOl" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/machinery/light_switch/directional/east,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"qOG" = (
/obj/machinery/conveyor/auto{
dir = 5
@@ -33135,6 +32886,15 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"qPi" = (
+/obj/structure/cable/industrial,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/ce)
"qPs" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 5
@@ -33313,6 +33073,11 @@
},
/turf/open/floor/engine,
/area/station/maintenance/port/central)
+"qTd" = (
+/obj/machinery/light_switch/directional/north,
+/obj/structure/closet/secure_closet/medical1,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"qTe" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -33395,6 +33160,17 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"qWf" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"qWj" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -33425,14 +33201,6 @@
/obj/machinery/conveyor/auto,
/turf/open/floor/plating/ocean,
/area/ocean/near_station_powered)
-"qWy" = (
-/obj/machinery/door/airlock/external{
- name = "Escape Airlock";
- space_dir = 4
- },
-/obj/structure/fans/tiny/forcefield,
-/turf/open/floor/plating,
-/area/station/hallway/secondary/exit/departure_lounge)
"qWC" = (
/obj/effect/turf_decal/trimline/green/line,
/obj/effect/turf_decal/trimline/green/line,
@@ -33472,6 +33240,17 @@
},
/turf/open/floor/iron/white/textured_large,
/area/station/medical/medbay/central)
+"qYg" = (
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"qYv" = (
/obj/machinery/airalarm/directional/east,
/obj/effect/turf_decal/trimline/yellow/filled/end{
@@ -33563,6 +33342,15 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"rbg" = (
+/obj/machinery/duct/industrial/waste,
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/brown/corner,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"rbo" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall,
@@ -33662,6 +33450,15 @@
dir = 8
},
/area/station/service/hydroponics)
+"rcZ" = (
+/obj/effect/turf_decal/loading_area/white{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"rdb" = (
/obj/structure/cable,
/obj/machinery/duct/industrial/waste,
@@ -33684,21 +33481,6 @@
/obj/machinery/light_switch/directional/west,
/turf/open/floor/iron/white/textured,
/area/station/medical/pharmacy)
-"rdE" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/lamp,
-/obj/item/computer_disk/atmos,
-/obj/machinery/camera/directional/north{
- c_tag = "Chief Engineer's Office"
- },
-/obj/machinery/requests_console/directional/north{
- announcementConsole = 1;
- department = "Chief Engineer's Desk";
- name = "Chief Engineer's Requests Console";
- anon_tips_receiver = 1
- },
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"rdF" = (
/obj/machinery/door/airlock/bathroom{
name = "Toilet";
@@ -33723,6 +33505,10 @@
"red" = (
/turf/closed/wall,
/area/station/service/theater/abandoned)
+"reh" = (
+/obj/structure/tank_holder/extinguisher,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"ret" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/unres{
@@ -33760,6 +33546,17 @@
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"rgn" = (
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"rgp" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{
dir = 1
@@ -33843,17 +33640,6 @@
},
/turf/open/floor/engine,
/area/station/maintenance/port/central)
-"rhP" = (
-/obj/structure/cable,
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"rhW" = (
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
@@ -33936,6 +33722,20 @@
/obj/effect/mapping_helpers/airlock/access/all/science/general,
/turf/open/floor/plating,
/area/station/science/ordnance/storage)
+"riW" = (
+/obj/machinery/camera/autoname/directional/east,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/red/corner{
+ dir = 1
+ },
+/obj/machinery/flasher/directional/east{
+ id = "secentranceflasher"
+ },
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark/textured,
+/area/station/security/office)
"rje" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -34004,10 +33804,6 @@
},
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
-"rmf" = (
-/obj/structure/sign/departments/cargo,
-/turf/closed/wall,
-/area/station/cargo/lobby)
"rmm" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -34140,15 +33936,6 @@
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"rph" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"rps" = (
/obj/structure/cable,
/obj/structure/disposalpipe/junction,
@@ -34166,19 +33953,18 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"rqh" = (
-/obj/structure/closet/wardrobe/miner,
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
-"rqi" = (
-/obj/item/storage/secure/safe/directional/west,
-/obj/machinery/computer/apc_control{
- dir = 4
+"rqk" = (
+/obj/structure/closet/secure_closet/engineering_chief,
+/obj/item/storage/secure/briefcase,
+/obj/item/crowbar/large/heavy,
+/obj/item/rwd/loaded,
+/obj/item/construction/plumbing/engineering,
+/obj/machinery/button/door/directional/west{
+ id = "Engineering";
+ name = "Engineering Lockdown";
+ pixel_y = -33;
+ req_access = list("engineering");
+ pixel_x = 0
},
/turf/open/floor/carpet/orange,
/area/station/command/heads_quarters/ce)
@@ -34347,32 +34133,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/service/janitor)
-"rve" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"rvq" = (
/obj/structure/lattice,
/turf/open/floor/plating/ocean,
/area/ocean/near_station_powered)
-"rvv" = (
-/obj/machinery/camera/autoname/directional/east,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/red/corner{
- dir = 1
- },
-/obj/machinery/flasher/directional/east{
- id = "secentranceflasher"
- },
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark/textured,
-/area/station/security/office)
"rvE" = (
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/dark/textured,
@@ -34432,6 +34196,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"rwN" = (
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"rwX" = (
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/plating,
@@ -34440,27 +34210,6 @@
/obj/structure/fans/tiny/forcefield,
/turf/open/floor/engine,
/area/station/commons/fitness/recreation/entertainment)
-"rxg" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/warning,
-/obj/effect/turf_decal/trimline/blue/warning{
- dir = 1
- },
-/obj/machinery/door/airlock/medical/glass{
- name = "Cryogenics Bay"
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- id_tag = "medlobby"
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/treatment_center)
"rxj" = (
/obj/effect/turf_decal/stripes{
dir = 1
@@ -34518,19 +34267,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"ryM" = (
-/obj/machinery/door/airlock,
-/obj/machinery/door/firedoor,
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"ryY" = (
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/iron/dark,
@@ -34561,27 +34297,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
-"rzQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/chair/sofa/bench/right{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"rzU" = (
/obj/structure/railing,
/turf/open/floor/wood,
@@ -34654,23 +34369,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"rCn" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/trimline/purple/filled/warning{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/purple/filled/mid_joiner,
-/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/purple/corner{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured_corner{
- dir = 1
- },
-/area/station/science/lobby)
"rCp" = (
/obj/machinery/door/airlock/public/glass{
name = "Detectives Lounge"
@@ -34739,6 +34437,19 @@
/obj/effect/spawner/random/structure/table_or_rack,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"rDC" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"rDE" = (
/turf/closed/wall/r_wall,
/area/mine/storage/public)
@@ -34877,6 +34588,13 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
+"rHY" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/warning,
+/turf/closed/wall/r_wall,
+/area/station/medical/medbay/lobby)
"rId" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -34892,30 +34610,6 @@
},
/turf/open/floor/wood/large,
/area/station/command/bridge)
-"rIq" = (
-/obj/structure/table,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
-"rIF" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/purple/filled/warning{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/purple/corner{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-6";
- location = "Hall-5"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central)
"rIM" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/smartfridge/chemistry/preloaded,
@@ -35021,6 +34715,26 @@
/obj/effect/landmark/start/security_officer,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"rKC" = (
+/obj/effect/turf_decal/stripes,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes,
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ space_dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8;
+ id_tag = "engine_outdoors"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/main)
"rKO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -35050,12 +34764,6 @@
/obj/item/botanical_lexicon,
/turf/open/floor/grass,
/area/station/service/hydroponics)
-"rLF" = (
-/obj/structure/chair/sofa/middle{
- dir = 8
- },
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"rLM" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -35290,6 +34998,22 @@
color = "#D381C9"
},
/area/station/science/robotics)
+"rRI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/white/filled/warning{
+ dir = 1;
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/warning{
+ color = "#009dc4"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-15";
+ location = "Hall-14"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"rSq" = (
/obj/machinery/fax{
fax_name = "Head of Security's Office";
@@ -35434,6 +35158,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
+"rWm" = (
+/obj/machinery/light/floor/has_bulb,
+/obj/effect/turf_decal/trimline/brown,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"rWt" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -35561,6 +35290,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
+"saQ" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"saU" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -35569,6 +35304,15 @@
/obj/effect/turf_decal/trimline/dark_blue/filled/line,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"saX" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Escape-1";
+ location = "Hall-24"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central/fore)
"sbd" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line{
dir = 1
@@ -35591,6 +35335,13 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"sbF" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"sbL" = (
/obj/item/wrench,
/obj/item/stack/sheet/glass{
@@ -35605,11 +35356,6 @@
/obj/item/vending_refill/cigarette,
/turf/open/floor/iron/grimy,
/area/station/hallway/secondary/service)
-"sbM" = (
-/obj/machinery/light_switch/directional/north,
-/obj/structure/closet/secure_closet/medical1,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
"scy" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -35747,15 +35493,6 @@
/obj/effect/landmark/start/cargo_technician,
/turf/open/floor/iron/dark,
/area/station/cargo/storage)
-"sgF" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/holofloor/dark,
-/area/station/science/cytology)
"sgI" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -35895,30 +35632,6 @@
/mob/living/basic/cockroach,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"sli" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/item/pickaxe/drill,
-/obj/item/pickaxe/drill,
-/obj/item/pickaxe/drill,
-/obj/item/pickaxe/drill,
-/obj/item/pickaxe/drill,
-/obj/structure/rack,
-/obj/item/mining_charge,
-/obj/item/mining_charge,
-/obj/item/mining_charge,
-/obj/item/mining_charge,
-/obj/item/mining_charge,
-/obj/item/trench_ladder_kit,
-/obj/item/trench_ladder_kit,
-/obj/item/trench_ladder_kit,
-/obj/item/trench_ladder_kit,
-/obj/item/trench_ladder_kit,
-/turf/open/floor/iron/dark/textured,
-/area/station/engineering/main)
"sln" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -35927,20 +35640,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"slt" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-7";
- location = "Hall-6"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/medbay/lobby)
"slx" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -35952,24 +35651,10 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
-"slD" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/warning{
- dir = 10
- },
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
-"slU" = (
-/obj/structure/rack,
-/obj/item/wrench,
-/obj/item/crowbar/red,
-/obj/machinery/light_switch/directional/south,
+"slJ" = (
+/obj/effect/turf_decal/trimline/brown/filled/corner,
/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
+/area/station/cargo/storage)
"slV" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -36001,12 +35686,29 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
+"snh" = (
+/obj/structure/cable,
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"snH" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/open/floor/engine,
/area/station/commons/storage/emergency/port)
+"snT" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"sok" = (
/obj/machinery/atmospherics/components/trinary/mixer{
dir = 4
@@ -36134,6 +35836,30 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
+"ssb" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/item/pickaxe/drill,
+/obj/item/pickaxe/drill,
+/obj/item/pickaxe/drill,
+/obj/item/pickaxe/drill,
+/obj/item/pickaxe/drill,
+/obj/structure/rack,
+/obj/item/mining_charge,
+/obj/item/mining_charge,
+/obj/item/mining_charge,
+/obj/item/mining_charge,
+/obj/item/mining_charge,
+/obj/item/trench_ladder_kit,
+/obj/item/trench_ladder_kit,
+/obj/item/trench_ladder_kit,
+/obj/item/trench_ladder_kit,
+/obj/item/trench_ladder_kit,
+/turf/open/floor/iron/dark/textured,
+/area/station/engineering/main)
"ssd" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/structure/cable,
@@ -36230,6 +35956,15 @@
/obj/machinery/vending/tool,
/turf/open/floor/iron,
/area/ruin/space/ks13/engineering/secure_storage)
+"suS" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"svm" = (
/obj/machinery/camera/autoname/directional/east,
/obj/machinery/requests_console/directional/north{
@@ -36277,6 +36012,11 @@
/obj/effect/spawner/random/structure/crate,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"swq" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"sws" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 8
@@ -36395,11 +36135,6 @@
/obj/structure/cable,
/turf/open/floor/engine,
/area/station/commons/storage/primary)
-"sza" = (
-/obj/machinery/light/directional/east,
-/obj/structure/tank_holder/extinguisher,
-/turf/open/floor/wood,
-/area/station/commons/fitness/recreation/entertainment)
"szb" = (
/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
@@ -36422,6 +36157,17 @@
/obj/item/flashlight/lamp,
/turf/open/floor/iron/dark,
/area/station/service/chapel/office)
+"szU" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"sAw" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -36513,25 +36259,6 @@
/obj/effect/spawner/random/structure/closet_maintenance,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"sCM" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
- dir = 8
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"sCS" = (
/obj/machinery/door/airlock/security{
name = "Security Lounge"
@@ -36561,6 +36288,15 @@
/obj/structure/sign/poster/official/safety_eye_protection,
/turf/closed/wall,
/area/station/service/bar)
+"sDJ" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/spawner/random/vending/snackvend,
+/obj/effect/turf_decal/trimline/brown/line,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"sDR" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -36596,19 +36332,18 @@
},
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar/backroom)
-"sEM" = (
-/obj/structure/table/glass,
-/obj/structure/microscope,
-/obj/item/storage/box/syringes{
- pixel_x = -4;
- pixel_y = 4
+"sEU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/item/storage/box/beakers{
- pixel_x = 6;
- pixel_y = 10
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
},
/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
+/area/station/cargo/warehouse/upper)
"sEV" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/yellow/line,
@@ -36617,25 +36352,12 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
-"sFl" = (
-/obj/machinery/light/neon_lining{
- dir = 4;
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 1;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
-"sFn" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+"sFa" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "cargodoor"
},
-/obj/machinery/light/floor/has_bulb,
-/obj/effect/turf_decal/trimline/brown,
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
+/turf/open/floor/plating,
+/area/station/cargo/warehouse)
"sFB" = (
/obj/structure/table/wood,
/obj/item/storage/photo_album{
@@ -36760,13 +36482,6 @@
dir = 4
},
/area/station/maintenance/starboard/aft)
-"sIO" = (
-/obj/effect/landmark/start/virologist,
-/obj/structure/chair/sofa/left{
- dir = 8
- },
-/turf/open/floor/carpet/neon/simple/cyan/nodots,
-/area/station/medical/virology)
"sJd" = (
/obj/effect/landmark/start/assistant,
/turf/open/floor/iron/dark,
@@ -36812,6 +36527,15 @@
},
/turf/open/floor/iron/white/textured_large,
/area/station/medical/medbay/central)
+"sJx" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/blue/line{
+ dir = 4
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"sJD" = (
/obj/structure/chair/sofa/middle{
dir = 4
@@ -36866,6 +36590,10 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/wood,
/area/station/command/heads_quarters/rd)
+"sLg" = (
+/obj/machinery/pdapainter/engineering,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"sLx" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 8
@@ -36922,6 +36650,12 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/wood,
/area/station/command/heads_quarters/hop)
+"sMF" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"sMI" = (
/obj/structure/table,
/obj/item/multitool/circuit{
@@ -37012,15 +36746,6 @@
/obj/structure/cable,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
-"sPH" = (
-/obj/effect/turf_decal/loading_area/white{
- dir = 4
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"sPX" = (
/obj/structure/table/wood,
/obj/machinery/button/door/directional/south{
@@ -37040,6 +36765,10 @@
},
/turf/open/floor/wood/large,
/area/station/command/bridge)
+"sQa" = (
+/obj/machinery/duct/industrial/waste,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"sQl" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/turf_decal/trimline/brown/warning,
@@ -37076,6 +36805,13 @@
"sRh" = (
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/captain/private)
+"sRv" = (
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 4
+ },
+/obj/machinery/netpod,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"sRK" = (
/obj/structure/sink{
pixel_y = 16
@@ -37142,6 +36878,12 @@
/obj/item/electronics/apc,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"sTz" = (
+/obj/machinery/sparker/directional/north{
+ id = "Xenobio"
+ },
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"sTK" = (
/obj/structure/extinguisher_cabinet/directional/north,
/obj/effect/turf_decal/tile/blue/diagonal_centre,
@@ -37254,11 +36996,6 @@
/obj/structure/displaycase/trophy,
/turf/open/floor/iron,
/area/station/service/library)
-"sVZ" = (
-/obj/machinery/camera/autoname/directional/north,
-/obj/structure/closet/l3closet/virology,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
"sWi" = (
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/exit/departure_lounge)
@@ -37278,39 +37015,21 @@
dir = 4
},
/area/station/security/warden)
-"sWJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/vehicle/ridden/cargo_train,
-/obj/machinery/button/door/directional/east{
- id = "cargodoor"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"sXg" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood,
/area/station/security/detectives_office)
-"sXK" = (
-/obj/structure/lattice,
-/obj/machinery/conveyor/auto{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/plating/ocean,
-/area/ocean/near_station_powered)
+"sXh" = (
+/obj/structure/table,
+/obj/effect/turf_decal/siding/white/corner,
+/obj/machinery/firealarm/directional/north,
+/obj/item/clipboard,
+/obj/item/paper,
+/obj/item/pen,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"sYe" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -37322,12 +37041,6 @@
},
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
-"sYg" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"sYn" = (
/turf/open/floor/wood,
/area/station/cargo/miningoffice)
@@ -37365,6 +37078,11 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"sZD" = (
+/turf/open/floor/iron/stairs{
+ dir = 1
+ },
+/area/station/science/xenobiology)
"sZF" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
@@ -37379,10 +37097,6 @@
/obj/effect/landmark/start/shaft_miner,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
-"tan" = (
-/obj/machinery/firealarm/directional/west,
-/turf/closed/wall/r_wall,
-/area/station/command/heads_quarters/ce)
"tay" = (
/obj/machinery/light/directional/south,
/obj/machinery/computer/department_orders/engineering{
@@ -37482,15 +37196,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
/area/station/commons/dorms)
-"tdG" = (
-/obj/machinery/camera/autoname/directional/east,
-/obj/structure/extinguisher_cabinet/directional/east,
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/closet/l3closet/scientist,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"tdI" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -37508,17 +37213,23 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/wood,
/area/station/service/library)
+"ted" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/structure/closet/l3closet/virology,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
+"tet" = (
+/obj/structure/sign/poster/contraband/punch_shit{
+ pixel_y = 35
+ },
+/obj/effect/decal/cleanable/garbage,
+/obj/machinery/light/very_dim/directional/north,
+/turf/open/floor/iron,
+/area/station/service/theater/abandoned)
"teK" = (
/obj/machinery/light_switch/directional/north,
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
-"teO" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
- dir = 8
- },
-/obj/effect/spawner/random/engineering/tracking_beacon,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"teZ" = (
/obj/structure/fans/tiny/forcefield,
/turf/open/floor/engine,
@@ -37544,14 +37255,6 @@
/obj/effect/turf_decal/tile/blue/opposingcorners,
/turf/open/floor/iron/white/textured,
/area/station/medical/pharmacy)
-"tfp" = (
-/obj/machinery/door/airlock/atmos/glass{
- name = "Atmospherics Monitoring"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos,
-/obj/structure/fans/tiny/forcefield,
-/turf/open/floor/plating,
-/area/station/engineering/atmos)
"tfz" = (
/obj/effect/turf_decal/trimline/brown/warning{
dir = 4
@@ -37567,21 +37270,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"tfI" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/circuit,
-/area/station/tcommsat/server)
-"tfT" = (
-/obj/effect/turf_decal/tile/neutral/fourcorners{
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 1
- },
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/ai_monitored/turret_protected/ai_upload)
"tfV" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/purple/filled/warning{
@@ -37682,6 +37370,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/textured_large,
/area/station/hallway/primary/central)
+"thY" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"thZ" = (
/obj/structure/cable,
/obj/structure/table,
@@ -37867,6 +37561,14 @@
/obj/effect/turf_decal/trimline/purple/filled/mid_joiner,
/turf/open/floor/iron/dark/herringbone,
/area/station/science/server)
+"toG" = (
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"tpd" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -37875,25 +37577,6 @@
/obj/machinery/camera/autoname/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"tpk" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
-"tpo" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/line,
-/obj/structure/closet/crate/freezer/surplus_limbs,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"tpR" = (
/obj/machinery/light/directional/north,
/turf/open/floor/engine,
@@ -38092,6 +37775,10 @@
/obj/effect/turf_decal/stripes/box,
/turf/open/floor/iron,
/area/station/hallway/secondary/service)
+"tvN" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"twb" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -38109,10 +37796,6 @@
"twN" = (
/turf/closed/wall/r_wall,
/area/station/cargo/miningoffice)
-"twO" = (
-/obj/effect/spawner/structure/window/reinforced/plasma,
-/turf/open/floor/plating,
-/area/station/cargo/warehouse/upper)
"txs" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -38140,11 +37823,6 @@
},
/turf/open/floor/wood,
/area/station/commons/lounge)
-"tyl" = (
-/obj/machinery/telecomms/processor/preset_three,
-/obj/machinery/camera/autoname/directional/east,
-/turf/open/floor/circuit/green/telecomms/mainframe,
-/area/station/tcommsat/server)
"tym" = (
/obj/machinery/camera/autoname/directional/west,
/turf/open/floor/bamboo,
@@ -38195,6 +37873,21 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/commons/lounge)
+"tzt" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"tzD" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -38302,6 +37995,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
+"tCm" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 9
+ },
+/obj/machinery/stasis{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"tCz" = (
/obj/effect/turf_decal/siding{
dir = 1
@@ -38352,13 +38054,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
-"tEj" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/blue/warning,
-/turf/closed/wall/r_wall,
-/area/station/medical/medbay/lobby)
"tEr" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -38377,14 +38072,6 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"tEY" = (
-/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
-/obj/structure/cable,
-/obj/machinery/door/airlock/highsecurity{
- name = "Secure Network Access"
- },
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"tFc" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment{
@@ -38397,10 +38084,6 @@
/obj/structure/sign/warning/electric_shock/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/break_room)
-"tFd" = (
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/warehouse/upper)
"tFl" = (
/obj/structure/chair/stool/directional/north,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
@@ -38477,19 +38160,6 @@
dir = 8
},
/area/station/science/lobby)
-"tGT" = (
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/obj/effect/turf_decal/trimline/brown/line{
- dir = 1
- },
-/obj/machinery/firealarm/directional/south,
-/obj/effect/turf_decal/trimline/brown/mid_joiner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"tGW" = (
/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
/obj/effect/turf_decal/trimline/red/line{
@@ -38572,6 +38242,15 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/engineering/storage/tech)
+"tIS" = (
+/obj/structure/table/wood,
+/obj/machinery/light_switch/directional/east,
+/obj/item/reagent_containers/cup/rag{
+ pixel_y = 7
+ },
+/obj/item/holosign_creator/robot_seat/bar,
+/turf/open/floor/carpet/neon/simple/green/nodots,
+/area/station/service/bar)
"tIV" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -38587,6 +38266,21 @@
/obj/machinery/light/blacklight/directional/south,
/turf/open/floor/grass,
/area/station/maintenance/starboard/upper)
+"tJp" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/station/cargo/storage)
"tJu" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -38674,48 +38368,6 @@
},
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
-"tLu" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 8
- },
-/obj/structure/table/reinforced,
-/obj/item/clothing/mask/breath/medical{
- pixel_y = -3
- },
-/obj/item/clothing/mask/breath/medical{
- pixel_y = -3
- },
-/obj/item/clothing/mask/breath/medical{
- pixel_y = -3
- },
-/obj/item/clothing/mask/breath/medical{
- pixel_y = -3
- },
-/obj/item/tank/internals/anesthetic{
- pixel_x = 3
- },
-/obj/item/tank/internals/anesthetic{
- pixel_x = 3
- },
-/obj/item/tank/internals/anesthetic{
- pixel_x = 3
- },
-/obj/item/tank/internals/anesthetic{
- pixel_x = 3
- },
-/obj/machinery/door/window/right/directional/south{
- name = "Surgical Supplies";
- req_access = list("surgery")
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"tLz" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -38725,13 +38377,6 @@
},
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
-"tLC" = (
-/obj/machinery/light/neon_lining{
- dir = 4;
- icon_state = "pink2_1"
- },
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
"tLD" = (
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/tile/neutral/fourcorners{
@@ -38749,6 +38394,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/wood/large,
/area/station/security/checkpoint/customs)
+"tLU" = (
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"tMf" = (
/obj/machinery/computer/records/security{
dir = 4
@@ -38808,6 +38456,11 @@
},
/turf/open/floor/iron/dark,
/area/station/science/robotics/mechbay)
+"tNI" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/industrial,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"tNO" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/structure/window/reinforced/spawner/directional/north,
@@ -38880,11 +38533,6 @@
"tPP" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/security/armory)
-"tQj" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/obj/structure/tank_holder/extinguisher,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"tQo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark/textured,
@@ -38960,12 +38608,6 @@
"tSt" = (
/turf/open/floor/iron/dark/textured,
/area/station/commons/storage/primary)
-"tSv" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"tSC" = (
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
@@ -39029,13 +38671,6 @@
},
/turf/open/floor/grass,
/area/station/medical/virology)
-"tVl" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"tVq" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -39264,10 +38899,6 @@
},
/turf/open/floor/carpet/blue,
/area/station/security/checkpoint/customs)
-"tZZ" = (
-/obj/machinery/duct/industrial/waste,
-/turf/closed/wall/r_wall,
-/area/station/cargo/warehouse/upper)
"uap" = (
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
@@ -39333,6 +38964,10 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"ubX" = (
+/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"ubZ" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment,
@@ -39342,6 +38977,14 @@
/obj/effect/turf_decal/trimline/blue/filled/warning,
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"ucj" = (
+/obj/structure/cable,
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Escape-3";
+ location = "Escape-2"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/secondary/exit/departure_lounge)
"ucp" = (
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 6
@@ -39366,6 +39009,17 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
+"udg" = (
+/obj/machinery/duct/industrial/waste,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"udu" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -39512,11 +39166,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"ufy" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"ufI" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/window/reinforced/spawner/directional/west,
@@ -39524,6 +39173,16 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/grass,
/area/station/hallway/secondary/exit/departure_lounge)
+"ufN" = (
+/obj/machinery/computer/prisoner/management{
+ dir = 4
+ },
+/obj/item/food/spaghetti/security{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/turf/open/floor/carpet/red,
+/area/station/command/heads_quarters/hos)
"ufS" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/tracks,
@@ -39583,6 +39242,13 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"ugY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/departments/cargo,
+/turf/closed/wall,
+/area/station/cargo/lobby)
"uhc" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/yellow/opposingcorners,
@@ -39590,6 +39256,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"uhe" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"uhh" = (
/obj/machinery/door/airlock/medical/glass{
id_tag = "MedbayFoyer";
@@ -39647,6 +39324,10 @@
/obj/effect/turf_decal/trimline/purple/line,
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"uhC" = (
+/obj/structure/closet/wardrobe/miner,
+/turf/open/floor/wood,
+/area/station/cargo/miningoffice)
"uhL" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -39706,15 +39387,6 @@
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/floor/grass,
/area/station/hallway/secondary/exit/departure_lounge)
-"ukK" = (
-/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/door/airlock/highsecurity{
- name = "Secure Network Access"
- },
-/turf/open/floor/iron/dark/telecomms,
-/area/station/tcommsat/server)
"ukS" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/dark_red/filled/corner{
@@ -39820,6 +39492,19 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/office)
+"uny" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/line,
+/obj/machinery/light/directional/north,
+/obj/structure/table/glass,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"unE" = (
/obj/effect/turf_decal/trimline/red/filled/line,
/obj/structure/rack,
@@ -39886,6 +39571,26 @@
/obj/effect/spawner/structure/window/reinforced/plasma,
/turf/open/floor/plating,
/area/station/engineering/main)
+"upo" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"upw" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -39934,6 +39639,17 @@
},
/turf/open/floor/iron/dark,
/area/station/science/ordnance/office)
+"uqy" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"uqC" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -39951,6 +39667,11 @@
/obj/effect/landmark/start/librarian,
/turf/open/floor/iron/vaporwave,
/area/station/service/library)
+"urb" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"urf" = (
/obj/machinery/rnd/production/circuit_imprinter,
/turf/open/floor/engine,
@@ -39998,6 +39719,14 @@
/obj/effect/turf_decal/trimline/blue/warning,
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
+"ust" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 1
+ },
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"usA" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{
dir = 1
@@ -40219,10 +39948,6 @@
/obj/effect/landmark/start/prisoner,
/turf/open/floor/plating/ocean/pit,
/area/ocean)
-"uyE" = (
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
"uyU" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
dir = 10
@@ -40230,6 +39955,13 @@
/obj/item/radio/intercom/chapel/directional/west,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/secondary/entry)
+"uzc" = (
+/obj/machinery/computer/quantum_console{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"uzj" = (
/turf/closed/wall/r_wall,
/area/station/science/robotics)
@@ -40240,25 +39972,16 @@
},
/turf/open/floor/iron/smooth,
/area/station/science/genetics)
-"uzC" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 4
- },
-/obj/machinery/door/airlock/medical/glass{
- name = "Cryogenics Bay"
+"uzN" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners{
+ color = "#009dc4"
},
-/obj/effect/mapping_helpers/airlock/unres{
+/obj/effect/turf_decal/trimline/red/filled/line{
dir = 1
},
-/obj/effect/mapping_helpers/airlock/access/all/medical/general,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- id_tag = "medlobby"
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/treatment_center)
+/obj/machinery/light/floor/has_bulb,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/turret_protected/ai_upload)
"uzR" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/effect/turf_decal/tile/dark_blue/opposingcorners{
@@ -40286,6 +40009,13 @@
},
/turf/open/floor/wood,
/area/station/command/heads_quarters/qm)
+"uAv" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/treatment_center)
"uAJ" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 4
@@ -40372,6 +40102,27 @@
/obj/item/toy/crayon/spraycan/lubecan,
/turf/open/floor/iron/smooth,
/area/station/commons/fitness/recreation)
+"uCI" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/obj/structure/table/reinforced,
+/obj/item/wheelchair{
+ pixel_y = 3
+ },
+/obj/item/wheelchair{
+ pixel_y = 3
+ },
+/obj/item/wheelchair{
+ pixel_y = 3
+ },
+/obj/item/wheelchair{
+ pixel_y = 3
+ },
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/storage)
"uDj" = (
/obj/structure/table/wood,
/obj/item/paper,
@@ -40470,6 +40221,15 @@
"uEF" = (
/turf/open/floor/iron/dark,
/area/station/commons/fitness/recreation/entertainment)
+"uFf" = (
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 5
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"uFh" = (
/obj/machinery/computer/warrant{
dir = 1
@@ -40503,13 +40263,6 @@
},
/turf/open/floor/wood,
/area/station/commons/dorms)
-"uFD" = (
-/obj/structure/railing,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/misc/sandy_dirt,
-/area/station/service/hydroponics/upper)
"uFS" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -40556,18 +40309,48 @@
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/grass,
/area/station/maintenance/starboard/upper)
-"uGF" = (
-/obj/item/storage/box/monkeycubes,
-/obj/item/storage/box/monkeycubes,
-/obj/structure/table/glass,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"uGO" = (
/obj/structure/chair/wood{
dir = 8
},
/turf/open/floor/wood,
/area/station/commons/lounge)
+"uHd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/holofloor/dark,
+/area/station/science/cytology)
+"uHe" = (
+/obj/effect/turf_decal/stripes{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ space_dir = 4
+ },
+/obj/machinery/duct/industrial/waste,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4;
+ id_tag = "engine_outdoors"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/main)
"uHf" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -40728,6 +40511,12 @@
/obj/effect/turf_decal/tile/green/fourcorners,
/turf/open/floor/iron/smooth,
/area/station/science/genetics)
+"uLu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/structure/crate,
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"uLz" = (
/obj/effect/turf_decal/tile/blue/fourcorners,
/obj/machinery/firealarm/directional/north,
@@ -40754,6 +40543,16 @@
/obj/effect/spawner/random/trash/graffiti,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"uMh" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/storage)
"uMj" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/light/directional/east,
@@ -40763,6 +40562,13 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron/dark/textured,
/area/station/cargo/sorting)
+"uMp" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"uMq" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -40796,10 +40602,6 @@
/obj/structure/sign/warning/directional/east,
/turf/open/misc/grass/jungle,
/area/station/maintenance/port/central)
-"uNh" = (
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/xenobiology)
"uNt" = (
/obj/structure/table/glass,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -40874,13 +40676,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/carpet/cyan,
/area/station/ai_monitored/turret_protected/ai_upload)
-"uPb" = (
-/obj/structure/closet/secure_closet/miner,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/cargo/miningoffice)
"uPg" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/chem_master,
@@ -40998,16 +40793,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/service/hydroponics)
-"uRB" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
-/obj/structure/bed{
- dir = 4
- },
-/obj/item/bedsheet/medical{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"uRG" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41080,6 +40865,23 @@
"uSV" = (
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
+"uSW" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/trimline/purple/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/purple/filled/mid_joiner,
+/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/corner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_corner{
+ dir = 1
+ },
+/area/station/science/lobby)
"uTc" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -41116,12 +40918,6 @@
"uTC" = (
/turf/closed/wall/r_wall,
/area/station/science/cytology)
-"uTG" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/cargo/warehouse)
"uUo" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/trimline/red/filled/warning,
@@ -41131,6 +40927,21 @@
/obj/effect/turf_decal/trimline/yellow/filled/warning,
/turf/open/floor/iron/dark/textured,
/area/station/security/interrogation)
+"uUC" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/white/filled/warning{
+ dir = 1;
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/warning{
+ color = "#009dc4"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-20";
+ location = "Hall-19"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"uUD" = (
/turf/closed/wall,
/area/station/service/library)
@@ -41346,6 +41157,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/eighties,
/area/station/service/abandoned_gambling_den/gaming)
+"vaj" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"vaZ" = (
/obj/machinery/light/directional/north,
/obj/structure/table/wood,
@@ -41372,20 +41189,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
-"vbu" = (
-/obj/structure/tank_holder/extinguisher,
-/turf/open/floor/iron/white,
-/area/station/medical/virology)
-"vbA" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 1
- },
-/obj/machinery/stasis{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"vbD" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41503,39 +41306,33 @@
/obj/machinery/holopad,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar/backroom)
-"vea" = (
+"vdX" = (
/obj/structure/disposalpipe/segment{
- dir = 1
+ dir = 4
},
-/turf/closed/wall,
-/area/station/maintenance/starboard/aft)
-"veh" = (
-/obj/effect/turf_decal/stripes{
+/obj/structure/chair/sofa/bench/right{
dir = 1
},
-/obj/machinery/door/airlock/external{
- name = "Escape Pod Four";
- space_dir = 4
- },
-/obj/machinery/duct/industrial/waste,
-/obj/structure/cable,
-/obj/machinery/door/poddoor/preopen{
- id = "ceprivacy";
- name = "Privacy Shutter"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
+/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 4
},
-/obj/effect/turf_decal/trimline/yellow/filled/warning{
+/obj/effect/turf_decal/trimline/brown/line{
dir = 8
},
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4;
- id_tag = "engine_outdoors"
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 8
},
-/turf/open/floor/engine,
-/area/station/engineering/main)
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
+"vea" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/station/maintenance/starboard/aft)
"ven" = (
/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/grass,
@@ -41614,11 +41411,6 @@
dir = 4
},
/area/station/engineering/main)
-"vgg" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/science/cytology)
"vgy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41646,6 +41438,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/station/command/bridge)
+"vhv" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/closet/l3closet/scientist,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"vhM" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/trimline/dark_red/filled/warning{
@@ -41744,29 +41546,17 @@
/obj/item/banner/engineering,
/turf/open/floor/iron/dark/textured,
/area/station/engineering/main)
+"vju" = (
+/obj/machinery/light/directional/south,
+/obj/machinery/suit_storage_unit/ce,
+/obj/machinery/computer/security/telescreen/entertainment/directional/south,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"vjC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood,
/area/station/service/cafeteria)
-"vjG" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/door/airlock/medical/glass{
- name = "Pharmacy"
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 8
- },
-/obj/structure/cable,
-/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy,
-/obj/effect/mapping_helpers/airlock/access/any/medical/general,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/central)
"vjL" = (
/obj/structure/railing,
/mob/living/basic/chicken,
@@ -41782,6 +41572,15 @@
},
/turf/open/floor/holofloor/dark,
/area/station/science/cytology)
+"vkm" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Xenolab";
+ name = "Test Chamber Blast Door"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"vkw" = (
/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
/obj/machinery/light/directional/east,
@@ -41806,33 +41605,18 @@
/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"vlm" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/plaque{
- icon_state = "L2"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Escape-2";
- location = "Escape-1"
+"vln" = (
+/obj/machinery/duct/industrial/waste,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/iron/dark/textured,
-/area/station/hallway/secondary/exit/departure_lounge)
+/area/station/cargo/warehouse/upper)
"vlo" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"vlr" = (
-/obj/machinery/door/airlock/research{
- autoclose = 0;
- frequency = 1449;
- id_tag = "xeno_airlock_exterior";
- name = "Xenobiology Lab External Airlock"
- },
-/obj/effect/mapping_helpers/airlock/access/all/science/xenobio,
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/virology)
"vls" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -41883,6 +41667,23 @@
},
/turf/open/floor/iron/dark,
/area/station/service/hydroponics)
+"vmt" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"vmz" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -41926,6 +41727,20 @@
},
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"vnm" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-8";
+ location = "Hall-7"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"vnw" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -41966,10 +41781,6 @@
},
/turf/open/floor/wood,
/area/station/security/checkpoint/customs)
-"voS" = (
-/obj/machinery/pdapainter/engineering,
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"vpF" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -41993,10 +41804,6 @@
/obj/machinery/camera/autoname/directional/east,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
-"vqc" = (
-/obj/machinery/duct/industrial/waste,
-/turf/open/floor/iron/stairs,
-/area/station/cargo/warehouse/upper)
"vqB" = (
/obj/structure/rack,
/obj/effect/turf_decal/tile/neutral,
@@ -42064,6 +41871,42 @@
/obj/machinery/camera/autoname/directional/north,
/turf/open/floor/iron/grimy,
/area/station/service/lawoffice)
+"vrD" = (
+/obj/structure/table/glass,
+/obj/item/book/manual/wiki/cytology{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/biopsy_tool{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/storage/box/petridish{
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/obj/item/storage/box/petridish{
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
+"vrF" = (
+/obj/effect/spawner/random/structure/crate_empty,
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 8
+ },
+/obj/machinery/camera/autoname/directional/west,
+/obj/machinery/button/door/directional/west{
+ id = "cargodoor"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse)
"vrM" = (
/obj/machinery/duct/industrial/waste,
/obj/effect/turf_decal/trimline/blue/filled/warning{
@@ -42083,6 +41926,11 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white/textured,
/area/station/science/genetics)
+"vrW" = (
+/obj/effect/spawner/random/trash/graffiti,
+/obj/structure/cable/industrial,
+/turf/open/floor/plating,
+/area/station/maintenance/starboard/fore)
"vsl" = (
/obj/effect/turf_decal/trimline/purple/filled/line,
/obj/structure/disposalpipe/segment{
@@ -42090,6 +41938,18 @@
},
/turf/open/floor/iron/dark,
/area/station/science/lobby)
+"vsA" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/plaque{
+ icon_state = "L2"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Escape-2";
+ location = "Escape-1"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/secondary/exit/departure_lounge)
"vsL" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -42152,14 +42012,6 @@
/obj/machinery/computer/records/security/laptop,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
-"vug" = (
-/obj/effect/turf_decal/tile/yellow/opposingcorners{
- dir = 1
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/light/directional/south,
-/turf/open/floor/iron/dark,
-/area/station/cargo/storage)
"vus" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -42223,21 +42075,20 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/cargo/storage)
-"vvO" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"vwx" = (
/obj/machinery/camera/directional/west,
/turf/open/floor/engine,
/area/station/science/xenobiology)
+"vwL" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 5
+ },
+/obj/machinery/stasis{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/surgery/theatre)
"vwP" = (
/turf/closed/wall,
/area/station/commons/dorms)
@@ -42337,10 +42188,6 @@
dir = 8
},
/area/station/engineering/atmos/hfr_room)
-"vzu" = (
-/obj/structure/cable,
-/turf/open/floor/iron/stairs,
-/area/station/cargo/warehouse/upper)
"vzH" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/random/structure/table_or_rack,
@@ -42398,17 +42245,6 @@
/obj/item/assembly/igniter,
/turf/open/floor/iron/dark/textured,
/area/station/medical/pharmacy)
-"vAN" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/green/filled/warning{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-19";
- location = "Hall-18"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/commons/lounge)
"vBn" = (
/obj/structure/cable,
/turf/open/floor/iron/dark/textured,
@@ -42458,59 +42294,6 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"vDj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
-"vDs" = (
-/obj/effect/turf_decal/stripes{
- dir = 1
- },
-/obj/structure/table/reinforced,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/gloves/color/yellow,
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 1
- },
-/obj/item/construction/plumbing/engineering,
-/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{
- dir = 1
- },
-/obj/item/book/manual/wiki/plumbing,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/stack/cable_coil/industrial,
-/obj/item/rwd/industrial,
-/obj/item/rwd/industrial,
-/obj/item/rwd/industrial,
-/obj/item/rwd/industrial,
-/obj/item/rwd/industrial,
-/turf/open/floor/engine,
-/area/station/engineering/main)
-"vDY" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/blue/corner{
- dir = 1
- },
-/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/machinery/defibrillator_mount/directional/south,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"vEb" = (
/obj/structure/table,
/obj/item/poster/random_official{
@@ -42566,6 +42349,16 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plastic,
/area/station/hallway/primary/central)
+"vFx" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"vFQ" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -42598,6 +42391,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"vGH" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/brown/corner,
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"vHe" = (
/obj/machinery/light/no_nightlight/directional/east,
/obj/effect/turf_decal/trimline/yellow/filled/line{
@@ -42641,6 +42448,28 @@
/obj/effect/turf_decal/trimline/red/filled/warning,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
+"vJe" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
+"vJg" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/dark_blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/dark_blue/line{
+ dir = 8
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-23";
+ location = "Hall-22"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"vJm" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/white/filled/corner{
@@ -42653,6 +42482,19 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central/fore)
+"vJu" = (
+/obj/structure/table,
+/obj/machinery/camera/directional/north{
+ c_tag = "Medbay Paramedic Dispatch";
+ name = "medical camera";
+ network = list("ss13","medical")
+ },
+/obj/machinery/fax{
+ fax_name = "Medical";
+ name = "Medical Fax Machine"
+ },
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"vJx" = (
/obj/structure/reflector/box,
/turf/open/floor/plating,
@@ -42666,11 +42508,6 @@
/obj/effect/spawner/random/food_or_drink/cake_ingredients,
/turf/open/floor/iron/kitchen,
/area/station/service/kitchen)
-"vJM" = (
-/turf/open/floor/iron/stairs{
- dir = 1
- },
-/area/station/science/xenobiology)
"vKu" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -42724,6 +42561,9 @@
/obj/effect/mapping_helpers/airlock/access/any/security/general,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"vLH" = (
+/turf/closed/wall,
+/area/station/cargo/lobby)
"vMb" = (
/obj/machinery/button/door/directional/south{
id = "hop";
@@ -42775,12 +42615,6 @@
/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"vNp" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"vNB" = (
/obj/effect/turf_decal/trimline/blue/line{
dir = 5
@@ -42884,17 +42718,12 @@
/obj/effect/turf_decal/trimline/yellow/filled/line,
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
-"vQL" = (
-/obj/machinery/light/neon_lining{
- dir = 8;
- icon_state = "pink2_1"
- },
-/obj/machinery/light/neon_lining{
- dir = 1;
- icon_state = "pink2_1"
+"vQy" = (
+/obj/structure/cable,
+/turf/open/floor/iron/stairs{
+ dir = 8
},
-/turf/open/ballpit,
-/area/station/security/checkpoint/customs)
+/area/station/science/xenobiology)
"vQW" = (
/obj/structure/reflector/box{
dir = 1
@@ -43146,6 +42975,19 @@
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
+"vWG" = (
+/obj/structure/cable,
+/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"vWP" = (
/obj/structure/cable,
/obj/effect/spawner/random/trash/graffiti,
@@ -43238,6 +43080,12 @@
/obj/item/sea_map,
/turf/open/floor/carpet/neon/simple/orange/nodots,
/area/station/cargo/miningoffice)
+"vYW" = (
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring"
+ },
+/turf/open/floor/iron/dark,
+/area/station/engineering/atmos)
"vZk" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 1
@@ -43254,6 +43102,19 @@
},
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
+"vZy" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/dark_blue/filled/warning,
+/obj/effect/turf_decal/trimline/dark_blue/warning{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-25";
+ location = "Hall-24"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central/fore)
"vZG" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -43366,6 +43227,13 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plating,
/area/station/maintenance/department/electrical)
+"wdh" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"wdp" = (
/obj/effect/spawner/random/engineering/tracking_beacon,
/obj/effect/decal/cleanable/dirt,
@@ -43425,16 +43293,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/glass/reinforced,
/area/station/engineering/main)
-"weC" = (
-/obj/structure/fans/tiny/forcefield{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters{
- name = "Mining Dock Shutters";
- id = "miningdock"
- },
-/turf/open/floor/engine,
-/area/station/cargo/miningoffice)
"weN" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -43469,15 +43327,6 @@
},
/turf/open/floor/wood,
/area/station/command/heads_quarters/qm)
-"wfc" = (
-/obj/machinery/duct/industrial/waste,
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 9
- },
-/obj/effect/turf_decal/trimline/brown/corner,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"wfC" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -43527,6 +43376,16 @@
/obj/effect/spawner/random/structure/crate_loot,
/turf/open/floor/plating,
/area/station/maintenance/starboard/upper)
+"wgK" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/blue/warning{
+ dir = 4
+ },
+/obj/machinery/iv_drip,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"wgN" = (
/turf/open/floor/iron/stairs,
/area/station/hallway/secondary/exit/departure_lounge)
@@ -43582,23 +43441,19 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/aft)
-"whE" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
+"whB" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 6
},
-/obj/structure/rack,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
+/obj/structure/chair/sofa/corp/left{
+ dir = 8
+ },
+/turf/open/floor/iron/white/textured,
+/area/station/medical/storage)
"whJ" = (
/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
-"whT" = (
-/obj/effect/turf_decal/siding/white{
- dir = 6
- },
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
"wie" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -43616,6 +43471,21 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
+"wiA" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/circuit,
+/area/station/tcommsat/server)
+"wiH" = (
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct/industrial/waste,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/treatment_center)
"wiK" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/south,
@@ -43742,6 +43612,29 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/commons/lounge)
+"wnf" = (
+/obj/effect/turf_decal/stripes,
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ space_dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4;
+ id_tag = "engine_outdoors"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/station/engineering/main)
"wny" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -43750,6 +43643,22 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/command/heads_quarters/hos)
+"wnJ" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/machinery/ticket_machine/directional/north{
+ id = "ticket_machine_cargo"
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"wop" = (
/obj/machinery/duct/industrial/waste,
/obj/structure/disposalpipe/segment{
@@ -43906,13 +43815,6 @@
},
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
-"wsG" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 9
- },
-/turf/open/floor/iron/white/textured,
-/area/station/medical/medbay/lobby)
"wsU" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/corner{
@@ -43926,12 +43828,6 @@
/obj/effect/base_turf_modifier/pit,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
-"wte" = (
-/obj/machinery/modular_computer/console/preset/id{
- dir = 4
- },
-/turf/open/floor/carpet/orange,
-/area/station/command/heads_quarters/ce)
"wtD" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/delivery,
@@ -44006,13 +43902,16 @@
/obj/structure/falsewall,
/turf/open/floor/plating,
/area/station/medical/coldroom)
-"wvg" = (
-/obj/structure/table/reinforced,
-/obj/machinery/computer/security/telescreen/ce{
- pixel_y = 27
+"wvh" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
},
-/obj/item/lighter,
-/turf/open/floor/carpet/orange,
+/obj/machinery/door/airlock/command/glass{
+ name = "Chief Engineer"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/ce,
+/turf/open/floor/iron,
/area/station/command/heads_quarters/ce)
"wvm" = (
/obj/structure/table/reinforced,
@@ -44026,10 +43925,6 @@
"wvr" = (
/turf/open/floor/plating,
/area/station/service/kitchen/kitchen_backroom)
-"wvt" = (
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/engine,
-/area/station/science/xenobiology)
"wvv" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
@@ -44146,6 +44041,15 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/wood/large,
/area/station/security/checkpoint/customs)
+"wzq" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Network Access"
+ },
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"wzI" = (
/obj/machinery/door/airlock{
name = "Bedroom"
@@ -44171,6 +44075,14 @@
/obj/machinery/pollution_scrubber,
/turf/open/floor/iron/white/diagonal,
/area/station/medical/medbay/lobby)
+"wAo" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/ce{
+ pixel_y = 27
+ },
+/obj/item/lighter,
+/turf/open/floor/carpet/orange,
+/area/station/command/heads_quarters/ce)
"wAH" = (
/obj/effect/turf_decal/trimline/white/filled/warning{
dir = 10;
@@ -44370,11 +44282,41 @@
},
/turf/open/floor/carpet/red,
/area/station/command/heads_quarters/hos)
+"wEK" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"wEQ" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/station/security/checkpoint/science)
+"wEX" = (
+/obj/machinery/piratepad/civilian,
+/obj/effect/turf_decal/bot_white,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"wFg" = (
/obj/machinery/computer/operating,
/obj/effect/turf_decal/trimline/blue/filled/line{
@@ -44433,6 +44375,18 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/station/engineering/storage/tech)
+"wId" = (
+/obj/machinery/light_switch/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/blue/corner{
+ dir = 8
+ },
+/obj/structure/table/optable,
+/obj/machinery/defibrillator_mount/directional/east,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/surgery/theatre)
"wIn" = (
/obj/structure/cable,
/obj/effect/turf_decal/trimline/purple/filled/line{
@@ -44504,17 +44458,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/starboard/lesser)
-"wJR" = (
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 8
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
"wJX" = (
/turf/closed/wall,
/area/station/service/electronic_marketing_den)
@@ -44558,6 +44501,11 @@
},
/turf/open/floor/engine,
/area/station/engineering/atmos/office)
+"wLx" = (
+/obj/machinery/quantum_server,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"wLR" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 10
@@ -44581,17 +44529,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/hallway/primary/central)
-"wMH" = (
-/obj/structure/cable,
-/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-3";
- location = "Hall-2"
- },
-/turf/open/floor/plastic,
-/area/station/hallway/primary/central)
"wMO" = (
/obj/machinery/door/window/right/directional/south{
name = "First Aid Supplies";
@@ -44727,12 +44664,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/office)
-"wPX" = (
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 10
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"wQa" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -44765,6 +44696,9 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/security/interrogation)
+"wQz" = (
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"wQE" = (
/obj/effect/turf_decal/trimline/red/filled/warning{
dir = 10
@@ -44789,6 +44723,18 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plating,
/area/station/hallway/secondary/entry)
+"wRx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/cargo/miningoffice)
"wRB" = (
/obj/machinery/stove,
/turf/open/floor/iron/kitchen,
@@ -44823,11 +44769,6 @@
color = "#D381C9"
},
/area/station/science/robotics)
-"wRN" = (
-/obj/machinery/light/floor/has_bulb,
-/obj/effect/turf_decal/trimline/brown,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"wRT" = (
/turf/closed/wall,
/area/station/commons/lounge)
@@ -44910,6 +44851,9 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
+"wUo" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"wUz" = (
/obj/structure/fluff/broken_flooring,
/turf/open/floor/plating,
@@ -44948,29 +44892,6 @@
color = "#D381C9"
},
/area/station/science/robotics)
-"wVs" = (
-/obj/structure/cable,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Escape-3";
- location = "Escape-2"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/secondary/exit/departure_lounge)
-"wVt" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/white/filled/warning{
- dir = 1;
- color = "#009dc4"
- },
-/obj/effect/turf_decal/trimline/white/warning{
- color = "#009dc4"
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-20";
- location = "Hall-19"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/aft)
"wVu" = (
/obj/structure/cable,
/obj/structure/closet/secure_closet/security/sec,
@@ -45085,15 +45006,13 @@
},
/turf/open/floor/iron/dark,
/area/station/security/office)
-"wYV" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/spawner/random/vending/snackvend,
-/obj/effect/turf_decal/trimline/brown/line,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
+"wZl" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Network Access"
},
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
+/turf/open/floor/iron/dark/telecomms,
+/area/station/tcommsat/server)
"wZC" = (
/obj/machinery/door/airlock/public/glass{
name = "Auxiliary Tool Storage"
@@ -45135,6 +45054,21 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white/textured,
/area/station/medical/treatment_center)
+"wZW" = (
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining/glass{
+ id_tag = "innercargo";
+ name = "Cargo Bay"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/sorting)
"wZY" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 6
@@ -45153,12 +45087,6 @@
icon_state = "clown_carpet"
},
/area/station/service/theater)
-"xam" = (
-/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
-/obj/item/airlock_painter/decal,
-/turf/open/floor/plating,
-/area/station/cargo/warehouse)
"xan" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/obj/effect/landmark/start/depsec/medical,
@@ -45174,6 +45102,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/disposal/incinerator)
+"xaB" = (
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"xaC" = (
/obj/machinery/door/airlock/virology/glass{
name = "Test Subject Cell"
@@ -45231,6 +45166,13 @@
/obj/effect/spawner/random/structure/closet_maintenance,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
+"xbH" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/iron/white,
+/area/station/medical/virology)
"xbQ" = (
/obj/machinery/telecomms/receiver/preset_right,
/turf/open/floor/circuit/green/telecomms/mainframe,
@@ -45248,20 +45190,6 @@
},
/turf/open/floor/wood,
/area/station/service/library)
-"xbZ" = (
-/obj/structure/sign/warning/cold_temp/directional/north{
- pixel_y = 0;
- pixel_x = -32
- },
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/blue/filled/warning{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/medical/surgery/theatre)
"xcq" = (
/obj/effect/turf_decal/trimline/red/filled/warning{
dir = 4
@@ -45298,12 +45226,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/grass,
/area/station/medical/virology)
-"xdw" = (
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/storage)
"xdE" = (
/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
@@ -45379,6 +45301,17 @@
},
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/lobby)
+"xeR" = (
+/obj/machinery/computer/atmos_control/mix_tank{
+ dir = 1
+ },
+/obj/structure/window/spawner/directional/south,
+/obj/effect/turf_decal/tile/green/half/contrasted,
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring"
+ },
+/turf/open/floor/iron/dark,
+/area/station/engineering/atmos)
"xeT" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/command/storage/eva)
@@ -45393,37 +45326,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/open/floor/iron/dark/textured,
/area/station/medical/surgery/theatre)
-"xfO" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/turf_decal/trimline/dark_blue/filled/warning,
-/obj/effect/turf_decal/trimline/dark_blue/warning{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-25";
- location = "Hall-24"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/primary/central/fore)
+"xfK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/cargo/sorting)
"xfS" = (
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/ocean,
/area/ocean/generated_above)
-"xgr" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/brown/corner{
- dir = 8
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"xgA" = (
/obj/structure/flora/bush/large/style_random{
pixel_y = 0
@@ -45435,13 +45346,41 @@
/obj/machinery/telecomms/processor/preset_four,
/turf/open/floor/iron/dark/telecomms,
/area/station/tcommsat/server)
-"xhf" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/duct/industrial/waste,
+"xgZ" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/blue/corner,
+/obj/machinery/door/airlock/medical/glass{
+ name = "Cryogenics Bay"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ id_tag = "medlobby";
+ cycle_id = "medbay_lobby"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/medbay/lobby)
+"xhq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/line,
+/obj/machinery/light/directional/north,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/table/reinforced,
+/obj/item/stack/medical/bone_gel,
+/obj/item/stack/sticky_tape/surgical,
+/obj/structure/window/reinforced/spawner/directional/south,
/turf/open/floor/iron/white/textured,
-/area/station/medical/treatment_center)
+/area/station/medical/surgery/theatre)
"xhu" = (
/obj/machinery/light/floor/has_bulb,
/turf/open/floor/iron/dark/textured,
@@ -45467,11 +45406,6 @@
/obj/machinery/telecomms/broadcaster/preset_right,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
-"xim" = (
-/obj/machinery/duct/industrial/waste,
-/obj/structure/cable,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"xix" = (
/obj/machinery/camera/directional/east,
/obj/machinery/light/directional/south,
@@ -45485,13 +45419,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/mine/storage/public)
-"xiB" = (
-/obj/structure/table,
-/obj/item/kitchen/rollingpin,
-/obj/item/plate,
-/obj/item/holosign_creator/robot_seat/restaurant,
-/turf/open/floor/iron/kitchen,
-/area/station/service/kitchen)
"xiD" = (
/obj/effect/turf_decal/trimline/blue/filled/warning{
dir = 8
@@ -45554,6 +45481,11 @@
},
/turf/open/floor/engine,
/area/station/commons/storage/emergency/starboard)
+"xkw" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/cytology)
"xkQ" = (
/obj/machinery/door/airlock/freezer{
desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold.";
@@ -45585,6 +45517,25 @@
"xlz" = (
/turf/closed/wall/r_wall,
/area/station/cargo/sorting)
+"xlB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/mid_joiner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"xlI" = (
/obj/structure/chair/sofa/corp/right{
desc = "Looks like someone threw it out. Covered in donut crumbs.";
@@ -45685,6 +45636,19 @@
},
/turf/open/floor/carpet/executive,
/area/station/command/bridge)
+"xoE" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/machinery/ticket_machine/directional/north{
+ id = "ticket_machine_med"
+ },
+/obj/effect/turf_decal/trimline/blue/line,
+/mob/living/simple_animal/bot/medbot/autopatrol,
+/turf/open/floor/iron/dark/textured,
+/area/station/medical/medbay/lobby)
"xoM" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -45695,6 +45659,13 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/iron/white/textured,
/area/station/medical/medbay/central)
+"xoP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"xpc" = (
/obj/machinery/door/airlock/public/glass{
name = "Conveyor Access"
@@ -45831,6 +45802,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/wood,
/area/station/service/hydroponics/upper)
+"xsa" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "Privacy Shutter"
+ },
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/structure/cable/industrial,
+/turf/open/floor/plating,
+/area/station/command/heads_quarters/ce)
"xsd" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/random/maintenance,
@@ -45989,6 +45969,12 @@
},
/turf/open/floor/engine/o2,
/area/station/engineering/atmos)
+"xvk" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"xvl" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -46006,6 +45992,16 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/commons/lounge)
+"xvy" = (
+/obj/structure/table,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/item/stack/cable_coil,
+/obj/item/multitool,
+/obj/item/stock_parts/cell/high,
+/turf/open/floor/engine,
+/area/station/science/xenobiology)
"xvF" = (
/obj/effect/turf_decal/stripes/full,
/turf/open/floor/engine,
@@ -46135,16 +46131,6 @@
"xxZ" = (
/turf/closed/wall/r_wall,
/area/station/science/genetics)
-"xyg" = (
-/obj/effect/turf_decal/trimline/blue/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/blue/line{
- dir = 8
- },
-/obj/machinery/iv_drip,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"xyp" = (
/obj/effect/turf_decal/trimline/yellow/filled/corner{
dir = 8
@@ -46160,6 +46146,13 @@
/obj/structure/railing,
/turf/open/floor/iron/dark/textured,
/area/station/medical/medbay/lobby)
+"xyG" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Escape-4";
+ location = "Escape-3"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/secondary/exit/departure_lounge)
"xyY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/disposalpipe/segment{
@@ -46218,6 +46211,14 @@
/obj/machinery/telecomms/server/presets/science,
/turf/open/floor/circuit,
/area/station/tcommsat/server)
+"xAh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/landmark/start/shaft_miner,
+/turf/open/floor/engine,
+/area/station/cargo/miningoffice)
"xAi" = (
/obj/structure/table/wood/fancy/black,
/obj/machinery/door/firedoor,
@@ -46225,6 +46226,13 @@
/obj/structure/window/plasma/spawner/directional/south,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
+"xAk" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar/red,
+/obj/machinery/light_switch/directional/south,
+/turf/open/floor/iron/dark/textured,
+/area/station/science/xenobiology)
"xBe" = (
/obj/structure/bed/maint,
/turf/open/floor/iron/grimy,
@@ -46235,6 +46243,11 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmos)
+"xBo" = (
+/obj/structure/flora/rock/pile/jungle/style_random,
+/obj/item/food/grown/banana,
+/turf/open/misc/grass/jungle,
+/area/station/maintenance/port/central)
"xBF" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -46242,6 +46255,19 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/central)
+"xBN" = (
+/obj/effect/turf_decal/trimline/brown/filled/warning{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/brown/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/brown/filled/mid_joiner,
+/turf/open/floor/iron/dark/diagonal,
+/area/station/cargo/lobby)
"xBV" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/turret_protected/ai_upload)
@@ -46258,26 +46284,16 @@
},
/turf/open/floor/plating,
/area/station/commons/vacant_room/commissary)
+"xCm" = (
+/obj/machinery/light_switch/directional/north{
+ pixel_y = -21;
+ pixel_x = -21
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/starboard/fore)
"xCp" = (
/turf/closed/wall/r_wall,
/area/ruin/space/ks13/engineering/secure_storage)
-"xCy" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Central Access"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/warning{
- dir = 4
- },
-/turf/open/floor/iron/dark/diagonal,
-/area/station/cargo/lobby)
"xCE" = (
/obj/effect/turf_decal/stripes/asteroid/line,
/obj/effect/turf_decal/sand/plating,
@@ -46388,6 +46404,38 @@
/obj/structure/cable,
/turf/open/floor/wood/parquet,
/area/station/command/heads_quarters/cmo)
+"xGb" = (
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay Clinic"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/blue/filled/warning,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/medbay/central)
+"xGf" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/white/warning{
+ color = "#009dc4"
+ },
+/obj/effect/turf_decal/trimline/white/filled/warning{
+ dir = 1;
+ color = "#009dc4"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-12";
+ location = "Hall-11"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"xGw" = (
/obj/effect/turf_decal/trimline/blue/filled/warning{
dir = 4
@@ -46418,14 +46466,6 @@
},
/turf/open/floor/iron/dark/textured,
/area/station/engineering/break_room)
-"xGV" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 4
- },
-/obj/structure/rack,
-/obj/machinery/light_switch/directional/east,
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse)
"xHk" = (
/obj/structure/sink{
pixel_y = 11
@@ -46473,6 +46513,17 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/service/theater)
+"xJP" = (
+/obj/machinery/duct/industrial/waste,
+/obj/effect/turf_decal/trimline/brown/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 10
+ },
+/obj/structure/cable,
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/aft)
"xJU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -46541,6 +46592,11 @@
/obj/structure/cable,
/turf/open/floor/carpet/neon/simple/green/nodots,
/area/station/service/bar)
+"xKW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/structure/closet/l3closet/virology,
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"xLh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
@@ -46560,6 +46616,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/grass,
/area/station/medical/virology)
+"xLV" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/cargo/warehouse/upper)
"xLW" = (
/obj/machinery/door/airlock/research{
glass = 1;
@@ -46683,11 +46752,19 @@
/obj/effect/base_turf_modifier/pit,
/turf/open/floor/engine,
/area/station/ai_monitored/turret_protected/ai)
-"xNX" = (
-/turf/open/floor/iron/stairs{
- dir = 8
+"xNL" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/trimline/green/corner,
+/obj/effect/turf_decal/trimline/green/filled/warning{
+ dir = 9
},
-/area/station/science/xenobiology)
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Hall-17";
+ location = "Hall-16"
+ },
+/turf/open/floor/iron/dark/textured,
+/area/station/hallway/primary/central)
"xOe" = (
/obj/effect/turf_decal/trimline/yellow/filled/line,
/turf/open/floor/iron/dark,
@@ -46813,13 +46890,6 @@
},
/turf/open/floor/iron/dark/diagonal,
/area/station/cargo/sorting)
-"xRd" = (
-/obj/structure/cable,
-/obj/machinery/door/airlock{
- name = "Bedroom"
- },
-/turf/open/floor/eighties,
-/area/station/service/abandoned_gambling_den/gaming)
"xRl" = (
/obj/machinery/light/directional/south,
/turf/open/floor/iron/grimy,
@@ -46849,6 +46919,16 @@
},
/turf/open/floor/iron/white/textured,
/area/station/science/genetics)
+"xSo" = (
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/turf/open/ballpit,
+/area/station/security/checkpoint/customs)
"xSs" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/left/directional/north{
@@ -46862,9 +46942,6 @@
/obj/effect/spawner/random/trash/bacteria,
/turf/open/floor/plating,
/area/station/maintenance/starboard/aft)
-"xSC" = (
-/turf/open/floor/iron/dark/textured,
-/area/station/cargo/warehouse/upper)
"xSK" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/stripes/corner{
@@ -47044,19 +47121,6 @@
},
/turf/open/floor/wood,
/area/station/commons/fitness/recreation/entertainment)
-"xWv" = (
-/obj/machinery/duct/industrial/waste,
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/yellow/line,
-/obj/machinery/status_display/evac/directional/north,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=Hall-1";
- location = "Escape-4"
- },
-/turf/open/floor/iron/dark/textured,
-/area/station/hallway/secondary/exit/departure_lounge)
"xWF" = (
/obj/machinery/door/airlock/public/glass{
name = "Station Reception"
@@ -47081,14 +47145,6 @@
"xXa" = (
/turf/closed/wall,
/area/station/medical/treatment_center)
-"xXc" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/holopad,
-/turf/open/floor/iron/white/textured,
-/area/station/medical/surgery/theatre)
"xXz" = (
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 4
@@ -47264,10 +47320,6 @@
},
/turf/open/floor/iron/dark,
/area/station/science/lobby)
-"ycw" = (
-/obj/machinery/camera/autoname/directional/north,
-/turf/open/floor/plating/ocean,
-/area/station/ai_monitored/turret_protected/ai)
"ycB" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -47331,17 +47383,6 @@
},
/turf/open/floor/wood/large,
/area/station/command/bridge)
-"ydU" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/obj/machinery/light/floor/has_bulb,
-/turf/open/floor/iron/dark,
-/area/station/medical/virology)
"yew" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
@@ -47491,6 +47532,26 @@
dir = 8
},
/area/station/engineering/main)
+"yit" = (
+/obj/machinery/camera/autoname/directional/north,
+/obj/machinery/light_switch/directional/north,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/roller{
+ pixel_y = 6
+ },
+/obj/item/roller{
+ pixel_y = 6
+ },
+/obj/item/roller{
+ pixel_y = 6
+ },
+/obj/structure/window/spawner/directional/south,
+/obj/structure/window/spawner/directional/east,
+/turf/open/floor/iron/white/textured,
+/area/station/medical/storage)
"yiT" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/turf_decal/tile/green/half/contrasted{
@@ -47615,6 +47676,16 @@
dir = 8
},
/area/station/commons/storage/emergency/starboard)
+"ylP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/medical{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/station/medical/virology)
"ylS" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 4
@@ -61682,7 +61753,7 @@ vMQ
eCB
qRz
vMQ
-jlQ
+fxS
vvB
eAI
ydk
@@ -61908,7 +61979,7 @@ pBO
oSb
uVc
hdD
-xiB
+nLQ
nBu
pqp
fbw
@@ -62387,7 +62458,7 @@ gau
gaM
fue
uRZ
-kwc
+qth
rdt
ryY
eHP
@@ -62458,13 +62529,13 @@ nWb
bZS
sgC
bZS
-vug
+nYg
mLC
-rIq
-cXc
-mRF
+uMh
+evU
+jtG
mLC
-abG
+tJp
rXi
meJ
meJ
@@ -62715,13 +62786,13 @@ cGa
vfM
vfM
jwY
-rve
-ake
-bEl
+mAg
+noq
+qfe
fKI
-xdw
-ake
-iUE
+kWk
+noq
+jAu
rXi
rXi
meJ
@@ -62963,8 +63034,8 @@ eAY
nij
xDY
afI
-qpA
-ouo
+wZW
+obX
afI
mLC
hvE
@@ -62973,13 +63044,13 @@ fKI
ekq
fKI
iyv
-wRN
+rWm
fKI
-wRN
+rWm
fKI
-wRN
-vvO
-jpi
+rWm
+qWf
+lrK
rXi
meJ
meJ
@@ -63154,7 +63225,7 @@ wzI
vwP
iPh
iPh
-xRd
+qzk
iPh
iPh
lWJ
@@ -63220,7 +63291,7 @@ aRZ
iKE
ofl
afI
-iAz
+lbi
xbx
gVR
mLC
@@ -63230,13 +63301,13 @@ fKI
fKI
fKI
fKI
-qxh
-qxh
-qxh
-nOx
+jeA
+jeA
+jeA
+qgp
fKI
-rph
-qvN
+lfY
+jug
rXi
meJ
meJ
@@ -63487,13 +63558,13 @@ fKI
fKI
fKI
fKI
-wRN
+rWm
fKI
-wRN
+rWm
fKI
-bEQ
-vDj
-nHR
+iDO
+nEH
+jEU
rXi
meJ
meJ
@@ -63728,11 +63799,11 @@ ope
ydl
sNP
afI
-erU
+xfK
kfc
kmp
-erU
-erU
+xfK
+xfK
afI
yba
aOq
@@ -63743,19 +63814,19 @@ mUV
fKI
fKI
fKI
-ezr
+slJ
pQD
-cxG
-lZa
-lZa
-lZa
-sWJ
-kxu
+qOl
+jZW
+jZW
+jZW
+dDv
+fbj
rXi
meJ
-puS
-twO
-puS
+kxG
+lAK
+kxG
meJ
aah
aah
@@ -63932,7 +64003,7 @@ oHD
vTm
dls
mnS
-lVC
+xNL
lrZ
lrZ
lrZ
@@ -63949,7 +64020,7 @@ jMq
jMq
lLz
tJW
-gun
+nCE
lrZ
iHN
mWP
@@ -63984,35 +64055,35 @@ bSj
afI
pdU
hdI
-erU
-gce
-csw
-sCM
-jja
-qLh
-mrI
+xfK
+vGH
+upo
+neg
+pom
+xBN
+uhe
vto
aOq
lOa
mLC
-blk
+sMF
fKI
fKI
rUj
fKI
-dvq
+qaY
mLC
mLC
-ryM
-mnJ
-mnJ
-iTd
+pww
+lYf
+lYf
+lgN
mLC
rXi
meJ
-puS
-qeF
-ixt
+kxG
+ipv
+fru
meJ
meJ
aah
@@ -64182,7 +64253,7 @@ uLC
vwP
fue
fue
-gCN
+hPK
fue
fue
umh
@@ -64241,35 +64312,35 @@ oTE
afI
pdU
eTz
-erU
-kyM
-jwO
-vNp
-lHr
-ell
-dyN
+xfK
+mpz
+xoP
+cAu
+mcB
+szU
+kvV
vto
beO
vUV
-lwj
-byv
+ddE
+ocg
fKI
iyv
nyQ
gCo
wAI
mLC
-dqy
-crT
-pua
-pua
-qsJ
-jkE
-puS
-twO
-puS
-hZV
-puS
+lBo
+wEK
+pJS
+pJS
+msT
+dhx
+kxG
+lAK
+kxG
+kUi
+kxG
meJ
meJ
aah
@@ -64442,7 +64513,7 @@ beP
eQp
wAH
uGB
-jqM
+rRI
bBP
hJv
kBt
@@ -64499,16 +64570,16 @@ afI
jLj
fAd
mBG
-iao
-jwO
-sFn
-lHr
-oiq
-rmf
+dBg
+xoP
+fVz
+mcB
+msl
+oPj
yba
aOq
icx
-ooa
+eaZ
kRV
pQD
cxM
@@ -64516,17 +64587,17 @@ fCM
amg
eSW
mLC
-aOZ
-clo
-xSC
-xSC
-mbF
-qyZ
-puS
-hZV
-hon
-hZV
-puS
+czC
+gvn
+oBZ
+oBZ
+oCO
+toG
+kxG
+kUi
+cYo
+kUi
+kxG
meJ
meJ
aah
@@ -64687,7 +64758,7 @@ vwP
vwP
vwP
vwP
-bvF
+dml
pcB
kZH
kZH
@@ -64756,12 +64827,12 @@ afI
vmz
pGC
xRb
-iao
-jwO
-pFJ
-sPH
-tGT
-qOf
+dBg
+xoP
+ehA
+rcZ
+kKC
+vLH
yba
aOq
lOa
@@ -64773,17 +64844,17 @@ mLC
mLC
mLC
mLC
-wYV
-xim
-gGj
-gGj
-aAJ
-pEw
-qnC
-haA
-tZZ
-kkX
-twO
+sDJ
+eKU
+sQa
+sQa
+vln
+kty
+bqJ
+mdl
+czN
+lAP
+lAK
meJ
meJ
aah
@@ -64956,7 +65027,7 @@ ovT
fBG
bec
uGB
-frU
+fKV
tYL
keE
xwm
@@ -65010,37 +65081,37 @@ tqP
dPH
lpu
afI
-jUd
+guc
dds
afI
-amR
-hDP
-rzQ
-lMc
-gre
-qOf
+wnJ
+xlB
+vdX
+wEX
+jGW
+vLH
jfI
bpu
mVB
-qrZ
-wfc
-mKj
-mKj
-mKj
-mKj
-mKj
-vqc
-cfu
-clo
-xSC
-oAr
-mbF
-bFI
-puS
-tFd
-hon
-hZV
-puS
+kNY
+rbg
+nwW
+nwW
+nwW
+nwW
+nwW
+nuV
+hZH
+gvn
+oBZ
+bCi
+oCO
+jbP
+kxG
+nNX
+cYo
+kUi
+kxG
meJ
meJ
aah
@@ -65267,37 +65338,37 @@ pug
pug
qKD
afI
-qxC
-erU
+ngJ
+xfK
afI
-grB
-xCy
-nrV
-qOf
-qOf
-qOf
+bXE
+vmt
+ugY
+vLH
+vLH
+vLH
jfI
tNT
qhS
-eDo
-xgr
-nWw
-imV
-kJB
-mkz
-rhP
-vzu
-gPp
-mkz
-lHT
-lHT
-jRR
-bmq
-puS
-twO
-puS
-hZV
-puS
+mgA
+hfF
+rDC
+vWG
+xLV
+hHx
+snh
+eoW
+qYg
+hHx
+lrg
+lrg
+sEU
+iXo
+kxG
+lAK
+kxG
+kUi
+kxG
meJ
aah
aah
@@ -65533,7 +65604,7 @@ ugB
vgy
vgy
vgy
-apr
+jQl
rUH
dWi
qaa
@@ -65545,16 +65616,16 @@ mNz
qaa
rkn
rkn
-hbm
-blP
-blP
+tzt
+sFa
+sFa
epV
rkn
ucv
meJ
-puS
-qeF
-ixt
+kxG
+ipv
+fru
meJ
aah
aah
@@ -65758,7 +65829,7 @@ wDZ
jgV
pHV
hPT
-vAN
+grX
kAd
bTn
auj
@@ -65778,7 +65849,7 @@ sTn
sTn
ltK
qJW
-wVt
+uUC
hzM
sTn
ngm
@@ -65800,18 +65871,18 @@ cAf
kBn
mue
qaa
-dwP
-cLu
-oII
-bZJ
-bZJ
-iON
+hkH
+ovH
+uMp
+cGL
+cGL
+vrF
rrZ
-fWk
+cHj
meJ
-puS
-twO
-puS
+kxG
+lAK
+kxG
meJ
meJ
aah
@@ -66019,7 +66090,7 @@ lNO
gDA
pXi
hwW
-ivC
+lmI
pXi
mnD
lmO
@@ -66040,7 +66111,7 @@ iaP
pam
aMs
whA
-slD
+xJP
wlU
tXl
ifl
@@ -66064,7 +66135,7 @@ jkc
jkc
ipq
rCP
-fWk
+cHj
meJ
meJ
meJ
@@ -66297,7 +66368,7 @@ twN
twN
eBB
twN
-wJR
+jns
hCt
bCM
fXH
@@ -66321,7 +66392,7 @@ aej
aej
fNr
eBo
-fWk
+cHj
meJ
meJ
meJ
@@ -66551,21 +66622,21 @@ xJb
iWZ
iWZ
twN
-aFE
-rqh
-twN
+kUY
+wRx
+gBj
iWL
-geD
+fnB
fXH
fXH
nca
-lYm
+oex
twN
jfI
gtt
bMR
qaa
-qry
+mln
jJI
duv
dYT
@@ -66574,11 +66645,11 @@ qaa
khq
aej
jzw
-oSA
-oSA
+tLU
+tLU
jya
aGj
-fWk
+cHj
meJ
meJ
meJ
@@ -66754,7 +66825,7 @@ hSs
eiI
uRG
ewl
-lhq
+xGf
rfc
nxP
ljv
@@ -66828,14 +66899,14 @@ sfr
dYT
exF
qaa
-cfi
+kaH
jkc
txG
-oSA
+tLU
aej
ygc
rrZ
-fWk
+cHj
meJ
meJ
meJ
@@ -67068,7 +67139,7 @@ wXn
mDR
tYW
rzP
-rzP
+kGm
gPJ
lOu
itp
@@ -67083,16 +67154,16 @@ weQ
uVd
mtb
qNN
-cDZ
+bHk
qaa
bOK
-xGV
-xam
-oSA
+qCa
+cAG
+tLU
aej
ipq
rCP
-fWk
+cHj
meJ
meJ
meJ
@@ -67254,7 +67325,7 @@ sCd
nLV
nLV
nLV
-myB
+hQv
uzV
vMy
uzV
@@ -67289,8 +67360,8 @@ xCU
csW
csW
syi
-qEb
-uFD
+pwD
+ogA
xyY
kFH
iIX
@@ -67344,12 +67415,12 @@ hCB
hCB
hCB
hCB
-whE
+hlS
txG
aej
ygc
rrZ
-fWk
+cHj
meJ
meJ
meJ
@@ -67547,7 +67618,7 @@ xCU
csW
syi
syi
-mTs
+bXl
skl
kMm
dJB
@@ -67587,7 +67658,7 @@ fMn
jce
fZG
pEa
-sYn
+uhC
mIK
jfI
ngm
@@ -67601,12 +67672,12 @@ oCP
qgd
xAb
hCB
-whE
+hlS
jkc
aej
ipq
rCP
-fWk
+cHj
meJ
meJ
meJ
@@ -67780,7 +67851,7 @@ uzV
uzV
wlx
gIZ
-iDY
+fYu
nMG
mhY
rfc
@@ -67849,21 +67920,21 @@ twN
aWe
ngm
uod
-ukK
-dEZ
-tfI
+wzq
+eZF
+wiA
bNX
bNX
bNX
bNX
-ctS
+hJH
hCB
-whE
+hlS
jkc
aej
fNr
-cov
-fWk
+uLu
+cHj
meJ
meJ
aah
@@ -68096,7 +68167,7 @@ bch
ckl
kXk
iSl
-qRY
+wUo
btg
eGh
eGh
@@ -68107,20 +68178,20 @@ jfI
fvY
mLx
hCB
-cfE
-aXp
-hVc
+hFr
+cql
+ddY
xhY
aRb
bNX
dfM
hCB
-ecI
-pvw
-uTG
+avO
+bmb
+jMb
jya
aGj
-fWk
+cHj
meJ
meJ
aah
@@ -68334,7 +68405,7 @@ oiG
dqA
rgY
hWe
-kdI
+tIS
vdg
lzc
oWO
@@ -68353,13 +68424,13 @@ hcx
hcx
dGk
nip
-qRY
+wUo
jpe
-itp
-hPo
-pEa
+wLx
+uzc
+ktm
hOu
-bnU
+imE
lBX
asM
mLx
@@ -68369,7 +68440,7 @@ hCB
hCB
hCB
hCB
-cYi
+hDR
hCB
hCB
yex
@@ -68610,10 +68681,10 @@ hcx
hcx
dGk
nip
-qRY
-fUp
-kLz
-kLz
+wUo
+ust
+ipR
+ipR
pEa
acI
twN
@@ -68625,9 +68696,9 @@ hCB
due
vbW
dVe
-dHU
+dBV
wvF
-hst
+ecd
hCB
inf
tDi
@@ -68796,7 +68867,7 @@ qSI
bMU
nLV
nLV
-pzZ
+ise
uzV
vMy
uzV
@@ -68867,10 +68938,10 @@ hcx
hcx
dGk
htl
-qRY
-uPb
-mwD
-mwD
+wUo
+sRv
+pmG
+pmG
tAI
avq
twN
@@ -68882,7 +68953,7 @@ rsk
vzp
vzp
vzp
-dHU
+dBV
hwr
xHE
hCB
@@ -69119,10 +69190,10 @@ wdT
koQ
jkJ
twN
-dGk
-hcx
+mAw
+xAh
hcx
-dGk
+mAw
xBV
xBV
xBV
@@ -69139,7 +69210,7 @@ hzR
nUL
pTo
vzp
-tEY
+cGk
ieu
cOq
hCB
@@ -69376,10 +69447,10 @@ kND
fQw
qTc
kND
-dGk
+mAw
hcx
hcx
-dGk
+mAw
vSD
iUK
xUS
@@ -69396,8 +69467,8 @@ rht
lUX
lUX
lUX
-dHU
-sYg
+dBV
+gyE
mAA
hCB
qWE
@@ -69636,7 +69707,7 @@ kND
twN
wgE
wgE
-weC
+twN
vSD
tIm
ceU
@@ -69650,11 +69721,11 @@ gfJ
mLx
hCB
hCB
-tyl
+mCi
pcy
xbQ
-dHU
-iNX
+dBV
+kiM
xgE
hCB
fcd
@@ -69898,7 +69969,7 @@ vSD
bCW
ckb
cDd
-fjT
+hux
xBV
xzw
xBV
@@ -69908,10 +69979,10 @@ mLx
hCB
hCB
hCB
-qDE
-qDE
-qDE
-jUk
+cmf
+cmf
+cmf
+wZl
hCB
hCB
ugj
@@ -70153,7 +70224,7 @@ etN
meJ
vSD
lvU
-gBc
+gAg
eFa
uDt
xBV
@@ -70677,9 +70748,9 @@ wgQ
edn
mLx
rrB
-geH
+esM
ylE
-inW
+nls
rrB
xuu
wKX
@@ -70924,7 +70995,7 @@ etN
meJ
vSD
fPu
-tfT
+uzN
hLW
cOV
xBV
@@ -71183,7 +71254,7 @@ vSD
iIl
lOc
byJ
-pEl
+mfz
xBV
rOd
xBV
@@ -71641,9 +71712,9 @@ iyS
wDZ
nxP
tYA
-nwZ
+kbi
iEa
-pKF
+bMY
mSq
wXG
kND
@@ -71702,7 +71773,7 @@ xBV
tLD
fSf
byc
-nYw
+vJg
ahE
rrB
atX
@@ -71899,7 +71970,7 @@ cbq
nxP
tYA
iEa
-gMZ
+igF
cje
mSq
wXG
@@ -72153,9 +72224,9 @@ uPg
iGL
lHo
aal
-kOL
+vnm
tYA
-fya
+xBo
cje
iEa
mSq
@@ -72402,7 +72473,7 @@ cvj
sAx
eJv
lCz
-vjG
+otn
meC
tXC
tXC
@@ -72414,7 +72485,7 @@ xxK
tYA
cje
hmX
-fya
+xBo
mSq
wXG
kND
@@ -72660,7 +72731,7 @@ lAM
xoM
vCn
uhw
-btR
+oKa
kUl
hee
rhL
@@ -72669,9 +72740,9 @@ sED
eqz
vrM
cIO
-gMZ
+igF
iEa
-nwZ
+kbi
mSq
wXG
kND
@@ -72917,7 +72988,7 @@ eDM
eDM
ozO
dPd
-ljE
+xGb
wwy
wad
nvn
@@ -73503,11 +73574,11 @@ xeT
iiO
diH
fZn
-clZ
-nJP
+pwA
+lHR
ddT
opG
-jtw
+kuM
ajQ
sNA
jzc
@@ -74029,7 +74100,7 @@ nGh
tPP
vWi
hhP
-gZV
+bDj
rPr
uMD
vib
@@ -74274,11 +74345,11 @@ aaC
kjE
diH
fZn
-clZ
-eLO
+pwA
+fYV
say
vrl
-rvv
+riW
ajQ
uMq
qRs
@@ -74707,10 +74778,10 @@ btf
cAB
jaP
jKo
-cRm
-mjS
+fwV
+sJx
jyw
-pMT
+aFI
wro
jKo
jKo
@@ -74721,7 +74792,7 @@ xxZ
xxZ
eJv
eJv
-bsc
+xoE
dno
kAH
cIO
@@ -74754,7 +74825,7 @@ dtc
dgX
gej
fiM
-gUE
+kBA
aYY
meJ
meJ
@@ -74789,7 +74860,7 @@ iiO
udW
fZn
hrp
-egh
+hHK
maA
mug
ecF
@@ -74802,8 +74873,8 @@ htr
wsF
gMj
bLV
-bgu
-mTM
+lRh
+mIl
tPP
jwg
qQL
@@ -74964,12 +75035,12 @@ vQf
cAB
eSn
jKo
-pSS
+wId
itY
vNB
vdv
-gfL
-jMi
+wgK
+gXR
tBQ
uxI
mon
@@ -75012,7 +75083,7 @@ dEh
bOR
osG
fAs
-ycw
+nzZ
meJ
meJ
meJ
@@ -75048,7 +75119,7 @@ fZn
hrp
dVI
lEA
-fte
+asu
lEA
lEA
lEA
@@ -75222,7 +75293,7 @@ yaj
yaj
yaj
yaj
-bkC
+uny
pxZ
iYt
jYz
@@ -75268,7 +75339,7 @@ cBf
kDh
xnz
iBM
-bsW
+fHB
fSk
fSk
fSk
@@ -75479,11 +75550,11 @@ jmd
qAg
met
yaj
-tpo
+bOO
jvq
-xXc
+jWG
jvq
-pfW
+iNI
nhC
sQl
nvL
@@ -75538,7 +75609,7 @@ meJ
meJ
meJ
fXF
-sXK
+jzn
asA
dsr
tVq
@@ -75738,9 +75809,9 @@ jwu
kUm
kBH
jvq
-tVl
+fZX
pTU
-pfW
+iNI
nhC
wMO
eeA
@@ -75782,7 +75853,7 @@ oFf
oFf
hgK
eHM
-gUE
+kBA
aYY
aYY
meJ
@@ -75800,7 +75871,7 @@ lSW
cQR
tVq
vBW
-mSN
+cPy
vUj
eIa
sPX
@@ -75828,7 +75899,7 @@ rTk
saU
vnw
eCT
-kQD
+ufN
wEE
hXY
vzd
@@ -75993,9 +76064,9 @@ nKc
auP
dFj
yaj
-pCy
+xhq
jvq
-tVl
+fZX
jvq
sMv
nhC
@@ -76250,11 +76321,11 @@ aIK
cNq
bbK
yaj
-tLu
+mam
spI
htO
-xyg
-vDY
+pTB
+cnK
tBQ
dTv
xPa
@@ -76499,8 +76570,8 @@ qSI
bMU
hCQ
fDX
-fQo
-xbZ
+oUK
+nAS
pls
tBQ
tBQ
@@ -76520,7 +76591,7 @@ uOF
uOF
eJv
eJv
-bsc
+xoE
dno
kAH
cIO
@@ -76756,9 +76827,9 @@ qSI
bMU
fgS
nhC
-gPc
-wPX
-pbq
+tCm
+vaj
+qwR
rwu
ord
fDX
@@ -76773,9 +76844,9 @@ nsM
avv
wYe
dLY
-uzC
+ijh
mFK
-gMi
+xgZ
ybu
pgJ
dno
@@ -77013,9 +77084,9 @@ qSI
iqh
djZ
oft
-vbA
+bWB
pkl
-qrS
+udg
nrd
ubZ
wUi
@@ -77029,11 +77100,11 @@ oMo
oMo
oMo
oMo
-xhf
-rxg
-cHC
-hDO
-dtJ
+uAv
+lJl
+wiH
+msQ
+lzG
adf
fUj
rLb
@@ -77270,9 +77341,9 @@ qSI
mFh
mFh
fDX
-qJu
-htZ
-lmk
+vwL
+fvR
+uFf
gbq
kKu
fDX
@@ -77287,11 +77358,11 @@ hXo
cQI
wil
wil
-cBY
-cei
-tEj
-wsG
-qlB
+dPW
+mko
+rHY
+ncf
+lzS
uDF
kAH
cIO
@@ -77527,8 +77598,8 @@ qSI
fgS
fgS
alR
-jpS
-jpS
+hNg
+hNg
imy
ksZ
kge
@@ -77544,7 +77615,7 @@ jjf
wtT
lgg
ipa
-dLA
+imo
vNG
qNi
jYw
@@ -77802,7 +77873,7 @@ niS
mFK
oMo
dYV
-eAt
+eTm
uHW
abL
ikH
@@ -78562,7 +78633,7 @@ laX
feL
oYu
gTr
-dnv
+uCI
xiD
mrL
gTr
@@ -78819,7 +78890,7 @@ lfo
nuX
djK
gTr
-gXq
+nOy
nNs
mMH
fEm
@@ -78835,7 +78906,7 @@ okd
okd
rbQ
dRj
-slt
+kKP
cIO
ttR
xmh
@@ -79076,7 +79147,7 @@ gTr
gTr
gTr
gTr
-bAM
+yit
ehz
nnN
ehz
@@ -79329,9 +79400,9 @@ fgS
fgS
bzW
gTr
-abb
-lQe
-oGE
+vJu
+abg
+nTg
rvQ
dFu
kfA
@@ -79413,7 +79484,7 @@ sxv
pla
nsb
jec
-ioy
+gDi
vAv
maY
ylS
@@ -79586,15 +79657,15 @@ mFh
tAk
mog
gTr
-eDD
-lpY
-whT
+sXh
+vFx
+bKh
lqs
veM
qhH
veM
-gcG
-ilC
+ejk
+whB
emO
tku
dpZ
@@ -82171,7 +82242,7 @@ rdb
rAT
iEZ
red
-gNC
+lPX
omI
xBe
red
@@ -83004,9 +83075,9 @@ xWF
rAp
qRJ
qRJ
-vQL
-ezh
-aNn
+iOf
+xaB
+jve
qRJ
qRJ
uEb
@@ -83197,7 +83268,7 @@ rdb
nRM
nRM
red
-fuu
+tet
wCh
rDG
wUz
@@ -83260,11 +83331,11 @@ fHa
hAc
mXx
kLx
-vQL
+iOf
jBo
jBo
jBo
-lCu
+xSo
jMN
gPk
ydb
@@ -83517,11 +83588,11 @@ qeK
oHN
aQx
kLx
-odT
+dXR
jBo
jCm
aIc
-axu
+rwN
jMN
vYQ
pmk
@@ -83774,11 +83845,11 @@ qeK
pPR
aQx
kLx
-sFl
+rgn
jBo
jBo
jBo
-bZc
+pQZ
jMN
gPk
ydb
@@ -84032,9 +84103,9 @@ pPR
ccx
qRJ
qRJ
-sFl
-tLC
-iEh
+rgn
+atn
+nnb
qRJ
qRJ
eGV
@@ -84250,7 +84321,7 @@ mwr
mwr
mwr
mwr
-bHd
+qui
bpX
lrt
oUd
@@ -85059,7 +85130,7 @@ fkl
pPR
vbq
bcL
-hbV
+saX
dLe
dLe
dLe
@@ -85067,7 +85138,7 @@ dLe
dLe
dLe
dBk
-xfO
+vZy
uKT
pFe
fHe
@@ -85261,7 +85332,7 @@ pCt
pGv
vEv
nts
-rIF
+lYt
sri
bdj
afB
@@ -85299,7 +85370,7 @@ fet
fet
jNS
cev
-wMH
+eRJ
gXr
fPy
lXi
@@ -85555,7 +85626,7 @@ xJU
iAr
vcm
uyh
-eLs
+pay
aqa
qVr
cUM
@@ -85828,7 +85899,7 @@ kVT
jFs
xst
lAh
-hSy
+pQX
fuQ
iFe
aKn
@@ -86042,7 +86113,7 @@ nmx
nmx
nmx
naJ
-ltW
+bjl
qJg
pPi
tXg
@@ -86317,7 +86388,7 @@ xlI
heQ
heQ
heQ
-oTe
+bPM
lHk
xGJ
gFp
@@ -87372,14 +87443,14 @@ gQC
giY
kDW
nhj
-vlm
+vsA
sgI
sWi
ccr
ccr
wrG
sWi
-wVs
+ucj
xhD
nSA
kEj
@@ -87576,8 +87647,8 @@ xFc
naS
tmv
xFc
-khS
-cwQ
+dZw
+kJA
pPh
adj
ndO
@@ -88122,7 +88193,7 @@ tCB
bQC
sgQ
asg
-sli
+ssb
dnj
cpM
yab
@@ -88604,8 +88675,8 @@ cHQ
deg
jeT
iMz
-iGD
-rCn
+qCK
+uSW
nQI
gCU
mzV
@@ -88892,7 +88963,7 @@ aNi
qay
fFQ
jvI
-jRw
+poH
auZ
cbM
xKz
@@ -88912,7 +88983,7 @@ wLi
tSn
tSn
tSn
-xWv
+iUj
lRd
bdo
sWi
@@ -88921,7 +88992,7 @@ ieG
ieG
ieG
sWi
-akn
+xyG
irL
tSn
meJ
@@ -89399,7 +89470,7 @@ mMh
rvJ
bQI
qSp
-vDs
+pLo
aNi
ijM
fAb
@@ -89660,8 +89731,8 @@ kmd
aNi
tQV
qSp
-veh
-ejT
+uHe
+wnf
qSp
qSp
qSp
@@ -89669,9 +89740,9 @@ aBy
aBy
aBy
aBy
-oPs
-mSO
-kGA
+xsa
+qPi
+wvh
aBy
aBy
dGs
@@ -89921,15 +89992,15 @@ rpa
unh
pDS
dGs
-bwi
-tan
-rdE
-wte
-rqi
-voS
-oDZ
+xCm
+pUV
+mcL
+qtl
+hGs
+sLg
+nqv
hCY
-enB
+vju
aBy
itt
baG
@@ -90180,13 +90251,13 @@ pDS
dGs
dGs
aBy
-wvg
-aDo
+wAo
+snT
hCY
hCY
gRe
hCY
-fGy
+rqk
aBy
vPr
lHK
@@ -90433,16 +90504,16 @@ lwb
tsb
bku
bdB
-kcC
+cXs
dGs
dGs
aBy
aBy
-dGR
-idl
+hSt
+tNI
gRe
gRe
-oag
+ilo
aBy
aBy
vPr
@@ -90688,8 +90759,8 @@ lCJ
ltk
ltk
qSp
-dsW
-pVC
+ahZ
+rKC
pDS
dGs
dGs
@@ -90697,9 +90768,9 @@ dGs
aBy
aBy
aBy
-lXt
-iGp
-lXt
+aZF
+qoJ
+aZF
aBy
dGs
vPr
@@ -90948,13 +91019,13 @@ meJ
meJ
meJ
pDS
-fRu
+cmE
dGs
dGs
eJV
eJV
eJV
-nDE
+vrW
dGs
dGs
eXv
@@ -91129,7 +91200,7 @@ bqT
bqT
bqT
xrx
-tfp
+ouW
meJ
meJ
bal
@@ -91205,10 +91276,10 @@ meJ
meJ
meJ
meJ
-fRu
-fRu
-fRu
-fRu
+cmE
+cmE
+cmE
+cmE
pDS
pDS
che
@@ -91487,7 +91558,7 @@ sWi
jLr
nBw
wgN
-aBn
+kto
meJ
aah
aah
@@ -91744,8 +91815,8 @@ lZu
fhk
gKx
wgN
-qWy
-qeu
+gzY
+fwW
aah
aah
aah
@@ -92001,7 +92072,7 @@ xQs
jLr
nBw
wgN
-aBn
+kto
meJ
aah
aah
@@ -93965,7 +94036,7 @@ eqO
foQ
fPW
ock
-lQN
+jJi
uHA
pYg
dkJ
@@ -94222,8 +94293,8 @@ cWz
gyA
iAR
aRd
-mKe
-pfK
+vYW
+xeR
lvw
nLI
aah
@@ -96282,9 +96353,9 @@ nlQ
fxe
fxe
uTC
-obH
-sEM
-jNs
+vrD
+fhp
+dzt
ada
xDV
jZh
@@ -96538,10 +96609,10 @@ xto
cet
fxe
nIX
-vgg
-acG
-cSM
-sgF
+xkw
+wQz
+pzQ
+uHd
daF
vkl
mWz
@@ -96793,11 +96864,11 @@ swM
eWH
hhi
jfa
-ggD
-kHV
-tSv
-ufy
-ufy
+qbI
+cvJ
+bAT
+qkx
+qkx
oyB
qTk
bJM
@@ -97051,10 +97122,10 @@ fxe
fxe
fxe
fxe
-nvS
-biq
-iLU
-pDF
+eha
+gAb
+cmt
+bMd
uxK
uxK
uxK
@@ -97308,9 +97379,9 @@ gro
dOc
vwx
tvt
-lTI
-biq
-eih
+sbF
+gAb
+kkl
fxe
uxK
grG
@@ -97565,9 +97636,9 @@ gro
ahl
gro
tvt
-pDw
-biq
-pDw
+saQ
+gAb
+saQ
fxe
hef
bGX
@@ -97588,7 +97659,7 @@ acm
aDn
ngn
uxK
-giM
+jId
meJ
meJ
etN
@@ -97822,9 +97893,9 @@ quZ
kzi
quZ
tvt
-uGF
-biq
-kHV
+cOZ
+gAb
+cvJ
geV
rsS
nyZ
@@ -98079,9 +98150,9 @@ tvt
lmv
mkY
fxe
-uNh
-biq
-lfN
+cOl
+gAb
+fTx
fxe
pHK
rsS
@@ -98335,10 +98406,10 @@ iri
iri
iri
iri
-vJM
-kHV
-biq
-nsH
+sZD
+cvJ
+gAb
+lQT
fxe
teK
rsS
@@ -98592,10 +98663,10 @@ gKd
gKd
gKd
gKd
-qbT
-nUK
-biq
-cUa
+vhv
+xvk
+gAb
+ntZ
pIc
xur
tLz
@@ -98608,7 +98679,7 @@ rsS
ylx
wCC
uxK
-sza
+aDi
rzU
uxK
uxK
@@ -98841,7 +98912,7 @@ fxe
xzr
xzr
wTY
-ocd
+nUz
iri
gCe
jSL
@@ -98849,10 +98920,10 @@ iri
iri
iri
iri
-tdG
-jCH
-kHV
-lyz
+ovm
+lMM
+cvJ
+iyU
fxe
bik
xWu
@@ -99108,7 +99179,7 @@ tvt
tvt
fxe
bfx
-vlr
+hDB
bfx
bfx
bfx
@@ -99370,13 +99441,13 @@ fxA
dfB
bfs
imz
-htk
+xKW
lvb
bfx
-uRB
-iUt
+ylP
+urb
bfx
-ezn
+hva
fHm
bfx
bfx
@@ -99627,16 +99698,16 @@ cOP
pqT
hJI
bfx
-kzJ
-ydU
+ted
+uqy
bfx
-dqW
-aaK
+bHw
+iMn
bfx
lNZ
xwH
uij
-vbu
+reh
pUe
bfx
bfx
@@ -99885,19 +99956,19 @@ kHX
xLS
xaC
ajB
-bfB
+mCB
bfx
tZO
-fnj
+nRv
bfx
vdb
-uyE
+ipi
dXQ
dXQ
-uyE
-piW
+ipi
+xbH
bfx
-eDx
+akV
bBf
bBf
pIG
@@ -100141,7 +100212,7 @@ tCC
fzi
qoI
bfx
-tQj
+vJe
kMl
aTV
qSk
@@ -100385,7 +100456,7 @@ gro
dNu
tvt
iri
-iri
+eQz
iri
tvt
aZB
@@ -100404,7 +100475,7 @@ bfx
tZO
hNZ
bfx
-sbM
+qTd
eUn
dXQ
lSZ
@@ -100642,7 +100713,7 @@ ahl
eRl
wUP
iri
-iri
+eQz
iri
atC
gaz
@@ -100655,18 +100726,18 @@ bUM
dfB
jcw
bfx
-cQS
+agm
ajB
bfx
-cQS
+agm
ajB
bfx
-lYV
-uyE
-gNL
-agA
-bht
-btG
+eUj
+ipi
+dFf
+pFD
+lEJ
+jPF
bfx
wdc
tlw
@@ -100912,18 +100983,18 @@ bfx
bfx
bfx
bfx
-loR
-iUt
+isG
+urb
bfx
-loR
-iUt
+isG
+urb
bfx
-sVZ
+ocP
dXQ
-auL
-rLF
-sIO
-fXG
+fXc
+hFF
+ahL
+hmt
bfx
hhC
yhu
@@ -101155,9 +101226,9 @@ fxe
fxe
fxe
fxe
-dmc
-xNX
-ocv
+jIO
+vQy
+suS
fxe
fxe
fxe
@@ -101411,11 +101482,11 @@ aah
aah
aah
fxe
-kEz
-tpk
-fYW
-kHV
-slU
+ixG
+thY
+swq
+cvJ
+xAk
fxe
aah
aah
@@ -101668,11 +101739,11 @@ aah
aah
aah
fxe
-gNq
-kCx
-qkC
-djC
-gxq
+jef
+fPP
+lvt
+wdh
+ilb
fxe
aah
aah
@@ -101924,13 +101995,13 @@ aah
aah
aah
aah
-bpK
-nvC
-bpK
-mXO
-bpK
-nvC
-eLH
+pjg
+mtQ
+vkm
+jRG
+pjg
+mtQ
+bUk
aah
aah
aah
@@ -102184,7 +102255,7 @@ aah
fxe
gro
gro
-nAe
+euD
gro
gro
fxe
@@ -102439,9 +102510,9 @@ aah
aah
aah
fxe
-iYs
+sTz
gro
-nAe
+euD
gro
gro
fxe
@@ -102696,11 +102767,11 @@ aah
aah
aah
fxe
-wvt
+iZv
gro
-teO
-hKs
-lpP
+dky
+ubX
+tvN
fxe
aah
aah
@@ -103211,9 +103282,9 @@ aah
aah
fxe
fxe
-fhv
-oqT
-qMR
+xvy
+hZz
+eIs
fxe
fxe
aah
@@ -103466,13 +103537,13 @@ aah
aah
aah
aah
-atG
+mUq
fxe
fxe
fxe
fxe
fxe
-atG
+mUq
aah
aah
aah
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 682216193a5e..c96e55fd0c57 100644
--- a/_maps/map_files/debug/runtimestation.dmm
+++ b/_maps/map_files/debug/runtimestation.dmm
@@ -1147,6 +1147,13 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"er" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/computer/quantum_console,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"es" = (
/obj/machinery/dna_scannernew,
/obj/effect/turf_decal/tile/blue/opposingcorners{
@@ -1846,6 +1853,10 @@
/obj/item/paper/guides/jobs/security/labor_camp,
/turf/open/floor/iron,
/area/station/security/brig)
+"gU" = (
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/turf/open/floor/circuit/green,
+/area/station/bitrunning/den)
"gW" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/radiation/rad_area/directional/north,
@@ -1928,6 +1939,11 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
+"lT" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"lX" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -1939,6 +1955,16 @@
/obj/machinery/chem_mass_spec,
/turf/open/floor/iron,
/area/station/medical/chemistry)
+"mU" = (
+/obj/machinery/door/airlock,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
+"nk" = (
+/obj/machinery/netpod,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"nn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -1973,6 +1999,9 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/iron,
/area/station/medical/chemistry)
+"pl" = (
+/turf/closed/wall/r_wall,
+/area/station/bitrunning/den)
"pv" = (
/obj/machinery/light/directional/north,
/turf/open/floor/iron,
@@ -2017,11 +2046,23 @@
/obj/machinery/door/airlock/shell,
/turf/open/floor/iron/dark,
/area/station/construction)
+"su" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/item/storage/part_replacer/bluespace/tier4,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"sH" = (
/obj/structure/table,
/obj/item/storage/box/shipping,
/turf/open/floor/iron,
/area/station/commons/storage/primary)
+"tB" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"tE" = (
/obj/machinery/door/airlock/research,
/turf/open/floor/iron/dark,
@@ -2134,12 +2175,22 @@
"wU" = (
/turf/closed/wall/r_wall,
/area/station/science/explab)
+"yl" = (
+/obj/machinery/quantum_server,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"yA" = (
/obj/docking_port/stationary/laborcamp_home{
dir = 8
},
/turf/open/space/basic,
/area/space)
+"yG" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/obj/machinery/light/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/entry)
"yK" = (
/obj/structure/fans/tiny/invisible,
/obj/effect/turf_decal/stripes/line{
@@ -2213,6 +2264,10 @@
/obj/structure/rack,
/turf/open/floor/iron/dark,
/area/station/science/explab)
+"Dy" = (
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"DW" = (
/obj/machinery/computer/scan_consolenew{
dir = 1
@@ -2302,6 +2357,9 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"Lq" = (
+/turf/open/floor/circuit/green,
+/area/station/bitrunning/den)
"Ly" = (
/obj/machinery/chem_dispenser/chem_synthesizer,
/turf/open/floor/iron/dark,
@@ -2373,6 +2431,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"Qr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"Qt" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -2396,6 +2458,11 @@
},
/turf/open/floor/plating,
/area/station/hallway/secondary/entry)
+"Rl" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/entry)
"RM" = (
/obj/structure/closet/secure_closet/hop{
locked = 0
@@ -2403,6 +2470,9 @@
/obj/effect/turf_decal/tile/blue/half/contrasted,
/turf/open/floor/iron,
/area/station/command/bridge)
+"RW" = (
+/turf/open/floor/iron,
+/area/station/bitrunning/den)
"Sj" = (
/obj/structure/table/optable,
/obj/effect/turf_decal/tile/blue{
@@ -3060,12 +3130,12 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
+pl
+pl
+pl
+pl
+pl
+pl
aa
aa
aa
@@ -3152,12 +3222,12 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
+pl
+gU
+Lq
+RW
+nk
+pl
aa
aa
aa
@@ -3244,12 +3314,12 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
+pl
+gU
+Lq
+RW
+nk
+pl
aa
aa
aa
@@ -3336,12 +3406,12 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
+pl
+yl
+RW
+su
+nk
+pl
aa
aa
aa
@@ -3428,12 +3498,12 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
+pl
+er
+Dy
+lT
+tB
+pl
aa
aa
aa
@@ -3520,12 +3590,12 @@ em
em
em
em
-em
-em
-em
-dY
-en
-dY
+pl
+pl
+pl
+mU
+Qr
+pl
Tj
Tj
Tj
@@ -3615,7 +3685,7 @@ rK
rK
vy
em
-eh
+Rl
eh
LW
lc
@@ -3707,7 +3777,7 @@ qQ
qQ
ME
em
-eh
+Rl
eh
LW
lc
@@ -3799,7 +3869,7 @@ qQ
qQ
ME
em
-eh
+Rl
eh
LW
lc
@@ -3891,7 +3961,7 @@ qQ
qQ
CQ
em
-eh
+yG
eh
LW
lc
@@ -3983,7 +4053,7 @@ qQ
qQ
ME
em
-eh
+Rl
eh
LW
lc
@@ -4075,7 +4145,7 @@ qQ
qQ
YL
em
-eh
+Rl
eh
LW
lc
@@ -4167,7 +4237,7 @@ II
gl
gD
kj
-wM
+Rl
wM
LW
lc
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm
index a34ab0e6fcf3..eab9280b8fa7 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm
@@ -1845,10 +1845,10 @@ gb
gb
gb
gb
-gb
-gb
-gb
-gb
+eJ
+eJ
+eJ
+eJ
eJ
eJ
eJ
@@ -1882,10 +1882,10 @@ gb
gb
gb
gb
-gb
-gb
-gb
-gb
+eJ
+eJ
+eJ
+eJ
eJ
eJ
eJ
@@ -1918,7 +1918,7 @@ eJ
gb
gb
gb
-eJ
+gb
eJ
eJ
eJ
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm
index b5273b4c845f..ea1beb34cb0d 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm
@@ -2004,10 +2004,10 @@ se
se
se
se
-se
-se
-se
-se
+dx
+dx
+dx
+dx
dx
dx
dx
@@ -2041,10 +2041,10 @@ se
se
se
se
-se
-se
-se
-se
+dx
+dx
+dx
+dx
dx
dx
dx
@@ -2077,7 +2077,7 @@ dx
se
se
se
-dx
+se
dx
dx
dx
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm
index 63b18a69e752..775e31e6b9d8 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm
@@ -1918,10 +1918,10 @@ cK
cK
cK
cK
-cK
-cK
-cK
-cK
+Hu
+Hu
+Hu
+Hu
Hu
Hu
Hu
@@ -1955,10 +1955,10 @@ cK
cK
cK
cK
-cK
-cK
-cK
-cK
+Hu
+Hu
+Hu
+Hu
Hu
Hu
Hu
@@ -1991,7 +1991,7 @@ Hu
cK
cK
cK
-Hu
+cK
Hu
Hu
Hu
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm
index 202e850684a5..ae78ae6731f9 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm
@@ -1079,10 +1079,10 @@ V
V
V
V
-V
-V
-V
-V
+l
+l
+l
+l
l
l
l
@@ -1105,10 +1105,10 @@ V
V
V
V
-V
-V
-V
-V
+l
+l
+l
+l
l
l
l
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm
index 939d8bb0aafc..0e8deac0a590 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm
@@ -1013,10 +1013,10 @@ V
V
l
V
-V
-V
-V
-V
+b
+b
+b
+b
b
b
b
@@ -1039,10 +1039,10 @@ V
V
V
V
-V
-V
-V
-V
+b
+b
+b
+b
b
b
b
diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm
index 5831bc047d39..e110ecac03b6 100644
--- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm
@@ -79,6 +79,10 @@
/obj/item/clothing/head/utility/hardhat,
/turf/open/misc/asteroid,
/area/station/asteroid)
+"r" = (
+/obj/item/gps/mining,
+/turf/open/misc/asteroid/dug,
+/area/station/asteroid)
"s" = (
/obj/machinery/conveyor{
id = "tram_mining"
@@ -113,10 +117,6 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/station/maintenance/department/cargo)
-"y" = (
-/obj/item/gps/mining,
-/turf/open/misc/asteroid,
-/area/station/asteroid)
"z" = (
/obj/item/storage/bag/ore{
pixel_x = 6;
@@ -1048,7 +1048,7 @@ b
i
i
I
-I
+r
Y
i
Y
@@ -1100,10 +1100,10 @@ B
I
I
P
-y
-i
-i
-i
+Q
+Q
+Q
+Q
Q
Q
Q
@@ -1126,10 +1126,10 @@ Y
Y
I
Y
-i
-i
-i
-i
+Q
+Q
+Q
+Q
Q
Q
Q
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index ba14c8c9b5e2..ffca395da9c2 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -1621,18 +1621,28 @@
/turf/open/misc/asteroid/airless,
/area/station/asteroid)
"aeA" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=2";
- location = "QM #2"
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
},
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #2";
- suffix = "#2"
+/obj/effect/turf_decal/box/corners{
+ dir = 1
},
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/obj/effect/decal/cleanable/oil/streak,
+/obj/structure/sign/poster/random/directional/north,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"aeB" = (
/obj/machinery/airalarm/directional/south,
/obj/structure/cable,
@@ -1803,18 +1813,23 @@
/turf/open/floor/iron,
/area/station/cargo/miningdock)
"afk" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=2";
- location = "QM #1"
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
},
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/landmark/bitrunning/station_reward_spawn,
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
},
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/smooth_large,
+/area/station/bitrunning/den)
"afl" = (
/obj/machinery/door/airlock/mining/glass{
name = "Mining Dock"
@@ -4266,6 +4281,9 @@
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 8
},
+/obj/structure/chair{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/cargo/storage)
"axG" = (
@@ -4298,7 +4316,12 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
},
-/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/machinery/light/dim/directional/north,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"axO" = (
@@ -4309,6 +4332,12 @@
pixel_x = -4
},
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=1";
+ location = "QM #4"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"axS" = (
@@ -6963,6 +6992,17 @@
},
/turf/open/floor/iron/white,
/area/station/medical/pharmacy)
+"aTR" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/landmark/start/bitrunner,
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"aTT" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
@@ -8222,9 +8262,6 @@
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 6
},
-/obj/structure/railing{
- dir = 4
- },
/obj/structure/industrial_lift/public,
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
@@ -8366,6 +8403,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/security/checkpoint/supply)
+"bub" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/station/bitrunning/den)
"bug" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 5
@@ -9459,11 +9500,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron/dark,
/area/station/security/courtroom/holding)
-"bLq" = (
-/obj/effect/decal/cleanable/dirt,
-/mob/living/basic/spider/maintenance,
-/turf/open/floor/iron/smooth,
-/area/station/cargo/drone_bay)
"bLA" = (
/obj/structure/table/wood,
/obj/item/folder{
@@ -10940,9 +10976,6 @@
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 5
},
-/obj/structure/railing{
- dir = 4
- },
/obj/structure/industrial_lift/public,
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
@@ -11908,6 +11941,15 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/science/lobby)
+"cyO" = (
+/obj/machinery/elevator_control_panel{
+ layer = 3.1;
+ linked_elevator_id = "tram_xeno_lift";
+ pixel_y = 2;
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
+/turf/closed/wall/r_wall,
+/area/station/science/xenobiology)
"cyU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -13019,6 +13061,20 @@
/obj/effect/spawner/random/structure/steam_vent,
/turf/open/floor/plating,
/area/station/maintenance/department/medical)
+"cSc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ location = "QM #3"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #3";
+ suffix = "#3"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/drone_bay)
"cSe" = (
/obj/machinery/light/directional/east,
/turf/open/floor/glass/reinforced,
@@ -13471,14 +13527,21 @@
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 4
},
-/obj/structure/railing{
- dir = 4
- },
/obj/structure/industrial_lift/public,
/obj/machinery/elevator_control_panel/directional/east{
linked_elevator_id = "tram_lower_center_lift";
preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
},
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/dark_red/warning{
+ dir = 4
+ },
+/obj/machinery/elevator_control_panel/directional/east{
+ linked_elevator_id = "tram_lower_center_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
"cZT" = (
@@ -15350,9 +15413,6 @@
dir = 1
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 4
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/security/execution/transfer)
"dHD" = (
@@ -16438,6 +16498,12 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"eaf" = (
@@ -17948,12 +18014,16 @@
/turf/open/floor/iron,
/area/station/maintenance/tram/left)
"eyl" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/spawner/random/maintenance/two,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/cargo)
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/obj/effect/turf_decal/siding/thinplating_new/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"eyy" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -18515,6 +18585,13 @@
linked_elevator_id = "tram_sci_lift";
preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
},
+/obj/effect/turf_decal/trimline/dark_red/warning{
+ dir = 9
+ },
+/obj/machinery/elevator_control_panel/directional/west{
+ linked_elevator_id = "tram_sci_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/science/lower)
"eJZ" = (
@@ -20281,7 +20358,16 @@
/area/station/security/checkpoint/science)
"foa" = (
/obj/effect/decal/cleanable/dirt,
-/mob/living/basic/spider/giant,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ location = "QM #2"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #2";
+ suffix = "#2"
+ },
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"fof" = (
@@ -20373,6 +20459,8 @@
/area/station/science/ordnance)
"foU" = (
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/cargo/storage)
"foY" = (
@@ -22207,9 +22295,6 @@
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 10
},
-/obj/structure/railing{
- dir = 8
- },
/obj/structure/industrial_lift/public,
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
@@ -23081,6 +23166,17 @@
/obj/structure/destructible/cult/item_dispenser/archives/library,
/turf/open/floor/engine/cult,
/area/station/service/library)
+"gmI" = (
+/obj/machinery/quantum_server,
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"gmN" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -24020,9 +24116,6 @@
/turf/open/floor/iron/smooth,
/area/station/hallway/primary/tram/center)
"gEE" = (
-/obj/structure/railing{
- dir = 1
- },
/obj/machinery/elevator_control_panel/directional/north{
linked_elevator_id = "tram_upper_center_lift";
preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
@@ -24031,6 +24124,13 @@
dir = 1
},
/obj/structure/industrial_lift/public,
+/obj/machinery/elevator_control_panel/directional/north{
+ linked_elevator_id = "tram_upper_center_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
+/obj/effect/turf_decal/trimline/dark_red/warning{
+ dir = 1
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/service)
"gEK" = (
@@ -25008,7 +25108,6 @@
dir = 10
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing,
/turf/open/floor/plating/elevatorshaft,
/area/station/security/execution/transfer)
"gTw" = (
@@ -25106,6 +25205,8 @@
"gUL" = (
/obj/effect/landmark/event_spawn,
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
"gUO" = (
@@ -26264,9 +26365,6 @@
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 9
},
-/obj/structure/railing{
- dir = 8
- },
/obj/structure/industrial_lift/public,
/turf/open/floor/plating/elevatorshaft,
/area/station/hallway/secondary/construction/engineering)
@@ -26925,7 +27023,6 @@
/obj/effect/turf_decal/siding/thinplating/corner{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/cargo/storage)
"hEb" = (
@@ -27632,9 +27729,6 @@
/turf/open/floor/iron,
/area/station/command/heads_quarters/qm)
"hQz" = (
-/obj/structure/railing{
- dir = 8
- },
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 8
},
@@ -28589,6 +28683,15 @@
"igy" = (
/turf/closed/wall,
/area/station/engineering/supermatter/room)
+"igG" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"igL" = (
/obj/machinery/computer/operating{
dir = 8
@@ -28772,9 +28875,17 @@
/obj/effect/landmark/lift_id{
specific_lift_id = "tram_cargo_lift"
},
-/obj/structure/railing{
+/obj/effect/landmark/lift_id{
+ specific_lift_id = "tram_cargo_lift"
+ },
+/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 8
},
+/obj/machinery/elevator_control_panel/directional/west{
+ linked_elevator_id = "tram_cargo_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck");
+ req_access = list("mining")
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/cargo/miningdock)
"iko" = (
@@ -29575,7 +29686,6 @@
dir = 10
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing,
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"ixq" = (
@@ -29596,11 +29706,15 @@
/turf/open/floor/catwalk_floor,
/area/station/maintenance/port/central)
"ixs" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/crate_empty,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/cargo)
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"ixu" = (
/obj/structure/closet/crate/science{
name = "MOD core crate"
@@ -30790,6 +30904,9 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/science)
+"iTi" = (
+/turf/closed/wall,
+/area/station/bitrunning/den)
"iTm" = (
/obj/structure/table/glass,
/obj/item/storage/pill_bottle/mannitol,
@@ -31425,6 +31542,20 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/security/prison/safe)
+"jcJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ location = "QM #1"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #1";
+ suffix = "#1"
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/drone_bay)
"jcM" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/trimline/yellow/warning{
@@ -31495,9 +31626,6 @@
dir = 9
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 9
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/cargo/miningdock)
"jdZ" = (
@@ -32930,7 +33058,6 @@
/turf/open/floor/iron,
/area/station/security/prison)
"jAH" = (
-/obj/structure/railing,
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 10
},
@@ -33556,7 +33683,6 @@
/turf/open/floor/engine,
/area/station/maintenance/disposal/incinerator)
"jMr" = (
-/obj/structure/railing,
/obj/effect/turf_decal/trimline/dark_red/warning,
/obj/structure/industrial_lift/public,
/turf/open/floor/plating/elevatorshaft,
@@ -33995,12 +34121,17 @@
/turf/open/floor/iron/smooth,
/area/station/maintenance/starboard/lesser)
"jTQ" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 1
+/obj/structure/railing{
+ layer = 3.1;
+ dir = 4
},
-/obj/effect/turf_decal/trimline/brown/filled/line,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/obj/machinery/netpod,
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/carpet/neon/simple/purple/nodots,
+/area/station/bitrunning/den)
"jUa" = (
/obj/effect/turf_decal/trimline/purple/filled/corner{
dir = 4
@@ -35473,14 +35604,15 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/service)
"ksx" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=1";
- location = "QM #5"
+/obj/effect/turf_decal/siding/thinplating_new/dark/corner{
+ dir = 1
},
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"ksP" = (
/obj/effect/turf_decal/siding/thinplating/corner{
dir = 1
@@ -35676,8 +35808,11 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/structure/table,
/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"kye" = (
@@ -36137,9 +36272,6 @@
dir = 6
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 6
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"kFJ" = (
@@ -37962,14 +38094,31 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
"leN" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=1";
- location = "QM #4"
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/cup/glass/mug/coco{
+ pixel_x = -7;
+ pixel_y = 7
},
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/obj/item/reagent_containers/cup/glass/mug/coco{
+ pixel_x = -6;
+ pixel_y = -1
+ },
+/obj/item/folder/yellow{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/pen{
+ pixel_x = 6
+ },
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 4;
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"leV" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/maintenance_hatch,
@@ -39592,6 +39741,16 @@
},
/obj/structure/sign/clock/directional/west,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=1";
+ location = "QM #6"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #6";
+ suffix = "#6"
+ },
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"lIQ" = (
@@ -40275,6 +40434,9 @@
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
"lTP" = (
@@ -46119,6 +46281,16 @@
"nPe" = (
/turf/open/floor/carpet,
/area/station/medical/psychology)
+"nPj" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"nPp" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -46207,13 +46379,17 @@
dir = 1
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 8
- },
/obj/machinery/elevator_control_panel/directional/west{
linked_elevator_id = "tram_perma_lift";
preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
},
+/obj/effect/turf_decal/caution/stand_clear/red{
+ dir = 1
+ },
+/obj/machinery/elevator_control_panel/directional/west{
+ linked_elevator_id = "tram_perma_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/security/execution/transfer)
"nQo" = (
@@ -46376,6 +46552,15 @@
},
/turf/open/floor/iron/white,
/area/station/security/medical)
+"nSC" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"nSI" = (
/turf/closed/wall/r_wall,
/area/station/commons/vacant_room/commissary)
@@ -46608,7 +46793,6 @@
/obj/effect/turf_decal/siding/thinplating{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/cargo/storage)
"nXn" = (
@@ -47524,7 +47708,6 @@
dir = 5
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing,
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"onc" = (
@@ -48586,19 +48769,17 @@
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
"oHi" = (
-/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=1";
- location = "QM #6"
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
},
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #6";
- suffix = "#6"
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/landmark/start/bitrunner,
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
},
-/obj/effect/turf_decal/tile/brown/fourcorners,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"oHp" = (
/obj/structure/bookcase/random/nonfiction,
/turf/open/floor/wood/large,
@@ -51584,7 +51765,6 @@
dir = 6
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing,
/turf/open/floor/plating/elevatorshaft,
/area/station/cargo/miningdock)
"pFw" = (
@@ -52427,6 +52607,16 @@
},
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat_interior)
+"pSk" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/landmark/start/bitrunner,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"pSr" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 9
@@ -53221,6 +53411,16 @@
},
/turf/open/floor/plating,
/area/station/maintenance/department/crew_quarters/dorms)
+"qgM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth,
+/area/station/cargo/drone_bay)
"qgP" = (
/obj/structure/table,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -56397,18 +56597,9 @@
/area/station/science/xenobiology)
"rec" = (
/obj/effect/turf_decal/delivery,
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=2";
- location = "QM #3"
- },
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #3";
- suffix = "#3"
- },
/obj/effect/turf_decal/tile/brown/fourcorners,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron,
-/area/station/cargo/storage)
+/turf/closed/wall,
+/area/station/bitrunning/den)
"rem" = (
/obj/machinery/button/door/directional/west{
id = "private_e";
@@ -56450,7 +56641,6 @@
dir = 10
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing,
/turf/open/floor/plating/elevatorshaft,
/area/station/cargo/miningdock)
"rfk" = (
@@ -58511,6 +58701,12 @@
},
/obj/structure/sign/calendar/directional/west,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=1";
+ location = "QM #5"
+ },
+/obj/effect/turf_decal/tile/brown/fourcorners,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"rPc" = (
@@ -58950,13 +59146,14 @@
/turf/open/floor/iron,
/area/station/commons/fitness/recreation)
"rXQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Cargo Storage Maintenance Hatch"
+/obj/machinery/netpod,
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
},
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/cargo)
+/turf/open/floor/carpet/neon/simple/purple/nodots,
+/area/station/bitrunning/den)
"rYd" = (
/obj/structure/bodycontainer/morgue{
dir = 2
@@ -59676,9 +59873,6 @@
/turf/open/floor/iron,
/area/station/cargo/storage)
"skh" = (
-/obj/structure/railing{
- dir = 1
- },
/obj/effect/turf_decal/siding/thinplating{
dir = 4
},
@@ -60153,6 +60347,13 @@
"ssA" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/smooth,
/area/station/cargo/drone_bay)
"ssC" = (
@@ -60495,9 +60696,6 @@
},
/area/station/service/chapel)
"sxL" = (
-/obj/structure/railing{
- dir = 8
- },
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 8
},
@@ -63524,7 +63722,9 @@
/turf/open/floor/iron,
/area/station/engineering/engine_smes)
"tte" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
/turf/open/floor/iron,
/area/station/cargo/storage)
"tth" = (
@@ -63764,10 +63964,13 @@
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"txd" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/cargo)
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/landmark/start/bitrunner,
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"txh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -64570,12 +64773,14 @@
/turf/open/floor/iron,
/area/station/tcommsat/computer)
"tLu" = (
-/obj/effect/turf_decal/bot,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/structure/crate_empty,
-/obj/effect/spawner/random/maintenance/three,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/cargo)
+/obj/machinery/computer/quantum_console{
+ dir = 1
+ },
+/obj/machinery/light/neon_lining{
+ icon_state = "pink2_1"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"tLz" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible,
@@ -65064,6 +65269,23 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"tUd" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/neon_lining{
+ dir = 8;
+ icon_state = "pink2_1"
+ },
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/obj/machinery/computer/order_console/bitrunning,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/bitrunning/den)
"tUH" = (
/obj/structure/rack,
/obj/item/clothing/under/color/blue,
@@ -67413,9 +67635,6 @@
dir = 5
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 1
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/cargo/miningdock)
"uHb" = (
@@ -68648,7 +68867,6 @@
/turf/open/floor/iron,
/area/station/commons/fitness/recreation)
"uZy" = (
-/obj/structure/railing,
/obj/effect/turf_decal/siding/thinplating{
dir = 4
},
@@ -70049,6 +70267,19 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/foyer)
+"vsN" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining/glass{
+ name = "MULE Storage"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/turf/open/floor/iron,
+/area/station/cargo/warehouse)
"vsU" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -70210,6 +70441,15 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/iron,
/area/station/cargo/office)
+"vwc" = (
+/obj/machinery/elevator_control_panel{
+ layer = 3.1;
+ linked_elevator_id = "tram_xeno_lift";
+ pixel_y = 2;
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
+/turf/closed/wall,
+/area/station/science/xenobiology)
"vwd" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 10
@@ -70281,9 +70521,6 @@
dir = 4
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 4
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"vyo" = (
@@ -71806,9 +72043,6 @@
dir = 9
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 1
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"vUu" = (
@@ -73486,9 +73720,6 @@
dir = 6
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 6
- },
/obj/effect/landmark/lift_id{
specific_lift_id = "tram_perma_lift"
},
@@ -74258,9 +74489,6 @@
/turf/open/floor/iron,
/area/station/command/heads_quarters/ce)
"wIt" = (
-/obj/structure/railing{
- dir = 9
- },
/obj/effect/turf_decal/trimline/dark_red/warning{
dir = 9
},
@@ -75408,7 +75636,11 @@
linked_elevator_id = "tram_dorm_lift";
preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
},
-/obj/structure/railing,
+/obj/effect/turf_decal/trimline/dark_red/warning,
+/obj/machinery/elevator_control_panel/directional/south{
+ linked_elevator_id = "tram_dorm_lift";
+ preset_destination_names = list("2"="Lower Deck","3"="Upper Deck")
+ },
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"xhd" = (
@@ -76159,6 +76391,18 @@
"xvl" = (
/turf/closed/wall/r_wall,
/area/station/ai_monitored/turret_protected/aisat/foyer)
+"xvv" = (
+/obj/machinery/netpod,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/neon_lining{
+ dir = 1;
+ icon_state = "pink2_1"
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/carpet/neon/simple/purple/nodots,
+/area/station/bitrunning/den)
"xvC" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random/trash/garbage,
@@ -76653,16 +76897,19 @@
/turf/closed/wall,
/area/station/security/processing)
"xDW" = (
-/obj/machinery/door/airlock/mining/glass{
- name = "MULE Storage"
- },
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 1
},
/obj/effect/turf_decal/trimline/brown/filled/line,
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Bitrunning Den"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den,
/turf/open/floor/iron,
-/area/station/cargo/storage)
+/area/station/bitrunning/den)
"xEo" = (
/turf/closed/wall/r_wall,
/area/station/command/heads_quarters/captain)
@@ -77720,9 +77967,6 @@
dir = 1
},
/obj/structure/industrial_lift/public,
-/obj/structure/railing{
- dir = 1
- },
/turf/open/floor/plating/elevatorshaft,
/area/station/commons/dorms)
"xXL" = (
@@ -124401,7 +124645,7 @@ hDT
keT
iEF
fof
-jiQ
+vwc
sXX
akC
kMh
@@ -186525,11 +186769,11 @@ aaa
aaa
aaa
aaa
-lZW
-lZW
-lZW
-lZW
-lZW
+iTi
+iTi
+iTi
+iTi
+iTi
aaa
aaa
aaa
@@ -186782,11 +187026,11 @@ aaa
aaa
aaa
aaa
-lZW
-ixs
+iTi
+tUd
eyl
ixs
-lZW
+iTi
lZW
lZW
lZW
@@ -187039,11 +187283,11 @@ aaa
aaa
aaa
aaa
-lZW
-sAO
+iTi
+xvv
txd
tLu
-lZW
+iTi
vSI
vSI
vSI
@@ -187295,12 +187539,12 @@ aac
aaa
aaa
aaa
-cTU
-cTU
+aaa
+iTi
rXQ
-cTU
-cTU
-cTU
+nPj
+gmI
+iTi
vSI
vSI
vSI
@@ -187552,12 +187796,12 @@ aaa
aaa
aaa
aaa
-cTU
+iTi
rec
jTQ
oHi
-cTU
-cTU
+iTi
+iTi
ohS
eaI
ohS
@@ -187809,11 +188053,11 @@ aac
aaa
aaa
aaa
-cTU
+iTi
aeA
-jTQ
+nSC
ksx
-cTU
+iTi
exr
pZA
uax
@@ -188066,11 +188310,11 @@ aac
aac
aaa
aaa
-cTU
+iTi
afk
-jTQ
+aTR
leN
-cTU
+iTi
kqy
pZA
uax
@@ -188323,11 +188567,11 @@ aac
aaa
aaa
cTU
-cTU
-ohS
+iTi
+bub
xDW
-ohS
-cTU
+bub
+iTi
nnb
pZA
ayr
@@ -188583,7 +188827,7 @@ cTU
aSo
tAJ
lTM
-axF
+pSk
axF
rwo
dij
@@ -188839,11 +189083,11 @@ aaa
akr
tjS
hFV
-gDr
-uax
-uax
-uax
-uax
+igG
+dzw
+dzw
+dzw
+dzw
gUL
foU
dzw
@@ -189683,7 +189927,7 @@ eJQ
bNx
aSt
aSt
-qVr
+cyO
aaa
aaa
aaa
@@ -191406,10 +191650,10 @@ aac
aac
aac
xxZ
-cTU
-cTU
-cTU
-cTU
+udQ
+udQ
+udQ
+udQ
udQ
axN
pxD
@@ -191922,9 +192166,9 @@ aac
xxZ
mhQ
ssA
-bLq
+qgM
eab
-udQ
+vsN
kyc
kXr
aye
@@ -192179,8 +192423,8 @@ aac
xxZ
mhQ
foa
-mhQ
-mhQ
+cSc
+jcJ
udQ
kSa
cDP
@@ -192693,7 +192937,7 @@ aac
xxZ
mhQ
mhQ
-bLq
+mhQ
mhQ
xxZ
xxZ
diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json
index eaa71b7e2208..b380a2b7fd0a 100644
--- a/_maps/multiz_debug.json
+++ b/_maps/multiz_debug.json
@@ -5,17 +5,17 @@
"map_file": "multiz.dmm",
"traits": [
{
- "Up": 1,
+ "Up": true,
"Linkage": "Cross"
},
{
- "Up": 1,
- "Down": -1,
+ "Up": true,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Down": -1,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/northstar.json b/_maps/northstar.json
index c4b6915c646d..0dc25fd0df2f 100644
--- a/_maps/northstar.json
+++ b/_maps/northstar.json
@@ -14,23 +14,23 @@
"space_empty_levels": 2,
"traits": [
{
- "Up": 1,
+ "Up": true,
"Linkage": "Cross"
},
{
- "Up": 1,
- "Down": -1,
+ "Up": true,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Up": 1,
- "Down": -1,
+ "Up": true,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
},
{
- "Down": -1,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/safehouses/README.md b/_maps/safehouses/README.md
new file mode 100644
index 000000000000..8027ea38e211
--- /dev/null
+++ b/_maps/safehouses/README.md
@@ -0,0 +1,17 @@
+# Safe House
+
+## Creating a new safe house
+
+1. Create a new map inside the `_maps\safe_houses` folder using the TGM format.
+2. Create a new dm file inside `modules\bitrunning\virtual_domain\safe_houses` folder..
+4. Place exit and goal landmarks (obj/effect/landmark/bitrunning/..). Generally, 3 exits and 2 goals are ok.
+5. Ideally, leave 3 spaces for gear. This has usually been xy [1x1] [1x2] [1x3]
+
+## Notes
+
+- Safe houses are intended to be 7x6 in size. You're not technically limited to this, but consider maps other maps might be using this size if you want it to be modular.
+- Consider that avatars are not invincible and still require air. If you're making a safe house, it should start with an area that accommodates for this.
+- For compatibility, your safe house should have a route open from the top center xy [3x0] of the map.
+- If you want a custom safehouse for a custom map with no modularity, no problem. Make whatever sizes you want, just ensure there are exit and goal effects placed.
+- Some maps can alter what is spawned into the safehouse by placing objects in the safehouse area. I'm using the left corner, starting from the top, for things like space gear.
+
diff --git a/_maps/safehouses/TEMPLATES/TEMPLATE.dmm b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm
new file mode 100644
index 000000000000..c8e5059f0d01
--- /dev/null
+++ b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm
@@ -0,0 +1,82 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"c" = (
+/obj/effect/mapping_helpers/airlock/access/all,
+/obj/machinery/door/airlock/external/glass,
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"p" = (
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"v" = (
+/obj/effect/bitrunning/exit_spawn,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"N" = (
+/obj/effect/bitrunning/goal_turf,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"R" = (
+/turf/closed/wall,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+R
+R
+a
+a
+R
+R
+"}
+(2,1,1) = {"
+a
+p
+p
+p
+p
+R
+"}
+(3,1,1) = {"
+R
+p
+p
+p
+v
+a
+"}
+(4,1,1) = {"
+c
+p
+p
+p
+v
+R
+"}
+(5,1,1) = {"
+R
+p
+p
+p
+v
+a
+"}
+(6,1,1) = {"
+a
+p
+N
+N
+p
+R
+"}
+(7,1,1) = {"
+R
+R
+a
+a
+R
+R
+"}
diff --git a/_maps/safehouses/den.dmm b/_maps/safehouses/den.dmm
new file mode 100644
index 000000000000..8fcbf95f552f
--- /dev/null
+++ b/_maps/safehouses/den.dmm
@@ -0,0 +1,217 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"c" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/east,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"e" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/effect/spawner/random/food_or_drink/snack{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"i" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 1;
+ id = "safehouseshutter"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"p" = (
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"r" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 9
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"u" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/siding/dark,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"z" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod/light,
+/area/virtual_domain/safehouse)
+"C" = (
+/turf/closed/wall,
+/area/virtual_domain/safehouse)
+"D" = (
+/obj/effect/decal/cleanable/generic,
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"E" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod/light,
+/area/virtual_domain/safehouse)
+"G" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "safehouseshutter"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 5
+ },
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod/light,
+/area/virtual_domain/safehouse)
+"J" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "safehouseshutter"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"K" = (
+/obj/effect/spawner/random/vending/colavend,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"M" = (
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"O" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"R" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"U" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/departments/cargo/directional/west,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"W" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "safehouseshutter"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"X" = (
+/obj/machinery/door/airlock/grunge,
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"Y" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/machinery/button/door{
+ pixel_x = 4;
+ pixel_y = 4;
+ id = "safehouseshutter"
+ },
+/obj/effect/spawner/random/food_or_drink/refreshing_beverage{
+ pixel_y = 6;
+ pixel_x = -10
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+C
+C
+C
+G
+G
+C
+"}
+(2,1,1) = {"
+W
+U
+p
+M
+K
+C
+"}
+(3,1,1) = {"
+C
+r
+O
+O
+E
+i
+"}
+(4,1,1) = {"
+X
+D
+Z
+R
+z
+i
+"}
+(5,1,1) = {"
+C
+M
+M
+e
+I
+i
+"}
+(6,1,1) = {"
+W
+c
+u
+Y
+a
+C
+"}
+(7,1,1) = {"
+C
+C
+C
+J
+J
+C
+"}
diff --git a/_maps/safehouses/dig.dmm b/_maps/safehouses/dig.dmm
new file mode 100644
index 000000000000..7fbbd3e55493
--- /dev/null
+++ b/_maps/safehouses/dig.dmm
@@ -0,0 +1,165 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/siding/yellow/corner,
+/obj/effect/turf_decal/sand/plating,
+/obj/item/flashlight/glowstick{
+ on = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"c" = (
+/obj/effect/turf_decal/siding/yellow/corner{
+ dir = 8
+ },
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"h" = (
+/obj/effect/turf_decal/loading_area,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"i" = (
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/obj/effect/decal/remains/xeno/larva,
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"l" = (
+/obj/structure/table,
+/obj/item/coin/gold{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/item/flashlight/lantern{
+ pixel_y = 8;
+ pixel_x = 4;
+ on = 1
+ },
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"o" = (
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"u" = (
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"x" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"A" = (
+/turf/closed/wall/rock,
+/area/virtual_domain/safehouse)
+"B" = (
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"H" = (
+/turf/closed/mineral/asteroid,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/machinery/door/airlock/maintenance/glass,
+/obj/structure/fans/tiny,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"M" = (
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/decal/remains/xeno,
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"N" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"S" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area,
+/obj/effect/turf_decal/box/corners,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+"U" = (
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/turf/open/misc/asteroid,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+H
+H
+A
+A
+H
+H
+"}
+(2,1,1) = {"
+A
+N
+x
+a
+H
+A
+"}
+(3,1,1) = {"
+A
+i
+U
+u
+h
+A
+"}
+(4,1,1) = {"
+I
+B
+B
+M
+S
+A
+"}
+(5,1,1) = {"
+A
+l
+B
+c
+o
+H
+"}
+(6,1,1) = {"
+A
+A
+T
+T
+T
+A
+"}
+(7,1,1) = {"
+H
+A
+H
+H
+A
+A
+"}
diff --git a/_maps/safehouses/ice.dmm b/_maps/safehouses/ice.dmm
new file mode 100644
index 000000000000..34b8affaaafa
--- /dev/null
+++ b/_maps/safehouses/ice.dmm
@@ -0,0 +1,251 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/spawner/structure/window/ice,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"c" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/east,
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"f" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"g" = (
+/obj/effect/spawner/structure/window/ice,
+/obj/structure/barricade/wooden/crude/snow,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"i" = (
+/turf/closed/wall/ice,
+/area/virtual_domain/safehouse)
+"m" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/trimline/dark_blue/line{
+ dir = 1
+ },
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"n" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/rack,
+/obj/item/grown/log,
+/obj/item/grown/log,
+/obj/item/grown/log,
+/obj/item/hatchet/wooden,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"o" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"p" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"u" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"v" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/trimline/dark_blue/line{
+ dir = 5
+ },
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"x" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/vending/coffee,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"z" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"A" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"B" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"C" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_x = 7;
+ pixel_y = 13
+ },
+/obj/item/reagent_containers/cup/glass/coffee/no_lid{
+ pixel_x = -4;
+ pixel_y = 14
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"D" = (
+/obj/effect/turf_decal/weather/snow/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/obj/effect/turf_decal/trimline/dark_blue/line{
+ dir = 9
+ },
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/pod,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"L" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/smartfridge/drying_rack,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"O" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/airlock/freezer,
+/obj/structure/fans/tiny,
+/turf/open/floor/plating/snowed,
+/area/virtual_domain/safehouse)
+"S" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/trash/chips{
+ pixel_x = 8;
+ pixel_y = 15
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"W" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/internals,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/suit/hooded/wintercoat,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+i
+i
+g
+a
+i
+i
+"}
+(2,1,1) = {"
+i
+L
+n
+W
+Z
+i
+"}
+(3,1,1) = {"
+a
+x
+u
+I
+D
+i
+"}
+(4,1,1) = {"
+O
+z
+B
+I
+m
+i
+"}
+(5,1,1) = {"
+a
+f
+A
+C
+v
+i
+"}
+(6,1,1) = {"
+i
+o
+p
+S
+c
+i
+"}
+(7,1,1) = {"
+i
+i
+g
+g
+i
+i
+"}
diff --git a/_maps/safehouses/lavaland_boss.dmm b/_maps/safehouses/lavaland_boss.dmm
new file mode 100644
index 000000000000..c40463dcd775
--- /dev/null
+++ b/_maps/safehouses/lavaland_boss.dmm
@@ -0,0 +1,239 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 1
+ },
+/area/virtual_domain/safehouse)
+"f" = (
+/turf/closed/wall,
+/area/virtual_domain/safehouse)
+"p" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 5
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"v" = (
+/obj/structure/table,
+/obj/item/borg/upgrade/modkit/damage{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/borg/upgrade/modkit/damage{
+ pixel_y = 4;
+ pixel_x = 8
+ },
+/obj/item/borg/upgrade/modkit/damage{
+ pixel_x = 8
+ },
+/obj/item/borg/upgrade/modkit/range{
+ pixel_y = 8
+ },
+/obj/item/borg/upgrade/modkit/range{
+ pixel_y = 4
+ },
+/obj/item/borg/upgrade/modkit/range,
+/obj/item/borg/upgrade/modkit/cooldown{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/borg/upgrade/modkit/cooldown{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/borg/upgrade/modkit/cooldown{
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/hypospray/medipen/survival/luxury{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/hypospray/medipen/survival/luxury{
+ pixel_x = 6
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"w" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/structure/railing,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"A" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/iron/dark/smooth_edge,
+/area/virtual_domain/safehouse)
+"B" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/flashlight/lantern{
+ pixel_x = 8;
+ pixel_y = null
+ },
+/obj/item/flashlight/lantern{
+ pixel_y = 4
+ },
+/obj/item/flashlight/lantern{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/clothing/glasses/meson/night,
+/obj/item/clothing/glasses/meson/night,
+/obj/item/clothing/glasses/meson/night,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"C" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 4
+ },
+/obj/structure/closet,
+/obj/item/gun/ballistic/rocketlauncher/unrestricted,
+/obj/item/energy_katana,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 8
+ },
+/area/virtual_domain/safehouse)
+"H" = (
+/obj/machinery/door/airlock/external/glass{
+ name = "Mining External Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all,
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"K" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/smooth_edge,
+/area/virtual_domain/safehouse)
+"O" = (
+/obj/item/gun/energy/recharge/kinetic_accelerator{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/gun/energy/recharge/kinetic_accelerator{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/gun/energy/recharge/kinetic_accelerator{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/structure/closet,
+/obj/item/kinetic_crusher,
+/obj/item/kinetic_crusher,
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"P" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"S" = (
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 6
+ },
+/obj/structure/sign/departments/cargo/directional/south,
+/obj/structure/closet,
+/obj/item/gun/ballistic/automatic/l6_saw/unrestricted,
+/obj/item/ammo_box/magazine/sniper_rounds,
+/obj/item/gun/ballistic/rifle/sniper_rifle,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"X" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit/mining,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 4
+ },
+/area/virtual_domain/safehouse)
+"Y" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit/mining,
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 4
+ },
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/machinery/suit_storage_unit/mining,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+f
+f
+f
+P
+P
+f
+"}
+(2,1,1) = {"
+P
+Z
+Y
+X
+B
+f
+"}
+(3,1,1) = {"
+f
+A
+S
+S
+a
+P
+"}
+(4,1,1) = {"
+H
+K
+O
+v
+a
+P
+"}
+(5,1,1) = {"
+f
+A
+S
+S
+a
+P
+"}
+(6,1,1) = {"
+P
+p
+w
+C
+T
+f
+"}
+(7,1,1) = {"
+f
+f
+f
+P
+P
+f
+"}
diff --git a/_maps/safehouses/mine.dmm b/_maps/safehouses/mine.dmm
new file mode 100644
index 000000000000..551e2ca0c001
--- /dev/null
+++ b/_maps/safehouses/mine.dmm
@@ -0,0 +1,164 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/turf_decal/trimline/brown/filled/line,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 1
+ },
+/area/virtual_domain/safehouse)
+"f" = (
+/turf/closed/wall,
+/area/virtual_domain/safehouse)
+"p" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 5
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"w" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"B" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/flashlight/lantern{
+ pixel_x = 8;
+ pixel_y = null
+ },
+/obj/item/flashlight/lantern{
+ pixel_y = 4
+ },
+/obj/item/flashlight/lantern{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"C" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"H" = (
+/obj/machinery/door/airlock/external/glass{
+ name = "Mining External Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all,
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"K" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/smooth_edge,
+/area/virtual_domain/safehouse)
+"P" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"S" = (
+/turf/open/floor/iron/dark/textured_large,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 6
+ },
+/obj/item/kirbyplants/random,
+/obj/structure/sign/departments/cargo/directional/south,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+"X" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit/mining,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 4
+ },
+/area/virtual_domain/safehouse)
+"Y" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit/mining,
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/dark/smooth_edge{
+ dir = 4
+ },
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 9
+ },
+/obj/machinery/suit_storage_unit/mining,
+/turf/open/floor/iron/dark,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+f
+f
+f
+P
+P
+f
+"}
+(2,1,1) = {"
+P
+Z
+Y
+X
+B
+f
+"}
+(3,1,1) = {"
+f
+K
+S
+S
+a
+P
+"}
+(4,1,1) = {"
+H
+K
+S
+S
+a
+P
+"}
+(5,1,1) = {"
+f
+K
+S
+S
+a
+P
+"}
+(6,1,1) = {"
+P
+p
+w
+C
+T
+f
+"}
+(7,1,1) = {"
+f
+f
+f
+P
+P
+f
+"}
diff --git a/_maps/safehouses/shuttle.dmm b/_maps/safehouses/shuttle.dmm
new file mode 100644
index 000000000000..92228c95bd3c
--- /dev/null
+++ b/_maps/safehouses/shuttle.dmm
@@ -0,0 +1,228 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/wall/mineral/titanium,
+/area/virtual_domain/safehouse)
+"e" = (
+/obj/effect/spawner/structure/window/reinforced/shuttle,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"f" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"g" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"i" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"k" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/table/reinforced,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"l" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"q" = (
+/obj/effect/turf_decal/stripes/end,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"r" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"t" = (
+/obj/machinery/power/shuttle_engine/propulsion/burst{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/virtual_domain/safehouse)
+"u" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"x" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"y" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/airlock/shuttle/glass,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/sand/volcanic,
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/white,
+/area/virtual_domain/safehouse)
+"A" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/computer{
+ dir = 8;
+ name = "shuttle console";
+ icon_screen = "shuttle"
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"E" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"G" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"H" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/table/reinforced,
+/obj/item/tank/internals/emergency_oxygen{
+ pixel_x = 3
+ },
+/obj/item/clothing/mask/gas,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"L" = (
+/obj/effect/turf_decal/stripes/end{
+ dir = 1
+ },
+/obj/effect/turf_decal/sand/volcanic,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"M" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"X" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+a
+t
+e
+e
+t
+a
+"}
+(2,1,1) = {"
+e
+L
+i
+q
+l
+a
+"}
+(3,1,1) = {"
+a
+x
+r
+u
+g
+e
+"}
+(4,1,1) = {"
+y
+f
+r
+H
+E
+a
+"}
+(5,1,1) = {"
+a
+M
+X
+H
+T
+e
+"}
+(6,1,1) = {"
+e
+k
+A
+I
+G
+a
+"}
+(7,1,1) = {"
+a
+a
+e
+e
+a
+a
+"}
diff --git a/_maps/safehouses/shuttle_space.dmm b/_maps/safehouses/shuttle_space.dmm
new file mode 100644
index 000000000000..a5afaa475c65
--- /dev/null
+++ b/_maps/safehouses/shuttle_space.dmm
@@ -0,0 +1,231 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/spawner/structure/window/reinforced/shuttle,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"b" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"c" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"i" = (
+/turf/closed/wall/mineral/titanium/overspace,
+/area/virtual_domain/safehouse)
+"l" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"n" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/computer{
+ dir = 8;
+ name = "shuttle console";
+ icon_screen = "shuttle"
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"o" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"q" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/table/reinforced,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"r" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"z" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"A" = (
+/obj/effect/turf_decal/stripes/end{
+ dir = 1
+ },
+/obj/effect/turf_decal/sand/volcanic,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"B" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"D" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"E" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/door/airlock/shuttle/glass,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/sand/volcanic,
+/obj/structure/fans/tiny,
+/turf/open/floor/iron/white,
+/area/virtual_domain/safehouse)
+"G" = (
+/turf/closed/wall/mineral/titanium,
+/area/virtual_domain/safehouse)
+"H" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"L" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/table/reinforced,
+/obj/item/tank/internals/emergency_oxygen{
+ pixel_x = 3
+ },
+/obj/item/clothing/mask/gas,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"N" = (
+/obj/machinery/power/shuttle_engine/propulsion/burst{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/virtual_domain/safehouse)
+"O" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"U" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"W" = (
+/obj/effect/turf_decal/stripes/end,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+"Y" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+i
+N
+a
+a
+N
+i
+"}
+(2,1,1) = {"
+a
+A
+o
+W
+D
+G
+"}
+(3,1,1) = {"
+G
+I
+H
+U
+r
+a
+"}
+(4,1,1) = {"
+E
+z
+H
+b
+Y
+G
+"}
+(5,1,1) = {"
+G
+c
+O
+b
+l
+a
+"}
+(6,1,1) = {"
+a
+q
+n
+L
+B
+G
+"}
+(7,1,1) = {"
+i
+G
+a
+a
+G
+i
+"}
diff --git a/_maps/safehouses/test_only_safehouse.dmm b/_maps/safehouses/test_only_safehouse.dmm
new file mode 100644
index 000000000000..c23f8c4a22b4
--- /dev/null
+++ b/_maps/safehouses/test_only_safehouse.dmm
@@ -0,0 +1,29 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"d" = (
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"u" = (
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+u
+d
+"}
+(2,1,1) = {"
+u
+d
+"}
+(3,1,1) = {"
+u
+d
+"}
+(4,1,1) = {"
+u
+a
+"}
diff --git a/_maps/safehouses/wood.dmm b/_maps/safehouses/wood.dmm
new file mode 100644
index 000000000000..441730c67cd4
--- /dev/null
+++ b/_maps/safehouses/wood.dmm
@@ -0,0 +1,110 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/indestructible/hotelwood,
+/area/virtual_domain/safehouse)
+"i" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"o" = (
+/turf/open/floor/carpet/green,
+/area/virtual_domain/safehouse)
+"s" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"v" = (
+/obj/machinery/light/small/directional/east,
+/obj/structure/table/wood,
+/obj/item/newspaper,
+/turf/open/indestructible/hotelwood,
+/area/virtual_domain/safehouse)
+"z" = (
+/obj/structure/sign/poster/random/directional/east,
+/turf/open/indestructible/hotelwood,
+/area/virtual_domain/safehouse)
+"G" = (
+/turf/closed/wall/mineral/wood,
+/area/virtual_domain/safehouse)
+"J" = (
+/obj/structure/railing,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/bitrunning_transport,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/landmark/bitrunning/hololadder_spawn,
+/turf/open/indestructible/hotelwood,
+/area/virtual_domain/safehouse)
+"X" = (
+/obj/machinery/door/airlock/wood/glass,
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/indestructible/hotelwood,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+G
+G
+i
+G
+G
+G
+"}
+(2,1,1) = {"
+i
+Z
+a
+a
+Z
+i
+"}
+(3,1,1) = {"
+G
+a
+o
+o
+T
+G
+"}
+(4,1,1) = {"
+X
+a
+o
+o
+T
+G
+"}
+(5,1,1) = {"
+G
+a
+o
+o
+T
+G
+"}
+(6,1,1) = {"
+i
+s
+J
+z
+v
+i
+"}
+(7,1,1) = {"
+G
+G
+i
+G
+G
+G
+"}
diff --git a/_maps/templates/lazy_templates/abductor_ships.dmm b/_maps/templates/lazy_templates/abductor_ships.dmm
index 0e33b8d39224..4c7d2e172ff2 100644
--- a/_maps/templates/lazy_templates/abductor_ships.dmm
+++ b/_maps/templates/lazy_templates/abductor_ships.dmm
@@ -1,4 +1,10 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/turf/open/water,
+/area/awaymission/beach)
+"ab" = (
+/turf/open/lava,
+/area/awaymission/caves)
"bX" = (
/turf/closed/indestructible/abductor{
icon_state = "alien11"
@@ -592,3 +598,515 @@ bX
Zf
Xy
"}
+
+(1,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(2,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(3,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(4,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(5,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(6,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(7,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(8,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(9,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(10,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(11,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(12,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(13,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(14,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+(15,1,2) = {"
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+aa
+"}
+
+(1,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(2,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(3,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(4,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(5,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(6,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(7,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(8,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(9,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(10,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(11,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(12,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(13,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(14,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
+(15,1,3) = {"
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+ab
+"}
diff --git a/_maps/tramstation.json b/_maps/tramstation.json
index d580a7b832a2..4968e18e41b6 100644
--- a/_maps/tramstation.json
+++ b/_maps/tramstation.json
@@ -11,12 +11,12 @@
},
"traits": [
{
- "Up": 1,
+ "Up": true,
"Baseturf": "/turf/open/misc/asteroid/airless",
"Linkage": "Cross"
},
{
- "Down": -1,
+ "Down": true,
"Baseturf": "/turf/open/openspace",
"Linkage": "Cross"
}
diff --git a/_maps/virtual_domains/README.md b/_maps/virtual_domains/README.md
new file mode 100644
index 000000000000..a02d43e1575e
--- /dev/null
+++ b/_maps/virtual_domains/README.md
@@ -0,0 +1,32 @@
+# Making new virtual domains
+
+## From scratch
+
+1. Create a new map using TGM format. It can be any size, but please, consider limiting to 75x75 max.
+2. Ensure that the map has ONE tile marked with the safehouse bottom left landmark. If you're using modular safehouses, it will need to be a 7x6 area.
+4. Provide a way for players to enter your new map via the north door, which is 4th tile over.
+5. Enclose your area with a single wall binary closed wall.
+
+## From an existing map
+
+1. Create a new map using the existing map's size - give yourself enough room to enclose it with a binary wall. There's no need for any space outside of it, so ensure that it fits and is enclosed, nothing outside of this.
+2. Copy and paste the existing map into it.
+3. Find an accessible area for a safehouse, 7x6 - or with a custom, just ensure the necessary landmarks are placed.
+4. Place a bottom left safehouse landmark somewhere on the map to load the safehouse.
+
+## BOTH.
+1. You need to have one (1) way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system.
+2. Make note of the size of the map. Make sure this is in the dm file.
+3. Create the dm file that defines the map qualities. Examples are in the bitrunning file.
+
+### Notes
+
+You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using one solid wall should do the trick.
+
+Adding some open tile padding around the safehouse is a good touch. About 7 tiles West/East for the visual effect of a larger map.
+
+If you want to add prep gear, you can do so within the safehouse's area as long you don't overlap with goal turfs or exit spawners. The top left corner is a good spot for this, with respect for the walls, therefore [1, 1], [1, 2], [1, 3]
+
+You can also create safehouses if you find yourself needing the same gear over and over again. There is a readme for that as well.
+
+Boss zones should give players pretty ample space, I've been using a 23x23 minimum area.
diff --git a/_maps/virtual_domains/ash_drake.dmm b/_maps/virtual_domains/ash_drake.dmm
new file mode 100644
index 000000000000..50fbac8696ab
--- /dev/null
+++ b/_maps/virtual_domains/ash_drake.dmm
@@ -0,0 +1,1750 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"c" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"e" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"f" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"g" = (
+/obj/structure/marker_beacon/lime,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"h" = (
+/obj/machinery/light/small/blacklight/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"i" = (
+/obj/structure/marker_beacon/jade,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"j" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"l" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"q" = (
+/mob/living/simple_animal/hostile/megafauna/dragon/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"s" = (
+/turf/closed/mineral/volcanic/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"u" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"v" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"G" = (
+/obj/structure/marker_beacon/purple,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"J" = (
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"L" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"P" = (
+/obj/structure/marker_beacon/fuchsia,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Z" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+u
+"}
+(2,1,1) = {"
+v
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+v
+"}
+(3,1,1) = {"
+v
+s
+s
+s
+s
+J
+J
+s
+s
+J
+J
+s
+s
+J
+J
+J
+J
+s
+s
+s
+J
+J
+J
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+J
+J
+s
+s
+J
+J
+s
+v
+"}
+(4,1,1) = {"
+v
+s
+s
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(5,1,1) = {"
+v
+s
+s
+J
+a
+J
+J
+J
+J
+a
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+s
+v
+"}
+(6,1,1) = {"
+v
+s
+s
+J
+a
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+a
+a
+a
+a
+J
+J
+J
+a
+a
+J
+J
+J
+a
+a
+J
+a
+J
+a
+a
+J
+J
+J
+s
+s
+v
+"}
+(7,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(8,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+s
+s
+v
+"}
+(9,1,1) = {"
+v
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+i
+a
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(10,1,1) = {"
+v
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+G
+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
+J
+J
+s
+v
+"}
+(11,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+s
+v
+"}
+(12,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(13,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+g
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(14,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+J
+s
+v
+"}
+(15,1,1) = {"
+v
+s
+J
+J
+J
+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
+h
+c
+c
+c
+c
+c
+L
+a
+a
+J
+J
+s
+v
+"}
+(16,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(17,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+l
+a
+a
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(18,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+q
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+c
+c
+c
+c
+c
+a
+J
+J
+s
+s
+v
+"}
+(19,1,1) = {"
+v
+s
+J
+J
+J
+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
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(20,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(21,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+e
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+c
+c
+c
+c
+c
+f
+a
+a
+J
+s
+s
+v
+"}
+(22,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+s
+s
+v
+"}
+(23,1,1) = {"
+v
+s
+J
+J
+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
+J
+s
+s
+v
+"}
+(24,1,1) = {"
+v
+s
+J
+J
+a
+a
+a
+a
+j
+a
+a
+a
+a
+a
+P
+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
+J
+J
+s
+v
+"}
+(25,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(26,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+J
+s
+v
+"}
+(27,1,1) = {"
+v
+s
+s
+J
+J
+J
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+j
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(28,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(29,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+J
+J
+s
+s
+v
+"}
+(30,1,1) = {"
+v
+s
+s
+J
+J
+J
+J
+a
+a
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+a
+a
+a
+J
+J
+J
+a
+a
+a
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+a
+a
+a
+J
+J
+s
+s
+v
+"}
+(31,1,1) = {"
+v
+s
+s
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(32,1,1) = {"
+v
+s
+s
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(33,1,1) = {"
+v
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+J
+s
+s
+s
+s
+s
+s
+J
+J
+J
+s
+v
+"}
+(34,1,1) = {"
+v
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+v
+"}
+(35,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+"}
diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm
new file mode 100644
index 000000000000..c64b07f12421
--- /dev/null
+++ b/_maps/virtual_domains/beach_bar.dmm
@@ -0,0 +1,2863 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/turf/open/floor/carpet/red,
+/area/virtual_domain/powered)
+"as" = (
+/obj/structure/closet/crate/bin,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/trash/candy,
+/obj/item/toy/talking/owl,
+/obj/effect/turf_decal/sand,
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"aw" = (
+/obj/machinery/grill,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"aE" = (
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"aZ" = (
+/obj/machinery/light/small/directional/east,
+/obj/structure/closet/crate{
+ name = "fuel crate"
+ },
+/obj/item/stack/sheet/mineral/coal/ten,
+/obj/item/stack/sheet/mineral/coal/ten,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"bf" = (
+/mob/living/basic/crab{
+ name = "Jonny"
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"bC" = (
+/obj/effect/turf_decal/sand,
+/mob/living/basic/crab{
+ name = "James"
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"bM" = (
+/mob/living/basic/crab{
+ name = "Jon"
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"bQ" = (
+/obj/structure/fluff/beach_umbrella/cap,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"bZ" = (
+/obj/item/stack/sheet/iron/fifty,
+/obj/effect/mapping_helpers/burnt_floor,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"cb" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/pill/lsd,
+/obj/item/reagent_containers/pill/lsd,
+/obj/item/reagent_containers/pill/lsd,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"cv" = (
+/turf/open/floor/carpet/royalblue,
+/area/virtual_domain/powered)
+"cG" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"db" = (
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/vending_refill/cigarette,
+/obj/item/vending_refill/boozeomat,
+/obj/structure/closet/secure_closet{
+ icon_state = "cabinet";
+ name = "booze storage";
+ req_access = list("bar")
+ },
+/obj/item/storage/backpack/duffelbag,
+/obj/item/etherealballdeployer,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/colocup,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"di" = (
+/obj/machinery/vending/boozeomat,
+/obj/effect/mapping_helpers/atom_injector/obj_flag{
+ inject_flags = 1;
+ target_type = /obj/machinery/vending/boozeomat
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"dx" = (
+/obj/effect/turf_decal/sand,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 8
+ },
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"dI" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ed" = (
+/obj/machinery/atmospherics/components/tank/air{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"er" = (
+/obj/structure/noticeboard/staff,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"es" = (
+/obj/structure/bookcase/random/reference,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"eT" = (
+/obj/structure/table/wood/poker,
+/obj/item/storage/dice,
+/obj/item/stack/spacecash/c1000,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"eU" = (
+/turf/open/misc/beach/sand/coastline_b,
+/area/virtual_domain/powered)
+"fc" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/pill/happy,
+/obj/item/toy/figure/bartender{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{
+ pixel_y = 8;
+ pixel_x = 5
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"fr" = (
+/obj/item/melee/skateboard/hoverboard,
+/obj/machinery/light/directional/west,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"gh" = (
+/obj/structure/flora/bush/stalky/style_random,
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"gl" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"hk" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"hx" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/wall/mineral/sandstone,
+/area/virtual_domain/powered)
+"hE" = (
+/obj/structure/sign/departments/restroom/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"hG" = (
+/obj/machinery/door/airlock/sandstone{
+ name = "Surfer Shack 1"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"iz" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"iR" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/cup/glass/shaker,
+/obj/item/reagent_containers/cup/rag,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"jc" = (
+/turf/open/floor/iron/stairs/right,
+/area/virtual_domain/powered)
+"jg" = (
+/obj/machinery/vending/hydronutrients,
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"jl" = (
+/obj/structure/flora/rock/pile/jungle/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"jy" = (
+/obj/effect/turf_decal/sand{
+ density = 1
+ },
+/obj/effect/decal/fakelattice,
+/turf/open/floor/pod/light{
+ density = 1
+ },
+/area/virtual_domain/powered)
+"ke" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"kn" = (
+/obj/effect/turf_decal/sand,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 8
+ },
+/obj/structure/chair/stool/bar/directional/west,
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"kv" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"kG" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"kT" = (
+/obj/structure/chair/stool/bar/directional/south,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"lq" = (
+/obj/item/melee/skateboard/hoverboard,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"lB" = (
+/obj/item/toy/seashell,
+/obj/effect/turf_decal/sand,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"lS" = (
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/virtual_domain/powered)
+"ml" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"mG" = (
+/obj/structure/easel,
+/obj/item/canvas/twentythree_twentythree,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"oP" = (
+/obj/structure/table/wood,
+/obj/machinery/reagentgrinder,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"pr" = (
+/turf/template_noop,
+/area/template_noop)
+"pC" = (
+/obj/machinery/computer/arcade/battle,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"pT" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"qc" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"qW" = (
+/obj/item/melee/skateboard/hoverboard,
+/mob/living/basic/chicken{
+ name = "Chicken Joe"
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"rc" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ri" = (
+/obj/structure/sign/poster/official/fruit_bowl,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"rm" = (
+/obj/item/storage/crayons,
+/obj/structure/closet/crate/wooden,
+/obj/item/canvas/twentythree_twentythree,
+/obj/item/canvas/twentythree_twentythree,
+/obj/item/canvas/twentythree_twentythree,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"rL" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"rT" = (
+/obj/item/toy/seashell,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"sj" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"sT" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"tj" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Resort Lobby"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"tZ" = (
+/obj/structure/toilet,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ug" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "cabinet";
+ name = "bartender's closet";
+ req_access = list("bar")
+ },
+/obj/item/clothing/shoes/sandal{
+ desc = "A very fashionable pair of flip-flops.";
+ name = "flip-flops"
+ },
+/obj/item/clothing/neck/beads,
+/obj/item/clothing/glasses/sunglasses/reagent,
+/obj/item/clothing/suit/costume/hawaiian,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"uk" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/shovel/spade,
+/obj/item/reagent_containers/cup/bucket,
+/obj/item/cultivator,
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"uq" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain,
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"uI" = (
+/obj/structure/sign/warning/gas_mask/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"uU" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"vq" = (
+/obj/machinery/oven/range,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"vv" = (
+/obj/structure/chair/stool/directional/south,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"vC" = (
+/obj/machinery/chem_dispenser/drinks/fullupgrade{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"vN" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/pill/morphine,
+/obj/item/reagent_containers/pill/morphine,
+/obj/item/reagent_containers/pill/morphine,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"wb" = (
+/obj/structure/closet/crate/freezer{
+ name = "Cooler"
+ },
+/obj/item/reagent_containers/cup/glass/ice,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/colocup,
+/obj/item/reagent_containers/cup/glass/bottle/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/cup/glass/bottle/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/cup/glass/bottle/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/obj/item/reagent_containers/cup/glass/bottle/beer/light,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"wm" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Resort Casino"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"wo" = (
+/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ws" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Supply Room"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"wD" = (
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"xb" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"xq" = (
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/item/megaphone,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"xw" = (
+/turf/open/floor/pod/dark,
+/area/virtual_domain/powered)
+"xJ" = (
+/obj/structure/closet/cabinet,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/shorts/blue,
+/obj/item/clothing/shoes/sandal{
+ desc = "A very fashionable pair of flip-flops.";
+ name = "flip-flops"
+ },
+/obj/item/clothing/glasses/sunglasses,
+/obj/item/clothing/neck/beads,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"xR" = (
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/window/reinforced/spawner/directional/north{
+ layer = 2.9
+ },
+/obj/structure/chair/stool/directional/south,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/shorts/red,
+/obj/item/clothing/glasses/sunglasses,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"xW" = (
+/turf/open/space/basic,
+/area/space)
+"ya" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/pill/zoom,
+/obj/item/reagent_containers/pill/zoom,
+/obj/item/reagent_containers/pill/zoom,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"yi" = (
+/obj/structure/sink/kitchen/directional/west{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ name = "old sink"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"yl" = (
+/obj/item/reagent_containers/cup/glass/colocup{
+ pixel_x = -7;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/cup/glass/colocup{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/cup/glass/bottle/rum{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/turf/open/floor/carpet/red,
+/area/virtual_domain/powered)
+"ys" = (
+/obj/effect/turf_decal/sand,
+/obj/machinery/light/directional/east,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"yv" = (
+/obj/effect/turf_decal/sand,
+/obj/machinery/food_cart,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"yB" = (
+/obj/item/instrument/guitar,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"yF" = (
+/obj/item/bedsheet/dorms{
+ dir = 4
+ },
+/obj/structure/bed{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"yQ" = (
+/obj/machinery/chem_master/condimaster{
+ name = "CondiMaster Neo";
+ pixel_x = -4
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"yU" = (
+/obj/structure/sign/warning/gas_mask/directional/north,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"yX" = (
+/obj/structure/chair/stool/bar/directional/south,
+/turf/open/floor/carpet/red,
+/area/virtual_domain/powered)
+"zw" = (
+/obj/structure/punching_bag,
+/turf/open/floor/pod/dark,
+/area/virtual_domain/powered)
+"zI" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"zU" = (
+/obj/structure/flora/rock/pile/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Ae" = (
+/obj/structure/chair,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Al" = (
+/turf/closed/mineral/random/volcanic,
+/area/lavaland/surface/outdoors/virtual_domain)
+"An" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Au" = (
+/obj/structure/fluff/beach_umbrella/science,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"AI" = (
+/obj/structure/table/reinforced,
+/obj/machinery/reagentgrinder,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"Bk" = (
+/obj/structure/urinal/directional/north,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Br" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck/cas{
+ pixel_x = -6
+ },
+/obj/item/toy/cards/deck/cas/black{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Bw" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"BD" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/condiment/saltshaker,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"BM" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"Cb" = (
+/obj/machinery/light/directional/north,
+/mob/living/basic/crab{
+ name = "Eddie"
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Cv" = (
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"CA" = (
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/mob_spawn/ghost_role/human/beach/lifeguard,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"CG" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"CO" = (
+/obj/machinery/vending/dinnerware,
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Db" = (
+/obj/machinery/barsign/all_access,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"Dk" = (
+/obj/structure/sign/warning/secure_area,
+/turf/closed/wall/mineral/sandstone,
+/area/virtual_domain/powered)
+"Em" = (
+/obj/item/reagent_containers/condiment/enzyme{
+ layer = 5
+ },
+/obj/item/reagent_containers/cup/beaker{
+ pixel_x = 5
+ },
+/obj/structure/table,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Eq" = (
+/obj/effect/mob_spawn/ghost_role/human/bartender{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Ev" = (
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"EH" = (
+/obj/machinery/deepfryer,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Fn" = (
+/turf/closed/wall/mineral/sandstone,
+/area/virtual_domain/powered)
+"FM" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"FQ" = (
+/obj/structure/table/reinforced,
+/obj/item/secateurs,
+/obj/item/reagent_containers/cup/bottle/nutrient/ez,
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"FS" = (
+/obj/effect/turf_decal/sand,
+/obj/structure/sign/warning/no_smoking/circle/directional/east,
+/obj/machinery/light/directional/east,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"FY" = (
+/obj/structure/mineral_door/wood,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Gt" = (
+/obj/item/food/meat/rawbacon,
+/obj/item/food/meat/rawbacon,
+/obj/item/food/meat/rawcutlet,
+/obj/item/food/meat/rawcutlet,
+/obj/item/food/meat/slab/rawcrab,
+/obj/item/food/meat/slab/rawcrab,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Gz" = (
+/obj/structure/flora/tree/palm,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"GA" = (
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/item/bikehorn/airhorn,
+/obj/structure/table/wood,
+/obj/item/storage/medkit/regular,
+/obj/item/storage/medkit/brute,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"GV" = (
+/obj/machinery/light/directional/south,
+/turf/open/misc/beach/sand/coastline_b,
+/area/virtual_domain/powered)
+"Hs" = (
+/obj/machinery/shower/directional/west,
+/turf/open/floor/iron/white,
+/area/virtual_domain/powered)
+"Ii" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/stairs/left,
+/area/virtual_domain/powered)
+"Ir" = (
+/obj/machinery/vending/cola,
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Iv" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/condiment/peppermill,
+/obj/item/reagent_containers/condiment/soysauce,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"IH" = (
+/obj/item/toy/beach_ball,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"IM" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light/directional/east,
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"IP" = (
+/obj/machinery/vending/snack,
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Jt" = (
+/obj/item/reagent_containers/cup/glass/bottle/beer,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"JC" = (
+/obj/structure/fluff/beach_umbrella/engine,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"JY" = (
+/obj/structure/flora/rock/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"KZ" = (
+/obj/structure/flora/bush/stalky/style_random,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"Ll" = (
+/obj/effect/turf_decal/sand,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/obj/structure/railing,
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"Lu" = (
+/obj/machinery/light/directional/east,
+/turf/open/misc/beach/sand/coastline_b,
+/area/virtual_domain/powered)
+"LD" = (
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"LP" = (
+/obj/effect/turf_decal/sand,
+/obj/structure/railing,
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"LW" = (
+/obj/item/storage/cans/sixbeer,
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"Mp" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{
+ pixel_y = 7;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Mw" = (
+/obj/structure/chair/sofa/right/brown,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Mz" = (
+/obj/structure/chair/sofa/left/brown,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"MS" = (
+/obj/structure/mineral_door/wood{
+ name = "Croupier's Booth"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Ng" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/curtain,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Nr" = (
+/obj/machinery/light/directional/north,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"NM" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"NX" = (
+/obj/effect/landmark/bitrunning/loot_signal,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/virtual_domain/powered)
+"OE" = (
+/obj/effect/mob_spawn/ghost_role/human/beach{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"OK" = (
+/obj/structure/sign/warning/gas_mask/directional/north,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"OR" = (
+/obj/machinery/light/directional/south,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"OW" = (
+/obj/structure/sink/kitchen/directional/east{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ name = "old sink"
+ },
+/turf/open/floor/pod/light,
+/area/virtual_domain/powered)
+"OZ" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Pc" = (
+/obj/structure/chair/wood,
+/obj/machinery/light/directional/west,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Pk" = (
+/obj/item/toy/dodgeball,
+/obj/item/toy/dodgeball,
+/obj/item/toy/dodgeball,
+/obj/item/toy/dodgeball,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"PM" = (
+/obj/machinery/door/airlock/external/ruin,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Qb" = (
+/obj/machinery/griddle,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Qu" = (
+/obj/structure/curtain,
+/turf/open/floor/iron/white,
+/area/virtual_domain/powered)
+"QO" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/mapping_helpers/burnt_floor,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"QP" = (
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Rx" = (
+/turf/open/floor/iron/stairs/medium,
+/area/virtual_domain/powered)
+"RL" = (
+/obj/structure/closet/cabinet,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/shorts/purple,
+/obj/item/clothing/shoes/cookflops{
+ desc = "A very fashionable pair of flip flops.";
+ name = "flip-flops"
+ },
+/obj/item/clothing/glasses/sunglasses/big,
+/obj/item/clothing/neck/beads,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"St" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/misc/beach/sand/coastline_b,
+/area/virtual_domain/powered)
+"SB" = (
+/obj/machinery/door/airlock/sandstone{
+ name = "Resort Bathroom"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"SD" = (
+/obj/machinery/door/airlock/sandstone{
+ name = "Bar Access"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"SY" = (
+/obj/machinery/door/airlock/sandstone{
+ name = "Surfer Shack 2"
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"TG" = (
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"TJ" = (
+/obj/structure/fluff/beach_umbrella/security,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"TN" = (
+/obj/structure/mirror/directional/west,
+/obj/structure/sink/kitchen/directional/south,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"TR" = (
+/turf/open/floor/iron/grimy,
+/area/virtual_domain/powered)
+"Ud" = (
+/obj/effect/turf_decal/sand,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Uh" = (
+/turf/open/floor/iron/stairs/old,
+/area/virtual_domain/powered)
+"Uq" = (
+/obj/structure/weightmachine/weightlifter,
+/turf/open/floor/pod/dark,
+/area/virtual_domain/powered)
+"UU" = (
+/obj/structure/flora/bush/large/style_random,
+/obj/structure/flora/bush/jungle/a/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Ve" = (
+/obj/machinery/processor,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Vt" = (
+/obj/machinery/light/small/directional/east,
+/obj/machinery/light/small/directional/east,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/virtual_domain/powered)
+"VA" = (
+/obj/machinery/computer/slot_machine,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"VH" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"VX" = (
+/obj/structure/flora/bush/large/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"We" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/cooking_to_serve_man,
+/obj/item/clothing/suit/apron/chef,
+/obj/item/clothing/head/utility/chefhat,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Wg" = (
+/obj/structure/dresser,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Ww" = (
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"WA" = (
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/sand,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"WL" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"WO" = (
+/obj/structure/flora/bush/jungle/a/style_random,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"WP" = (
+/obj/machinery/light/directional/north,
+/obj/machinery/washing_machine,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"WW" = (
+/obj/effect/turf_decal/sand,
+/obj/machinery/icecream_vat,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"WX" = (
+/obj/item/toy/plush/lizard_plushie/green{
+ name = "Soaks-The-Rays"
+ },
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"Xv" = (
+/obj/structure/table/wood,
+/obj/structure/bedsheetbin,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"XL" = (
+/obj/machinery/light/directional/east,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"XP" = (
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"XT" = (
+/obj/effect/turf_decal/sand,
+/obj/structure/sign/departments/botany/directional/south,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Yi" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/obj/item/toy/seashell,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Yq" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"YJ" = (
+/turf/open/floor/carpet/purple,
+/area/virtual_domain/powered)
+"YL" = (
+/obj/machinery/vending/cigarette/beach,
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"YN" = (
+/obj/effect/turf_decal/sand,
+/obj/machinery/light/directional/west,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Zg" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Zp" = (
+/obj/machinery/light/directional/east,
+/obj/structure/chair/stool/bar/directional/south,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Zt" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/pill/morphine,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ZI" = (
+/obj/effect/turf_decal/sand,
+/obj/item/coin/gold,
+/obj/structure/railing,
+/obj/machinery/media/jukebox,
+/turf/open/floor/sepia,
+/area/virtual_domain/powered)
+"ZS" = (
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/mayonnaise,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/flour,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+
+(1,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+kv
+"}
+(2,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+iz
+"}
+(3,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+Al
+Al
+gl
+gl
+gl
+gl
+gl
+Al
+Al
+gl
+gl
+gl
+Al
+gl
+gl
+gl
+gl
+Al
+Al
+gl
+gl
+gl
+Al
+Al
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(4,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(5,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+zI
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(6,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+OZ
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(7,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+An
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+ke
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+ml
+ml
+ml
+ml
+ml
+FM
+gl
+Al
+iz
+"}
+(8,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+ml
+ml
+ml
+ml
+ml
+ml
+gl
+Al
+iz
+"}
+(9,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+gl
+gl
+ml
+ml
+ml
+ml
+ml
+ml
+gl
+Al
+iz
+"}
+(10,1,1) = {"
+pr
+pr
+pr
+pr
+iz
+Al
+Al
+Al
+Al
+xb
+xb
+Vt
+Al
+Al
+gl
+gl
+gl
+Al
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Al
+gl
+gl
+ml
+ml
+ml
+ml
+ml
+ml
+gl
+Al
+iz
+"}
+(11,1,1) = {"
+iz
+iz
+iz
+iz
+iz
+Al
+Al
+Al
+Fn
+PM
+PM
+Fn
+Fn
+Al
+Al
+Al
+Fn
+Fn
+Fn
+Pc
+bf
+Bw
+Fn
+Ev
+Eq
+iR
+kG
+di
+Fn
+hx
+Al
+gl
+ml
+ml
+ml
+ml
+ml
+ml
+gl
+Al
+iz
+"}
+(12,1,1) = {"
+iz
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Fn
+pT
+LD
+LD
+Fn
+Fn
+Dk
+Fn
+Fn
+bQ
+cv
+wD
+Bw
+JY
+Fn
+db
+TG
+TG
+TG
+TG
+wo
+Fn
+Al
+gl
+ml
+ml
+ml
+ml
+ml
+ml
+gl
+Al
+iz
+"}
+(13,1,1) = {"
+iz
+Al
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+LD
+pT
+LD
+uI
+LD
+pT
+PM
+wD
+wD
+cv
+wD
+wD
+OR
+Fn
+ug
+TG
+TG
+TG
+TG
+vC
+Fn
+Al
+gl
+ml
+ml
+ml
+ml
+ml
+sT
+gl
+Al
+iz
+"}
+(14,1,1) = {"
+iz
+Al
+Fn
+VA
+kT
+TG
+TG
+Fn
+Fn
+Fn
+yU
+LD
+QO
+LD
+LD
+PM
+wD
+wD
+wD
+wD
+wD
+qc
+Fn
+Fn
+SD
+Mp
+uq
+fc
+Fn
+Fn
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(15,1,1) = {"
+iz
+Al
+Fn
+VA
+yX
+ag
+kT
+Br
+TG
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Gz
+wD
+Bw
+rm
+wD
+wD
+wD
+Ii
+dx
+kn
+kn
+kn
+Ll
+Fn
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(16,1,1) = {"
+iz
+Al
+Fn
+pC
+yX
+ag
+kT
+CG
+kT
+Fn
+as
+YL
+Ir
+IP
+YN
+wD
+wD
+wD
+wD
+mG
+vv
+Bw
+wD
+Rx
+uU
+lS
+lS
+lS
+LP
+Fn
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(17,1,1) = {"
+iz
+Al
+Fn
+Mw
+ag
+ag
+Zp
+eT
+TG
+Fn
+Ud
+Ud
+bC
+Ud
+Ud
+wD
+IH
+wD
+wD
+Bw
+wD
+wD
+wD
+Rx
+uU
+lS
+NX
+lS
+ZI
+Fn
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(18,1,1) = {"
+iz
+Al
+Fn
+Mz
+TG
+TG
+Fn
+Fn
+MS
+Fn
+wD
+wD
+wD
+Bw
+wD
+VX
+wD
+UU
+wD
+wD
+wD
+wD
+wD
+Rx
+uU
+lS
+lS
+lS
+LP
+Fn
+Al
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(19,1,1) = {"
+iz
+Al
+Fn
+Fn
+wm
+wm
+Fn
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+jc
+uU
+uU
+uU
+uU
+LP
+Fn
+Fn
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+gl
+Al
+iz
+"}
+(20,1,1) = {"
+iz
+Al
+Fn
+zU
+wD
+wD
+wD
+wD
+WA
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+ys
+wD
+wD
+TJ
+wb
+wD
+wD
+St
+St
+St
+St
+St
+St
+GV
+Fn
+gl
+gl
+Al
+Al
+gl
+gl
+Al
+gl
+Al
+iz
+"}
+(21,1,1) = {"
+iz
+Al
+Fn
+wD
+wD
+Bw
+wD
+wD
+BM
+BM
+BM
+We
+Zt
+BD
+Iv
+BM
+Db
+Nr
+wD
+yl
+ag
+wD
+wD
+eU
+KZ
+Ww
+Ww
+Ww
+cG
+eU
+Fn
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+iz
+"}
+(22,1,1) = {"
+iz
+Al
+Fn
+Fn
+wD
+wD
+wD
+wD
+BM
+Zg
+VH
+TG
+TG
+TG
+TG
+Gt
+BM
+wD
+wD
+Au
+wD
+rT
+wD
+eU
+Ww
+Ww
+Ww
+Ww
+Ww
+eU
+Fn
+Al
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+"}
+(23,1,1) = {"
+iz
+Al
+xb
+Fn
+Cb
+wD
+JC
+wD
+BM
+EH
+TG
+ZS
+BM
+aw
+TG
+TG
+ya
+wD
+wD
+YJ
+YJ
+wD
+wD
+eU
+Ww
+Ww
+Ww
+Ww
+Ww
+eU
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(24,1,1) = {"
+iz
+Al
+xb
+Fn
+wD
+Gz
+WX
+wD
+BM
+Em
+TG
+TG
+ri
+Qb
+TG
+TG
+cb
+wD
+wD
+bQ
+wD
+wD
+wD
+eU
+Ww
+Ww
+KZ
+KZ
+Ww
+GV
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(25,1,1) = {"
+iz
+Al
+xb
+Fn
+OK
+Gz
+LW
+wD
+BM
+yQ
+TG
+oP
+BM
+vq
+TG
+TG
+vN
+wD
+wD
+XP
+yB
+wD
+wD
+eU
+KZ
+Ww
+KZ
+gh
+Ww
+eU
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(26,1,1) = {"
+iz
+Al
+xb
+Fn
+Nr
+wD
+wD
+wD
+BM
+Ve
+rc
+yi
+TG
+TG
+TG
+CO
+BM
+wD
+Yi
+XL
+wD
+wD
+wD
+eU
+Ww
+Ww
+Ww
+Ww
+Ww
+eU
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(27,1,1) = {"
+iz
+Al
+Fn
+Fn
+Bw
+wD
+wD
+wD
+BM
+BM
+BM
+BM
+FY
+BM
+BM
+BM
+er
+wD
+GA
+xq
+jy
+wD
+wD
+eU
+Ww
+cG
+Ww
+Ww
+KZ
+eU
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(28,1,1) = {"
+iz
+Al
+Fn
+Nr
+wD
+wD
+Bw
+wD
+YN
+Ud
+WW
+yv
+Ud
+Ud
+Ud
+Ud
+YN
+wD
+xR
+CA
+Uh
+wD
+qW
+eU
+Ww
+Ww
+Ww
+Ww
+Ww
+GV
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(29,1,1) = {"
+iz
+Al
+Fn
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+Jt
+eU
+eU
+Lu
+eU
+eU
+eU
+eU
+eU
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(30,1,1) = {"
+iz
+Al
+Fn
+tj
+tj
+Fn
+VX
+wD
+wD
+wD
+wD
+wD
+XL
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+wD
+XT
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(31,1,1) = {"
+iz
+Al
+Fn
+TG
+TG
+Fn
+Fn
+jl
+Fn
+Fn
+Ng
+Fn
+Fn
+WO
+wD
+Bw
+wD
+wD
+wD
+wD
+bM
+Ud
+aE
+aE
+aE
+lq
+fr
+hk
+Fn
+Al
+Al
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(32,1,1) = {"
+iz
+Al
+Fn
+TG
+TG
+TG
+Fn
+Fn
+Fn
+es
+OE
+yF
+Fn
+Fn
+Ng
+Fn
+Fn
+wD
+wD
+wD
+Ae
+Ud
+zw
+xw
+Uq
+aE
+aE
+aE
+Fn
+Fn
+Al
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(33,1,1) = {"
+iz
+Al
+Fn
+WP
+TG
+TG
+TG
+TG
+hG
+TG
+TG
+TG
+Fn
+es
+OE
+yF
+Fn
+Gz
+wD
+wD
+wD
+Ud
+xw
+xw
+xw
+aE
+aE
+aE
+OW
+Fn
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(34,1,1) = {"
+iz
+Al
+Fn
+Xv
+TG
+hE
+TG
+TG
+Fn
+Wg
+rc
+xJ
+Fn
+TG
+TG
+dI
+Fn
+wD
+wD
+Bw
+wD
+lB
+zw
+xw
+Uq
+aE
+FQ
+aE
+aE
+jg
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(35,1,1) = {"
+iz
+Al
+Fn
+Fn
+SB
+Fn
+WL
+TG
+Fn
+Fn
+Fn
+Fn
+Fn
+Wg
+TG
+RL
+Fn
+Ud
+Ud
+Ud
+Ud
+FS
+aE
+aE
+aE
+aE
+AI
+sj
+aE
+NM
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(36,1,1) = {"
+iz
+Al
+Fn
+TN
+TG
+Fn
+TG
+TG
+TG
+TG
+TG
+TG
+Fn
+Fn
+SY
+Fn
+Fn
+tj
+tj
+Fn
+ws
+Fn
+Fn
+Fn
+TR
+aE
+aE
+aE
+aE
+uk
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(37,1,1) = {"
+iz
+Al
+Fn
+Bk
+dI
+Fn
+Fn
+Fn
+QP
+TG
+TG
+TG
+TG
+TG
+TG
+TG
+TG
+TG
+TG
+Fn
+Pk
+bZ
+ed
+Fn
+Cv
+Cv
+IM
+Cv
+Cv
+Fn
+Fn
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(38,1,1) = {"
+iz
+Al
+Fn
+tZ
+TG
+Qu
+Hs
+Fn
+Fn
+Fn
+TG
+rc
+TG
+TG
+TG
+rL
+rc
+TG
+TG
+Fn
+Yq
+aZ
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Al
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(39,1,1) = {"
+iz
+Al
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Al
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Fn
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(40,1,1) = {"
+iz
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+Al
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
+(41,1,1) = {"
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+iz
+pr
+pr
+pr
+pr
+pr
+pr
+pr
+xW
+"}
diff --git a/_maps/virtual_domains/blood_drunk_miner.dmm b/_maps/virtual_domains/blood_drunk_miner.dmm
new file mode 100644
index 000000000000..c3369a1c822d
--- /dev/null
+++ b/_maps/virtual_domains/blood_drunk_miner.dmm
@@ -0,0 +1,1887 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"b" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"c" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"d" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"f" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/block/cracked,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"h" = (
+/obj/machinery/light/small/blacklight/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"i" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"j" = (
+/obj/structure/marker_beacon/jade,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"k" = (
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"l" = (
+/obj/structure/stone_tile/block,
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"m" = (
+/obj/structure/marker_beacon/olive,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"n" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"o" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"q" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"r" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"s" = (
+/turf/closed/mineral/volcanic/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"t" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"u" = (
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"v" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"w" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"x" = (
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"y" = (
+/obj/structure/marker_beacon/violet,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"z" = (
+/obj/structure/stone_tile/block,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"A" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"C" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"G" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"H" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"I" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"J" = (
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"K" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"L" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"O" = (
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"P" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"S" = (
+/obj/structure/stone_tile/surrounding/cracked{
+ dir = 6
+ },
+/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual_domain,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"T" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"W" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"X" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Y" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Z" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+d
+"}
+(2,1,1) = {"
+v
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+v
+"}
+(3,1,1) = {"
+v
+s
+s
+s
+s
+J
+J
+s
+s
+J
+J
+s
+s
+J
+J
+J
+J
+s
+s
+s
+J
+J
+J
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+J
+J
+s
+s
+J
+J
+s
+v
+"}
+(4,1,1) = {"
+v
+s
+s
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(5,1,1) = {"
+v
+s
+s
+J
+a
+J
+J
+J
+J
+a
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+s
+v
+"}
+(6,1,1) = {"
+v
+s
+s
+J
+a
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+a
+a
+a
+a
+J
+J
+J
+a
+a
+J
+J
+J
+a
+a
+J
+a
+J
+a
+a
+J
+J
+J
+s
+s
+v
+"}
+(7,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(8,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+J
+J
+s
+s
+v
+"}
+(9,1,1) = {"
+v
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+j
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(10,1,1) = {"
+v
+s
+J
+J
+J
+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
+t
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(11,1,1) = {"
+v
+s
+s
+J
+J
+J
+a
+a
+a
+y
+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
+J
+J
+s
+v
+"}
+(12,1,1) = {"
+v
+s
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+C
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+s
+v
+"}
+(13,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+J
+s
+v
+"}
+(14,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+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
+J
+J
+s
+v
+"}
+(15,1,1) = {"
+v
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+X
+z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+c
+c
+c
+c
+c
+L
+a
+a
+J
+J
+s
+v
+"}
+(16,1,1) = {"
+v
+s
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+T
+W
+a
+r
+a
+i
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(17,1,1) = {"
+v
+s
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+I
+b
+k
+l
+x
+a
+T
+k
+a
+a
+a
+m
+a
+a
+a
+a
+a
+o
+a
+a
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(18,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+P
+S
+A
+O
+u
+r
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+c
+c
+c
+c
+c
+a
+J
+J
+s
+s
+v
+"}
+(19,1,1) = {"
+v
+s
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+k
+G
+H
+x
+f
+k
+a
+Y
+T
+u
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(20,1,1) = {"
+v
+s
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+Y
+x
+a
+Z
+a
+z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+c
+c
+c
+c
+c
+a
+a
+J
+J
+s
+v
+"}
+(21,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+c
+c
+c
+c
+c
+q
+a
+a
+J
+s
+s
+v
+"}
+(22,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+w
+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
+J
+s
+s
+v
+"}
+(23,1,1) = {"
+v
+s
+J
+J
+a
+a
+a
+a
+a
+a
+n
+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
+J
+s
+s
+v
+"}
+(24,1,1) = {"
+v
+s
+J
+J
+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
+C
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(25,1,1) = {"
+v
+s
+s
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(26,1,1) = {"
+v
+s
+s
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+K
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(27,1,1) = {"
+v
+s
+s
+J
+J
+J
+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
+j
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+s
+v
+"}
+(28,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+J
+J
+J
+s
+v
+"}
+(29,1,1) = {"
+v
+s
+J
+J
+J
+J
+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
+J
+J
+s
+s
+v
+"}
+(30,1,1) = {"
+v
+s
+s
+J
+J
+J
+J
+a
+a
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+a
+a
+a
+J
+J
+J
+a
+a
+a
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+a
+a
+a
+J
+J
+s
+s
+v
+"}
+(31,1,1) = {"
+v
+s
+s
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(32,1,1) = {"
+v
+s
+s
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+s
+v
+"}
+(33,1,1) = {"
+v
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+s
+s
+s
+s
+J
+J
+J
+s
+s
+s
+s
+s
+s
+J
+J
+J
+s
+v
+"}
+(34,1,1) = {"
+v
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+s
+v
+"}
+(35,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+"}
diff --git a/_maps/virtual_domains/bubblegum.dmm b/_maps/virtual_domains/bubblegum.dmm
new file mode 100644
index 000000000000..3381b1735398
--- /dev/null
+++ b/_maps/virtual_domains/bubblegum.dmm
@@ -0,0 +1,2250 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"c" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"d" = (
+/obj/structure/marker_beacon/jade,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"f" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"g" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"p" = (
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"r" = (
+/obj/structure/marker_beacon/fuchsia,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"w" = (
+/obj/machinery/light/small/blacklight/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"x" = (
+/obj/structure/marker_beacon/olive,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"z" = (
+/obj/structure/marker_beacon/purple,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"A" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"C" = (
+/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"F" = (
+/turf/open/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"G" = (
+/obj/structure/marker_beacon/violet,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"I" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"M" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"R" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"S" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"W" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"X" = (
+/obj/structure/marker_beacon/lime,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Y" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Z" = (
+/turf/closed/mineral/volcanic/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+R
+"}
+(2,1,1) = {"
+F
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+F
+"}
+(3,1,1) = {"
+F
+Z
+a
+a
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+F
+"}
+(4,1,1) = {"
+F
+Z
+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
+a
+Z
+F
+"}
+(5,1,1) = {"
+F
+Z
+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
+p
+Z
+F
+"}
+(6,1,1) = {"
+F
+Z
+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
+G
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+p
+p
+Z
+F
+"}
+(7,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+x
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+p
+Z
+F
+"}
+(8,1,1) = {"
+F
+Z
+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
+Z
+Z
+a
+a
+a
+Z
+Z
+F
+"}
+(9,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+p
+p
+p
+p
+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
+Z
+Z
+F
+"}
+(10,1,1) = {"
+F
+Z
+Z
+a
+a
+a
+a
+a
+Z
+Z
+Z
+p
+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
+Z
+Z
+F
+"}
+(11,1,1) = {"
+F
+Z
+Z
+a
+a
+a
+a
+a
+Z
+Z
+Z
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+p
+p
+a
+a
+a
+a
+a
+Z
+F
+"}
+(12,1,1) = {"
+F
+Z
+Z
+a
+a
+a
+a
+a
+p
+Z
+p
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+p
+a
+a
+a
+a
+a
+Z
+F
+"}
+(13,1,1) = {"
+F
+Z
+Z
+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
+Z
+Z
+Z
+a
+a
+a
+a
+a
+M
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(14,1,1) = {"
+F
+Z
+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
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(15,1,1) = {"
+F
+Z
+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
+c
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(16,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+I
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(17,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+W
+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
+Z
+F
+"}
+(18,1,1) = {"
+F
+Z
+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
+a
+Z
+F
+"}
+(19,1,1) = {"
+F
+Z
+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
+a
+Z
+F
+"}
+(20,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+z
+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
+Z
+F
+"}
+(21,1,1) = {"
+F
+Z
+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
+w
+S
+S
+S
+S
+S
+T
+a
+Z
+F
+"}
+(22,1,1) = {"
+F
+Z
+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
+S
+S
+S
+S
+S
+S
+a
+Z
+F
+"}
+(23,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+C
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+S
+S
+S
+S
+S
+S
+a
+Z
+F
+"}
+(24,1,1) = {"
+F
+Z
+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
+X
+a
+a
+S
+S
+S
+S
+S
+S
+a
+Z
+F
+"}
+(25,1,1) = {"
+F
+Z
+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
+S
+S
+S
+S
+S
+S
+a
+Z
+F
+"}
+(26,1,1) = {"
+F
+Z
+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
+S
+S
+S
+S
+S
+S
+a
+Z
+F
+"}
+(27,1,1) = {"
+F
+Z
+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
+w
+S
+S
+S
+S
+S
+A
+a
+Z
+F
+"}
+(28,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+f
+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
+Z
+F
+"}
+(29,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+r
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(30,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+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
+Z
+F
+"}
+(31,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+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
+Z
+F
+"}
+(32,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+a
+a
+Z
+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
+Z
+F
+"}
+(33,1,1) = {"
+F
+Z
+a
+a
+a
+a
+a
+Z
+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
+d
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(34,1,1) = {"
+F
+Z
+Z
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(35,1,1) = {"
+F
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+X
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(36,1,1) = {"
+F
+Z
+Z
+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
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(37,1,1) = {"
+F
+Z
+Z
+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
+Z
+Z
+F
+"}
+(38,1,1) = {"
+F
+Z
+a
+a
+a
+p
+p
+a
+a
+a
+a
+a
+g
+a
+a
+a
+a
+Z
+a
+a
+a
+a
+a
+a
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+F
+"}
+(39,1,1) = {"
+F
+Z
+a
+a
+a
+p
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+a
+a
+a
+a
+a
+p
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(40,1,1) = {"
+F
+Z
+a
+c
+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
+Z
+F
+"}
+(41,1,1) = {"
+F
+Z
+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
+Y
+a
+a
+a
+a
+a
+a
+a
+Z
+F
+"}
+(42,1,1) = {"
+F
+Z
+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
+a
+Z
+F
+"}
+(43,1,1) = {"
+F
+Z
+a
+Z
+Z
+Z
+Z
+a
+a
+a
+a
+a
+Z
+Z
+Z
+Z
+a
+a
+a
+Z
+Z
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+Z
+Z
+Z
+Z
+a
+a
+a
+a
+a
+a
+Z
+Z
+a
+a
+Z
+F
+"}
+(44,1,1) = {"
+F
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+F
+"}
+(45,1,1) = {"
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+F
+"}
diff --git a/_maps/virtual_domains/clown_planet.dmm b/_maps/virtual_domains/clown_planet.dmm
new file mode 100644
index 000000000000..01d7b88a5efb
--- /dev/null
+++ b/_maps/virtual_domains/clown_planet.dmm
@@ -0,0 +1,2323 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ai" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"aI" = (
+/obj/item/bikehorn/airhorn,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"aM" = (
+/obj/item/bikehorn,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"aP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/food/pie_smudge,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"ba" = (
+/obj/structure/mecha_wreckage/honker,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"bi" = (
+/obj/item/bikehorn,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"bp" = (
+/turf/open/indestructible/light,
+/area/virtual_domain/powered)
+"bq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"by" = (
+/turf/closed/wall/r_wall,
+/area/lavaland/surface/outdoors/virtual_domain)
+"bQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"bR" = (
+/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/mapping_helpers/no_lava,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"bU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"cw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"cM" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"cW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"ed" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"eE" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"fh" = (
+/obj/effect/mob_spawn/corpse/human/damaged,
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"gr" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"gy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"gH" = (
+/obj/item/bikehorn,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"gK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"hK" = (
+/obj/item/clothing/head/cone,
+/obj/effect/mapping_helpers/no_lava,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"hY" = (
+/turf/template_noop,
+/area/template_noop)
+"ij" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/disposal/delivery_chute{
+ dir = 4
+ },
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"ik" = (
+/turf/open/lava/smooth,
+/area/virtual_domain/powered)
+"iR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ki" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"kn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"lj" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/delivery_chute{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"lr" = (
+/obj/item/bikehorn,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"lx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"ly" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lP" = (
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"mD" = (
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"mE" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"mF" = (
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"nE" = (
+/obj/effect/mapping_helpers/no_lava,
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"oA" = (
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"oI" = (
+/obj/structure/table/glass,
+/obj/item/grown/bananapeel/bluespace,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"pl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"ps" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"qM" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"rg" = (
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"rh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"rr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"rH" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 1;
+ invisibility = 101
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"rT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"sq" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"sT" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/mail_sorting/supply/qm_office,
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"tq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"tt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/indestructible/light,
+/area/virtual_domain/powered)
+"tv" = (
+/obj/effect/mob_spawn/corpse/human/damaged,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"tF" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"tI" = (
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/item/coin/bananium,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"uX" = (
+/obj/effect/mapping_helpers/no_lava,
+/mob/living/basic/clown,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"uY" = (
+/turf/closed/mineral/bananium,
+/area/virtual_domain/powered)
+"uZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/structure/table,
+/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape,
+/obj/item/pen/fourcolor,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"wz" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/mapping_helpers/no_lava,
+/mob/living/basic/clown,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"xt" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"yd" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"yz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"yS" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"yZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"zm" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"zA" = (
+/obj/structure/statue/bananium/clown,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"zF" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/disposaloutlet{
+ dir = 8
+ },
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"Aa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Bi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Cp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"Cs" = (
+/obj/item/bikehorn,
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Dh" = (
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"Do" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"DL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/item/bikehorn,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Ex" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"FI" = (
+/obj/item/reagent_containers/cup/glass/trophy/gold_cup,
+/obj/structure/table/glass,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"Gg" = (
+/obj/structure/table/glass,
+/obj/item/gun/magic/staff/honk,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"Hq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Hr" = (
+/obj/structure/table/glass,
+/obj/item/clothing/shoes/clown_shoes/banana_shoes,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"HQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Ie" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Iz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"IN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"IY" = (
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"Jv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"JB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Ka" = (
+/obj/effect/decal/cleanable/food/pie_smudge,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Kh" = (
+/obj/effect/mob_spawn/corpse/human/damaged,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"KG" = (
+/obj/item/pickaxe,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"KI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/closed/wall/r_wall,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Lv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"Nv" = (
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"NB" = (
+/obj/machinery/disposal/delivery_chute,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"NL" = (
+/obj/machinery/disposal/delivery_chute{
+ desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN";
+ dir = 1;
+ name = "THE TRIAL OF HONKITUDE"
+ },
+/obj/structure/disposalpipe/trunk,
+/obj/effect/mapping_helpers/no_lava,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"NW" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/spray/waterflower/superlube,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"Ok" = (
+/obj/item/bikehorn,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Ov" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"PJ" = (
+/obj/structure/disposalpipe/trunk,
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/no_lava,
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"PM" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"PQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/item/pickaxe,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"QP" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"QX" = (
+/obj/structure/closet/crate/secure/bitrunning/encrypted,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"Rh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"Rx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/structure/table,
+/obj/item/flashlight/lamp/bananalamp,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"RU" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Sg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/decal/cleanable/food/pie_smudge,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Sm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"Tm" = (
+/obj/effect/decal/cleanable/food/pie_smudge,
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Tx" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"TH" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/disposaloutlet{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"TK" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"Ug" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/carpet,
+/area/virtual_domain/powered)
+"UL" = (
+/obj/effect/decal/cleanable/oil,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"UN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"UQ" = (
+/obj/structure/disposalpipe/segment{
+ invisibility = 101
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"UY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"Vv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"Vx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"VI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"VQ" = (
+/turf/open/floor/noslip,
+/area/virtual_domain/powered)
+"Ww" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/indestructible/permalube,
+/area/virtual_domain/powered)
+"WB" = (
+/obj/machinery/disposal/delivery_chute{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk,
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"WT" = (
+/obj/machinery/door/airlock/bananium,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"WX" = (
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"Xp" = (
+/obj/machinery/light/directional/south,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"XB" = (
+/obj/machinery/light/directional/north,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"Yb" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/indestructible/honk,
+/area/virtual_domain/powered)
+"YP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ invisibility = 101
+ },
+/turf/open/indestructible/white,
+/area/virtual_domain/powered)
+"ZR" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+Ie
+Ie
+rT
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+rr
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(2,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(3,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+Dh
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(4,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+ik
+ik
+ik
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+ik
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(5,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+ik
+Hq
+Sm
+Hq
+Sm
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+tq
+mD
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(6,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Dh
+Dh
+ik
+ik
+IN
+Tx
+bU
+ai
+yZ
+aP
+Sm
+ik
+Dh
+Dh
+Dh
+Dh
+Dh
+Nv
+IY
+tq
+ik
+ik
+ik
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(7,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Dh
+ik
+ik
+Dh
+Bi
+cw
+UQ
+lr
+UQ
+UY
+Vv
+ik
+Dh
+IY
+Jv
+IY
+Dh
+IY
+Jv
+Kh
+IY
+tq
+ik
+tq
+ik
+ik
+Dh
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(8,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+Dh
+ik
+IN
+Tm
+lx
+Ww
+cw
+UQ
+Sm
+Vv
+Vv
+Dh
+zm
+oA
+IY
+Jv
+Jv
+IY
+Jv
+IY
+IY
+IY
+Dh
+ik
+mD
+ik
+Dh
+Dh
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(9,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+ik
+UN
+UQ
+UY
+Ww
+Vv
+TH
+Vv
+YP
+Cp
+uY
+Dh
+sq
+oA
+IY
+Dh
+Dh
+Jv
+Dh
+IY
+IY
+IY
+tq
+ik
+ik
+ik
+Dh
+Ie
+Vx
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+tF
+"}
+(10,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+IN
+UQ
+UQ
+yZ
+Do
+Do
+Vv
+YP
+YP
+YP
+KG
+uY
+Dh
+Dh
+oA
+IY
+IY
+Jv
+IY
+IY
+gH
+Jv
+Xp
+Dh
+ik
+ik
+Dh
+by
+KI
+by
+by
+by
+by
+by
+by
+by
+by
+by
+Ie
+"}
+(11,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+yz
+fh
+UQ
+UY
+Vv
+Ww
+Vv
+YP
+YP
+tt
+bp
+WX
+oA
+oA
+oA
+IY
+Dh
+IY
+IY
+Jv
+Jv
+IY
+IY
+ik
+tq
+ik
+Dh
+by
+iR
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+by
+Ie
+"}
+(12,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+Hq
+TK
+qM
+yZ
+Ww
+Ww
+Vv
+YP
+PQ
+tt
+bp
+uY
+Dh
+oA
+oA
+IY
+IY
+Dh
+IY
+IY
+IY
+IY
+Jv
+ik
+tq
+ik
+ik
+by
+iR
+yS
+PM
+PM
+PM
+PM
+PM
+yS
+PM
+by
+Ie
+"}
+(13,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+UN
+UQ
+UQ
+DL
+Ww
+yz
+lx
+Vv
+YP
+Lv
+WX
+Dh
+Dh
+oA
+IY
+IY
+Dh
+Dh
+IY
+IY
+Dh
+IY
+Jv
+ik
+mD
+tq
+ik
+by
+iR
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+by
+Ie
+"}
+(14,1,1) = {"
+Ie
+Dh
+Vv
+nE
+nE
+mD
+cw
+UQ
+lx
+Ex
+Tm
+UQ
+lx
+Vv
+Vv
+ps
+TK
+Sm
+Dh
+Dh
+Dh
+zA
+rg
+Dh
+XB
+IY
+Jv
+gH
+IY
+ik
+tq
+ik
+by
+iR
+PM
+QP
+QP
+QP
+QP
+QP
+xt
+PM
+by
+Ie
+"}
+(15,1,1) = {"
+Ie
+Dh
+ij
+hK
+nE
+Dh
+yz
+UQ
+UQ
+UQ
+UQ
+bi
+UQ
+yZ
+Do
+Iz
+kn
+Ww
+Dh
+Dh
+FI
+mF
+mF
+mF
+Dh
+IY
+Jv
+Jv
+IY
+ik
+tq
+ik
+by
+ZR
+PM
+QP
+QP
+QP
+QP
+QP
+QP
+PM
+by
+Ie
+"}
+(16,1,1) = {"
+Ie
+Dh
+VQ
+uX
+NL
+TK
+Tx
+UQ
+TK
+UQ
+cW
+TK
+Tm
+UQ
+yZ
+pl
+Do
+Ex
+UY
+Dh
+Ug
+oI
+NW
+mF
+Dh
+Dh
+Jv
+IY
+IY
+ik
+tq
+ik
+by
+PM
+PM
+QP
+QP
+QP
+QP
+QP
+QP
+PM
+by
+Ie
+"}
+(17,1,1) = {"
+Ie
+Dh
+VQ
+bR
+wz
+Dh
+Hq
+UQ
+Sm
+cw
+UY
+cw
+UQ
+UQ
+Tx
+gy
+Ex
+UY
+Iz
+TK
+NB
+mF
+aI
+mF
+WT
+IY
+Jv
+IY
+Dh
+ik
+tq
+ik
+by
+PM
+PM
+QP
+QP
+QP
+QP
+QP
+QP
+PM
+by
+Ie
+"}
+(18,1,1) = {"
+Ie
+Dh
+VQ
+uX
+PJ
+TK
+sT
+kn
+Do
+Do
+Vv
+Do
+Ov
+UQ
+UY
+Ok
+mE
+rH
+pl
+Dh
+mF
+Hr
+Gg
+mF
+Dh
+IY
+IY
+IY
+IY
+ik
+tq
+ik
+by
+PM
+PM
+QP
+QP
+QP
+QP
+QP
+QP
+PM
+by
+Ie
+"}
+(19,1,1) = {"
+Ie
+Dh
+zF
+uX
+nE
+Dh
+Dh
+Ww
+Ww
+Ww
+Do
+Do
+Do
+lP
+Ex
+UY
+Ka
+Vv
+tv
+Dh
+FI
+mF
+mF
+QX
+Dh
+IY
+IY
+IY
+IY
+ik
+tq
+ik
+by
+lj
+PM
+QP
+QP
+QP
+QP
+QP
+QP
+PM
+by
+Ie
+"}
+(20,1,1) = {"
+Ie
+Dh
+Vv
+nE
+nE
+ik
+Dh
+Ww
+Ww
+Cs
+Do
+Do
+Vv
+Dh
+Dh
+bQ
+Dh
+ba
+Dh
+IY
+Dh
+zA
+tI
+Dh
+XB
+IY
+Jv
+Jv
+IY
+ik
+tq
+ik
+by
+iR
+PM
+QP
+QP
+QP
+QP
+QP
+gr
+PM
+by
+Ie
+"}
+(21,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+Dh
+Dh
+Do
+Do
+Do
+Ww
+Do
+Vv
+rh
+ed
+gK
+Dh
+UL
+Sm
+IY
+IY
+Dh
+Dh
+Kh
+IY
+IY
+Jv
+IY
+ik
+tq
+mD
+ik
+by
+iR
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+by
+Ie
+"}
+(22,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+Dh
+Dh
+JB
+Sg
+Vv
+Ww
+Vv
+uZ
+YP
+bp
+bp
+uY
+Dh
+bQ
+oA
+IY
+IY
+Dh
+IY
+Jv
+IY
+IY
+IY
+ik
+tq
+ik
+ik
+by
+iR
+PM
+PM
+yS
+PM
+PM
+PM
+PM
+PM
+by
+Ie
+"}
+(23,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+cM
+eE
+lx
+Vv
+ki
+Ww
+Vv
+Rx
+YP
+bp
+bp
+WB
+TK
+Aa
+Dh
+IY
+IY
+Jv
+Jv
+Jv
+IY
+aM
+Xp
+Dh
+tq
+ik
+Dh
+by
+iR
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+PM
+by
+Ie
+"}
+(24,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+Dh
+Dh
+lP
+Do
+Do
+Cs
+bQ
+YP
+bq
+Rh
+WX
+uY
+Dh
+oA
+oA
+IY
+IY
+Jv
+Jv
+IY
+IY
+Dh
+Dh
+ik
+mD
+ik
+Dh
+by
+KI
+by
+by
+by
+by
+by
+by
+by
+by
+by
+Ie
+"}
+(25,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+Dh
+Dh
+pl
+Do
+Vv
+Do
+Vv
+Vv
+rh
+lm
+uY
+Dh
+sq
+oA
+IY
+IY
+IY
+IY
+IY
+Dh
+IY
+IY
+ik
+mD
+ik
+ik
+Dh
+Ie
+Vx
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+"}
+(26,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+ik
+ik
+Dh
+yd
+Do
+Do
+Do
+Ex
+lx
+Vv
+Dh
+Dh
+oA
+oA
+IY
+IY
+IY
+Jv
+aM
+IY
+IY
+IY
+Dh
+ik
+tq
+ik
+Dh
+Dh
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(27,1,1) = {"
+Ie
+Ie
+Vx
+Dh
+Dh
+ik
+Dh
+Dh
+Ex
+lx
+HQ
+UQ
+UQ
+bU
+Dh
+ik
+Dh
+Yb
+IY
+IY
+Dh
+IY
+IY
+Dh
+IY
+IY
+ik
+mD
+ik
+ik
+Dh
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(28,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Dh
+Dh
+ik
+ik
+Dh
+mD
+Dh
+Ka
+lP
+mD
+Dh
+ik
+Dh
+Dh
+Dh
+Dh
+Dh
+IY
+IY
+IY
+ik
+ik
+ik
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(29,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+ik
+tq
+tq
+tq
+Dh
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+mD
+tq
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(30,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+ik
+ik
+ik
+ik
+ik
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+ik
+ik
+ik
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(31,1,1) = {"
+Ie
+Ie
+Vx
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+Dh
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Dh
+Dh
+Dh
+Dh
+Dh
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Vx
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(32,1,1) = {"
+Ie
+Ie
+VI
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+RU
+ly
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
+(33,1,1) = {"
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+Ie
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+hY
+"}
diff --git a/_maps/virtual_domains/colossus.dmm b/_maps/virtual_domains/colossus.dmm
new file mode 100644
index 000000000000..a9c3c6e6d79e
--- /dev/null
+++ b/_maps/virtual_domains/colossus.dmm
@@ -0,0 +1,2250 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"c" = (
+/obj/structure/marker_beacon/olive,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"e" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"j" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"k" = (
+/turf/closed/mineral/volcanic/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"l" = (
+/obj/structure/marker_beacon/lime,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"m" = (
+/obj/structure/marker_beacon/violet,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"o" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"p" = (
+/mob/living/simple_animal/hostile/megafauna/colossus/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"q" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"r" = (
+/obj/machinery/light/small/blacklight/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"s" = (
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"u" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"v" = (
+/turf/open/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"x" = (
+/obj/structure/marker_beacon/purple,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"z" = (
+/obj/structure/marker_beacon/jade,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"B" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"D" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"L" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"N" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"T" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"U" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"W" = (
+/obj/structure/marker_beacon/fuchsia,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+q
+"}
+(2,1,1) = {"
+v
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+v
+"}
+(3,1,1) = {"
+v
+k
+a
+a
+k
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+a
+a
+a
+a
+a
+a
+k
+k
+k
+v
+"}
+(4,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(5,1,1) = {"
+v
+k
+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
+s
+k
+v
+"}
+(6,1,1) = {"
+v
+k
+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
+m
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+s
+s
+k
+v
+"}
+(7,1,1) = {"
+v
+k
+a
+a
+a
+a
+o
+a
+a
+a
+a
+a
+a
+a
+a
+a
+c
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+a
+a
+a
+a
+s
+k
+v
+"}
+(8,1,1) = {"
+v
+k
+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
+k
+k
+a
+a
+a
+k
+k
+v
+"}
+(9,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+s
+s
+s
+s
+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
+k
+k
+v
+"}
+(10,1,1) = {"
+v
+k
+k
+a
+a
+a
+a
+a
+k
+k
+k
+s
+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
+k
+k
+v
+"}
+(11,1,1) = {"
+v
+k
+k
+a
+a
+a
+a
+a
+k
+k
+k
+s
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+s
+s
+a
+a
+a
+a
+a
+k
+v
+"}
+(12,1,1) = {"
+v
+k
+k
+a
+a
+a
+a
+a
+s
+k
+s
+s
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+a
+a
+a
+a
+a
+a
+a
+s
+a
+a
+a
+a
+a
+k
+v
+"}
+(13,1,1) = {"
+v
+k
+k
+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
+k
+k
+k
+a
+a
+a
+a
+a
+u
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(14,1,1) = {"
+v
+k
+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
+k
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(15,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(16,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+e
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(17,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+j
+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
+k
+v
+"}
+(18,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(19,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(20,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+x
+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
+k
+v
+"}
+(21,1,1) = {"
+v
+k
+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
+r
+U
+U
+U
+U
+U
+N
+a
+k
+v
+"}
+(22,1,1) = {"
+v
+k
+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
+U
+U
+U
+U
+U
+U
+a
+k
+v
+"}
+(23,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+p
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+U
+U
+U
+U
+U
+U
+a
+k
+v
+"}
+(24,1,1) = {"
+v
+k
+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
+l
+a
+a
+U
+U
+U
+U
+U
+U
+a
+k
+v
+"}
+(25,1,1) = {"
+v
+k
+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
+U
+U
+U
+U
+U
+U
+a
+k
+v
+"}
+(26,1,1) = {"
+v
+k
+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
+U
+U
+U
+U
+U
+U
+a
+k
+v
+"}
+(27,1,1) = {"
+v
+k
+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
+o
+a
+r
+U
+U
+U
+U
+U
+D
+a
+k
+v
+"}
+(28,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+T
+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
+k
+v
+"}
+(29,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(30,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+k
+k
+k
+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
+k
+v
+"}
+(31,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+k
+k
+k
+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
+k
+v
+"}
+(32,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+a
+a
+k
+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
+k
+v
+"}
+(33,1,1) = {"
+v
+k
+a
+a
+a
+a
+a
+k
+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
+z
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(34,1,1) = {"
+v
+k
+k
+a
+a
+a
+a
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(35,1,1) = {"
+v
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+l
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(36,1,1) = {"
+v
+k
+k
+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
+k
+k
+k
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(37,1,1) = {"
+v
+k
+k
+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
+k
+k
+v
+"}
+(38,1,1) = {"
+v
+k
+a
+a
+a
+s
+s
+a
+a
+a
+a
+a
+B
+a
+a
+a
+a
+k
+a
+a
+a
+a
+a
+a
+s
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+v
+"}
+(39,1,1) = {"
+v
+k
+a
+a
+a
+s
+s
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+k
+k
+a
+a
+a
+a
+a
+s
+s
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(40,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(41,1,1) = {"
+v
+k
+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
+L
+a
+a
+a
+a
+a
+a
+a
+k
+v
+"}
+(42,1,1) = {"
+v
+k
+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
+a
+k
+v
+"}
+(43,1,1) = {"
+v
+k
+a
+k
+k
+k
+k
+a
+a
+a
+a
+a
+k
+k
+k
+k
+a
+a
+a
+k
+k
+k
+k
+k
+a
+a
+a
+a
+a
+a
+k
+k
+k
+k
+a
+a
+a
+a
+a
+a
+k
+k
+a
+a
+k
+v
+"}
+(44,1,1) = {"
+v
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+v
+"}
+(45,1,1) = {"
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+v
+"}
diff --git a/_maps/virtual_domains/gondola_asteroid.dmm b/_maps/virtual_domains/gondola_asteroid.dmm
new file mode 100644
index 000000000000..0fcd583ef25d
--- /dev/null
+++ b/_maps/virtual_domains/gondola_asteroid.dmm
@@ -0,0 +1,1784 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"c" = (
+/turf/open/space/basic,
+/area/space)
+"e" = (
+/turf/open/misc/asteroid/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"g" = (
+/obj/structure/marker_beacon{
+ light_color = "#FFE8AA";
+ light_outer_range = 20
+ },
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"h" = (
+/turf/closed/mineral/random,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"m" = (
+/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"n" = (
+/obj/structure/flora/bush/fullgrass/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"o" = (
+/turf/template_noop,
+/area/template_noop)
+"q" = (
+/obj/structure/flora/tree/palm,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"r" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"s" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"t" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"w" = (
+/obj/structure/water_source/puddle,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"y" = (
+/obj/structure/flora/bush/stalky/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"z" = (
+/mob/living/simple_animal/pet/gondola/virtual_domain,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"A" = (
+/obj/structure/chair/wood{
+ dir = 8
+ },
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"C" = (
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"D" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"F" = (
+/obj/structure/flora/bush/grassy/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"I" = (
+/obj/structure/flora/bush/reed/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"J" = (
+/obj/structure/flora/bush/flowers_yw/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"K" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"M" = (
+/obj/structure/table/wood,
+/obj/item/storage/bag/tray,
+/obj/item/kitchen/fork,
+/obj/item/knife/kitchen,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"N" = (
+/obj/structure/flora/bush/large/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"O" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Q" = (
+/obj/structure/flora/bush/lavendergrass/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"T" = (
+/obj/structure/flora/bush/sunny/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"V" = (
+/obj/structure/flora/coconuts,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"W" = (
+/obj/structure/flora/bush/ferny/style_random,
+/turf/open/floor/grass,
+/area/ruin/space/has_grav/powered/virtual_domain)
+
+(1,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+a
+a
+a
+a
+a
+a
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+"}
+(2,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+a
+h
+h
+h
+h
+h
+h
+a
+a
+o
+o
+o
+o
+o
+o
+o
+o
+o
+"}
+(3,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+a
+a
+K
+o
+o
+o
+o
+o
+o
+o
+"}
+(4,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+a
+a
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+e
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(5,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+h
+h
+h
+h
+h
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(6,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+o
+a
+a
+a
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(7,1,1) = {"
+o
+o
+o
+o
+o
+o
+o
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+J
+C
+C
+C
+z
+C
+h
+h
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(8,1,1) = {"
+o
+o
+o
+o
+o
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+Q
+C
+q
+C
+h
+h
+h
+h
+h
+e
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+o
+o
+o
+o
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+h
+C
+C
+C
+C
+C
+C
+C
+C
+V
+C
+C
+C
+C
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(10,1,1) = {"
+o
+o
+a
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+C
+q
+C
+C
+W
+C
+C
+V
+C
+C
+q
+C
+C
+C
+C
+F
+C
+C
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(11,1,1) = {"
+o
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+N
+C
+C
+C
+C
+C
+C
+s
+C
+C
+C
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(12,1,1) = {"
+o
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+s
+I
+J
+C
+C
+g
+C
+C
+V
+C
+z
+C
+y
+C
+g
+C
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(13,1,1) = {"
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+Q
+Q
+C
+z
+C
+C
+C
+C
+C
+C
+C
+s
+Q
+C
+C
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(14,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+w
+C
+s
+C
+W
+C
+C
+C
+C
+C
+C
+N
+C
+C
+C
+C
+h
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(15,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+z
+C
+C
+C
+C
+y
+C
+C
+C
+F
+s
+C
+C
+C
+C
+C
+w
+C
+h
+h
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(16,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+s
+Q
+C
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+h
+e
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(17,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+Q
+D
+C
+C
+C
+C
+q
+C
+C
+C
+C
+h
+h
+h
+h
+t
+t
+t
+t
+t
+O
+c
+a
+"}
+(18,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+n
+I
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+t
+t
+M
+M
+t
+t
+c
+a
+"}
+(19,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+C
+n
+C
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+s
+T
+C
+C
+C
+s
+C
+C
+h
+C
+C
+t
+t
+A
+A
+t
+t
+c
+a
+"}
+(20,1,1) = {"
+a
+h
+h
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+h
+h
+h
+C
+C
+q
+V
+C
+C
+C
+J
+C
+C
+C
+C
+C
+C
+C
+C
+C
+t
+t
+t
+t
+t
+t
+c
+a
+"}
+(21,1,1) = {"
+a
+e
+h
+h
+h
+h
+h
+h
+h
+z
+C
+C
+g
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+t
+t
+t
+t
+t
+t
+c
+a
+"}
+(22,1,1) = {"
+a
+e
+e
+h
+h
+h
+h
+h
+h
+C
+C
+C
+q
+C
+s
+s
+C
+C
+W
+C
+m
+C
+C
+C
+g
+C
+z
+C
+C
+C
+C
+C
+h
+h
+h
+t
+t
+t
+t
+t
+t
+c
+a
+"}
+(23,1,1) = {"
+a
+e
+e
+h
+h
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+y
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+q
+C
+C
+h
+h
+h
+t
+t
+t
+t
+t
+r
+c
+a
+"}
+(24,1,1) = {"
+a
+e
+e
+h
+h
+h
+h
+h
+h
+C
+C
+V
+C
+C
+C
+C
+C
+C
+C
+w
+C
+z
+N
+C
+C
+C
+N
+C
+C
+C
+C
+C
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(25,1,1) = {"
+a
+a
+e
+e
+h
+h
+h
+h
+n
+C
+C
+C
+C
+C
+z
+C
+C
+C
+C
+C
+C
+C
+C
+C
+F
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(26,1,1) = {"
+o
+a
+e
+e
+h
+h
+h
+C
+C
+C
+C
+C
+C
+C
+C
+C
+s
+y
+C
+C
+C
+C
+C
+C
+I
+F
+C
+C
+C
+C
+C
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(27,1,1) = {"
+o
+a
+e
+e
+h
+h
+h
+C
+C
+C
+w
+C
+C
+C
+C
+F
+D
+s
+C
+J
+C
+C
+C
+C
+C
+C
+q
+C
+C
+V
+C
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(28,1,1) = {"
+o
+a
+e
+e
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+g
+F
+s
+C
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(29,1,1) = {"
+o
+a
+a
+e
+e
+h
+h
+h
+C
+C
+C
+C
+C
+n
+C
+C
+C
+C
+C
+C
+s
+y
+D
+C
+C
+C
+C
+w
+C
+h
+h
+h
+h
+c
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(30,1,1) = {"
+o
+o
+a
+e
+e
+h
+h
+C
+C
+C
+n
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+s
+C
+C
+C
+h
+h
+h
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(31,1,1) = {"
+o
+o
+a
+e
+h
+h
+C
+g
+J
+C
+s
+C
+C
+C
+h
+C
+C
+C
+C
+C
+V
+C
+C
+C
+C
+C
+C
+C
+h
+h
+h
+e
+e
+e
+c
+c
+c
+c
+c
+c
+c
+c
+a
+"}
+(32,1,1) = {"
+o
+o
+a
+h
+h
+h
+h
+C
+C
+C
+C
+C
+C
+h
+h
+h
+C
+C
+C
+q
+C
+C
+C
+C
+C
+C
+h
+h
+h
+h
+e
+e
+e
+h
+h
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(33,1,1) = {"
+o
+o
+a
+h
+h
+h
+C
+C
+C
+C
+C
+C
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+e
+e
+h
+h
+h
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(34,1,1) = {"
+o
+o
+a
+h
+h
+C
+C
+C
+C
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+a
+a
+h
+h
+h
+a
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(35,1,1) = {"
+o
+o
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+h
+e
+e
+e
+e
+e
+h
+h
+h
+h
+h
+a
+a
+a
+a
+a
+a
+a
+h
+h
+h
+a
+a
+o
+o
+o
+o
+o
+o
+o
+"}
+(36,1,1) = {"
+o
+o
+a
+a
+h
+h
+h
+h
+h
+h
+h
+h
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+o
+o
+o
+o
+o
+a
+a
+a
+a
+a
+o
+o
+o
+o
+o
+o
+o
+o
+"}
+(37,1,1) = {"
+o
+o
+o
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+"}
diff --git a/_maps/virtual_domains/hierophant.dmm b/_maps/virtual_domains/hierophant.dmm
new file mode 100644
index 000000000000..02b11ad4e1ef
--- /dev/null
+++ b/_maps/virtual_domains/hierophant.dmm
@@ -0,0 +1,1066 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/indestructible/hierophant,
+/area/lavaland/surface/outdoors/virtual_domain)
+"c" = (
+/obj/effect/light_emitter{
+ set_cap = 3;
+ set_luminosity = 5
+ },
+/turf/open/indestructible/hierophant/two,
+/area/lavaland/surface/outdoors/virtual_domain)
+"h" = (
+/obj/effect/light_emitter{
+ set_cap = 3;
+ set_luminosity = 5
+ },
+/turf/open/indestructible/hierophant,
+/area/lavaland/surface/outdoors/virtual_domain)
+"n" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/indestructible/hierophant,
+/area/lavaland/surface/outdoors/virtual_domain)
+"o" = (
+/turf/template_noop,
+/area/template_noop)
+"r" = (
+/turf/closed/indestructible/riveted/hierophant,
+/area/lavaland/surface/outdoors/virtual_domain)
+"u" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"w" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"y" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"E" = (
+/mob/living/simple_animal/hostile/megafauna/hierophant/virtual_domain,
+/turf/open/indestructible/hierophant/two,
+/area/lavaland/surface/outdoors/virtual_domain)
+"H" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"K" = (
+/turf/open/indestructible/hierophant/two,
+/area/lavaland/surface/outdoors/virtual_domain)
+"N" = (
+/obj/machinery/light/small/blacklight/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/indestructible/hierophant,
+/area/virtual_domain/powered)
+"S" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/indestructible/hierophant,
+/area/lavaland/surface/outdoors/virtual_domain)
+"W" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Y" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+o
+o
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+W
+"}
+(2,1,1) = {"
+y
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+y
+o
+o
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(3,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+r
+y
+o
+o
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(4,1,1) = {"
+y
+r
+a
+a
+a
+h
+h
+a
+a
+a
+r
+a
+a
+a
+r
+a
+a
+a
+h
+h
+a
+a
+a
+r
+y
+y
+y
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(5,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+r
+r
+y
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(6,1,1) = {"
+y
+r
+a
+h
+a
+r
+r
+a
+h
+n
+a
+a
+h
+a
+a
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+a
+r
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(7,1,1) = {"
+y
+r
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+h
+a
+a
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(8,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+n
+a
+a
+r
+a
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(9,1,1) = {"
+y
+r
+a
+a
+a
+h
+h
+K
+K
+K
+r
+K
+K
+K
+r
+K
+K
+K
+h
+h
+a
+a
+a
+r
+y
+r
+S
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(10,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+c
+K
+K
+K
+K
+K
+a
+a
+a
+a
+a
+r
+y
+y
+r
+a
+a
+N
+w
+w
+w
+w
+w
+H
+Y
+y
+"}
+(11,1,1) = {"
+y
+r
+a
+r
+a
+a
+a
+K
+r
+K
+K
+K
+K
+K
+K
+K
+r
+K
+a
+a
+a
+r
+a
+r
+y
+y
+y
+r
+a
+a
+w
+w
+w
+w
+w
+w
+Y
+y
+"}
+(12,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+a
+a
+r
+y
+y
+y
+r
+a
+a
+w
+w
+w
+w
+w
+w
+Y
+y
+"}
+(13,1,1) = {"
+y
+r
+h
+a
+a
+h
+h
+K
+K
+c
+K
+K
+E
+K
+K
+c
+K
+K
+h
+h
+a
+a
+h
+r
+y
+y
+y
+r
+a
+a
+w
+w
+w
+w
+w
+w
+Y
+y
+"}
+(14,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+a
+a
+r
+y
+y
+y
+r
+a
+a
+w
+w
+w
+w
+w
+w
+Y
+y
+"}
+(15,1,1) = {"
+y
+r
+a
+r
+a
+a
+a
+K
+r
+K
+K
+K
+K
+K
+K
+K
+r
+K
+a
+a
+a
+r
+a
+r
+y
+y
+y
+r
+a
+a
+w
+w
+w
+w
+w
+w
+Y
+y
+"}
+(16,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+c
+K
+K
+K
+K
+K
+a
+a
+a
+a
+a
+r
+y
+y
+r
+a
+a
+N
+w
+w
+w
+w
+w
+u
+Y
+y
+"}
+(17,1,1) = {"
+y
+r
+a
+a
+a
+h
+h
+K
+K
+K
+r
+K
+K
+K
+r
+K
+K
+K
+h
+h
+a
+a
+a
+r
+y
+r
+a
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(18,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+K
+a
+a
+a
+a
+a
+a
+r
+a
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(19,1,1) = {"
+y
+r
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+h
+a
+a
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+a
+a
+r
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(20,1,1) = {"
+y
+r
+a
+h
+a
+r
+r
+S
+h
+a
+a
+a
+h
+a
+n
+a
+h
+a
+r
+r
+a
+h
+a
+a
+a
+a
+r
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(21,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+r
+r
+y
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(22,1,1) = {"
+y
+r
+a
+a
+a
+h
+h
+a
+a
+a
+r
+a
+a
+a
+r
+a
+a
+a
+h
+h
+a
+a
+a
+r
+y
+y
+y
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(23,1,1) = {"
+y
+r
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+h
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+r
+y
+o
+o
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(24,1,1) = {"
+y
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+r
+y
+o
+o
+y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+y
+"}
+(25,1,1) = {"
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+o
+o
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+y
+"}
diff --git a/_maps/virtual_domains/legion.dmm b/_maps/virtual_domains/legion.dmm
new file mode 100644
index 000000000000..55843177ad0f
--- /dev/null
+++ b/_maps/virtual_domains/legion.dmm
@@ -0,0 +1,6370 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ah" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ak" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"aI" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"aR" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"bd" = (
+/obj/structure/stone_tile/block,
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"be" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"bt" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"bu" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ca" = (
+/obj/effect/mob_spawn/corpse/human/legioninfested,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"cf" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"cp" = (
+/turf/template_noop,
+/area/template_noop)
+"dm" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"dn" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/effect/mob_spawn/corpse/human/legioninfested,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"dr" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/obj/structure/stone_tile/block/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"dx" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"dL" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"dQ" = (
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"et" = (
+/obj/structure/stone_tile/block/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ew" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"eJ" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"fA" = (
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"fG" = (
+/obj/structure/marker_beacon/violet,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"gh" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"gk" = (
+/obj/structure/necropolis_gate/locked,
+/obj/structure/stone_tile/slab,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"gK" = (
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"gQ" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"hc" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"hw" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"hx" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"hU" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ib" = (
+/turf/closed/mineral/volcanic/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ie" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"iP" = (
+/obj/structure/fluff/drake_statue/falling,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"iR" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"iV" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"jk" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"jt" = (
+/obj/structure/stone_tile/slab/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"jw" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"jN" = (
+/obj/machinery/sleeper/survival_pod,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ka" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"kg" = (
+/turf/closed/indestructible/riveted/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"kT" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"kZ" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ll" = (
+/obj/structure/stone_tile/cracked,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lz" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lC" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lO" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"lT" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"mz" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"mG" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"nm" = (
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"nu" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"nv" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ny" = (
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"nI" = (
+/obj/structure/stone_tile/block,
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"nO" = (
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/center,
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ob" = (
+/obj/structure/necropolis_gate/legion_gate,
+/obj/structure/necropolis_arch,
+/obj/structure/stone_tile/slab,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"og" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"oo" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ox" = (
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"oS" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"pP" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"qo" = (
+/obj/structure/stone_tile/slab/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"qs" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"qW" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/obj/machinery/door/airlock/survival_pod/glass,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"rt" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"rU" = (
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"sd" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"sk" = (
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"sz" = (
+/obj/structure/stone_tile/center,
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"sA" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"tk" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"tF" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"uK" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"vf" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"wq" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"wy" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"xd" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"xm" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"xw" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"xD" = (
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"yu" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile/block,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"yZ" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"zg" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"zo" = (
+/obj/effect/turf_decal/mining/survival,
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"zW" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/center/cracked,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ah" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Aj" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ak" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/center/cracked,
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"As" = (
+/obj/structure/marker_beacon/cerulean,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"AY" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Bo" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"BO" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"CX" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Dm" = (
+/turf/closed/mineral/random/volcanic,
+/area/lavaland/surface/outdoors/virtual_domain)
+"DP" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile/center,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ek" = (
+/obj/structure/stone_tile/block,
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ep" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ez" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"EC" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Fg" = (
+/obj/structure/stone_tile/surrounding/cracked{
+ dir = 6
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Fp" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Fq" = (
+/obj/structure/marker_beacon/fuchsia,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"FV" = (
+/obj/structure/stone_tile/block,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Gj" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Gn" = (
+/turf/closed/indestructible/riveted/boss/see_through,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Go" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"GH" = (
+/obj/structure/fans,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"GM" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Hi" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Hu" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Hw" = (
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/center/cracked,
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"HK" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"HQ" = (
+/obj/structure/stone_tile/block/cracked,
+/obj/structure/stone_tile/block{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"HZ" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ii" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Io" = (
+/obj/structure/marker_beacon/jade,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ip" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"IB" = (
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"IG" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"IL" = (
+/obj/structure/stone_tile/surrounding,
+/obj/structure/stone_tile/center/cracked,
+/mob/living/simple_animal/hostile/megafauna/legion/virtual_domain,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"IQ" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Jc" = (
+/obj/structure/stone_tile/slab,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Jp" = (
+/obj/structure/stone_tile/block/cracked,
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Jt" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Jw" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"JD" = (
+/obj/structure/fluff/drake_statue,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"KG" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Le" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Lx" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"LH" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ml" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Mm" = (
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/center/cracked,
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Mo" = (
+/obj/structure/stone_tile/block/cracked,
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"MH" = (
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"MP" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"MW" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Nl" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/center,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ot" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/center,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Pv" = (
+/obj/effect/turf_decal/mining/survival{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Px" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"PO" = (
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Qi" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/cracked,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Qx" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/marker_beacon/burgundy,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"QD" = (
+/obj/item/pickaxe,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"RC" = (
+/obj/effect/turf_decal/mining/survival{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"RV" = (
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"So" = (
+/obj/structure/stone_tile/cracked,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Sw" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"SI" = (
+/obj/effect/turf_decal/mining,
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"SJ" = (
+/obj/structure/stone_tile/slab/cracked,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"SX" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ti" = (
+/turf/closed/mineral/random/high_chance/volcanic,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Tm" = (
+/obj/structure/bed/pod,
+/obj/item/bedsheet/black,
+/obj/structure/tubes,
+/obj/machinery/light/small/broken/directional/east,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"TC" = (
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"TJ" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Ud" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/virtual_domain/powered)
+"UD" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/center/cracked,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"UM" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Vc" = (
+/obj/structure/tubes,
+/obj/item/crowbar,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"VI" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile,
+/obj/structure/stone_tile/center,
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Wa" = (
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile/surrounding_tile/cracked{
+ dir = 1
+ },
+/obj/structure/stone_tile/surrounding_tile{
+ dir = 8
+ },
+/obj/structure/stone_tile/center/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Wm" = (
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"WM" = (
+/obj/structure/stone_tile/block,
+/obj/structure/stone_tile/cracked{
+ dir = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"WR" = (
+/obj/structure/stone_tile/block,
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"WS" = (
+/obj/item/gps/computer,
+/obj/structure/tubes,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Xb" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Xn" = (
+/obj/structure/stone_tile,
+/obj/structure/stone_tile/cracked{
+ dir = 8
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Xo" = (
+/obj/structure/stone_tile/block,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Xv" = (
+/obj/structure/stone_tile{
+ dir = 1
+ },
+/obj/structure/stone_tile/cracked,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"XO" = (
+/obj/effect/turf_decal/mining/survival{
+ dir = 8
+ },
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Yu" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"YN" = (
+/obj/structure/stone_tile/block/cracked,
+/obj/structure/stone_tile/block/cracked{
+ dir = 1
+ },
+/turf/open/lava/smooth/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"YV" = (
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Zc" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile/block{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Zh" = (
+/obj/structure/marker_beacon/purple,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Zj" = (
+/obj/structure/stone_tile/block/cracked{
+ dir = 8
+ },
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Zq" = (
+/obj/structure/stone_tile/block{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 4
+ },
+/obj/structure/stone_tile{
+ dir = 8
+ },
+/turf/open/indestructible/boss,
+/area/lavaland/surface/outdoors/virtual_domain)
+"Zu" = (
+/obj/machinery/smartfridge/survival_pod{
+ desc = "A heated storage unit. This one's seen better days.";
+ name = "dusty survival pod storage"
+ },
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ZM" = (
+/obj/structure/stone_tile/cracked{
+ dir = 4
+ },
+/obj/structure/stone_tile,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors/virtual_domain)
+"ZN" = (
+/obj/structure/table/survival_pod,
+/obj/item/knife/combat/survival,
+/turf/open/floor/pod/dark,
+/area/lavaland/surface/outdoors/virtual_domain)
+
+(1,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+Ah
+"}
+(2,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ox
+"}
+(3,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+ib
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(4,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(5,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(6,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+wq
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(7,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(8,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+rt
+nu
+nu
+ib
+ib
+ox
+"}
+(9,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(10,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(11,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(12,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(13,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+fG
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(14,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(15,1,1) = {"
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(16,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(17,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+Ti
+Ti
+Ti
+GM
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Io
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Xb
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(18,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+et
+Ti
+GM
+GM
+GM
+nu
+nu
+nu
+nu
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(19,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+GM
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+wq
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(20,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(21,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+nu
+nu
+nu
+nu
+GM
+Ti
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Zh
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(22,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+FV
+nu
+nu
+nu
+nu
+Ti
+Dm
+Dm
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(23,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+GM
+GM
+GM
+Ti
+Ti
+Dm
+Dm
+Ti
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(24,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+FV
+Ml
+Ti
+Dm
+Dm
+Ti
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(25,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+GM
+Ti
+Dm
+Dm
+IB
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(26,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+GM
+GM
+GM
+GM
+GM
+fA
+fA
+fA
+fA
+RV
+fA
+fA
+fA
+fA
+fA
+fA
+Xn
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+As
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(27,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ek
+Le
+be
+be
+kT
+GM
+GM
+GM
+GM
+fA
+fA
+xm
+fA
+fA
+fA
+GM
+ZM
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(28,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+dr
+KG
+mz
+KG
+KG
+jt
+GM
+GM
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+HZ
+nu
+bu
+nu
+nu
+nu
+MH
+nu
+nu
+lz
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(29,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+bd
+mG
+Hw
+hU
+Mm
+lO
+et
+GM
+tk
+fA
+fA
+fA
+fA
+ak
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+YV
+nu
+nu
+So
+nu
+nu
+nu
+nu
+nu
+nu
+bu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(30,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ez
+WR
+JD
+rU
+KG
+dm
+GM
+GM
+fA
+Hi
+fA
+fA
+fA
+ll
+fA
+fA
+Wm
+fA
+fA
+YV
+qs
+MH
+nu
+nu
+nu
+ny
+ca
+oS
+nu
+nu
+Qx
+nu
+nu
+hx
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(31,1,1) = {"
+ox
+kg
+kg
+kg
+Hu
+Zq
+wy
+Zq
+lT
+kg
+kg
+Gn
+Gn
+KG
+Ak
+nv
+Ot
+mG
+hw
+kg
+kg
+Wm
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+ak
+nu
+nu
+qs
+nu
+nu
+TC
+nu
+YV
+nu
+ny
+nu
+oS
+nu
+nu
+nu
+SX
+nu
+nu
+nu
+zg
+BO
+BO
+BO
+BO
+BO
+og
+Ud
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(32,1,1) = {"
+ox
+kg
+kg
+Gn
+VI
+xw
+gQ
+ka
+iR
+kg
+kg
+Gn
+Gn
+sz
+KG
+KG
+KG
+KG
+mz
+kg
+kZ
+kZ
+sd
+kZ
+lC
+kZ
+TJ
+UM
+kZ
+IQ
+UM
+UM
+AY
+nu
+nI
+nu
+nu
+nu
+nu
+oS
+nu
+nu
+nu
+nu
+nu
+qs
+nu
+nu
+nu
+nu
+nu
+nu
+BO
+BO
+BO
+BO
+BO
+BO
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(33,1,1) = {"
+ox
+PO
+PO
+gk
+PO
+Zc
+IL
+Yu
+SJ
+Yu
+Yu
+Yu
+ob
+dL
+uK
+MP
+uK
+uK
+dL
+Jc
+Mo
+eJ
+Mo
+hc
+yu
+eJ
+Fg
+eJ
+YN
+tF
+Mo
+Zj
+HQ
+qo
+Jp
+nu
+aR
+nu
+TC
+nu
+YV
+nu
+nu
+oS
+nu
+nu
+ny
+Sw
+nu
+nu
+nu
+nu
+BO
+BO
+BO
+BO
+BO
+BO
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Io
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(34,1,1) = {"
+ox
+kg
+kg
+Gn
+Nl
+gh
+jw
+lT
+oo
+kg
+kg
+Gn
+Gn
+Wa
+KG
+xd
+Ez
+mz
+HK
+kg
+ie
+Jw
+Jw
+jk
+Jw
+jk
+dn
+Jw
+Jw
+LH
+Ii
+Qi
+aI
+nu
+Xo
+nu
+nu
+YV
+Sw
+nu
+nu
+nu
+sA
+nu
+Gj
+nu
+nu
+HZ
+nu
+YV
+nu
+nu
+BO
+BO
+BO
+BO
+BO
+BO
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(35,1,1) = {"
+ox
+kg
+kg
+kg
+Hu
+Ep
+iV
+Go
+Ip
+kg
+kg
+Gn
+Gn
+lO
+nO
+hU
+UD
+KG
+dm
+kg
+kg
+ll
+fA
+fA
+fA
+ak
+fA
+fA
+fA
+fA
+ll
+fA
+nu
+nu
+ny
+nu
+nu
+Aj
+HZ
+nu
+ew
+nu
+nu
+bu
+nu
+nu
+nu
+nu
+nu
+Aj
+nu
+nu
+BO
+BO
+BO
+BO
+BO
+BO
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(36,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+KG
+WR
+iP
+rU
+Ez
+cf
+GM
+GM
+fA
+fA
+yZ
+vf
+ll
+fA
+fA
+fA
+ak
+fA
+fA
+oS
+ny
+qs
+YV
+qs
+nu
+nu
+nu
+nu
+nu
+nu
+Sw
+nu
+qs
+oS
+nu
+nu
+Sw
+nu
+nu
+BO
+BO
+BO
+BO
+BO
+BO
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+ib
+ox
+"}
+(37,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+bd
+xd
+zW
+nv
+DP
+KG
+FV
+GM
+GM
+fA
+fA
+fA
+GM
+Px
+fA
+IG
+GM
+Hi
+fA
+fA
+nu
+nu
+nu
+nu
+TC
+nu
+ah
+nu
+nu
+nm
+nu
+nu
+nu
+nu
+nu
+nu
+sk
+nu
+nu
+zg
+BO
+BO
+BO
+BO
+BO
+Fp
+Ud
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+nu
+nu
+ib
+ox
+"}
+(38,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+bd
+KG
+KG
+KG
+lO
+Jc
+GM
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+GM
+Jt
+fA
+fA
+fA
+nu
+TC
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(39,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ek
+KG
+lO
+MW
+pP
+GM
+GM
+GM
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+xD
+fA
+fA
+fA
+oS
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(40,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+IB
+nu
+nu
+nu
+nu
+GM
+RV
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(41,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+nu
+nu
+Sw
+Xv
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+GM
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(42,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+nu
+nu
+nu
+ny
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+EC
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Bo
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(43,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+WM
+GM
+Px
+ny
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(44,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+GM
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(45,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+GM
+GM
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(46,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+GM
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+ak
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+wq
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+ib
+ox
+"}
+(47,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+xD
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+ib
+ox
+"}
+(48,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+ib
+ox
+"}
+(49,1,1) = {"
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+Ti
+GM
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+GM
+fA
+fA
+fA
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Fq
+nu
+ib
+ib
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+ib
+ox
+"}
+(50,1,1) = {"
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+kg
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+rt
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(51,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+dQ
+dQ
+XO
+dQ
+dQ
+GM
+nu
+nu
+nu
+ib
+ox
+"}
+(52,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Fq
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+dQ
+GH
+jN
+ZN
+zo
+GM
+nu
+nu
+nu
+ib
+ox
+"}
+(53,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+RC
+Zu
+QD
+bt
+qW
+CX
+nu
+nu
+nu
+ib
+ox
+"}
+(54,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+dQ
+WS
+Tm
+Vc
+SI
+Lx
+nu
+nu
+nu
+ib
+ox
+"}
+(55,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+dQ
+dQ
+Pv
+dQ
+dQ
+Lx
+nu
+nu
+nu
+ib
+ox
+"}
+(56,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+GM
+GM
+GM
+GM
+dx
+gK
+nu
+nu
+nu
+ib
+ox
+"}
+(57,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+Io
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(58,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(59,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(60,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+fA
+fA
+fA
+fA
+nu
+nu
+nu
+nu
+nu
+nu
+Xb
+nu
+nu
+nu
+ib
+ox
+"}
+(61,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+nu
+nu
+ib
+ox
+"}
+(62,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ox
+"}
+(63,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+nu
+nu
+nu
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+nu
+nu
+ib
+ib
+ib
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+nu
+ib
+ib
+nu
+nu
+nu
+nu
+ib
+ib
+ox
+"}
+(64,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ib
+ox
+"}
+(65,1,1) = {"
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+cp
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+ox
+"}
diff --git a/_maps/virtual_domains/pipedream.dmm b/_maps/virtual_domains/pipedream.dmm
new file mode 100644
index 000000000000..44bd845477a1
--- /dev/null
+++ b/_maps/virtual_domains/pipedream.dmm
@@ -0,0 +1,3713 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"af" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"aw" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"ax" = (
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/structure/frame/computer{
+ anchored = 1;
+ dir = 4
+ },
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"aK" = (
+/turf/open/space/basic,
+/area/space)
+"aL" = (
+/obj/effect/turf_decal/tile/yellow/half/contrasted,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"bq" = (
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"bs" = (
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"bw" = (
+/obj/structure/disposalpipe/broken{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/preopen,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"bx" = (
+/obj/structure/frame/computer,
+/obj/item/shard,
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-12"
+ },
+/area/virtual_domain/powered)
+"bA" = (
+/obj/structure/chair/plastic,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"bG" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/obj/structure/closet/crate/preopen,
+/obj/structure/railing,
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"bS" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/folder/yellow,
+/obj/item/folder/blue{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"cw" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"cB" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"cF" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"dx" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/item/shard,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"dz" = (
+/obj/machinery/light/broken,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/yellow/corner,
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"dA" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"dP" = (
+/obj/effect/turf_decal/tile/yellow/half/contrasted,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"eg" = (
+/turf/closed/wall,
+/area/virtual_domain/powered)
+"ei" = (
+/obj/machinery/conveyor/auto{
+ dir = 6;
+ icon_state = "conveyor_map_inverted";
+ inverted = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"ev" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"eJ" = (
+/obj/structure/disposalpipe/sorting{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"eN" = (
+/obj/effect/turf_decal/trimline/yellow/arrow_cw{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"eY" = (
+/turf/closed/wall/r_wall,
+/area/virtual_domain/powered)
+"fe" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"fg" = (
+/turf/open/floor/iron/stairs/left{
+ dir = 8
+ },
+/area/virtual_domain/powered)
+"fj" = (
+/obj/structure/closet/crate/preopen,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"fl" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"fw" = (
+/obj/structure/door_assembly/door_assembly_eng,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"fK" = (
+/obj/structure/chair/stool/bar/directional/west,
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"fR" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 5
+ },
+/obj/structure/sign/poster/official/random/directional/west,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"fZ" = (
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/structure/chair/office{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"gc" = (
+/obj/structure/disposalpipe/broken,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"gj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"gs" = (
+/obj/machinery/door/airlock/external/glass/ruin,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"gN" = (
+/obj/structure/disposalpipe/sorting{
+ dir = 8
+ },
+/turf/open/floor/catwalk_floor/iron,
+/area/virtual_domain/powered)
+"gV" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"hg" = (
+/obj/effect/turf_decal/caution{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"hi" = (
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"hk" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"ho" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"iw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"iz" = (
+/obj/structure/broken_flooring/corner,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"iI" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/corner,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"jv" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/machinery/light/small/red/dim{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"jw" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"jH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/catwalk_floor/iron,
+/area/virtual_domain/powered)
+"jQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"jS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"jW" = (
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"kh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"ki" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"kn" = (
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"kJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 4;
+ id = "factorylockdown"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"kU" = (
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"lp" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"lt" = (
+/obj/structure/disposalpipe/sorting{
+ dir = 8
+ },
+/mob/living/basic/hivebot/range,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"lx" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 4;
+ id = "factorylockdown"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"lB" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"lC" = (
+/obj/machinery/door/airlock/glass,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"lI" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"lN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"lW" = (
+/obj/structure/disposalpipe/sorting{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"mh" = (
+/obj/structure/broken_flooring/pile{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"mu" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"mE" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"mY" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"nc" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/safety_internals/directional/south,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"nz" = (
+/obj/structure/broken_flooring/side/directional/north,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"nD" = (
+/obj/structure/disposalpipe/trunk/multiz,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"nL" = (
+/obj/effect/turf_decal/tile/dark/half,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"nS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"op" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/obj/structure/sign/warning/doors/directional/north,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"oN" = (
+/obj/machinery/conveyor/auto,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"oX" = (
+/obj/structure/broken_flooring/corner/directional/north,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"pa" = (
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"pb" = (
+/obj/structure/broken_flooring/corner{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"pf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/mapping_helpers/damaged_window,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"pi" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"po" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/maint,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"pv" = (
+/obj/structure/broken_flooring/side{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"pI" = (
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/machinery/light/small/red/dim{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"pJ" = (
+/obj/structure/broken_flooring/pile{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"qc" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/bureaucracy/briefcase,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"qk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"qK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/warning/secure_area/directional/north,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"qN" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/mob_spawn/corpse/human/factory,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"qT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"qV" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"qW" = (
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"rc" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/sign/poster/contraband/random/directional/north,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"rz" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/machinery/light/small/red/dim,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"rG" = (
+/obj/machinery/light/dim,
+/obj/effect/turf_decal/trimline/yellow/line,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"rJ" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"rM" = (
+/obj/structure/disposalpipe/broken{
+ dir = 1
+ },
+/mob/living/basic/hivebot/strong,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"rO" = (
+/turf/closed/mineral,
+/area/space)
+"sn" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-38"
+ },
+/area/virtual_domain/powered)
+"sB" = (
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"sW" = (
+/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"tl" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "factorylockdown"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"tr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"tE" = (
+/obj/structure/disposalpipe/segment,
+/mob/living/basic/hivebot/range,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"ud" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-110"
+ },
+/area/virtual_domain/powered)
+"uk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/decal/cleanable/blood/splatter/over_window,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"um" = (
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"uv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/broken_flooring/pile{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"uz" = (
+/obj/effect/spawner/random/trash/mess,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"uC" = (
+/obj/structure/falsewall,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"uF" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"uP" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-55"
+ },
+/area/virtual_domain/powered)
+"uU" = (
+/obj/structure/broken_flooring/side,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"vb" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 5
+ },
+/obj/machinery/light/broken,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"ve" = (
+/obj/machinery/mass_driver/trash{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"vA" = (
+/obj/structure/closet/crate/maint,
+/obj/effect/turf_decal/stripes{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"vL" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"vQ" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"vU" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"wg" = (
+/obj/machinery/light/small/red/dim{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/preopen,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"wh" = (
+/obj/structure/table/wood,
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-207"
+ },
+/area/virtual_domain/powered)
+"wl" = (
+/obj/item/shard,
+/turf/open/space/basic,
+/area/space)
+"wm" = (
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 1
+ },
+/obj/structure/sign/clock/directional/north,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"wq" = (
+/obj/structure/table/wood,
+/obj/machinery/button/door{
+ name = "Cargo Bay Lockdown";
+ id = "factorylockdown"
+ },
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-63"
+ },
+/area/virtual_domain/powered)
+"ws" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"ww" = (
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/basic/hivebot,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"wU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"wW" = (
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"xa" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 8;
+ id = "factorylockdown"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"xj" = (
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"xk" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"xl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"xA" = (
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"xE" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 9
+ },
+/obj/machinery/light/broken,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"xF" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/virtual_domain/powered)
+"xM" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/dogbed{
+ name = "cat bed"
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"xT" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"yB" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"yM" = (
+/turf/closed/indestructible/fakedoor{
+ name = "Stairwell Access"
+ },
+/area/virtual_domain/powered)
+"yQ" = (
+/turf/template_noop,
+/area/template_noop)
+"yX" = (
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"zp" = (
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/broken,
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"zB" = (
+/obj/structure/closet/crate/bin,
+/obj/item/trash/tray,
+/obj/effect/spawner/random/trash/garbage,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"zE" = (
+/obj/structure/disposalpipe/broken{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"zO" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/broken,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Av" = (
+/obj/item/stack/rods/two,
+/turf/open/space/basic,
+/area/space)
+"Aw" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/mob/living/basic/hivebot/rapid,
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"AJ" = (
+/obj/effect/decal/cleanable/generic,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"AP" = (
+/obj/structure/railing,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"AU" = (
+/turf/open/misc/asteroid/airless,
+/area/space)
+"Bd" = (
+/obj/structure/closet/secure_closet/tac{
+ req_access = null
+ },
+/obj/item/ammo_casing/shotgun/buckshot,
+/obj/item/ammo_casing/shotgun/buckshot,
+/obj/item/ammo_casing/shotgun/buckshot,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Bh" = (
+/obj/structure/broken_flooring/corner/directional/east,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Bx" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ broken = 1;
+ desc = "No longer cooks and boils stuff."
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"BA" = (
+/obj/structure/broken_flooring/corner/directional/south,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"BI" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Quartermaster's Office"
+ },
+/obj/effect/mapping_helpers/airlock/access/any/away/command,
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"BN" = (
+/obj/structure/flora/rock/pile/style_random,
+/turf/open/misc/asteroid/airless,
+/area/space)
+"BW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"BX" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ci" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ct" = (
+/obj/machinery/conveyor/auto{
+ dir = 6
+ },
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/obj/structure/sign/warning/vacuum/directional/north,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Cv" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-157"
+ },
+/area/virtual_domain/powered)
+"CA" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/broken_flooring/side{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"CQ" = (
+/obj/effect/spawner/random/trash/botanical_waste,
+/obj/item/trash/chips,
+/obj/structure/closet/secure_closet/freezer/empty/open,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"CR" = (
+/obj/structure/flora/rock/pile/style_random,
+/turf/open/misc/asteroid/airless,
+/area/virtual_domain/powered)
+"CX" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Dr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"DA" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/catwalk_floor/iron,
+/area/virtual_domain/powered)
+"DE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"DP" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/food_or_drink/snack,
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"Ex" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-137"
+ },
+/area/virtual_domain/powered)
+"Ez" = (
+/obj/structure/flora/rock/style_random,
+/turf/open/misc/asteroid/airless,
+/area/space)
+"EI" = (
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"EJ" = (
+/obj/machinery/recycler/deathtrap{
+ dir = 8
+ },
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Fa" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/maint,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ff" = (
+/obj/structure/disposalpipe/trunk/multiz{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Fo" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"Fr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/preopen,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Fw" = (
+/obj/structure/flora/bush/fullgrass/style_random,
+/obj/structure/flora/rock/pile/style_random,
+/obj/structure/flora/bush/flowers_yw/style_random,
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/grass,
+/area/virtual_domain/powered)
+"FK" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"FO" = (
+/turf/open/misc/asteroid/airless,
+/area/virtual_domain/powered)
+"FP" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-110"
+ },
+/area/virtual_domain/powered)
+"Gb" = (
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ge" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-21"
+ },
+/area/virtual_domain/powered)
+"Gh" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Gi" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/yellow/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Gs" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Gy" = (
+/obj/machinery/conveyor/auto{
+ dir = 9;
+ inverted = 1;
+ icon_state = "conveyor_map_inverted"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"GI" = (
+/obj/effect/turf_decal/trimline/yellow/arrow_ccw,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"GV" = (
+/obj/machinery/light/small/red/dim{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 9
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Hn" = (
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"HI" = (
+/obj/structure/broken_flooring/pile/directional/north,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Ib" = (
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"Ip" = (
+/obj/machinery/door/airlock/engineering/glass,
+/obj/effect/mapping_helpers/airlock/access/any/away/supply,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Is" = (
+/obj/machinery/door/airlock/engineering/glass,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"IF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"IK" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"IZ" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/obj/structure/closet/crate,
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"Jl" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Jm" = (
+/obj/structure/broken_flooring/pile/directional/north,
+/obj/machinery/light/dim,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Jn" = (
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/railing/corner/end/flip{
+ dir = 8
+ },
+/obj/structure/sign/warning/doors/directional/east,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Jq" = (
+/obj/structure/broken_flooring/pile{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/random/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"JE" = (
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/obj/structure/sign/warning/chem_diamond/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"JR" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"JT" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/obj/effect/spawner/random/trash/grime,
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"Kb" = (
+/obj/effect/mob_spawn/corpse/human/factory/guard,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Kt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"KO" = (
+/obj/structure/broken_flooring/side/directional/north,
+/obj/machinery/light/small/red/dim,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"KX" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"Ln" = (
+/obj/structure/disposalpipe/broken{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Lp" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/machinery/light/broken,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"LN" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 10
+ },
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"LU" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Mc" = (
+/obj/effect/turf_decal/trimline/yellow/warning,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Mh" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Mi" = (
+/obj/effect/mob_spawn/corpse/human/factory,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Mj" = (
+/turf/closed/mineral,
+/area/virtual_domain/powered)
+"Mu" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Mx" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 1
+ },
+/obj/structure/filingcabinet,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"My" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/machinery/light/small/red/dim{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"MI" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-74"
+ },
+/area/virtual_domain/powered)
+"MN" = (
+/obj/effect/turf_decal/tile/dark,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Nc" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Nu" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"NW" = (
+/obj/effect/decal/cleanable/dirt,
+/mob/living/basic/hivebot/strong,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ok" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"On" = (
+/obj/structure/broken_flooring/side{
+ dir = 4
+ },
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"OJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"OL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"OQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/poster/ripped/directional/west,
+/turf/open/floor/carpet/orange,
+/area/virtual_domain/powered)
+"OR" = (
+/obj/machinery/light/broken,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Po" = (
+/obj/machinery/light/small/red/dim{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/broken_flooring/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Pr" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/random/directional/east,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"PH" = (
+/obj/structure/railing/corner/end/flip{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Qd" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 6
+ },
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Qh" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Qj" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Qo" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Qr" = (
+/turf/closed/indestructible/fakedoor/maintenance{
+ name = "maintenance access"
+ },
+/area/virtual_domain/powered)
+"Qv" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 9
+ },
+/obj/machinery/light/small/red/dim{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Qy" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"QI" = (
+/obj/structure/sign/calendar/directional/north,
+/obj/effect/spawner/random/trash/garbage,
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"QK" = (
+/obj/structure/table,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"QN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"QP" = (
+/obj/structure/sign/poster/contraband/random/directional/east,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"QW" = (
+/obj/machinery/conveyor/auto{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Ru" = (
+/obj/machinery/door/airlock/external/glass/ruin,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Ry" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"RJ" = (
+/turf/closed/indestructible/binary,
+/area/virtual_domain/powered)
+"RK" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"RZ" = (
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Sg" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Sl" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"SC" = (
+/mob/living/basic/hivebot/strong,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"SR" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"SS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/mineral,
+/area/virtual_domain/powered)
+"SU" = (
+/obj/effect/spawner/structure/window,
+/obj/item/stack/rods/two,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"SZ" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/food_or_drink/booze,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Te" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 5
+ },
+/obj/effect/mob_spawn/corpse/human/factory/qm,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Tn" = (
+/obj/structure/broken_flooring/corner{
+ dir = 4
+ },
+/mob/living/basic/hivebot,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Tp" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 4;
+ id = "factorylockdown"
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Tt" = (
+/obj/machinery/conveyor/auto{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"TH" = (
+/obj/structure/broken_flooring/corner/directional/south,
+/obj/item/ammo_casing/shotgun/buckshot/spent,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Ue" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small/red/dim{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/cleanliness/directional/west,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Uw" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"UO" = (
+/obj/structure/broken_flooring/side/directional/north,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"UV" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"UX" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/machinery/light/small/red/dim,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"UY" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Vb" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/broken,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Vg" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/light/small/red/dim,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Vh" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/iron/cafeteria,
+/area/virtual_domain/powered)
+"Vy" = (
+/obj/structure/broken_flooring/singular{
+ dir = 4
+ },
+/obj/effect/mob_spawn/corpse/human/factory/guard,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"VA" = (
+/obj/machinery/light/small/red/dim{
+ dir = 1
+ },
+/obj/structure/table,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"VJ" = (
+/obj/structure/broken_flooring/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"VL" = (
+/obj/structure/sign/warning/secure_area/directional/south,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"VO" = (
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Wd" = (
+/obj/structure/lattice/catwalk{
+ name = "industrial lift"
+ },
+/obj/structure/railing,
+/turf/open/chasm,
+/area/virtual_domain/powered)
+"Wp" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"WT" = (
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"WV" = (
+/obj/machinery/conveyor/auto{
+ dir = 10;
+ inverted = 1;
+ icon_state = "conveyor_map_inverted"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Xb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/virtual_domain/powered)
+"Xc" = (
+/obj/effect/turf_decal/trimline/yellow/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Xm" = (
+/obj/item/gun/ballistic/shotgun/lethal,
+/obj/machinery/light/broken{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Xo" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Xw" = (
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/yellow/line{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"XL" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/structure/sign/warning/vacuum/external/directional/south,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"XN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"XO" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"XP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"XQ" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 4
+ },
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"XR" = (
+/obj/effect/turf_decal/trimline/yellow/warning{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Yc" = (
+/obj/item/gun/ballistic/revolver,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Yl" = (
+/obj/structure/broken_flooring/corner/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Ym" = (
+/mob/living/simple_animal/pet/cat/space,
+/obj/structure/bed/dogbed{
+ name = "cat bed"
+ },
+/obj/item/toy/plush/moth{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/machinery/light/small/dim/directional/south,
+/obj/structure/sign/poster/official/moth_hardhat/directional/west,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Yt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Yz" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "factorylockdown"
+ },
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"YF" = (
+/obj/machinery/light/small/red/dim,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"YL" = (
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"YP" = (
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 1
+ },
+/obj/machinery/light/dim,
+/turf/open/floor/iron,
+/area/virtual_domain/powered)
+"Zb" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"Zg" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-157"
+ },
+/area/virtual_domain/powered)
+"Zy" = (
+/obj/structure/table,
+/obj/item/flashlight/lantern,
+/turf/open/floor/plating,
+/area/virtual_domain/powered)
+"ZI" = (
+/turf/open/floor/carpet/royalblue{
+ icon_state = "carpet_royalblue-203"
+ },
+/area/virtual_domain/powered)
+"ZP" = (
+/obj/structure/railing,
+/turf/open/floor/iron/stairs/right{
+ dir = 8
+ },
+/area/virtual_domain/powered)
+
+(1,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(2,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+Mj
+Mj
+eg
+eg
+SS
+eg
+eg
+eg
+Xb
+Mj
+Mj
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(3,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+Mj
+Bx
+SZ
+Ue
+CQ
+zB
+eg
+OQ
+bs
+Ib
+Mj
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+yQ
+yQ
+"}
+(4,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+eg
+ho
+ho
+qN
+ho
+zO
+eg
+pa
+bs
+zp
+eY
+RJ
+RJ
+Mj
+RJ
+RJ
+rO
+rO
+RJ
+RJ
+xF
+"}
+(5,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+eg
+eg
+eg
+eg
+eg
+eg
+RJ
+eg
+um
+DP
+Vh
+Vh
+Hn
+tr
+fg
+ZP
+Fw
+eY
+Mj
+Mj
+Mj
+AU
+AU
+AU
+rO
+rO
+rO
+RJ
+"}
+(6,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+vA
+Dr
+bw
+Jq
+gc
+eg
+RJ
+eg
+Hn
+fK
+fK
+fK
+Hn
+lC
+hi
+FK
+eY
+eY
+Mj
+Ez
+AU
+aK
+aK
+AU
+AU
+BN
+rO
+RJ
+"}
+(7,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+jQ
+lt
+kU
+vU
+lN
+eg
+RJ
+eg
+QI
+Fo
+Hn
+Hn
+Hn
+tr
+hi
+Ln
+eY
+Mj
+Mj
+AU
+AU
+BN
+aK
+aK
+aK
+AU
+rO
+RJ
+"}
+(8,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+uU
+gj
+kU
+Tn
+OR
+eg
+RJ
+eg
+eg
+uk
+pf
+pf
+eg
+eg
+qV
+Vb
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(9,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+ki
+gj
+kU
+kU
+kU
+eg
+RJ
+eg
+kU
+kU
+nD
+nS
+kU
+Qj
+FK
+nc
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+AU
+aK
+aK
+aK
+RJ
+"}
+(10,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+eg
+eg
+kJ
+lx
+lx
+lp
+eg
+RJ
+eg
+mu
+AJ
+mu
+eJ
+MN
+BW
+hi
+Sg
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(11,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+eg
+eg
+eg
+Qr
+eg
+eg
+JE
+gj
+pi
+kU
+VL
+eg
+eg
+eg
+VO
+kU
+Fr
+jw
+qk
+XR
+vQ
+Vg
+eY
+aK
+aK
+aK
+JR
+JR
+JR
+JR
+JR
+Qo
+aK
+RJ
+"}
+(12,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+eg
+eg
+eg
+eg
+eg
+eg
+yM
+eg
+GV
+WT
+xj
+qk
+Qh
+XP
+lW
+ww
+EI
+Kt
+Qh
+mu
+Yz
+xl
+HI
+kU
+Bh
+Kb
+kU
+hi
+CX
+eY
+eY
+aK
+aK
+JR
+JR
+JR
+JR
+JR
+JR
+aK
+RJ
+"}
+(13,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+eg
+VA
+bA
+eg
+kU
+sB
+WT
+mh
+kU
+pv
+AP
+IZ
+KX
+Wd
+uv
+DE
+Mi
+gj
+xT
+hi
+tl
+IF
+kU
+hi
+Yc
+kU
+kU
+vU
+lB
+XL
+eg
+tr
+eY
+JR
+JR
+JR
+JR
+JR
+JR
+aK
+RJ
+"}
+(14,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+kU
+kU
+Zy
+kU
+Gh
+Kt
+mu
+mu
+mu
+uF
+xl
+AP
+KX
+JT
+bG
+qk
+DA
+DA
+zE
+gc
+mu
+Yz
+lW
+pi
+kU
+kU
+nL
+BW
+hi
+hg
+Wp
+Ru
+hi
+gs
+JR
+JR
+JR
+JR
+JR
+JR
+aK
+RJ
+"}
+(15,1,1) = {"
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+kU
+QP
+kU
+eg
+qT
+Gb
+Uw
+iz
+jS
+gj
+rJ
+KX
+Aw
+Wd
+Ff
+lN
+XO
+gj
+DE
+SC
+tl
+qk
+mu
+mu
+xl
+kU
+oX
+hi
+cF
+cw
+eY
+tr
+eY
+JR
+JR
+JR
+JR
+JR
+JR
+aK
+RJ
+"}
+(16,1,1) = {"
+yQ
+RJ
+Mj
+Mj
+Mj
+Mj
+RJ
+eg
+eg
+eg
+eg
+Xb
+yB
+eg
+eg
+kU
+qk
+PH
+dA
+Po
+Jn
+aw
+OJ
+CA
+QN
+kU
+Uw
+tl
+kU
+Mc
+kU
+kh
+fj
+kU
+FK
+CX
+eY
+eY
+aK
+aK
+JR
+JR
+JR
+JR
+JR
+JR
+aK
+RJ
+"}
+(17,1,1) = {"
+yQ
+RJ
+Mj
+BN
+AU
+Mj
+Mj
+Mj
+eg
+QW
+My
+Qy
+kU
+po
+eg
+tr
+Is
+tr
+eg
+eg
+eg
+kU
+pi
+kU
+lI
+YF
+eg
+eg
+op
+kU
+BA
+iw
+kU
+kU
+FK
+rz
+eY
+aK
+aK
+aK
+JR
+JR
+JR
+JR
+JR
+ev
+aK
+RJ
+"}
+(18,1,1) = {"
+yQ
+RJ
+aK
+AU
+AU
+AU
+aK
+aK
+eg
+Ct
+oN
+Gy
+jW
+xT
+eg
+Tp
+Tp
+Tp
+eg
+Ym
+eg
+eg
+xa
+xa
+xa
+eg
+eg
+eg
+kU
+Zb
+kU
+Yt
+kU
+UO
+hi
+CX
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(19,1,1) = {"
+RJ
+RJ
+aK
+aK
+aK
+aK
+wl
+aK
+yX
+ve
+Tt
+Xo
+DE
+oX
+eg
+Sl
+gV
+dz
+eg
+uC
+eg
+qK
+mh
+kU
+kU
+Qj
+VJ
+eg
+kU
+kU
+kU
+gj
+kU
+kU
+hi
+Ok
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(20,1,1) = {"
+RJ
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+tr
+uz
+Mh
+EJ
+kU
+kU
+mE
+Mu
+Yl
+pJ
+eg
+kn
+pb
+kU
+kU
+kU
+Fa
+kU
+YF
+eg
+eg
+pf
+tr
+XN
+eg
+eg
+Ci
+YP
+eY
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(21,1,1) = {"
+RJ
+aK
+aK
+aK
+aK
+aK
+Av
+CR
+tr
+kU
+ei
+WV
+pi
+Jm
+eg
+eN
+gN
+GI
+eg
+rc
+mu
+rM
+gc
+vQ
+tE
+mu
+mu
+eg
+Mx
+qc
+ax
+bS
+fe
+pf
+hi
+hi
+af
+eY
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(22,1,1) = {"
+RJ
+aK
+aK
+aK
+aK
+aK
+aK
+FO
+eg
+eg
+wg
+uU
+lN
+uz
+eg
+mY
+jH
+rG
+eg
+xT
+Uw
+kU
+kU
+On
+pi
+kU
+Mj
+eg
+wm
+xA
+fZ
+OL
+aL
+Ip
+hi
+lN
+QK
+eY
+aK
+aK
+aK
+aK
+BN
+aK
+aK
+aK
+aK
+RJ
+"}
+(23,1,1) = {"
+RJ
+aK
+aK
+aK
+aK
+aK
+AU
+FO
+Mj
+eg
+eg
+Mj
+Mj
+eY
+eY
+UO
+jH
+Nu
+eg
+eg
+eg
+eg
+eg
+Mj
+Mj
+Mj
+Mj
+eg
+RZ
+vQ
+wW
+wU
+dP
+tr
+hi
+hi
+Nc
+eY
+aK
+BN
+AU
+aK
+aK
+aK
+aK
+aK
+aK
+RJ
+"}
+(24,1,1) = {"
+RJ
+RJ
+aK
+aK
+aK
+AU
+Ez
+Mj
+Mj
+RJ
+Mj
+Mj
+Vy
+hi
+eY
+CX
+jH
+Nu
+eg
+Gi
+Qd
+jv
+fR
+cB
+Mj
+RJ
+RJ
+eg
+Ry
+hk
+pI
+XQ
+YL
+eg
+bq
+hi
+Mj
+eY
+Mj
+Mj
+AU
+AU
+aK
+aK
+aK
+aK
+rO
+RJ
+"}
+(25,1,1) = {"
+yQ
+RJ
+aK
+AU
+BN
+AU
+Mj
+Mj
+RJ
+RJ
+eY
+Xm
+TH
+fw
+eY
+qW
+hi
+dx
+pf
+UV
+sn
+uP
+Ge
+vb
+eg
+RJ
+RJ
+eg
+Mj
+Mj
+eg
+eg
+eg
+eg
+eg
+Mj
+Mj
+RJ
+RJ
+Mj
+Mj
+Mj
+RJ
+RJ
+Mj
+Mj
+Mj
+RJ
+"}
+(26,1,1) = {"
+yQ
+RJ
+RJ
+RJ
+RJ
+rO
+Mj
+RJ
+RJ
+RJ
+eY
+Bd
+vL
+hi
+vU
+sW
+hi
+SR
+SU
+CX
+FP
+wh
+Zg
+Nu
+eg
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+"}
+(27,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+yQ
+RJ
+eY
+Jl
+RK
+BX
+eY
+CX
+RK
+iI
+BI
+ws
+ud
+bx
+Cv
+Nu
+eg
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(28,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eY
+NW
+UY
+KO
+eY
+fl
+jH
+Nu
+uk
+CX
+FP
+wq
+Zg
+Nu
+eg
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(29,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eY
+xk
+Te
+xT
+eY
+CX
+jH
+Nu
+pf
+Xw
+MI
+ZI
+Ex
+xE
+eg
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(30,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eY
+eY
+eY
+eY
+eY
+CX
+jH
+Xc
+eg
+Pr
+LN
+xM
+Qv
+LU
+Mj
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(31,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+RJ
+eg
+Gs
+jH
+UX
+eg
+eg
+eg
+eg
+Mj
+Mj
+Mj
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(32,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+eg
+Ok
+nz
+IK
+eg
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(33,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+Mj
+CX
+hi
+Nu
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(34,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+Mj
+CX
+RJ
+Lp
+eg
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(35,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+fl
+RJ
+RJ
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
+(36,1,1) = {"
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+RJ
+RJ
+RJ
+RJ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+yQ
+"}
diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm
new file mode 100644
index 000000000000..5356f53d1932
--- /dev/null
+++ b/_maps/virtual_domains/pirates.dmm
@@ -0,0 +1,2548 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"by" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"bz" = (
+/obj/structure/flora/bush/grassy{
+ pixel_y = 8
+ },
+/obj/structure/flora/bush/lavendergrass{
+ pixel_y = -10
+ },
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"bP" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"cl" = (
+/obj/structure/flora/rock/style_3,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"ct" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/head/costume/pirate/armored,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"cx" = (
+/turf/closed/indestructible/binary,
+/area/virtual_domain/powered)
+"cJ" = (
+/obj/item/stack/cannonball/shellball{
+ pixel_x = 13;
+ pixel_y = 11
+ },
+/obj/item/stack/cannonball{
+ pixel_x = 9;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"cQ" = (
+/obj/structure/flora/grass/jungle/b{
+ pixel_x = -15;
+ pixel_y = 9
+ },
+/obj/structure/flora/rock/pile/jungle/large/style_2{
+ pixel_x = -3;
+ pixel_y = -1
+ },
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"dp" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"dA" = (
+/obj/structure/bonfire/prelit,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"eb" = (
+/obj/structure/flora/bush/sparsegrass,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"eD" = (
+/obj/structure/flora/tree/palm/style_2,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"eQ" = (
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"eW" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"fx" = (
+/obj/structure/fluff/beach_umbrella{
+ pixel_x = -7;
+ pixel_y = -10
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"gk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"gw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"ht" = (
+/obj/structure/bookcase/random/fiction,
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"hH" = (
+/obj/item/clothing/suit/armor/militia{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/clothing/suit/armor/militia{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/item/clothing/suit/armor/militia{
+ pixel_x = -5;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/costume/fancy{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/obj/item/clothing/head/costume/fancy{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/clothing/head/hats/coordinator{
+ pixel_x = 8;
+ pixel_y = -5
+ },
+/obj/structure/closet/cabinet,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"hM" = (
+/obj/structure/closet/crate/goldcrate,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"hW" = (
+/obj/structure/chair/comfy/carp{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"iM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/pirate/ranged/space,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"iO" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"jl" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/item/flashlight/flare/torch{
+ pixel_y = 10;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_y = -16;
+ pixel_x = 12
+ },
+/obj/machinery/recharger{
+ pixel_y = 6;
+ pixel_x = -5
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"jz" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"jB" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/jukebox,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"jC" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/item/reagent_containers/cup/glass/bottle/rum{
+ desc = "Rum with ghostly properties that can help the drinker enter the spirit realm. It has fermented under the sea of space for ages.";
+ name = "Ghost Pirate Rum";
+ pixel_x = -4;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{
+ pixel_x = -7;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{
+ pixel_x = 3;
+ pixel_y = 7
+ },
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"jQ" = (
+/obj/item/gun/energy/laser/hellgun{
+ pixel_y = 10
+ },
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"kg" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"kl" = (
+/obj/structure/cannon,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = -5;
+ pixel_x = 8
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"lC" = (
+/obj/item/stack/cannonball{
+ pixel_x = 7;
+ pixel_y = 8
+ },
+/obj/item/stack/cannonball{
+ pixel_x = 11;
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"me" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"mw" = (
+/obj/structure/flora/grass/jungle/b/style_random{
+ pixel_x = -13;
+ pixel_y = 18
+ },
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"mP" = (
+/obj/structure/flora/bush/fullgrass,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"nz" = (
+/obj/effect/mob_spawn/corpse/human/pirate,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"nQ" = (
+/obj/machinery/loot_locator,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"nS" = (
+/obj/structure/flora/rock/pile/jungle/large,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"nX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/pirate/melee/space,
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"oo" = (
+/obj/machinery/smartfridge/drying_rack,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"pq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"px" = (
+/obj/structure/headpike/bone{
+ pixel_y = 24
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"pU" = (
+/obj/effect/mob_spawn/corpse/human/pirate,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"qj" = (
+/obj/structure/barricade/wooden,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"qm" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/melee/sabre{
+ pixel_y = 12;
+ pixel_x = -10
+ },
+/obj/item/gun/energy/laser/retro,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"qx" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/pirate/ranged,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"qN" = (
+/obj/structure/flora/bush/sunny/style_3{
+ pixel_y = 22
+ },
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"qX" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/structure/fermenting_barrel{
+ pixel_x = 6;
+ pixel_y = 11
+ },
+/obj/effect/mob_spawn/ghost_role/human/pirate/skeleton,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"sn" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/ordnance,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"so" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"th" = (
+/obj/effect/turf_decal/weather/sand,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"tk" = (
+/obj/structure/flora/bush/flowers_pp,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"to" = (
+/mob/living/simple_animal/hostile/pirate/melee,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"ub" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"uw" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"uM" = (
+/obj/structure/flora/bush/stalky{
+ pixel_y = 13;
+ pixel_x = -8
+ },
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"uT" = (
+/obj/structure/closet/crate/grave,
+/obj/structure/flora/grass/jungle/b,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"wb" = (
+/obj/structure/flora/rock,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"we" = (
+/obj/effect/mine/explosive/light,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"xg" = (
+/turf/template_noop,
+/area/template_noop)
+"xm" = (
+/obj/structure/barricade/wooden/crude,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain/powered)
+"xB" = (
+/obj/structure/fermenting_barrel/gunpowder{
+ pixel_x = -4;
+ pixel_y = 17
+ },
+/obj/structure/fermenting_barrel/gunpowder{
+ pixel_x = 4
+ },
+/obj/item/stack/cannonball{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_y = -10
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"xC" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/dirt,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"xI" = (
+/obj/structure/flora/rock/pile/style_2,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"yc" = (
+/obj/effect/turf_decal/weather/dirt,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"ye" = (
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"yi" = (
+/mob/living/simple_animal/hostile/pirate/melee,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"yq" = (
+/obj/structure/barricade/sandbags,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"yw" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/mob/living/simple_animal/hostile/pirate/ranged,
+/obj/structure/chair/wood,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"yA" = (
+/obj/item/bedsheet/rainbow/double,
+/obj/structure/bed/double,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"zf" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/obj/structure/flora/bush/ferny,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"zg" = (
+/obj/structure/flora/rock/pile/style_3,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"zR" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Ax" = (
+/obj/effect/turf_decal/weather/dirt,
+/obj/effect/turf_decal/weather/dirt,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"AU" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 1
+ },
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"BC" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"BO" = (
+/obj/structure/bookcase/random/adult,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"Cc" = (
+/obj/structure/flora/tree/palm,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Dm" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/flashlight/flare/torch{
+ pixel_y = 10
+ },
+/obj/item/flashlight/flare/torch{
+ pixel_x = 8;
+ pixel_y = 6
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"DJ" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/structure/bed/maint{
+ pixel_x = -10;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"DL" = (
+/obj/structure/flora/bush/sunny,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"ED" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"EZ" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"FG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/claymore/cutlass,
+/obj/item/clothing/head/costume/pirate/bandana/armored{
+ pixel_x = -9;
+ pixel_y = 7
+ },
+/obj/structure/table/wood,
+/obj/item/gun/energy/laser{
+ pixel_y = -3
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"FT" = (
+/turf/closed/mineral/random/jungle,
+/area/virtual_domain/powered)
+"GF" = (
+/obj/effect/turf_decal/weather/dirt,
+/obj/structure/flora/rock/pile,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"GG" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/item/binoculars{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"Hp" = (
+/obj/effect/turf_decal/siding/wood,
+/mob/living/simple_animal/hostile/pirate/ranged,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"It" = (
+/obj/structure/flora/bush/sparsegrass,
+/obj/structure/flora/bush/lavendergrass,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"Iz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/bed/maint,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"IF" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 4
+ },
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"IG" = (
+/obj/effect/mob_spawn/corpse/human/pirate,
+/obj/effect/decal/cleanable/blood/gibs/old,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"IM" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"Jo" = (
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"Jr" = (
+/obj/structure/headpike/bone,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Jv" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"JT" = (
+/obj/effect/decal/cleanable/ants,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"Kb" = (
+/obj/structure/railing{
+ color = "#4C3117";
+ name = "wooden railing"
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/obj/effect/turf_decal/weather/sand{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Kl" = (
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Kw" = (
+/obj/machinery/door/airlock/vault{
+ color = "#825427";
+ name = "Ye Olde Strong Door"
+ },
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"KC" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 5
+ },
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"KG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/item/gun/energy/laser/musket{
+ pixel_y = 7
+ },
+/obj/item/gun/energy/laser/musket{
+ pixel_y = 2
+ },
+/obj/item/gun/energy/laser/musket{
+ pixel_y = -3
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"KQ" = (
+/obj/structure/flora/rock/style_2,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"Ld" = (
+/obj/structure/flora/rock/pile,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"Ma" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"Mi" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"MW" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Nh" = (
+/obj/structure/flora/rock/pile/jungle/style_3{
+ pixel_x = -15;
+ pixel_y = -4
+ },
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"Nk" = (
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Nz" = (
+/obj/structure/flora/bush/jungle,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"NI" = (
+/obj/structure/railing{
+ color = "#4C3117";
+ name = "wooden railing"
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ON" = (
+/obj/structure/filingcabinet{
+ pixel_x = 11
+ },
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"OP" = (
+/obj/structure/flora/bush/stalky,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Pq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/bed/maint{
+ pixel_x = 2;
+ pixel_y = 13
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Pz" = (
+/obj/structure/table/wood,
+/mob/living/simple_animal/parrot{
+ name = "pepper"
+ },
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"PQ" = (
+/obj/structure/flora/grass/jungle/b,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"Qb" = (
+/obj/structure/flora/rock{
+ pixel_x = 7
+ },
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"Rr" = (
+/obj/structure/bed/maint{
+ pixel_x = -5;
+ pixel_y = 9
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"RR" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"Sm" = (
+/obj/structure/flora/tree/jungle,
+/obj/structure/flora/bush/fullgrass/style_random,
+/turf/open/misc/grass,
+/area/virtual_domain/powered)
+"St" = (
+/obj/structure/table/wood,
+/obj/item/melee/energy/sword/pirate{
+ pixel_y = 10
+ },
+/obj/item/clothing/mask/cigarette/cigar{
+ pixel_x = 4
+ },
+/obj/item/lighter{
+ pixel_x = 10;
+ pixel_y = -8
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"Tt" = (
+/obj/structure/cannon{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"TO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/carpet/blue,
+/area/virtual_domain/powered)
+"TP" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 4
+ },
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"TQ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/bed/maint{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/toy/plush/beeplushie,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Uy" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/virtual_domain/powered)
+"UE" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"Vg" = (
+/obj/effect/mob_spawn/corpse/human/pirate/melee,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"Vk" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/weather/sand,
+/turf/open/floor/wood{
+ icon_state = "wood_large"
+ },
+/area/virtual_domain/powered)
+"VC" = (
+/obj/effect/mob_spawn/corpse/human/damaged,
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"VF" = (
+/turf/open/water/beach,
+/area/virtual_domain/powered)
+"VX" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/structure/rack{
+ icon = 'icons/obj/fluff/general.dmi';
+ icon_state = "minibar";
+ name = "skeletal minibar"
+ },
+/obj/item/storage/bag/money/dutchmen{
+ pixel_y = 13
+ },
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"WM" = (
+/obj/structure/flora/rock/pile/jungle/style_2,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+"WP" = (
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"Xn" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"XG" = (
+/obj/structure/fermenting_barrel/gunpowder{
+ pixel_x = -4;
+ pixel_y = 17
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"Yj" = (
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/powered)
+"Yk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/parquet,
+/area/virtual_domain/powered)
+"Yq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/virtual_domain/powered)
+"ZZ" = (
+/obj/structure/flora/grass/jungle,
+/turf/open/misc/dirt/jungle,
+/area/virtual_domain/powered)
+
+(1,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(2,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(3,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(4,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(5,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+zf
+eb
+we
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(6,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+FT
+FT
+FT
+Sm
+Ma
+bz
+JT
+Kl
+Kl
+Kl
+FT
+FT
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(7,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+cx
+FT
+FT
+FT
+FT
+It
+tk
+DL
+Kl
+Kl
+Kl
+Cc
+Kl
+IG
+FT
+cx
+cx
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(8,1,1) = {"
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+Nz
+bP
+mP
+to
+Kl
+Kl
+we
+Kl
+Kl
+Kl
+Kl
+we
+cx
+cx
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(9,1,1) = {"
+xg
+xg
+xg
+cx
+cx
+FT
+dp
+dp
+dp
+dp
+xB
+yq
+yq
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+cx
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(10,1,1) = {"
+xg
+xg
+xg
+cx
+FT
+dp
+dp
+Pq
+qx
+Mi
+th
+Kl
+yq
+Kl
+IG
+OP
+uM
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VC
+VF
+VF
+VF
+VF
+VF
+dp
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(11,1,1) = {"
+xg
+xg
+cx
+cx
+FT
+dp
+TQ
+Iz
+DJ
+ag
+eW
+Kl
+Kl
+ED
+Kl
+Jr
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+KQ
+VF
+VF
+VF
+VF
+VF
+dp
+KG
+pq
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+Uy
+"}
+(12,1,1) = {"
+xg
+xg
+cx
+FT
+FT
+dp
+Yj
+MW
+iO
+Rr
+qj
+Kl
+NI
+xm
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+wb
+dp
+jl
+pq
+BC
+ub
+ub
+ub
+ub
+ub
+Xn
+cx
+"}
+(13,1,1) = {"
+cx
+cx
+cx
+FT
+FT
+FT
+qj
+Kl
+Kl
+Kl
+Kl
+Kl
+lC
+kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+Vg
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+cl
+dp
+hH
+Nk
+qm
+ub
+ub
+ub
+ub
+ub
+ub
+cx
+"}
+(14,1,1) = {"
+cx
+dp
+dp
+dp
+dp
+dp
+dp
+oo
+Kl
+Kl
+Kl
+Kl
+Kb
+dp
+px
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+dp
+dp
+Nk
+Jv
+ub
+ub
+ub
+ub
+ub
+ub
+cx
+"}
+(15,1,1) = {"
+cx
+dp
+BO
+ht
+VX
+ct
+dp
+yi
+Kl
+dA
+Kl
+Kl
+by
+Hp
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+me
+ub
+ub
+ub
+ub
+ub
+ub
+cx
+"}
+(16,1,1) = {"
+cx
+dp
+ON
+WP
+nX
+Yk
+Kw
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+dp
+px
+VF
+VF
+VF
+VF
+Qb
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+ub
+ub
+ub
+ub
+ub
+ub
+cx
+"}
+(17,1,1) = {"
+cx
+dp
+jC
+iM
+so
+TO
+dp
+Kl
+Kl
+EZ
+IM
+Kl
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+cl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+ub
+ub
+ub
+ub
+ub
+ub
+cx
+"}
+(18,1,1) = {"
+cx
+dp
+sn
+hW
+eQ
+gk
+dp
+dp
+qX
+gw
+jz
+UE
+Kl
+Cc
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+me
+VF
+ub
+ub
+ub
+ub
+ub
+zR
+cx
+"}
+(19,1,1) = {"
+cx
+dp
+St
+Pz
+nQ
+yA
+dp
+dp
+Dm
+jz
+jz
+Vk
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+dp
+BC
+VF
+VF
+VF
+VF
+VF
+VF
+cx
+cx
+"}
+(20,1,1) = {"
+cx
+dp
+dp
+dp
+dp
+dp
+dp
+xm
+FG
+RR
+yw
+Vk
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+Tt
+cJ
+Yq
+VF
+VF
+VF
+VF
+VF
+cx
+xg
+"}
+(21,1,1) = {"
+cx
+cx
+cx
+FT
+FT
+Kl
+Kl
+dp
+dp
+jB
+uw
+GG
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+xI
+dp
+XG
+BC
+VF
+VF
+VF
+VF
+VF
+cx
+xg
+"}
+(22,1,1) = {"
+xg
+xg
+cx
+FT
+FT
+fx
+Kl
+Kl
+dp
+dp
+Kl
+Kl
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+kg
+pq
+Ld
+VF
+VF
+VF
+VF
+VF
+cx
+xg
+"}
+(23,1,1) = {"
+xg
+xg
+cx
+FT
+FT
+FT
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+FT
+FT
+cx
+xg
+"}
+(24,1,1) = {"
+xg
+xg
+cx
+FT
+FT
+FT
+FT
+dp
+Kl
+eD
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+nz
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+FT
+FT
+cx
+xg
+"}
+(25,1,1) = {"
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+Kl
+Kl
+Kl
+Kl
+Kl
+Kl
+yi
+Kl
+Kl
+Kl
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+FT
+FT
+FT
+cx
+xg
+"}
+(26,1,1) = {"
+xg
+xg
+xg
+cx
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+TP
+VF
+FT
+FT
+cx
+cx
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+cx
+FT
+FT
+FT
+FT
+cx
+xg
+"}
+(27,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+PQ
+AU
+FT
+FT
+FT
+cx
+cx
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+VF
+cx
+cx
+FT
+FT
+FT
+cx
+cx
+xg
+"}
+(28,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+Nh
+AU
+FT
+FT
+FT
+FT
+cx
+cx
+cx
+cx
+VF
+VF
+VF
+VF
+VF
+VF
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+xg
+xg
+"}
+(29,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+cx
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+ye
+KC
+VF
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(30,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+zg
+ye
+KC
+IF
+VF
+FT
+FT
+FT
+FT
+FT
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(31,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+ye
+ye
+pU
+AU
+VF
+GF
+WM
+FT
+FT
+FT
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(32,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+ye
+nS
+KC
+VF
+Ax
+ye
+hM
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(33,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+ZZ
+ye
+cQ
+KC
+yc
+qN
+ye
+hM
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(34,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+FT
+FT
+FT
+FT
+ye
+ye
+mw
+xC
+uT
+jQ
+Jo
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(35,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(36,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+FT
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
+(37,1,1) = {"
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+cx
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+xg
+"}
diff --git a/_maps/virtual_domains/stairs_and_cliffs.dmm b/_maps/virtual_domains/stairs_and_cliffs.dmm
new file mode 100644
index 000000000000..82e15fcc0909
--- /dev/null
+++ b/_maps/virtual_domains/stairs_and_cliffs.dmm
@@ -0,0 +1,6056 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"be" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/cliff/snowrock/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"cu" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"cJ" = (
+/obj/structure/chair/sofa/bench,
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"dR" = (
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"en" = (
+/obj/item/clothing/under/color/grey,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"eB" = (
+/obj/structure/flora/rock/icy/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"gB" = (
+/obj/structure/railing/corner,
+/turf/open/cliff/snowrock/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"hc" = (
+/obj/structure/railing/corner/end{
+ dir = 8
+ },
+/obj/structure/railing/corner/end/flip{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"hE" = (
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"jK" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/cliff/snowrock/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"kc" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"km" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"kK" = (
+/obj/structure/flora/tree/pine/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"mx" = (
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"nj" = (
+/obj/structure/chair/sofa/bench/left,
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"no" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"pl" = (
+/obj/structure/bonfire/prelit,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"pL" = (
+/turf/open/lava/plasma/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"qc" = (
+/turf/open/misc/ice,
+/area/icemoon/underground/explored/virtual_domain)
+"sa" = (
+/obj/structure/flora/grass/green/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"sw" = (
+/obj/structure/flora/rock/pile/icy/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"sM" = (
+/turf/open/cliff/snowrock/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"uJ" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"vz" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"xB" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"yo" = (
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"yJ" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/structure/railing,
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"yL" = (
+/obj/structure/chair/sofa/bench/right,
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"zn" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"Am" = (
+/turf/closed/indestructible/binary,
+/area/icemoon/underground/explored/virtual_domain)
+"AI" = (
+/obj/structure/flora/grass/green/style_random,
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"BV" = (
+/obj/effect/decal/remains/plasma,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"Dz" = (
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/obj/structure/railing/corner/end/flip{
+ dir = 4
+ },
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"DB" = (
+/obj/structure/flora/rock/icy/style_random,
+/obj/structure/flora/rock/pile/icy/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"DY" = (
+/obj/structure/flora/rock/icy/style_random,
+/obj/structure/flora/grass/green/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"Eh" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/cliff/snowrock/virtual_domain,
+/area/icemoon/underground/explored/virtual_domain)
+"Gn" = (
+/obj/structure/flora/rock/pile/icy/style_random,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"GX" = (
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"HU" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"Kl" = (
+/obj/effect/decal/remains/plasma,
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"KA" = (
+/obj/structure/statue/snow/snowman{
+ name = "Norm";
+ desc = "Norm has seen many a man roll down these cliffs, some more stubborn than others. Its usually the stubborn ones who stop getting back up."
+ },
+/obj/item/pickaxe/mini,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"Lw" = (
+/obj/structure/flora/rock/pile/icy/style_random,
+/obj/structure/flora/grass/green/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"MP" = (
+/obj/structure/railing/corner/end/flip{
+ dir = 4
+ },
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"MT" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"Nv" = (
+/turf/open/floor/iron/stairs,
+/area/icemoon/underground/explored/virtual_domain)
+"NM" = (
+/obj/structure/railing/corner/end/flip{
+ dir = 8
+ },
+/obj/structure/railing/corner/end{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"Pl" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/wood,
+/area/icemoon/underground/explored/virtual_domain)
+"Qv" = (
+/turf/closed/indestructible/rock/snow/ice,
+/area/icemoon/underground/explored/virtual_domain)
+"RD" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/icemoon/underground/explored/virtual_domain)
+"Tz" = (
+/obj/item/pickaxe/mini,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"Ug" = (
+/obj/structure/flora/rock/icy/style_random,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"VW" = (
+/obj/structure/closet/crate/secure/bitrunning/encrypted,
+/turf/open/floor/plating/snowed/smoothed,
+/area/icemoon/underground/explored/virtual_domain)
+"YR" = (
+/obj/structure/flora/tree/pine/style_random,
+/obj/structure/flora/grass/green/style_random,
+/turf/open/misc/asteroid/snow,
+/area/icemoon/underground/explored/virtual_domain)
+"YT" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+RD
+"}
+(2,1,1) = {"
+Am
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(3,1,1) = {"
+Am
+Qv
+Qv
+Qv
+Qv
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(4,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(5,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(6,1,1) = {"
+Am
+Qv
+Qv
+kK
+sw
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(7,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(8,1,1) = {"
+Am
+Qv
+Qv
+eB
+sw
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+Qv
+Qv
+Qv
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(9,1,1) = {"
+Am
+Qv
+Qv
+dR
+eB
+dR
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(10,1,1) = {"
+Am
+Qv
+dR
+sw
+eB
+eB
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(11,1,1) = {"
+Am
+Qv
+dR
+eB
+sw
+sa
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pl
+dR
+sw
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(12,1,1) = {"
+Am
+Qv
+dR
+dR
+sw
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+Nv
+Nv
+Nv
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(13,1,1) = {"
+Am
+Qv
+dR
+sa
+sw
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+dR
+sM
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(14,1,1) = {"
+Am
+Qv
+dR
+dR
+dR
+dR
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(15,1,1) = {"
+Am
+Qv
+sw
+sa
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(16,1,1) = {"
+Am
+Qv
+dR
+sa
+sa
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pl
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+GX
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(17,1,1) = {"
+Am
+Qv
+dR
+sa
+sa
+dR
+yo
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+Nv
+Nv
+Nv
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+dR
+dR
+pL
+pL
+pL
+Qv
+Qv
+Qv
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(18,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+yo
+yo
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sa
+qc
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+sa
+pL
+pL
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+en
+dR
+dR
+pL
+pL
+Qv
+Qv
+Qv
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(19,1,1) = {"
+Am
+Qv
+Qv
+kK
+sa
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sw
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sw
+BV
+pL
+sM
+sM
+sM
+sM
+sM
+sM
+eB
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+GX
+sw
+dR
+dR
+pL
+pL
+pL
+pL
+Qv
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(20,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+kK
+GX
+pL
+pL
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(21,1,1) = {"
+Am
+Qv
+Qv
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pL
+pL
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(22,1,1) = {"
+Am
+Qv
+Qv
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(23,1,1) = {"
+Am
+Qv
+Qv
+Qv
+sa
+qc
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+DB
+kc
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(24,1,1) = {"
+Am
+Qv
+Qv
+sw
+eB
+qc
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+Ug
+eB
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(25,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+sa
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+Nv
+Nv
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+Ug
+sw
+dR
+dR
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(26,1,1) = {"
+Am
+Qv
+Qv
+dR
+yo
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+qc
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+Ug
+sw
+dR
+dR
+dR
+sa
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Am
+"}
+(27,1,1) = {"
+Am
+Qv
+Qv
+dR
+yo
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+eB
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+dR
+kK
+dR
+dR
+dR
+sw
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Am
+"}
+(28,1,1) = {"
+Am
+Qv
+Qv
+sa
+yo
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+kK
+sa
+dR
+qc
+qc
+sa
+sa
+dR
+kK
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Am
+"}
+(29,1,1) = {"
+Am
+Qv
+Qv
+sa
+yo
+yo
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+MP
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+qc
+qc
+qc
+sa
+sa
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Am
+"}
+(30,1,1) = {"
+Am
+Qv
+Qv
+qc
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+no
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+yL
+dR
+dR
+dR
+kK
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Am
+"}
+(31,1,1) = {"
+Am
+Qv
+pl
+qc
+dR
+yo
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+Nv
+Nv
+Nv
+Nv
+qc
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+mx
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+cJ
+yo
+dR
+dR
+dR
+dR
+dR
+kK
+sa
+sa
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+Qv
+Am
+"}
+(32,1,1) = {"
+Am
+Qv
+sM
+sM
+zn
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+sM
+sM
+sM
+cu
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+nj
+yo
+dR
+kK
+dR
+dR
+dR
+kK
+sa
+sa
+dR
+dR
+dR
+dR
+kK
+dR
+dR
+Qv
+Qv
+Am
+"}
+(33,1,1) = {"
+Am
+Qv
+sM
+sM
+hE
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+NM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+Nv
+Nv
+Nv
+Nv
+Nv
+dR
+dR
+sw
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+yo
+yo
+dR
+dR
+sa
+dR
+sw
+dR
+dR
+dR
+dR
+sa
+sa
+dR
+dR
+dR
+dR
+Qv
+Qv
+Am
+"}
+(34,1,1) = {"
+Am
+Qv
+sM
+sM
+hE
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+yo
+Nv
+Nv
+Nv
+Nv
+Nv
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+yo
+dR
+dR
+sa
+dR
+dR
+dR
+dR
+kK
+qc
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+Qv
+Am
+"}
+(35,1,1) = {"
+Am
+Qv
+sM
+sM
+hE
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+qc
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+eB
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+yo
+yo
+dR
+dR
+dR
+qc
+qc
+qc
+qc
+qc
+dR
+YT
+YT
+YT
+YT
+YT
+vz
+Qv
+Am
+"}
+(36,1,1) = {"
+Am
+Qv
+dR
+sM
+HU
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+kK
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pl
+dR
+yo
+dR
+dR
+dR
+dR
+dR
+qc
+qc
+qc
+dR
+YT
+YT
+YT
+YT
+YT
+YT
+Qv
+Am
+"}
+(37,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+eB
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+yo
+dR
+yo
+dR
+dR
+dR
+dR
+sw
+qc
+qc
+dR
+dR
+YT
+YT
+YT
+YT
+YT
+YT
+Qv
+Am
+"}
+(38,1,1) = {"
+Am
+Qv
+Qv
+dR
+yo
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+dR
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+yo
+AI
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+yo
+yo
+yo
+yo
+yo
+yo
+dR
+dR
+yo
+dR
+yo
+yo
+YT
+YT
+YT
+YT
+YT
+YT
+Qv
+Am
+"}
+(39,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+dR
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+pl
+dR
+dR
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+yo
+AI
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+yo
+yo
+yo
+yo
+dR
+yo
+yo
+yo
+yo
+yo
+yo
+yo
+YT
+YT
+YT
+YT
+YT
+YT
+Qv
+Am
+"}
+(40,1,1) = {"
+Am
+Qv
+Qv
+dR
+yo
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+dR
+dR
+Nv
+Nv
+Nv
+dR
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+yo
+yo
+dR
+dR
+dR
+yo
+dR
+yo
+yo
+yo
+dR
+yo
+YT
+YT
+YT
+YT
+YT
+YT
+Qv
+Am
+"}
+(41,1,1) = {"
+Am
+Qv
+dR
+sa
+yo
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+qc
+Tz
+Nv
+Nv
+Nv
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sw
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+YT
+YT
+YT
+YT
+YT
+uJ
+Qv
+Am
+"}
+(42,1,1) = {"
+Am
+Qv
+dR
+AI
+yo
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pl
+KA
+dR
+dR
+dR
+sa
+sa
+dR
+qc
+qc
+qc
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+Qv
+Am
+"}
+(43,1,1) = {"
+Am
+Qv
+yo
+yo
+VW
+yo
+yo
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+dR
+dR
+kK
+sa
+sa
+dR
+dR
+qc
+qc
+qc
+dR
+sa
+sa
+dR
+dR
+dR
+Qv
+Am
+"}
+(44,1,1) = {"
+Am
+Qv
+dR
+yo
+yo
+yo
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+dR
+sa
+dR
+dR
+dR
+dR
+kK
+qc
+qc
+qc
+dR
+sa
+sa
+dR
+dR
+dR
+Qv
+Am
+"}
+(45,1,1) = {"
+Am
+Qv
+dR
+dR
+yo
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+dR
+dR
+dR
+kK
+dR
+dR
+dR
+dR
+Qv
+dR
+Qv
+dR
+kK
+dR
+Qv
+Qv
+Am
+"}
+(46,1,1) = {"
+Am
+Qv
+Qv
+sa
+dR
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+qc
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+kK
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+Qv
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Qv
+Am
+"}
+(47,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+YR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+qc
+Nv
+Nv
+Nv
+sM
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sM
+Nv
+Nv
+Nv
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+pL
+dR
+dR
+dR
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Qv
+Am
+"}
+(48,1,1) = {"
+Am
+Qv
+Qv
+dR
+kK
+sa
+YR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sw
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+Nv
+Nv
+Nv
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+dR
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+dR
+sw
+dR
+dR
+dR
+Qv
+Am
+"}
+(49,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+YR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+eB
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+dR
+dR
+dR
+dR
+dR
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+dR
+sw
+dR
+dR
+Qv
+Am
+"}
+(50,1,1) = {"
+Am
+Qv
+Qv
+sa
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pl
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pL
+pL
+dR
+dR
+sa
+dR
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+sw
+eB
+dR
+dR
+Qv
+Am
+"}
+(51,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+sa
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pL
+dR
+dR
+kK
+dR
+dR
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+dR
+dR
+sa
+Qv
+Am
+"}
+(52,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+pL
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+pL
+dR
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Am
+"}
+(53,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+YR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+Dz
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+dR
+sa
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+dR
+dR
+Qv
+Am
+"}
+(54,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+jK
+yJ
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+sM
+sM
+GX
+dR
+dR
+pL
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sw
+sa
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+dR
+Qv
+Qv
+Am
+"}
+(55,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+MT
+be
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+dR
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+dR
+sw
+eB
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Am
+"}
+(56,1,1) = {"
+Am
+Qv
+Qv
+dR
+eB
+sw
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+gB
+xB
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+km
+sw
+eB
+eB
+sw
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Am
+"}
+(57,1,1) = {"
+Am
+Qv
+Qv
+dR
+Lw
+sa
+sa
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+Pl
+Eh
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+dR
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+eB
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+eB
+eB
+dR
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Am
+"}
+(58,1,1) = {"
+Am
+Qv
+Qv
+dR
+sa
+sa
+YR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+hc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+Gn
+eB
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sw
+sM
+sM
+sM
+sM
+sM
+pL
+GX
+dR
+pL
+dR
+dR
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+dR
+sa
+dR
+dR
+Qv
+Am
+"}
+(59,1,1) = {"
+Am
+Qv
+Qv
+sa
+YR
+sa
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+qc
+sM
+sM
+sM
+dR
+sM
+sM
+Nv
+Nv
+Nv
+dR
+sM
+sM
+sM
+sM
+sM
+kK
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+pL
+dR
+dR
+pL
+dR
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Am
+"}
+(60,1,1) = {"
+Am
+Qv
+Qv
+dR
+dR
+sw
+kK
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+dR
+dR
+Nv
+Nv
+Nv
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+kK
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+pL
+GX
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Am
+"}
+(61,1,1) = {"
+Am
+Qv
+dR
+kK
+sw
+eB
+eB
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(62,1,1) = {"
+Am
+Qv
+dR
+sa
+DY
+eB
+eB
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(63,1,1) = {"
+Am
+Qv
+dR
+Lw
+Lw
+dR
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+eB
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+dR
+Qv
+Qv
+dR
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(64,1,1) = {"
+Am
+Qv
+dR
+sa
+sa
+sw
+kK
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+eB
+dR
+dR
+dR
+sa
+dR
+sw
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(65,1,1) = {"
+Am
+Qv
+dR
+dR
+kK
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+Nv
+Nv
+Nv
+Nv
+Nv
+Nv
+dR
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+sw
+sa
+sa
+dR
+sw
+sw
+eB
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(66,1,1) = {"
+Am
+Qv
+dR
+kK
+sa
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+sa
+dR
+sM
+sM
+sM
+sM
+qc
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sw
+dR
+Nv
+Nv
+Nv
+Nv
+Nv
+sM
+sM
+sM
+Nv
+Nv
+dR
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+dR
+sa
+sa
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(67,1,1) = {"
+Am
+Qv
+dR
+dR
+YR
+DY
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sa
+dR
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+sa
+dR
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(68,1,1) = {"
+Am
+Qv
+dR
+dR
+Lw
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+sa
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+dR
+dR
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(69,1,1) = {"
+Am
+Qv
+Qv
+dR
+eB
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+dR
+Nv
+Nv
+Nv
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(70,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+eB
+sw
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+kK
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+Nv
+dR
+dR
+dR
+dR
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(71,1,1) = {"
+Am
+Qv
+Qv
+dR
+sa
+sa
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+dR
+qc
+dR
+pl
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+Kl
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(72,1,1) = {"
+Am
+Qv
+Qv
+sa
+sa
+Lw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(73,1,1) = {"
+Am
+Qv
+Qv
+Qv
+dR
+sw
+dR
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+sM
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+pL
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(74,1,1) = {"
+Am
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Am
+"}
+(75,1,1) = {"
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+Am
+"}
diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm
new file mode 100644
index 000000000000..770f0967404c
--- /dev/null
+++ b/_maps/virtual_domains/syndicate_assault.dmm
@@ -0,0 +1,4265 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aq" = (
+/obj/item/storage/backpack/duffelbag/syndie/surgery,
+/obj/structure/table/reinforced,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"aw" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"aN" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/iron/fifty,
+/obj/item/stack/sheet/plasteel/twenty,
+/obj/item/stack/sheet/mineral/plastitanium{
+ amount = 50
+ },
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"aO" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"aZ" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/mob/living/basic/syndicate/ranged/shotgun/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bh" = (
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bo" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bD" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bG" = (
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cc" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/effect/spawner/random/clothing/costume,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cj" = (
+/obj/structure/transit_tube/crossing,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ct" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cw" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/clothing/under/syndicate/combat,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/gas/syndicate,
+/obj/item/clothing/under/syndicate/skirt,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cy" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cB" = (
+/obj/machinery/camera/xray{
+ c_tag = "Medbay";
+ dir = 6;
+ network = list("fsci");
+ screen_loc = ""
+ },
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cR" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cZ" = (
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/automatic/l6_saw/unrestricted,
+/obj/item/ammo_box/magazine/m7mm,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"da" = (
+/obj/machinery/stasis,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"dd" = (
+/obj/structure/sign/warning/vacuum/external,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"di" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/item/paper/fluff/ruins/forgottenship/powerissues,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"dw" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"dz" = (
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"dU" = (
+/obj/structure/cable,
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/external/ruin{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"eB" = (
+/obj/machinery/camera/xray{
+ c_tag = "Cargo pod";
+ dir = 9;
+ network = list("fsci");
+ screen_loc = ""
+ },
+/obj/structure/closet,
+/obj/item/clothing/under/syndicate/tacticool,
+/obj/item/clothing/under/syndicate/tacticool,
+/obj/item/clothing/under/syndicate/tacticool,
+/obj/item/card/id/advanced/black/syndicate_command/crew_id,
+/obj/item/card/id/advanced/black/syndicate_command/crew_id,
+/obj/item/card/id/advanced/black/syndicate_command/crew_id,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"fd" = (
+/obj/structure/transit_tube/crossing,
+/turf/open/space/basic,
+/area/space)
+"fG" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"fJ" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"fM" = (
+/obj/machinery/computer/crew/syndie{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"fV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"gD" = (
+/obj/effect/mob_spawn/ghost_role/human/syndicatespace,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"hg" = (
+/obj/structure/window/reinforced/plasma/plastitanium,
+/obj/machinery/door/poddoor{
+ id = "fslockdown";
+ name = "Ship Blast Door";
+ state_open = 1
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"hy" = (
+/obj/structure/table/reinforced,
+/obj/item/paper/fluff/ruins/forgottenship/missionobj,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"hA" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"hD" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ip" = (
+/mob/living/basic/syndicate/melee/sword/space/stormtrooper,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iB" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iL" = (
+/obj/structure/sign/departments/cargo,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iU" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/melee/energy/sword/saber/red,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iW" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "fslockdown";
+ name = "Window shutters";
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iX" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/mob/living/basic/syndicate/ranged/smg/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ja" = (
+/obj/machinery/door/window{
+ dir = 1;
+ name = "Spare Equipment";
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"jl" = (
+/obj/structure/bodycontainer/crematorium{
+ id = "fscremate"
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"jA" = (
+/obj/structure/cable,
+/mob/living/basic/syndicate/melee/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"jJ" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/iron/dark/side{
+ dir = 1
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"kh" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ki" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/interrogation{
+ name = "Cameras monitor";
+ network = list("fsci");
+ req_access = list("syndicate");
+ screen_loc = ""
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"kI" = (
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"kJ" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"li" = (
+/obj/structure/transit_tube/station/dispenser/reverse{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ln" = (
+/obj/machinery/turretid{
+ control_area = "/area/ruin/space/has_grav/syndicate_forgotten_ship";
+ enabled = 0;
+ icon_state = "control_kill";
+ lethal = 1;
+ name = "Ship turret control panel";
+ pixel_y = 32;
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"lo" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/external/ruin{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"lN" = (
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"mo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"mD" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 10
+ },
+/obj/item/wrench,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"nk" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/mapping_helpers/apc/syndicate_access,
+/obj/structure/cable,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"nB" = (
+/turf/closed/mineral/random,
+/area/space)
+"nG" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"nO" = (
+/obj/machinery/mineral/ore_redemption{
+ name = "Syndicate ore redemption machine";
+ ore_multiplier = 4;
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"nU" = (
+/obj/structure/sign/poster/contraband/syndicate_pistol,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"oM" = (
+/obj/structure/cable,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"oZ" = (
+/mob/living/basic/syndicate/melee/sword/space/stormtrooper,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pl" = (
+/obj/machinery/atmospherics/components/tank/air{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pz" = (
+/obj/machinery/computer/security{
+ desc = "Used to access interrogation room camera.";
+ dir = 8;
+ name = "Ship cameras console";
+ network = list("fsc","fsci");
+ screen_loc = ""
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pH" = (
+/obj/structure/table/reinforced,
+/obj/item/toy/plush/nukeplushie,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pM" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pS" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"pU" = (
+/obj/machinery/shower/directional/north,
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"qf" = (
+/obj/structure/table/optable,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"qx" = (
+/turf/open/space/basic,
+/area/space)
+"qU" = (
+/obj/structure/sign/poster/contraband/c20r,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"qY" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"rm" = (
+/obj/machinery/button/crematorium{
+ id = "fscremate";
+ pixel_x = -32
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ru" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"rH" = (
+/obj/machinery/airalarm/directional/north,
+/obj/effect/mapping_helpers/airalarm/syndicate_access,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"rM" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/effect/spawner/random/contraband/armory,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"rP" = (
+/obj/effect/mob_spawn/ghost_role/human/syndicatespace,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sg" = (
+/obj/machinery/ore_silo,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sq" = (
+/obj/machinery/door/window{
+ name = "Control Room";
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sH" = (
+/obj/structure/displaycase{
+ req_access = list("syndicate");
+ start_showpiece_type = /obj/item/gun/ballistic/automatic/pistol/deagle/camo
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sK" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/stack/sheet/mineral/titanium{
+ amount = 40
+ },
+/obj/item/stack/sheet/mineral/uranium{
+ amount = 15
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sL" = (
+/obj/structure/chair/comfy,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"sM" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"tv" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "fscaproom";
+ name = "Room shutters control";
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"tI" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"uP" = (
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"vp" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"vD" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"vK" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"vU" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"wb" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2,
+/obj/machinery/portable_atmospherics/scrubber{
+ anchored = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"we" = (
+/turf/closed/mineral/random/high_chance,
+/area/space)
+"wK" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"wL" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/medkit/regular,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"xJ" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/ammo_box/c9mm,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"xZ" = (
+/obj/machinery/computer/camera_advanced/syndie{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yl" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Captain's Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/machinery/door/poddoor{
+ id = "fscaproom";
+ name = "Captain's Blast Door";
+ state_open = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yD" = (
+/mob/living/basic/syndicate/ranged/smg/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yR" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yT" = (
+/obj/item/ai_module/core/full/cybersun,
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yV" = (
+/obj/structure/table/reinforced,
+/obj/item/assembly/prox_sensor,
+/obj/item/assembly/prox_sensor,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"yZ" = (
+/turf/closed/mineral,
+/area/space)
+"zi" = (
+/obj/machinery/vending/cigarette/syndicate,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"zt" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Aa" = (
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"AN" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/mob/living/basic/syndicate/ranged/smg/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Bm" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"BK" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable,
+/turf/open/space/basic,
+/area/space)
+"BN" = (
+/obj/structure/transit_tube/crossing,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Cf" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Ci" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/crowbar/red,
+/obj/item/ammo_box/magazine/m9mm_aps,
+/obj/item/ammo_box/magazine/m9mm_aps,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Cn" = (
+/obj/machinery/camera/xray/directional/east{
+ c_tag = "Conference room";
+ network = list("fsc");
+ screen_loc = ""
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"CK" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/mob/living/basic/syndicate/ranged/smg/pilot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"CR" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/coin/antagtoken,
+/obj/item/dnainjector/thermal,
+/obj/item/storage/box/firingpins/syndicate,
+/obj/item/storage/box/firingpins/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"De" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Dj" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/magazine/smgm45,
+/obj/item/ammo_box/magazine/smgm45,
+/obj/item/ammo_box/magazine/smgm45,
+/obj/item/gun/ballistic/automatic/c20r/unrestricted,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"DA" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"EB" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"EX" = (
+/mob/living/basic/syndicate/ranged/shotgun/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Fp" = (
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"FN" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Gn" = (
+/obj/structure/chair/comfy{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Gs" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"GB" = (
+/obj/structure/cable,
+/obj/machinery/door/airlock/external/ruin{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"GZ" = (
+/obj/machinery/door/airlock/external/ruin{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Hq" = (
+/turf/closed/indestructible/binary,
+/area/space)
+"HU" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Bridge"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Ia" = (
+/obj/effect/mob_spawn/ghost_role/human/syndicatespace/captain,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Id" = (
+/obj/machinery/power/shuttle_engine/huge{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"If" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Ig" = (
+/obj/machinery/porta_turret/syndicate/energy{
+ dir = 4;
+ name = "Syndicate Ship Turret";
+ on = 0;
+ shot_delay = 10
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Im" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/c9mm,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Io" = (
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"IC" = (
+/obj/structure/table/reinforced,
+/obj/item/paper,
+/obj/item/pen,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"IH" = (
+/obj/machinery/door/airlock/external/ruin{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/structure/cable,
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"IV" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Syndicate Ship Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Jg" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Jz" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"JA" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"JN" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"JP" = (
+/obj/structure/sink/directional/south,
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Kz" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Lk" = (
+/obj/structure/transit_tube/crossing,
+/turf/closed/mineral/random,
+/area/space)
+"Lo" = (
+/obj/structure/filingcabinet,
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Syndicate Interior Door";
+ req_access = list("syndicate")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Mc" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/crowbar/red,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Mm" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/clothing/head/hats/hos/beret/syndicate,
+/obj/item/clothing/suit/armor/vest/capcarapace/syndicate,
+/obj/item/clothing/mask/gas/syndicate,
+/obj/item/clothing/under/syndicate,
+/obj/item/clothing/under/syndicate/skirt,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/shoes/combat,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"MR" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Nm" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Nr" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/stack/sheet/mineral/gold{
+ amount = 30
+ },
+/obj/item/stack/sheet/mineral/silver{
+ amount = 30
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Nt" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Of" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/disk/surgery/forgottenship,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Ox" = (
+/obj/machinery/atmospherics/components/unary/vent_pump,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"OH" = (
+/obj/structure/cable,
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/syndicate,
+/obj/item/storage/toolbox/syndicate,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"OI" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"PR" = (
+/obj/machinery/door/password/voice/sfc{
+ password = null
+ },
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/grunge{
+ desc = "Vault airlock preventing air from going out.";
+ name = "Syndicate Vault Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Qg" = (
+/obj/machinery/suit_storage_unit/syndicate{
+ helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black;
+ suit_type = /obj/item/clothing/suit/space/syndicate/black
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Qi" = (
+/obj/item/stack/sheet/mineral/uranium{
+ amount = 15
+ },
+/obj/structure/cable,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"QF" = (
+/obj/structure/table/reinforced,
+/obj/item/dualsaber/green,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"QG" = (
+/obj/structure/tank_dispenser/oxygen,
+/turf/closed/mineral/random,
+/area/space)
+"QX" = (
+/mob/living/basic/syndicate/ranged/space/stormtrooper,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Ra" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"RQ" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"RU" = (
+/obj/machinery/suit_storage_unit/syndicate,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Sc" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Sd" = (
+/obj/structure/closet/syndicate{
+ anchored = 1;
+ desc = "A basic closet for all your villainous needs.";
+ locked = 1;
+ name = "Closet";
+ req_access = list("syndicate");
+ secure = 1
+ },
+/obj/item/crowbar/red,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Sq" = (
+/obj/machinery/power/smes,
+/obj/structure/cable,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Sv" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Sz" = (
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"SX" = (
+/obj/machinery/vending/medical/syndicate_access/cybersun,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"TB" = (
+/turf/closed/indestructible/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"UQ" = (
+/obj/structure/sign/poster/contraband/syndicate_recruitment,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Vk" = (
+/obj/machinery/porta_turret/syndicate/energy{
+ dir = 4;
+ name = "Syndicate Ship Turret";
+ on = 0;
+ shot_delay = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Vq" = (
+/obj/structure/transit_tube/station/dispenser/reverse{
+ dir = 8
+ },
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Wd" = (
+/obj/structure/sign/poster/contraband/tools,
+/turf/closed/wall/r_wall/syndicate,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Wy" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/stack/ore/plasma{
+ amount = 19
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"WR" = (
+/obj/machinery/power/port_gen/pacman/super{
+ anchored = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Xp" = (
+/turf/open/space/basic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"XS" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yb" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yi" = (
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yj" = (
+/obj/structure/closet/crate/secure/gear{
+ req_access = list("syndicate")
+ },
+/obj/item/stack/ore/diamond{
+ amount = 3
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yk" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Captain's Room"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/machinery/door/poddoor{
+ id = "fscaproom";
+ name = "Captain's Blast Door";
+ state_open = 1
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yr" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Yu" = (
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"YV" = (
+/obj/structure/sink/directional/south,
+/obj/structure/mirror/directional/west,
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Za" = (
+/obj/machinery/computer/operating,
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Zb" = (
+/turf/open/floor/plastic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ZA" = (
+/obj/machinery/power/shuttle_engine/propulsion{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+
+(1,1,1) = {"
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+"}
+(2,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(3,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(4,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(5,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(6,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(7,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(8,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(9,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(10,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Xp
+Xp
+Id
+qx
+qx
+Xp
+Xp
+Id
+qx
+qx
+Xp
+Xp
+Id
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(11,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Xp
+Xp
+Xp
+qx
+qx
+Xp
+Xp
+Xp
+qx
+qx
+Xp
+Xp
+Xp
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(12,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ZA
+Xp
+Xp
+Xp
+ZA
+ZA
+Xp
+Xp
+Xp
+ZA
+ZA
+Xp
+Xp
+Xp
+ZA
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(13,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(14,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Vk
+ru
+Sv
+vD
+uP
+uP
+Yj
+vD
+uP
+Wy
+DA
+uP
+QX
+vD
+cc
+ru
+Vk
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(15,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+Io
+uP
+uP
+QX
+lN
+uP
+uP
+uP
+uP
+uP
+lN
+uP
+uP
+uP
+uP
+hA
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(16,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+IV
+ru
+ru
+ru
+IV
+ru
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(17,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+vp
+ru
+Ia
+Ci
+ru
+Sq
+di
+WR
+ru
+yV
+Gn
+uP
+Mc
+uP
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+we
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(18,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+vp
+Jg
+ru
+bh
+cR
+ru
+Qi
+sz
+Kz
+ru
+Mc
+gD
+yD
+uP
+rP
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+nB
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(19,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+sH
+Kz
+yl
+oZ
+bh
+Yk
+pS
+RQ
+Jz
+vK
+uP
+uP
+uP
+sL
+hy
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+TB
+TB
+TB
+TB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(20,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+CR
+Kz
+ru
+bh
+bh
+Yk
+pM
+zt
+pM
+vK
+uP
+uP
+EX
+sL
+Im
+ru
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+TB
+TB
+Yb
+Yb
+TB
+Bm
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(21,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+yT
+Kz
+ru
+Yu
+IC
+ru
+mD
+JN
+MR
+ru
+Sd
+gD
+uP
+uP
+gD
+ru
+qx
+qx
+qx
+qx
+nB
+QG
+nB
+TB
+aN
+bG
+bG
+sK
+TB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(22,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Ig
+ru
+Lo
+ru
+tv
+ki
+nU
+wb
+EB
+pl
+ru
+hD
+Gn
+uP
+Mc
+ru
+Ig
+qx
+qx
+qx
+qx
+nB
+we
+nB
+TB
+iU
+bG
+bG
+Nr
+TB
+nB
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(23,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+cy
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+TB
+Nm
+bG
+bG
+Of
+TB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+kJ
+qx
+Hq
+"}
+(24,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+Za
+Yi
+Zb
+SX
+ru
+uP
+yR
+uP
+ru
+YV
+Sz
+jJ
+fG
+ru
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+nB
+TB
+TB
+PR
+TB
+TB
+TB
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+sM
+qx
+Hq
+"}
+(25,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+qf
+Zb
+ip
+da
+ru
+Ra
+Sc
+uP
+ru
+JP
+qY
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+we
+ru
+ru
+uP
+sg
+ru
+ru
+nB
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+sM
+qx
+Hq
+"}
+(26,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+aq
+cB
+Zb
+Zb
+De
+Ox
+Gs
+uP
+wK
+Sz
+Sz
+jJ
+pU
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+qU
+Fp
+uP
+uP
+li
+cj
+Lk
+Lk
+fd
+fd
+fd
+fd
+fd
+fd
+fd
+BN
+Vq
+sM
+sM
+sM
+sM
+qx
+Hq
+"}
+(27,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Vk
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+kh
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+Vk
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+ru
+eB
+uP
+nO
+uP
+ru
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+sM
+qx
+Hq
+"}
+(28,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+jl
+rm
+ru
+nk
+oM
+oM
+oM
+yR
+oM
+oM
+oM
+uP
+ru
+uP
+Qg
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+ru
+wL
+oM
+uP
+dw
+ru
+yZ
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+sM
+qx
+Hq
+"}
+(29,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+uP
+dw
+ru
+rH
+uP
+AN
+JA
+iX
+JA
+JA
+oM
+uP
+ru
+fJ
+Qg
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Wd
+OH
+oM
+uP
+RU
+ru
+we
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+sM
+sM
+sM
+sM
+sM
+Yr
+qx
+Hq
+"}
+(30,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+lo
+uP
+uP
+GZ
+uP
+Aa
+hD
+yJ
+bD
+hD
+hD
+OI
+oM
+GB
+jA
+oM
+dU
+BK
+BK
+BK
+BK
+BK
+BK
+BK
+IH
+oM
+oM
+uP
+RU
+ru
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(31,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+uP
+uP
+dd
+uP
+Aa
+hD
+Nt
+aw
+hD
+hD
+bo
+uP
+dd
+uP
+Qg
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+iL
+cZ
+uP
+uP
+RU
+ru
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(32,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+aO
+uP
+ru
+XS
+uP
+uP
+hD
+aZ
+hD
+uP
+uP
+Cf
+ru
+uP
+Fp
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+ru
+ru
+Dj
+QF
+ru
+ru
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(33,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Ig
+ru
+hD
+ru
+zi
+uP
+uP
+uP
+FN
+Cn
+uP
+uP
+uP
+ru
+hD
+ru
+Ig
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+nB
+ru
+ru
+ru
+ru
+nB
+nB
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(34,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+HU
+ru
+ru
+ru
+ru
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+nB
+nB
+nB
+nB
+we
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(35,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+UQ
+rM
+xJ
+Kz
+Kz
+tI
+Kz
+Kz
+ct
+xJ
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+nB
+nB
+nB
+nB
+nB
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(36,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+ru
+Kz
+Kz
+Kz
+Kz
+tI
+Kz
+Kz
+Kz
+Kz
+ru
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(37,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ln
+Kz
+ru
+iB
+Kz
+Kz
+fV
+If
+Kz
+Kz
+Kz
+nG
+ru
+cw
+cw
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(38,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+Kz
+dz
+sq
+Kz
+CK
+Kz
+vU
+mo
+vU
+Kz
+CK
+Kz
+ja
+Kz
+Jg
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(39,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Ig
+ru
+Kz
+ru
+Kz
+pz
+Kz
+xZ
+Kz
+fM
+Kz
+kI
+Kz
+ru
+Mm
+ru
+Ig
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(40,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+ru
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+ru
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(41,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+ru
+ru
+vp
+vp
+pH
+vp
+iW
+vp
+vp
+vp
+vp
+ru
+ru
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(42,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Ig
+hg
+hg
+hg
+hg
+hg
+hg
+hg
+hg
+hg
+Ig
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(43,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(44,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(45,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(46,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+we
+we
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(47,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+we
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(48,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(49,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(50,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(51,1,1) = {"
+Hq
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+qx
+Hq
+"}
+(52,1,1) = {"
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+Hq
+"}
diff --git a/_maps/virtual_domains/test_only.dmm b/_maps/virtual_domains/test_only.dmm
new file mode 100644
index 000000000000..22b647188b6e
--- /dev/null
+++ b/_maps/virtual_domains/test_only.dmm
@@ -0,0 +1,52 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/floor,
+/area/virtual_domain/powered)
+"D" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/floor,
+/area/virtual_domain/powered)
+"I" = (
+/mob/living/basic/pet/dog/corgi,
+/turf/open/floor,
+/area/virtual_domain/powered)
+"U" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/open/floor,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+I
+a
+a
+a
+U
+"}
+(2,1,1) = {"
+D
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/virtual_domains/vaporwave.dmm b/_maps/virtual_domains/vaporwave.dmm
new file mode 100644
index 000000000000..984bbbe29148
--- /dev/null
+++ b/_maps/virtual_domains/vaporwave.dmm
@@ -0,0 +1,1017 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aA" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bs" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"bF" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cz" = (
+/turf/open/misc/asteroid/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"cL" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/cup/glass/drinkingglass{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass,
+/obj/item/reagent_containers/cup/glass/drinkingglass{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"df" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless{
+ icon_state = "stairs-l"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"eF" = (
+/turf/closed/indestructible/binary,
+/area/space)
+"fx" = (
+/obj/item/statuebust,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"fQ" = (
+/obj/structure/flora/tree/palm,
+/turf/open/floor/holofloor/beach,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"gM" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/glasses/sunglasses/big{
+ name = "aesthetic sunglasses"
+ },
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"hN" = (
+/turf/open/floor/holofloor/beach,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"il" = (
+/obj/effect/turf_decal/sand,
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"iP" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"kj" = (
+/obj/structure/window/spawner/directional/east,
+/obj/structure/closet/crate/secure/bitrunning/encrypted,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ku" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"kF" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless{
+ icon_state = "stairs-r"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ll" = (
+/obj/structure/sign/poster/contraband/clown/directional/north,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"lu" = (
+/turf/closed/wall/rust,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"lB" = (
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"lI" = (
+/obj/structure/table/reinforced,
+/obj/machinery/chem_dispenser/drinks/beer/fullupgrade,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"qm" = (
+/obj/structure/flora/tree/palm,
+/obj/machinery/light/directional/west,
+/turf/open/floor/holofloor/beach,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"qu" = (
+/turf/open/floor/holofloor/beach/water,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"rn" = (
+/obj/structure/statue/sandstone/venus{
+ anchored = 1;
+ dir = 4
+ },
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"xb" = (
+/obj/structure/chair/stool/directional/west,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"xp" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"xK" = (
+/turf/closed/wall,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ym" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space)
+"AX" = (
+/obj/effect/turf_decal/stripes/asteroid/line,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Cq" = (
+/obj/item/instrument/eguitar,
+/turf/open/floor/holofloor/beach,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"CR" = (
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Dk" = (
+/obj/structure/window/spawner/directional/east,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Es" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Fd" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/wall/rust,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Hf" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless{
+ icon_state = "recharge_floor_asteroid"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"HA" = (
+/turf/open/floor/holofloor/beach/coast,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"HV" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Jr" = (
+/obj/structure/window/spawner/directional/west,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"KO" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"KY" = (
+/obj/effect/turf_decal/sand,
+/turf/open/floor/iron/airless{
+ icon_state = "stairs-m"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"LG" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"LJ" = (
+/obj/structure/lattice,
+/turf/open/misc/asteroid/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"LP" = (
+/obj/structure/flora/tree/palm,
+/obj/machinery/light/directional/east,
+/turf/open/floor/holofloor/beach,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Nz" = (
+/obj/structure/window/spawner/directional/east,
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
+/obj/effect/spawner/random/entertainment/lighter,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"NT" = (
+/turf/open/space/basic,
+/area/space)
+"Qh" = (
+/obj/structure/closet/crate/bin,
+/turf/open/misc/asteroid/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Uy" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"UE" = (
+/obj/effect/turf_decal/sand,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"UV" = (
+/obj/structure/lattice,
+/turf/open/floor/plating/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Vc" = (
+/obj/structure/flora/tree/palm,
+/turf/open/misc/asteroid/airless,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"XJ" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/pod/dark,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Yo" = (
+/obj/structure/statue/sandstone/venus{
+ anchored = 1;
+ desc = "Ugh, this is merely an ugly amateurish replica of the other statue! The letters RIPGOAT are scribbled onto the base.";
+ dir = 8
+ },
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating{
+ initial_gas_mix = "TEMP=2.7"
+ },
+/area/ruin/space/has_grav/powered/virtual_domain)
+"YE" = (
+/mob/living/basic/butterfly,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"ZI" = (
+/obj/effect/spawner/random/structure/musician/piano/random_piano,
+/obj/structure/window/spawner/directional/west,
+/turf/open/floor/iron/vaporwave,
+/area/ruin/space/has_grav/powered/virtual_domain)
+
+(1,1,1) = {"
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+"}
+(2,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(3,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(4,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(5,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+cz
+LJ
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(6,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+cz
+cz
+LJ
+cz
+cz
+LJ
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(7,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+cz
+cz
+cz
+UV
+LJ
+cz
+UV
+cz
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(8,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+cz
+xK
+xK
+lu
+lu
+lu
+xK
+lu
+UE
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(9,1,1) = {"
+eF
+NT
+NT
+NT
+LJ
+Qh
+xK
+fQ
+hN
+qm
+HA
+qu
+xK
+aA
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(10,1,1) = {"
+eF
+NT
+NT
+NT
+LJ
+UV
+lu
+ZI
+Jr
+Jr
+Jr
+Jr
+xK
+bF
+Vc
+cz
+cz
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+ku
+Uy
+NT
+eF
+"}
+(11,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+cz
+xK
+xb
+CR
+CR
+fx
+CR
+xK
+Yo
+il
+UE
+cz
+NT
+NT
+NT
+ku
+iP
+iP
+iP
+ku
+ku
+NT
+eF
+"}
+(12,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+cz
+xK
+ll
+CR
+CR
+CR
+CR
+xK
+Hf
+df
+il
+cz
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+ku
+ku
+NT
+eF
+"}
+(13,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+LJ
+xK
+HV
+Es
+CR
+CR
+CR
+XJ
+bs
+KY
+bs
+il
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+ku
+ku
+NT
+eF
+"}
+(14,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+LJ
+lu
+xp
+gM
+CR
+CR
+cL
+xK
+Hf
+kF
+bs
+il
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+ku
+ku
+NT
+eF
+"}
+(15,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+LJ
+lu
+KO
+KO
+CR
+YE
+lI
+lu
+rn
+il
+UE
+UE
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+lB
+ku
+NT
+eF
+"}
+(16,1,1) = {"
+eF
+NT
+NT
+NT
+LJ
+UV
+xK
+kj
+Dk
+Dk
+Dk
+Nz
+xK
+AX
+Vc
+cz
+cz
+NT
+NT
+NT
+ku
+ku
+ku
+ku
+ku
+LG
+NT
+eF
+"}
+(17,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+cz
+lu
+fQ
+Cq
+LP
+HA
+qu
+lu
+aA
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(18,1,1) = {"
+eF
+NT
+NT
+NT
+cz
+cz
+xK
+xK
+lu
+xK
+lu
+lu
+Fd
+UE
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(19,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+cz
+cz
+cz
+UV
+LJ
+Qh
+UV
+cz
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(20,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+cz
+LJ
+cz
+cz
+LJ
+cz
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(21,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+ym
+cz
+cz
+cz
+cz
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(22,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(23,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(24,1,1) = {"
+eF
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+NT
+eF
+"}
+(25,1,1) = {"
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+eF
+"}
diff --git a/_maps/virtual_domains/wendigo.dmm b/_maps/virtual_domains/wendigo.dmm
new file mode 100644
index 000000000000..17bcb48d688b
--- /dev/null
+++ b/_maps/virtual_domains/wendigo.dmm
@@ -0,0 +1,1373 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"b" = (
+/turf/closed/indestructible/rock/snow/ice/ore,
+/area/icemoon/underground/explored/virtual_domain)
+"e" = (
+/turf/open/misc/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored/virtual_domain)
+"f" = (
+/obj/structure/marker_beacon/olive,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"i" = (
+/turf/closed/indestructible/binary,
+/area/icemoon/underground/explored/virtual_domain)
+"o" = (
+/obj/structure/marker_beacon/indigo,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"p" = (
+/obj/structure/marker_beacon/bronze,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"q" = (
+/obj/structure/marker_beacon/yellow,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"t" = (
+/obj/structure/marker_beacon/teal,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"x" = (
+/obj/structure/marker_beacon/burgundy,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"A" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"E" = (
+/obj/effect/mob_spawn/corpse/human/miner,
+/turf/open/misc/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored/virtual_domain)
+"H" = (
+/mob/living/simple_animal/hostile/megafauna/wendigo/virtual_domain,
+/turf/open/indestructible/necropolis{
+ initial_gas_mix = "ICEMOON_ATMOS"
+ },
+/area/icemoon/underground/explored/virtual_domain)
+"L" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/icemoon/underground/explored/virtual_domain)
+"R" = (
+/obj/item/paper/crumpled/bloody{
+ default_raw_text = "for your own sake, do not enter"
+ },
+/turf/open/misc/asteroid/snow/ice/icemoon,
+/area/icemoon/underground/explored/virtual_domain)
+"S" = (
+/turf/template_noop,
+/area/template_noop)
+"V" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"Z" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+
+(1,1,1) = {"
+S
+S
+S
+S
+S
+S
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(2,1,1) = {"
+S
+S
+S
+S
+S
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(3,1,1) = {"
+S
+S
+S
+S
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(4,1,1) = {"
+S
+S
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+e
+e
+e
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(5,1,1) = {"
+S
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+L
+"}
+(6,1,1) = {"
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(7,1,1) = {"
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(8,1,1) = {"
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(9,1,1) = {"
+i
+e
+e
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(10,1,1) = {"
+i
+e
+e
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(11,1,1) = {"
+i
+e
+E
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+o
+a
+a
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(12,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(13,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+q
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(14,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+V
+V
+V
+V
+V
+Z
+e
+i
+"}
+(15,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+E
+e
+e
+V
+V
+V
+V
+V
+V
+e
+i
+"}
+(16,1,1) = {"
+i
+e
+e
+e
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+e
+e
+e
+e
+V
+V
+V
+V
+V
+V
+e
+i
+"}
+(17,1,1) = {"
+i
+e
+e
+e
+e
+e
+a
+a
+a
+a
+a
+a
+a
+a
+H
+a
+a
+a
+a
+x
+a
+a
+a
+e
+e
+e
+e
+R
+e
+V
+V
+V
+V
+V
+V
+e
+i
+"}
+(18,1,1) = {"
+i
+e
+e
+e
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+e
+e
+e
+e
+V
+V
+V
+V
+V
+V
+e
+i
+"}
+(19,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+V
+V
+V
+V
+V
+V
+e
+i
+"}
+(20,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+p
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+V
+V
+V
+V
+V
+A
+e
+i
+"}
+(21,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+f
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(22,1,1) = {"
+i
+e
+e
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(23,1,1) = {"
+i
+e
+e
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+t
+a
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(24,1,1) = {"
+i
+e
+e
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(25,1,1) = {"
+i
+e
+e
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(26,1,1) = {"
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(27,1,1) = {"
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(28,1,1) = {"
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+i
+"}
+(29,1,1) = {"
+S
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+b
+b
+e
+b
+b
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+"}
+(30,1,1) = {"
+S
+S
+S
+i
+i
+e
+e
+e
+b
+b
+b
+b
+b
+e
+e
+e
+b
+b
+b
+b
+b
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(31,1,1) = {"
+S
+S
+S
+S
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(32,1,1) = {"
+S
+S
+S
+S
+S
+i
+i
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
+(33,1,1) = {"
+S
+S
+S
+S
+S
+S
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+i
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+S
+"}
diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm
new file mode 100644
index 000000000000..fcbd7cc116c9
--- /dev/null
+++ b/_maps/virtual_domains/xeno_nest.dmm
@@ -0,0 +1,2071 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/resin/wall,
+/obj/structure/alien/resin/wall,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"d" = (
+/obj/structure/alien/resin/wall,
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"e" = (
+/obj/structure/alien/weeds,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"f" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/egg/burst,
+/obj/effect/decal/cleanable/blood,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"h" = (
+/obj/structure/alien/weeds,
+/mob/living/simple_animal/hostile/alien/sentinel,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"i" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/effect/decal/cleanable/blood,
+/obj/item/clothing/under/syndicate,
+/obj/item/clothing/glasses/night,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"j" = (
+/obj/machinery/suit_storage_unit/spaceruin,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"k" = (
+/obj/structure/alien/weeds/node,
+/obj/structure/alien/resin/wall,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"l" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/resin/wall,
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"m" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/structure/alien/resin/wall,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"n" = (
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"o" = (
+/obj/structure/alien/weeds,
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"p" = (
+/obj/structure/alien/weeds,
+/mob/living/simple_animal/hostile/alien/drone{
+ plants_off = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"q" = (
+/obj/structure/alien/resin/wall,
+/turf/open/space/basic,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"r" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"s" = (
+/obj/structure/alien/weeds/node,
+/mob/living/simple_animal/hostile/alien/drone{
+ plants_off = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"t" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/weeds,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"u" = (
+/obj/structure/alien/weeds/node,
+/obj/effect/decal/cleanable/blood,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"v" = (
+/obj/effect/landmark/bitrunning/safehouse_spawn,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"x" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"z" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/resin/wall,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"A" = (
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"B" = (
+/obj/structure/alien/weeds,
+/obj/effect/decal/cleanable/blood,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"C" = (
+/obj/structure/alien/weeds,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"D" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/weeds,
+/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"E" = (
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"F" = (
+/obj/structure/table/greyscale,
+/obj/item/gun/energy/beam_rifle,
+/obj/item/gun/energy/laser{
+ pixel_x = 4;
+ pixel_y = -6
+ },
+/obj/item/gun/energy/laser{
+ pixel_x = -8;
+ pixel_y = 6
+ },
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"G" = (
+/obj/structure/alien/resin/wall,
+/obj/structure/alien/weeds,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"H" = (
+/obj/structure/table/greyscale,
+/obj/machinery/recharger{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/machinery/recharger{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"I" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"J" = (
+/obj/structure/alien/weeds,
+/mob/living/simple_animal/hostile/alien/queen/large{
+ desc = "A gigantic alien who is in charge of the hive and all of its loyal servants.";
+ name = "alien queen";
+ pixel_x = -16;
+ plants_off = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"K" = (
+/obj/structure/alien/weeds,
+/obj/effect/landmark/bitrunning/cache_spawn,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"L" = (
+/obj/item/storage/medkit/regular,
+/obj/item/storage/medkit/regular,
+/turf/template_noop,
+/area/virtual_domain/safehouse)
+"M" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/resin/wall{
+ move_force = 1000;
+ move_resist = 3000;
+ pull_force = 1000
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"N" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/item/clothing/under/rank/security/officer,
+/obj/item/clothing/suit/armor/vest,
+/obj/item/melee/baton/security/loaded,
+/obj/item/clothing/head/helmet,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"O" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"P" = (
+/obj/structure/alien/weeds/node,
+/mob/living/simple_animal/hostile/alien,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Q" = (
+/obj/structure/alien/resin/wall,
+/obj/structure/alien/resin/wall,
+/turf/closed/indestructible/binary,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"S" = (
+/obj/structure/alien/weeds,
+/mob/living/simple_animal/hostile/alien,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"T" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/egg/burst,
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"U" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/item/gun/ballistic/automatic/pistol,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"V" = (
+/obj/structure/alien/weeds/node,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"W" = (
+/obj/structure/alien/weeds,
+/obj/structure/alien/egg/burst,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Y" = (
+/obj/structure/alien/weeds,
+/obj/effect/decal/cleanable/blood,
+/mob/living/simple_animal/hostile/alien/drone{
+ plants_off = 1
+ },
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+"Z" = (
+/obj/structure/alien/weeds,
+/obj/structure/bed/nest,
+/obj/effect/decal/cleanable/blood/gibs,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/suit/space/syndicate/orange,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/head/helmet/space/syndicate/orange,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
+
+(1,1,1) = {"
+a
+a
+a
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+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
+E
+E
+z
+z
+z
+z
+z
+z
+z
+z
+E
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+E
+E
+z
+e
+W
+W
+z
+e
+e
+z
+M
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+E
+z
+z
+e
+e
+e
+e
+p
+e
+W
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+E
+z
+e
+e
+k
+z
+z
+z
+k
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+E
+z
+e
+e
+m
+K
+J
+o
+i
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+E
+z
+W
+h
+e
+e
+e
+B
+o
+e
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+E
+z
+I
+o
+z
+e
+V
+e
+h
+W
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+E
+z
+U
+u
+e
+z
+e
+e
+W
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+E
+z
+e
+o
+z
+e
+e
+e
+k
+W
+z
+E
+a
+a
+a
+a
+a
+a
+a
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+E
+z
+z
+e
+h
+e
+e
+h
+e
+e
+z
+E
+a
+a
+a
+a
+a
+a
+a
+E
+E
+E
+E
+z
+z
+z
+z
+E
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+E
+E
+z
+W
+e
+e
+e
+e
+e
+e
+z
+E
+a
+a
+a
+a
+a
+a
+a
+E
+E
+E
+z
+z
+Z
+I
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+E
+E
+z
+z
+e
+e
+V
+e
+e
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+E
+E
+z
+z
+W
+o
+Y
+e
+z
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+E
+E
+E
+z
+z
+e
+e
+e
+z
+z
+E
+E
+a
+a
+a
+a
+E
+E
+E
+E
+E
+z
+I
+e
+V
+e
+W
+z
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+a
+E
+E
+z
+z
+z
+z
+z
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+z
+z
+z
+e
+e
+e
+I
+z
+z
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+a
+a
+E
+z
+V
+V
+z
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+z
+z
+e
+S
+e
+W
+z
+z
+z
+E
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+a
+a
+a
+E
+z
+p
+e
+z
+z
+E
+z
+z
+z
+z
+z
+z
+z
+z
+z
+e
+e
+z
+z
+z
+z
+E
+E
+E
+E
+a
+a
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+a
+a
+a
+E
+z
+e
+e
+p
+z
+z
+z
+e
+e
+e
+e
+e
+e
+z
+z
+e
+z
+z
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+O
+"}
+(19,1,1) = {"
+E
+E
+E
+E
+E
+E
+E
+z
+z
+e
+e
+e
+z
+e
+e
+e
+e
+e
+e
+V
+e
+e
+e
+z
+E
+E
+E
+E
+E
+E
+Q
+d
+q
+q
+q
+q
+q
+q
+E
+"}
+(20,1,1) = {"
+E
+z
+z
+z
+z
+E
+E
+E
+z
+z
+e
+V
+e
+e
+e
+z
+z
+z
+z
+e
+e
+t
+z
+z
+E
+E
+a
+a
+a
+E
+q
+A
+A
+A
+A
+A
+A
+A
+E
+"}
+(21,1,1) = {"
+E
+z
+W
+I
+z
+z
+z
+z
+z
+z
+e
+e
+e
+e
+z
+z
+E
+E
+z
+z
+e
+e
+z
+E
+E
+E
+a
+a
+a
+E
+q
+A
+A
+A
+A
+A
+A
+A
+E
+"}
+(22,1,1) = {"
+E
+G
+t
+S
+e
+z
+z
+e
+e
+e
+e
+e
+e
+z
+z
+E
+E
+E
+z
+e
+e
+e
+z
+E
+E
+E
+a
+a
+a
+E
+q
+A
+C
+A
+A
+A
+A
+A
+E
+"}
+(23,1,1) = {"
+E
+G
+K
+W
+V
+e
+e
+e
+z
+z
+e
+z
+z
+z
+E
+E
+E
+E
+z
+e
+e
+z
+z
+E
+E
+a
+a
+a
+a
+E
+q
+C
+C
+C
+A
+A
+A
+A
+E
+"}
+(24,1,1) = {"
+E
+z
+z
+I
+I
+z
+z
+z
+z
+z
+e
+z
+E
+E
+E
+E
+E
+E
+z
+e
+e
+z
+E
+E
+E
+E
+E
+E
+E
+E
+d
+C
+C
+A
+A
+C
+A
+A
+E
+"}
+(25,1,1) = {"
+E
+E
+z
+z
+z
+z
+E
+E
+E
+z
+p
+z
+z
+E
+E
+E
+E
+E
+z
+e
+s
+z
+z
+z
+E
+E
+E
+E
+E
+E
+z
+C
+C
+C
+A
+C
+C
+A
+E
+"}
+(26,1,1) = {"
+a
+E
+E
+E
+E
+E
+E
+E
+E
+z
+e
+e
+z
+E
+E
+E
+E
+E
+z
+e
+e
+e
+e
+z
+z
+z
+E
+E
+E
+z
+z
+n
+n
+n
+n
+n
+v
+A
+E
+"}
+(27,1,1) = {"
+a
+a
+a
+a
+a
+E
+E
+z
+z
+z
+e
+e
+z
+z
+E
+E
+E
+E
+z
+z
+e
+e
+e
+e
+e
+z
+z
+z
+z
+k
+e
+n
+j
+j
+j
+n
+n
+A
+E
+"}
+(28,1,1) = {"
+a
+a
+a
+a
+a
+E
+z
+z
+T
+e
+e
+V
+W
+z
+E
+E
+E
+z
+z
+e
+e
+z
+z
+e
+e
+e
+z
+V
+e
+e
+e
+n
+n
+n
+n
+n
+n
+A
+E
+"}
+(29,1,1) = {"
+a
+a
+a
+a
+a
+E
+z
+N
+f
+S
+e
+W
+I
+z
+E
+E
+E
+z
+e
+e
+z
+z
+z
+z
+e
+V
+z
+V
+t
+e
+e
+n
+n
+F
+H
+n
+n
+A
+E
+"}
+(30,1,1) = {"
+a
+a
+a
+a
+a
+E
+z
+x
+o
+e
+I
+I
+z
+z
+E
+E
+E
+z
+e
+z
+z
+E
+E
+z
+z
+z
+z
+z
+k
+e
+e
+n
+n
+n
+n
+n
+n
+A
+E
+"}
+(31,1,1) = {"
+a
+a
+a
+a
+a
+E
+z
+z
+z
+e
+z
+z
+z
+E
+E
+E
+E
+z
+e
+z
+z
+E
+E
+E
+E
+E
+E
+E
+z
+e
+e
+n
+L
+n
+n
+n
+n
+A
+E
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+E
+E
+E
+z
+e
+z
+E
+E
+E
+E
+E
+E
+z
+e
+e
+z
+E
+a
+a
+a
+a
+E
+E
+z
+e
+e
+n
+n
+n
+n
+n
+r
+A
+E
+"}
+(33,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+E
+z
+e
+z
+E
+E
+a
+a
+a
+E
+l
+z
+V
+z
+E
+a
+a
+a
+a
+E
+z
+z
+z
+q
+C
+A
+A
+C
+A
+A
+A
+E
+"}
+(34,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+E
+z
+V
+z
+E
+E
+a
+a
+a
+E
+E
+z
+e
+z
+E
+a
+a
+a
+a
+E
+z
+E
+d
+q
+C
+C
+C
+A
+A
+A
+A
+E
+"}
+(35,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+E
+z
+e
+z
+E
+E
+a
+a
+a
+E
+E
+z
+e
+z
+E
+a
+a
+a
+a
+E
+E
+E
+d
+q
+A
+A
+A
+A
+A
+A
+A
+E
+"}
+(36,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+E
+z
+e
+z
+E
+E
+E
+E
+E
+E
+z
+z
+e
+z
+E
+a
+a
+a
+a
+a
+a
+E
+d
+q
+A
+C
+D
+A
+A
+A
+A
+E
+"}
+(37,1,1) = {"
+a
+a
+a
+a
+E
+E
+E
+E
+z
+e
+z
+E
+E
+E
+E
+E
+z
+z
+e
+e
+z
+E
+a
+a
+a
+a
+a
+a
+E
+d
+q
+A
+A
+A
+A
+A
+A
+A
+E
+"}
+(38,1,1) = {"
+a
+a
+a
+a
+E
+E
+E
+z
+z
+e
+z
+z
+z
+z
+z
+z
+z
+e
+e
+z
+z
+E
+a
+a
+a
+a
+a
+a
+E
+d
+q
+A
+A
+A
+A
+A
+A
+A
+E
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+E
+E
+z
+z
+e
+e
+W
+z
+z
+e
+e
+P
+e
+e
+z
+z
+E
+E
+a
+a
+a
+a
+a
+a
+E
+Q
+q
+q
+q
+q
+q
+q
+q
+q
+E
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+E
+E
+z
+I
+p
+e
+e
+e
+e
+e
+z
+z
+z
+z
+z
+E
+E
+a
+a
+a
+a
+a
+a
+a
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+E
+"}
+(41,1,1) = {"
+a
+a
+a
+a
+E
+z
+z
+W
+e
+V
+e
+W
+z
+z
+z
+E
+E
+E
+E
+E
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(42,1,1) = {"
+a
+a
+a
+a
+E
+z
+W
+K
+e
+I
+I
+z
+z
+E
+E
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(43,1,1) = {"
+a
+a
+a
+a
+E
+c
+z
+z
+z
+z
+z
+z
+E
+E
+E
+E
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(44,1,1) = {"
+a
+a
+a
+a
+E
+E
+E
+E
+E
+E
+E
+E
+E
+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/code/__DEFINES/access.dm b/code/__DEFINES/access.dm
index b745a76376a3..8fa9d18d7bf9 100644
--- a/code/__DEFINES/access.dm
+++ b/code/__DEFINES/access.dm
@@ -104,6 +104,8 @@
#define ACCESS_VAULT "vault"
/// Access for the Quartermaster's personal quarters in mapping, as well as some other QM-related things.
#define ACCESS_QM "qm"
+/// Access for the bitrunning den
+#define ACCESS_BIT_DEN "bit_den"
/// General access for Science, allows for entry to the general hallways of Science, as well as the main lathe room.
#define ACCESS_SCIENCE "science"
@@ -279,6 +281,7 @@
ACCESS_ATMOSPHERICS, \
ACCESS_AUX_BASE, \
ACCESS_BAR, \
+ ACCESS_BIT_DEN, \
ACCESS_BRIG, \
ACCESS_BRIG_ENTRANCE, \
ACCESS_CARGO, \
@@ -485,6 +488,7 @@
#define REGION_SUPPLY "Supply"
/// Used to seed the accesses_by_region list in SSid_access. A list of all cargo regional accesses that are overseen by the HoP.
#define REGION_ACCESS_SUPPLY list( \
+ ACCESS_BIT_DEN, \
ACCESS_CARGO, \
ACCESS_MECH_MINING, \
ACCESS_MINERAL_STOREROOM, \
@@ -542,6 +546,7 @@
/obj/item/modular_computer/pda/heads/rd = list(REGION_COMMAND), \
/obj/item/modular_computer/pda/heads/captain = list(REGION_COMMAND), \
/obj/item/modular_computer/pda/cargo = list(REGION_SUPPLY), \
+ /obj/item/modular_computer/pda/bitrunner = list(REGION_SUPPLY), \
/obj/item/modular_computer/pda/shaftminer = list(REGION_SUPPLY), \
/obj/item/modular_computer/pda/chaplain = list(REGION_GENERAL), \
/obj/item/modular_computer/pda/lawyer = list(REGION_GENERAL), \
diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm
index d309ebd8d2e9..3cc79764f77e 100644
--- a/code/__DEFINES/alerts.dm
+++ b/code/__DEFINES/alerts.dm
@@ -60,3 +60,12 @@
#define ALERT_TEMPERATURE "temp"
#define ALERT_TEMPERATURE_HOT "temphot"
#define ALERT_TEMPERATURE_COLD "tempcold"
+
+/** Bitrunning */
+#define ALERT_BITRUNNER_CROWBAR "bitrunning_crowbar"
+#define ALERT_BITRUNNER_COMPLETED "bitrunning_complete"
+#define ALERT_BITRUNNER_INTEGRITY "bitrunning_integrity"
+#define ALERT_BITRUNNER_SHUTDOWN "bitrunning_shutdown"
+#define ALERT_BITRUNNER_RESET "bitrunning_reset"
+#define ALERT_BITRUNNER_SPAWN_CYBERCOP "bitrunning_spawn_cybercop"
+#define ALERT_BITRUNNER_THREAT "bitrunning_threat"
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index 3f73cc328edd..20cf43b164a5 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -316,6 +316,7 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list(
#define ANTAG_GROUP_ASHWALKERS "Ash Walkers"
#define ANTAG_GROUP_BIOHAZARDS "Biohazards"
#define ANTAG_GROUP_CLOWNOPS "Clown Operatives"
+#define ANTAG_GROUP_CYBERAUTH "Cyber Authority"
#define ANTAG_GROUP_ERT "Emergency Response Team"
#define ANTAG_GROUP_HORRORS "Eldritch Horrors"
#define ANTAG_GROUP_LEVIATHANS "Spaceborne Leviathans"
diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index bf187da682a6..586420013510 100644
--- a/code/__DEFINES/atom_hud.dm
+++ b/code/__DEFINES/atom_hud.dm
@@ -88,6 +88,7 @@
#define SECHUD_ASSISTANT "hudassistant"
#define SECHUD_ATMOSPHERIC_TECHNICIAN "hudatmospherictechnician"
#define SECHUD_BARTENDER "hudbartender"
+#define SECHUD_BITRUNNER "hudbitrunner"
#define SECHUD_BOTANIST "hudbotanist"
#define SECHUD_CAPTAIN "hudcaptain"
#define SECHUD_CARGO_TECHNICIAN "hudcargotechnician"
diff --git a/code/__DEFINES/bitrunning.dm b/code/__DEFINES/bitrunning.dm
new file mode 100644
index 000000000000..343801c477e9
--- /dev/null
+++ b/code/__DEFINES/bitrunning.dm
@@ -0,0 +1,20 @@
+#define BITRUNNER_COST_NONE 0
+#define BITRUNNER_COST_LOW 1
+#define BITRUNNER_COST_MEDIUM 2
+#define BITRUNNER_COST_HIGH 3
+#define BITRUNNER_COST_EXTREME 20
+
+#define BITRUNNER_REWARD_MIN 1
+#define BITRUNNER_REWARD_LOW 3
+#define BITRUNNER_REWARD_MEDIUM 4
+#define BITRUNNER_REWARD_HIGH 5
+#define BITRUNNER_REWARD_EXTREME 6
+
+/// Blue in ui
+#define BITRUNNER_DIFFICULTY_NONE 0
+/// Yellow
+#define BITRUNNER_DIFFICULTY_LOW 1
+/// Orange
+#define BITRUNNER_DIFFICULTY_MEDIUM 2
+/// Red with skull
+#define BITRUNNER_DIFFICULTY_HIGH 3
diff --git a/code/__DEFINES/computers.dm b/code/__DEFINES/computers.dm
index 1349913c1837..ba3294ae6833 100644
--- a/code/__DEFINES/computers.dm
+++ b/code/__DEFINES/computers.dm
@@ -8,3 +8,6 @@
#define CATEGORY_CONSUMABLES "Consumables"
#define CATEGORY_TOYS_DRONE "Toys & Drones"
#define CATEGORY_PKA "PKAs"
+#define CATEGORY_BEPIS "Bepis Tech"
+#define CATEGORY_BITRUNNING_FLAIR "Misc"
+#define CATEGORY_BITRUNNING_TECH "Tech"
diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm
new file mode 100644
index 000000000000..3d008449ee7b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm
@@ -0,0 +1,31 @@
+/// from /obj/machinery/netpod/default_pry_open() : (mob/living/intruder)
+#define COMSIG_BITRUNNER_CROWBAR_ALERT "bitrunner_crowbar"
+
+/// from /obj/effect/bitrunning/loot_signal: (points)
+#define COMSIG_BITRUNNER_GOAL_POINT "bitrunner_goal_point"
+
+/// from /obj/machinery/quantum_server/on_goal_turf_entered(): (atom/entered, reward_points)
+#define COMSIG_BITRUNNER_DOMAIN_COMPLETE "bitrunner_complete"
+
+/// from /obj/machinery/netpod/on_take_damage()
+#define COMSIG_BITRUNNER_NETPOD_INTEGRITY "bitrunner_netpod_damage"
+
+/// from /obj/structure/hololadder and complete alert
+#define COMSIG_BITRUNNER_SAFE_DISCONNECT "bitrunner_disconnect"
+
+/// from /obj/machinery/netpod/open_machine(), /obj/machinery/quantum_server, etc (obj/machinery/netpod)
+#define COMSIG_BITRUNNER_SEVER_AVATAR "bitrunner_sever"
+
+/// from /obj/machinery/quantum_server/shutdown() : (mob/living)
+#define COMSIG_BITRUNNER_SHUTDOWN_ALERT "bitrunner_shutdown"
+
+// Notifies the bitrunners
+/// from /datum/antagonist/cyber_police/proc/notify() :
+#define COMSIG_BITRUNNER_THREAT_CREATED "bitrunner_threat"
+
+// Informs the server to up the threat count
+/// from event spawns: (mob/living)
+#define COMSIG_BITRUNNER_SPAWN_GLITCH "bitrunner_spawn_glitch"
+
+/// from /obj/machinery/quantum_server/refreshParts(): (servo rating)
+#define COMSIG_BITRUNNER_SERVER_UPGRADED "bitrunner_server_upgraded"
diff --git a/code/__DEFINES/dcs/signals/signals_lazy_templates.dm b/code/__DEFINES/dcs/signals/signals_lazy_templates.dm
new file mode 100644
index 000000000000..556ad6c886fc
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_lazy_templates.dm
@@ -0,0 +1,2 @@
+/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atoms)
+#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded"
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm
new file mode 100644
index 000000000000..6ff8b1e8d61d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm
@@ -0,0 +1,6 @@
+// signals for use by mob spawners
+/// called when a spawner spawns a mob
+#define COMSIG_SPAWNER_SPAWNED "spawner_spawned"
+
+/// called when a ghost clicks a spawner role: (mob/living)
+#define COMSIG_GHOSTROLE_SPAWNED "ghostrole_spawned"
diff --git a/code/__DEFINES/dcs/signals/signals_painting.dm b/code/__DEFINES/dcs/signals/signals_painting.dm
index 4f9201ec8f2e..73f9eb47190c 100644
--- a/code/__DEFINES/dcs/signals/signals_painting.dm
+++ b/code/__DEFINES/dcs/signals/signals_painting.dm
@@ -5,3 +5,6 @@
/// from base of /item/canvas/ui_data(): (data)
#define COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA "painting_tool_get_data"
+
+///from base of /item/canvas/ui_act(), "change_color" action: (chosen_color, color_index)
+#define COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED "painting_tool_palette_color_changed"
diff --git a/code/__DEFINES/dcs/signals/signals_turf.dm b/code/__DEFINES/dcs/signals/signals_turf.dm
index 247302ddbc58..ea4791f5629b 100644
--- a/code/__DEFINES/dcs/signals/signals_turf.dm
+++ b/code/__DEFINES/dcs/signals/signals_turf.dm
@@ -35,3 +35,7 @@
#define COMSIG_TURF_DESTROY "turf_destroy"
///this is called whenever a turfs air is updated
#define COMSIG_TURF_UPDATE_AIR "turf_air_change"
+///from /datum/element/footstep/prepare_step(): (list/steps)
+#define COMSIG_TURF_PREPARE_STEP_SOUND "turf_prepare_step_sound"
+///from base of datum/thrownthing/finalize(): (turf/turf, atom/movable/thrownthing) when something is thrown and lands on us
+#define COMSIG_TURF_MOVABLE_THROW_LANDED "turf_movable_throw_landed"
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index a70bc16b942a..dd653a8d7900 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -94,7 +94,10 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
//TURF FLAGS
/// If a turf cant be jaunted through.
#define NOJAUNT (1<<0)
+/// If a turf is an usused reservation turf awaiting assignment
#define UNUSED_RESERVATION_TURF (1<<1)
+/// If a turf is a reserved turf
+#define RESERVATION_TURF (1<<2)
/// Blocks lava rivers being generated on the turf.
#define NO_LAVA_GEN (1<<3)
/// Blocks ruins spawning on the turf.
diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm
index 04a009e9aac3..22a4a91cab40 100644
--- a/code/__DEFINES/icon_smoothing.dm
+++ b/code/__DEFINES/icon_smoothing.dm
@@ -102,6 +102,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(57) ///turf/closed/mineral, /turf/closed/indestructible
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(58) ///turf/closed/indestructible/riveted/boss
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(59) ///turf/closed/wall/mineral/titanium/survival
+#define SMOOTH_GROUP_TURF_OPEN_CLIFF S_TURF(60) ///turf/open/cliff
#define SMOOTH_GROUP_ELEVATED_PLASTEEL S_TURF(60)
#define SMOOTH_GROUP_LOWERED_PLASTEEL S_TURF(61)
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 75b6e38c71c4..87bf13cca894 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -62,6 +62,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list(
#define istransparentturf(A) (HAS_TRAIT(A, TURF_Z_TRANSPARENT_TRAIT))
+#define iscliffturf(A) (istype(A, /turf/open/cliff))
+
//Mobs
#define isliving(A) (istype(A, /mob/living))
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index f3f5f7f1f9d2..f7d18b3fe158 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -68,6 +68,7 @@
#define JOB_QUARTERMASTER "Quartermaster"
#define JOB_CARGO_TECHNICIAN "Cargo Technician"
#define JOB_SHAFT_MINER "Shaft Miner"
+#define JOB_BITRUNNER "Bitrunner"
//Service
#define JOB_BARTENDER "Bartender"
#define JOB_BOTANIST "Botanist"
@@ -124,20 +125,21 @@
#define JOB_DISPLAY_ORDER_QUARTERMASTER 19
#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 20
#define JOB_DISPLAY_ORDER_SHAFT_MINER 21
-#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 22
-#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 23
-#define JOB_DISPLAY_ORDER_PARAMEDIC 24
-#define JOB_DISPLAY_ORDER_CHEMIST 25
-#define JOB_DISPLAY_ORDER_VIROLOGIST 26
-#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27
-#define JOB_DISPLAY_ORDER_SCIENTIST 28
-#define JOB_DISPLAY_ORDER_ROBOTICIST 29
-#define JOB_DISPLAY_ORDER_GENETICIST 30
-#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 31
-#define JOB_DISPLAY_ORDER_WARDEN 32
-#define JOB_DISPLAY_ORDER_DETECTIVE 33
-#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 34
-#define JOB_DISPLAY_ORDER_PRISONER 35
+#define JOB_DISPLAY_ORDER_BITRUNNER 22
+#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 23
+#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 24
+#define JOB_DISPLAY_ORDER_PARAMEDIC 25
+#define JOB_DISPLAY_ORDER_CHEMIST 26
+#define JOB_DISPLAY_ORDER_VIROLOGIST 27
+#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 28
+#define JOB_DISPLAY_ORDER_SCIENTIST 29
+#define JOB_DISPLAY_ORDER_ROBOTICIST 30
+#define JOB_DISPLAY_ORDER_GENETICIST 31
+#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 32
+#define JOB_DISPLAY_ORDER_WARDEN 33
+#define JOB_DISPLAY_ORDER_DETECTIVE 34
+#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 35
+#define JOB_DISPLAY_ORDER_PRISONER 36
#define DEPARTMENT_UNASSIGNED "No Department"
diff --git a/code/__DEFINES/mapping.dm b/code/__DEFINES/mapping.dm
new file mode 100644
index 000000000000..3c08679e2a4b
--- /dev/null
+++ b/code/__DEFINES/mapping.dm
@@ -0,0 +1,6 @@
+// Defines for SSmapping's multiz_levels
+/// TRUE if we're ok with going up
+#define Z_LEVEL_UP 1
+/// TRUE if we're ok with going down
+#define Z_LEVEL_DOWN 2
+#define LARGEST_Z_LEVEL_INDEX Z_LEVEL_DOWN
diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm
index c74d0b739fc2..322eb40fd6d1 100644
--- a/code/__DEFINES/maps.dm
+++ b/code/__DEFINES/maps.dm
@@ -104,7 +104,7 @@ Always compile, always use that verb, and always make sure that it works for wha
// number - default gravity if there's no gravity generators or area overrides present
#define ZTRAIT_GRAVITY "Gravity"
-// numeric offsets - e.g. {"Down": -1} means that chasms will fall to z - 1 rather than oblivion
+// Whether this z level is linked up/down. Bool.
#define ZTRAIT_UP "Up"
#define ZTRAIT_DOWN "Down"
diff --git a/code/__DEFINES/multiz.dm b/code/__DEFINES/multiz.dm
new file mode 100644
index 000000000000..9d167495fa88
--- /dev/null
+++ b/code/__DEFINES/multiz.dm
@@ -0,0 +1,4 @@
+/// Attempt to get the turf below the provided one according to Z traits
+#define GET_TURF_BELOW(turf) ((!(turf) || !length(SSmapping.multiz_levels) || !SSmapping.multiz_levels[(turf).z][Z_LEVEL_DOWN]) ? null : get_step((turf), DOWN))
+/// Attempt to get the turf above the provided one according to Z traits
+#define GET_TURF_ABOVE(turf) ((!(turf) || !length(SSmapping.multiz_levels) || !SSmapping.multiz_levels[(turf).z][Z_LEVEL_UP]) ? null : get_step((turf), UP))
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 45b0ad341ffa..be6d6015267c 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -24,6 +24,7 @@
#define ROLE_BLOB "Blob"
#define ROLE_BLOB_INFECTION "Blob Infection"
#define ROLE_CHANGELING_MIDROUND "Changeling (Midround)"
+#define ROLE_CYBER_POLICE "Cyber Police"
#define ROLE_FUGITIVE "Fugitive"
#define ROLE_LONE_OPERATIVE "Lone Operative"
#define ROLE_MALF_MIDROUND "Malf AI (Midround)"
@@ -45,61 +46,66 @@
#define ROLE_SYNDICATE_INFILTRATOR "Syndicate Infiltrator"
// Other roles
+#define ROLE_ANOMALY_GHOST "Ectoplasmic Anomaly Ghost"
+#define ROLE_BRAINWASHED "Brainwashed Victim"
+#define ROLE_DEATHSQUAD "Deathsquad"
+#define ROLE_DRONE "Drone"
+#define ROLE_EMAGGED_BOT "Malfunctioning Bot"
+#define ROLE_HIVE "Hivemind Host" //Role removed, left here for safety.
+#define ROLE_HYPNOTIZED "Hypnotized Victim"
#define ROLE_SYNDICATE "Syndicate"
#define ROLE_REV "Revolutionary"
#define ROLE_REV_SUCCESSFUL "Victorious Revolutionary"
#define ROLE_PAI "pAI"
#define ROLE_MONKEY_HELMET "Monkey Mind Magnification Helmet"
#define ROLE_REVENANT "Revenant"
-#define ROLE_BRAINWASHED "Brainwashed Victim"
-#define ROLE_HYPNOTIZED "Hypnotized Victim"
#define ROLE_OVERTHROW "Syndicate Mutineer" //Role removed, left here for safety.
-#define ROLE_HIVE "Hivemind Host" //Role removed, left here for safety.
#define ROLE_SENTIENCE "Sentience Potion Spawn"
#define ROLE_PYROCLASTIC_SLIME "Pyroclastic Anomaly Slime"
-#define ROLE_ANOMALY_GHOST "Ectoplasmic Anomaly Ghost"
#define ROLE_MIND_TRANSFER "Mind Transfer Potion"
#define ROLE_POSIBRAIN "Posibrain"
-#define ROLE_DRONE "Drone"
-#define ROLE_DEATHSQUAD "Deathsquad"
#define ROLE_LAVALAND "Lavaland"
+#define ROLE_LAZARUS_BAD "Slaved Revived Mob"
+#define ROLE_LAZARUS_GOOD "Friendly Revived Mob"
-#define ROLE_POSITRONIC_BRAIN "Positronic Brain"
-#define ROLE_FREE_GOLEM "Free Golem"
-#define ROLE_SERVANT_GOLEM "Servant Golem"
-#define ROLE_NUCLEAR_OPERATIVE "Nuclear Operative"
#define ROLE_CLOWN_OPERATIVE "Clown Operative"
-#define ROLE_WIZARD_APPRENTICE "apprentice"
-#define ROLE_SLAUGHTER_DEMON "Slaughter Demon"
+#define ROLE_FREE_GOLEM "Free Golem"
#define ROLE_MORPH "Morph"
+#define ROLE_NUCLEAR_OPERATIVE "Nuclear Operative"
+#define ROLE_POSITRONIC_BRAIN "Positronic Brain"
#define ROLE_SANTA "Santa"
+#define ROLE_SERVANT_GOLEM "Servant Golem"
+#define ROLE_SLAUGHTER_DEMON "Slaughter Demon"
+#define ROLE_WIZARD_APPRENTICE "apprentice"
//Spawner roles
-#define ROLE_GHOST_ROLE "Ghost Role"
+#define ROLE_ANCIENT_CREW "Ancient Crew"
+#define ROLE_ASHWALKER "Ash Walker"
+#define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain"
+#define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew"
+#define ROLE_BEACH_BUM "Beach Bum"
+#define ROLE_BOT "Bot"
+#define ROLE_DERELICT_DRONE "Derelict Drone"
+#define ROLE_ESCAPED_PRISONER "Escaped Prisoner"
#define ROLE_EXILE "Exile"
#define ROLE_FUGITIVE_HUNTER "Fugitive Hunter"
-#define ROLE_ESCAPED_PRISONER "Escaped Prisoner"
-#define ROLE_LIFEBRINGER "Lifebringer"
-#define ROLE_ASHWALKER "Ash Walker"
-#define ROLE_LAVALAND_SYNDICATE "Lavaland Syndicate"
+#define ROLE_GHOST_ROLE "Ghost Role"
#define ROLE_HERMIT "Hermit"
-#define ROLE_BEACH_BUM "Beach Bum"
#define ROLE_HOTEL_STAFF "Hotel Staff"
+#define ROLE_LAVALAND_SYNDICATE "Lavaland Syndicate"
+#define ROLE_LIFEBRINGER "Lifebringer"
+#define ROLE_MAINTENANCE_DRONE "Maintenance Drone"
+#define ROLE_SKELETON "Skeleton"
+#define ROLE_SPACE_BAR_PATRON "Space Bar Patron"
+#define ROLE_SPACE_BARTENDER "Space Bartender"
+#define ROLE_SPACE_DOCTOR "Space Doctor"
+#define ROLE_SPACE_PIRATE "Space Pirate"
#define ROLE_SPACE_SYNDICATE "Space Syndicate"
#define ROLE_SYNDICATE_CYBERSUN "Cybersun Space Syndicate" //Ghost role syndi from Forgottenship ruin
-#define ROLE_SYNDICATE_CYBERSUN_CAPTAIN "Cybersun Space Syndicate Captain" //Forgottenship captain syndie
-#define ROLE_SPACE_PIRATE "Space Pirate"
-#define ROLE_ANCIENT_CREW "Ancient Crew"
-#define ROLE_SPACE_DOCTOR "Space Doctor"
-#define ROLE_SPACE_BARTENDER "Space Bartender"
-#define ROLE_SPACE_BAR_PATRON "Space Bar Patron"
-#define ROLE_SKELETON "Skeleton"
+#define ROLE_SYNDICATE_CYBERSUN_CAPTAIN "Cybersun Space Syndicate Captain" //Forgottenship captain syndi
#define ROLE_ZOMBIE "Zombie"
-#define ROLE_MAINTENANCE_DRONE "Maintenance Drone"
-#define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew"
-#define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain"
+#define ROLE_SYNDICATE_DRONE "Syndicate Drone"
#define ROLE_VENUSHUMANTRAP "Venus Human Trap"
-#define ROLE_BOT "Bot"
@@ -127,6 +133,7 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_BLOB = 0,
ROLE_BLOB_INFECTION = 0,
ROLE_CHANGELING_MIDROUND = 0,
+ ROLE_CYBER_POLICE = 0,
ROLE_FUGITIVE = 0,
ROLE_LONE_OPERATIVE = 14,
ROLE_MALF_MIDROUND = 0,
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index a37c8aff20ce..07230479d473 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -39,6 +39,8 @@
#define STASIS_SHAPECHANGE_EFFECT "stasis_shapechange"
+#define STASIS_NETPOD_EFFECT "stasis_netpod"
+
/// Causes the mob to become blind via the passed source
#define become_blind(source) apply_status_effect(/datum/status_effect/grouped/blindness, source)
/// Cures the mob's blindness from the passed source, removing blindness wholesale if no sources are left
@@ -178,3 +180,8 @@
#define PETRIFICATION_SPIT /datum/status_effect/ranching/cockatrice_eaten
///makes you a mime and gives you the wall ability for the duration
#define MIME_EGG /datum/status_effect/ranching/mime
+
+#define adjust_static_vision(duration) adjust_timed_status_effect(duration, /datum/status_effect/static_vision)
+#define adjust_static_vision_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/static_vision, up_to)
+#define set_static_vision(duration) set_timed_status_effect(duration, /datum/status_effect/static_vision)
+#define set_static_vision_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/static_vision, TRUE)
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 1b1bc2c7095e..2a7084841746 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -209,6 +209,7 @@
#define FIRE_PRIORITY_NPC_MOVEMENT 21
#define FIRE_PRIORITY_NPC_ACTIONS 22
#define FIRE_PRIORITY_PATHFINDING 23
+#define FIRE_PRIORITY_CLIFF_FALLING 24
#define FIRE_PRIORITY_PROCESS 25
#define FIRE_PRIORITY_THROWING 25
#define FIRE_PRIORITY_REAGENTS 26
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 91b5b6c2e323..582584a2ab5b 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -388,6 +388,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_HYPERSPACED "hyperspaced"
///Gives the movable free hyperspace movement without being pulled during shuttle transit
#define TRAIT_FREE_HYPERSPACE_MOVEMENT "free_hyperspace_movement"
+///Lets the movable move freely in the soft-cordon area of transit space, which would otherwise teleport them away just before they got to see the true cordon
+#define TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT "free_hyperspace_softcordon_movement"
+///Deletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that dont need to flood the entire game
+#define TRAIT_DEL_ON_SPACE_DUMP "del_on_hyperspace_leave"
+/// We can walk up or around cliffs, or at least we don't fall off of it
+#define TRAIT_CLIFF_WALKER "cliff_walker"
/// Gets double arcade prizes
#define TRAIT_GAMERGOD "gamer-god"
#define TRAIT_GIANT "giant"
@@ -803,6 +809,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///Trait given to a mob with a ckey currently in a temporary body, allowing people to know someone will re-enter the round later.
#define TRAIT_MIND_TEMPORARILY_GONE "temporarily_gone"
+/// Similar trait given to temporary bodies inhabited by players
+#define TRAIT_TEMPORARY_BODY "temporary_body"
+
/// Trait given to mechs that can have orebox functionality on movement
#define TRAIT_OREBOX_FUNCTIONAL "orebox_functional"
diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm
index 9e64519bbb04..98ed7e7d66c3 100644
--- a/code/__HELPERS/lighting.dm
+++ b/code/__HELPERS/lighting.dm
@@ -12,6 +12,15 @@
return appearance
+
+/// Creates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance
+/proc/emissive_appearance_copy(mutable_appearance/to_use, atom/offset_spokesman, appearance_flags = (KEEP_APART))
+ var/mutable_appearance/appearance = mutable_appearance(to_use.icon, to_use.icon_state, to_use.layer, offset_spokesman, EMISSIVE_PLANE, to_use.alpha, to_use.appearance_flags | appearance_flags)
+ appearance.color = GLOB.emissive_color
+ appearance.pixel_x = to_use.pixel_x
+ appearance.pixel_y = to_use.pixel_y
+ return appearance
+
// This is a semi hot proc, so we micro it. saves maybe 150ms
// sorry :)
/proc/fast_emissive_blocker(atom/make_blocker)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 63b2ea2e80b2..fa28f3c40cfb 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -609,7 +609,7 @@ GLOBAL_LIST_EMPTY(species_list)
#define ISADVANCEDTOOLUSER(mob) (HAS_TRAIT(mob, TRAIT_ADVANCEDTOOLUSER) && !HAS_TRAIT(mob, TRAIT_DISCOORDINATED_TOOL_USER))
-#define IS_IN_STASIS(mob) (mob.has_status_effect(/datum/status_effect/grouped/stasis))
+#define IS_IN_STASIS(mob) (mob.has_status_effect(/datum/status_effect/grouped/stasis) || mob.has_status_effect(/datum/status_effect/embryonic))
/// Gets the client of the mob, allowing for mocking of the client.
/// You only need to use this if you know you're going to be mocking clients somewhere else.
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 64df601dd2e9..48dc1a8ddbff 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -79,6 +79,7 @@ DEFINE_BITFIELD(turf_flags, list(
"IS_SOLID" = IS_SOLID,
"UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF,
"WEATHERED_TURF" = TURF_WEATHER, //monkestation edit
+ "RESERVATION_TURF" = RESERVATION_TURF,
))
DEFINE_BITFIELD(car_traits, list(
diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm
index be439d8217fc..8ac2f0d3ddfe 100644
--- a/code/_globalvars/lists/mapping.dm
+++ b/code/_globalvars/lists/mapping.dm
@@ -127,6 +127,9 @@ GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
GLOBAL_LIST_EMPTY(ruin_landmarks)
GLOBAL_LIST_EMPTY(bar_areas)
+/// List of all the maps that have been cached for /proc/load_map
+GLOBAL_LIST_EMPTY(cached_maps)
+
/// Away missions
GLOBAL_LIST_EMPTY(vr_spawnpoints)
diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm
index e82c9d20f18c..ded99d194f3a 100644
--- a/code/_globalvars/lists/names.dm
+++ b/code/_globalvars/lists/names.dm
@@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(oozeling_last_names, world.file2list("strings/names/ooze_last.t
GLOBAL_LIST_INIT(simian_last_names, world.file2list("monkestation/strings/names/simian_last.txt"))
GLOBAL_LIST_INIT(simian_names_female, world.file2list("monkestation/strings/names/simian_female_first.txt"))
GLOBAL_LIST_INIT(simian_names_male, world.file2list("monkestation/strings/names/simian_male_first.txt"))
+GLOBAL_LIST_INIT(cyberauth_names, world.file2list("strings/names/cyberauth.txt"))
GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt"))
GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt"))
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index afedfa5befe6..ef184e18b1d0 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -216,3 +216,10 @@
layer = LIGHTING_ABOVE_ALL
blend_mode = BLEND_ADD
show_when_dead = TRUE
+
+/atom/movable/screen/fullscreen/static_vision
+ icon = 'icons/hud/screen_gen.dmi'
+ screen_loc = "WEST,SOUTH to EAST,NORTH"
+ icon_state = "noise"
+ color = "#04a8d1"
+ alpha = 80
diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm
index 50e36870ae64..0b5d39b77380 100644
--- a/code/controllers/subsystem/atoms.dm
+++ b/code/controllers/subsystem/atoms.dm
@@ -1,11 +1,14 @@
+#define SUBSYSTEM_INIT_SOURCE "subsystem init"
+
SUBSYSTEM_DEF(atoms)
name = "Atoms"
init_order = INIT_ORDER_ATOMS
flags = SS_NO_FIRE
- var/old_initialized
- /// A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code
- var/initialized_changed = 0
+ /// A stack of list(source, desired initialized state)
+ /// We read the source of init changes from the last entry, and assert that all changes will come with a reset
+ var/list/initialized_state = list()
+ var/base_initialized
var/list/late_loaders = list()
@@ -39,11 +42,11 @@ SUBSYSTEM_DEF(atoms)
if(initialized == INITIALIZATION_INSSATOMS)
return
- set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD)
+ set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, SUBSYSTEM_INIT_SOURCE)
// This may look a bit odd, but if the actual atom creation runtimes for some reason, we absolutely need to set initialized BACK
CreateAtoms(atoms, atoms_to_return)
- clear_tracked_initalize()
+ clear_tracked_initalize(SUBSYSTEM_INIT_SOURCE)
if(late_loaders.len)
for(var/I in 1 to late_loaders.len)
@@ -162,31 +165,39 @@ SUBSYSTEM_DEF(atoms)
return qdeleted || QDELING(A)
-/datum/controller/subsystem/atoms/proc/map_loader_begin()
- set_tracked_initalized(INITIALIZATION_INSSATOMS)
+/datum/controller/subsystem/atoms/proc/map_loader_begin(source)
+ set_tracked_initalized(INITIALIZATION_INSSATOMS, source)
-/datum/controller/subsystem/atoms/proc/map_loader_stop()
- clear_tracked_initalize()
+/datum/controller/subsystem/atoms/proc/map_loader_stop(source)
+ clear_tracked_initalize(source)
-/// Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off
-/datum/controller/subsystem/atoms/proc/set_tracked_initalized(value)
- if(!initialized_changed)
- old_initialized = initialized
- initialized = value
- else
- stack_trace("We started maploading while we were already maploading. You doing something odd?")
- initialized_changed += 1
+/// Use this to set initialized to prevent error states where the old initialized is overriden, and we end up losing all context
+/// Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentially
+/datum/controller/subsystem/atoms/proc/set_tracked_initalized(state, source)
+ if(!length(initialized_state))
+ base_initialized = initialized
+ initialized_state += list(list(source, state))
+ initialized = state
-/datum/controller/subsystem/atoms/proc/clear_tracked_initalize()
- initialized_changed -= 1
- if(!initialized_changed)
- initialized = old_initialized
+/datum/controller/subsystem/atoms/proc/clear_tracked_initalize(source)
+ if(!length(initialized_state))
+ return
+ for(var/i in length(initialized_state) to 1 step -1)
+ if(initialized_state[i][1] == source)
+ initialized_state.Cut(i, i+1)
+ break
+
+ if(!length(initialized_state))
+ initialized = base_initialized
+ base_initialized = INITIALIZATION_INNEW_REGULAR
+ return
+ initialized = initialized_state[length(initialized_state)][2]
/datum/controller/subsystem/atoms/Recover()
initialized = SSatoms.initialized
if(initialized == INITIALIZATION_INNEW_MAPLOAD)
InitializeAtoms()
- old_initialized = SSatoms.old_initialized
+ initialized_state = SSatoms.initialized_state
BadInitializeCalls = SSatoms.BadInitializeCalls
/datum/controller/subsystem/atoms/proc/setupGenetics()
@@ -238,3 +249,5 @@ SUBSYSTEM_DEF(atoms)
var/initlog = InitLog()
if(initlog)
text2file(initlog, "[GLOB.log_directory]/initialize.log")
+
+#undef SUBSYSTEM_INIT_SOURCE
diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm
index 08eb9bc061cc..483dcd49bd25 100644
--- a/code/controllers/subsystem/id_access.dm
+++ b/code/controllers/subsystem/id_access.dm
@@ -322,6 +322,7 @@ SUBSYSTEM_DEF(id_access)
desc_by_access["[ACCESS_CENT_SPECOPS]"] = "Code Black"
desc_by_access["[ACCESS_CENT_CAPTAIN]"] = "Code Gold"
desc_by_access["[ACCESS_CENT_BAR]"] = "Code Scotch"
+ desc_by_access["[ACCESS_BIT_DEN]"] = "Bitrunner Den"
/**
* Returns the access bitflags associated with any given access level.
diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm
index 51578de0c347..2426741df79c 100644
--- a/code/controllers/subsystem/machines.dm
+++ b/code/controllers/subsystem/machines.dm
@@ -3,6 +3,13 @@ SUBSYSTEM_DEF(machines)
init_order = INIT_ORDER_MACHINES
flags = SS_KEEP_TIMING
wait = 2 SECONDS
+
+ /// Assosciative list of all machines that exist.
+ VAR_PRIVATE/list/machines_by_type = list()
+
+ /// All machines, not just those that are processing.
+ VAR_PRIVATE/list/all_machines = list()
+
var/list/processing = list()
var/list/currentrun = list()
///List of all powernets on the server.
@@ -13,6 +20,46 @@ SUBSYSTEM_DEF(machines)
fire()
return SS_INIT_SUCCESS
+/// Registers a machine with the machine subsystem; should only be called by the machine itself during its creation.
+/datum/controller/subsystem/machines/proc/register_machine(obj/machinery/machine)
+ LAZYADD(machines_by_type[machine.type], machine)
+ all_machines |= machine
+
+/// Removes a machine from the machine subsystem; should only be called by the machine itself inside Destroy.
+/datum/controller/subsystem/machines/proc/unregister_machine(obj/machinery/machine)
+ var/list/existing = machines_by_type[machine.type]
+ existing -= machine
+ if(!length(existing))
+ machines_by_type -= machine.type
+ all_machines -= machine
+
+/// Gets a list of all machines that are either the passed type or a subtype.
+/datum/controller/subsystem/machines/proc/get_machines_by_type_and_subtypes(obj/machinery/machine_type)
+ if(!ispath(machine_type))
+ machine_type = machine_type.type
+ if(!ispath(machine_type, /obj/machinery))
+ CRASH("called get_machines_by_type_and_subtypes with a non-machine type [machine_type]")
+ var/list/machines = list()
+ for(var/next_type in typesof(machine_type))
+ var/list/found_machines = machines_by_type[next_type]
+ if(found_machines)
+ machines += found_machines
+ return machines
+
+
+/// Gets a list of all machines that are the exact passed type.
+/datum/controller/subsystem/machines/proc/get_machines_by_type(obj/machinery/machine_type)
+ if(!ispath(machine_type))
+ machine_type = machine_type.type
+ if(!ispath(machine_type, /obj/machinery))
+ CRASH("called get_machines_by_type with a non-machine type [machine_type]")
+
+ var/list/machines = machines_by_type[machine_type]
+ return machines?.Copy() || list()
+
+/datum/controller/subsystem/machines/proc/get_all_machines()
+ return all_machines.Copy()
+
/datum/controller/subsystem/machines/proc/makepowernets()
for(var/datum/powernet/power_network as anything in powernets)
qdel(power_network)
@@ -25,7 +72,7 @@ SUBSYSTEM_DEF(machines)
propagate_network(power_cable, power_cable.powernet)
/datum/controller/subsystem/machines/stat_entry(msg)
- msg = "M:[length(processing)]|PN:[length(powernets)]"
+ msg = "M:[length(all_machines)]|MT:[length(machines_by_type)]|PM:[length(processing)]|PN:[length(powernets)]"
return ..()
/datum/controller/subsystem/machines/fire(resumed = FALSE)
@@ -56,7 +103,11 @@ SUBSYSTEM_DEF(machines)
propagate_network(PC,PC.powernet)
/datum/controller/subsystem/machines/Recover()
- if (istype(SSmachines.processing))
+ if(islist(SSmachines.processing))
processing = SSmachines.processing
- if (istype(SSmachines.powernets))
+ if(islist(SSmachines.powernets))
powernets = SSmachines.powernets
+ if(islist(SSmachines.all_machines))
+ all_machines = SSmachines.all_machines
+ if(islist(SSmachines.machines_by_type))
+ machines_by_type = SSmachines.machines_by_type
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 1ef9f65d6dfa..5b9d561afcae 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -193,7 +193,7 @@ SUBSYSTEM_DEF(mapping)
unused_turfs["[T.z]"] |= T
var/area/old_area = T.loc
old_area.turfs_to_uncontain += T
- T.flags_1 |= UNUSED_RESERVATION_TURF
+ T.turf_flags = UNUSED_RESERVATION_TURF
world_contents += T
world_turf_contents += T
packet.len--
@@ -217,13 +217,13 @@ SUBSYSTEM_DEF(mapping)
if(multiz_levels.len < z_level)
multiz_levels.len = z_level
- var/linked_down = level_trait(z_level, ZTRAIT_DOWN)
- var/linked_up = level_trait(z_level, ZTRAIT_UP)
- multiz_levels[z_level] = list()
- if(linked_down)
- multiz_levels[z_level]["[DOWN]"] = TRUE
- if(linked_up)
- multiz_levels[z_level]["[UP]"] = TRUE
+ var/z_above = level_trait(z_level, ZTRAIT_UP)
+ var/z_below = level_trait(z_level, ZTRAIT_DOWN)
+ if(!(z_above == TRUE || z_above == FALSE || z_above == null) || !(z_below == TRUE || z_below == FALSE || z_below == null))
+ stack_trace("Warning, numeric mapping offsets are deprecated. Instead, mark z level connections by setting UP/DOWN to true if the connection is allowed")
+ multiz_levels[z_level] = new /list(LARGEST_Z_LEVEL_INDEX)
+ multiz_levels[z_level][Z_LEVEL_UP] = !!z_above
+ multiz_levels[z_level][Z_LEVEL_DOWN] = !!z_below
/datum/controller/subsystem/mapping/proc/calculate_z_level_gravity(z_level_number)
if(!isnum(z_level_number) || z_level_number < 1)
@@ -309,6 +309,10 @@ SUBSYSTEM_DEF(mapping)
returning += M
qdel(T, TRUE)
+/datum/controller/subsystem/mapping/proc/get_reservation_from_turf(turf/T)
+ RETURN_TYPE(/datum/turf_reservation)
+ return used_turfs[T]
+
/* Nuke threats, for making the blue tiles on the station go RED
Used by the AI doomsday and the self-destruct nuke.
*/
@@ -824,26 +828,34 @@ GLOBAL_LIST_EMPTY(the_station_areas)
num_of_res_levels++
return add_new_zlevel("Transit/Reserved #[num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE))
-/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override)
- UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs)
- var/datum/turf_reservation/reserve = new type
- if(turf_type_override)
+/// Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.
+/datum/controller/subsystem/mapping/proc/request_turf_block_reservation(
+ width,
+ height,
+ z_size = 1,
+ z_reservation = null,
+ reservation_type = /datum/turf_reservation,
+ turf_type_override = null,
+)
+ UNTIL((!z_reservation || reservation_ready["[z_reservation]"]) && !clearing_reserved_turfs)
+ var/datum/turf_reservation/reserve = new reservation_type
+ if(!isnull(turf_type_override))
reserve.turf_type = turf_type_override
- if(!z)
+ if(!z_reservation)
for(var/i in levels_by_trait(ZTRAIT_RESERVED))
- if(reserve.Reserve(width, height, i))
+ if(reserve.reserve(width, height, z_size, i))
return reserve
//If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one
var/datum/space_level/newReserved = add_reservation_zlevel()
initialize_reserved_level(newReserved.z_value)
- if(reserve.Reserve(width, height, newReserved.z_value))
+ if(reserve.reserve(width, height, z_size, newReserved.z_value))
return reserve
else
- if(!level_trait(z, ZTRAIT_RESERVED))
+ if(!level_trait(z_reservation, ZTRAIT_RESERVED))
qdel(reserve)
return
else
- if(reserve.Reserve(width, height, z))
+ if(reserve.reserve(width, height, z_size, z_reservation))
return reserve
QDEL_NULL(reserve)
@@ -861,7 +873,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
var/block = block(A, B)
for(var/turf/T as anything in block)
// No need to empty() these, because they just got created and are already /turf/open/space/basic.
- T.flags_1 |= UNUSED_RESERVATION_TURF
+ T.turf_flags = UNUSED_RESERVATION_TURF
CHECK_TICK
// Gotta create these suckers if we've not done so already
@@ -958,24 +970,24 @@ GLOBAL_LIST_EMPTY(the_station_areas)
/datum/controller/subsystem/mapping/proc/update_plane_tracking(datum/space_level/update_with)
// We're essentially going to walk down the stack of connected z levels, and set their plane offset as we go
- // Yes this will cause infinite loops if our templating is fucked. Fuck off
- var/below_offset = 0
- // I'm sorry, it needs to start at 0
- var/current_level = -1
- var/current_z = update_with.z_value
+ var/plane_offset = 0
+ var/datum/space_level/current_z = update_with
var/list/datum/space_level/levels_checked = list()
- do
- current_level += 1
- current_z += below_offset
- z_level_to_plane_offset[current_z] = current_level
- var/datum/space_level/next_level = z_list[current_z]
- below_offset = next_level.traits[ZTRAIT_DOWN]
- levels_checked += next_level
- while(below_offset)
+ var/list/z_stack = list()
+ while(TRUE)
+ var/z_level = current_z.z_value
+ z_stack += z_level
+ z_level_to_plane_offset[z_level] = plane_offset
+ levels_checked += current_z
+ if(!current_z.traits[ZTRAIT_DOWN]) // If there's nothing below, stop looking
+ break
+ // Otherwise, down down down we go
+ current_z = z_list[z_level - 1]
+ plane_offset += 1
/// Updates the lowest offset value
for(var/datum/space_level/level_to_update in levels_checked)
- z_level_to_lowest_plane_offset[level_to_update.z_value] = current_level
+ z_level_to_lowest_plane_offset[level_to_update.z_value] = plane_offset
// This can be affected by offsets, so we need to update it
// PAIN
@@ -983,7 +995,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
generate_lighting_appearance_by_z(i)
var/old_max = max_plane_offset
- max_plane_offset = max(max_plane_offset, current_level)
+ max_plane_offset = max(max_plane_offset, plane_offset)
if(max_plane_offset == old_max)
return
diff --git a/code/controllers/subsystem/movement/cliff_falling.dm b/code/controllers/subsystem/movement/cliff_falling.dm
new file mode 100644
index 000000000000..bf95397f8e8c
--- /dev/null
+++ b/code/controllers/subsystem/movement/cliff_falling.dm
@@ -0,0 +1,61 @@
+/// Subsystem to handle falling of off cliffs
+MOVEMENT_SUBSYSTEM_DEF(cliff_falling)
+ name = "Cliff Falling"
+ priority = FIRE_PRIORITY_CLIFF_FALLING
+ flags = SS_NO_INIT|SS_TICKER
+ runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
+
+ /// Who are currently falling and with which movemanager?
+ var/list/cliff_grinders = list()
+
+/datum/controller/subsystem/movement/cliff_falling/proc/start_falling(atom/movable/faller, turf/open/cliff/cliff)
+ // Make them move
+ var/mover = SSmove_manager.move(moving = faller, direction = cliff.fall_direction, delay = cliff.fall_speed, subsystem = src, priority = MOVEMENT_ABOVE_SPACE_PRIORITY, flags = MOVEMENT_LOOP_OUTSIDE_CONTROL | MOVEMENT_LOOP_NO_DIR_UPDATE)
+
+ cliff_grinders[faller] = mover
+
+ RegisterSignal(faller, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
+ RegisterSignal(faller, COMSIG_PARENT_QDELETING, PROC_REF(clear_references))
+ RegisterSignal(faller, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_move))
+
+/// We just moved, so check if we're still moving right
+/datum/controller/subsystem/movement/cliff_falling/proc/on_moved(atom/movable/mover, turf/old_loc)
+ SIGNAL_HANDLER
+
+ var/turf/open/cliff/new_cliff = mover.loc
+ if(!iscliffturf(new_cliff)) //not a cliff, lets clean up
+ var/datum/move_loop/move/falling = cliff_grinders[mover]
+ clear_references(mover)
+ qdel(falling)
+ return
+
+ new_cliff.on_fall(mover)
+
+ if(old_loc.type == new_cliff) //same type of cliff, no worries
+ return
+
+ var/datum/move_loop/move/fall = cliff_grinders[mover]
+ fall.set_delay(new_cliff.fall_speed) //different cliff, so set the speed
+
+/datum/controller/subsystem/movement/cliff_falling/proc/on_qdel(atom/movable/deletee)
+ SIGNAL_HANDLER
+
+ clear_references(deletee)
+
+/datum/controller/subsystem/movement/cliff_falling/proc/clear_references(atom/movable/deletee)
+ cliff_grinders -= deletee
+
+ UnregisterSignal(deletee, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_PRE_MOVE))
+
+/// Check if we can move! We do this mostly to determine falling behaviour and make sure we're moving to valid tiles
+/datum/controller/subsystem/movement/cliff_falling/proc/check_move(atom/movable/mover, turf/target)
+ SIGNAL_HANDLER
+
+ var/turf/open/cliff/cliff_turf = get_turf(mover)
+
+ if(!iscliffturf(cliff_turf)) //we arent on a cliff, WHY ARE WE HERE???
+ clear_references(mover)
+ return
+
+ if(!cliff_turf.can_move(mover, target))
+ return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index a4e1e17e15db..839be9dc6ec0 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -601,12 +601,18 @@ SUBSYSTEM_DEF(shuttle)
if(WEST)
transit_path = /turf/open/space/transit/west
- var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path)
+ var/datum/turf_reservation/proposal = SSmapping.request_turf_block_reservation(
+ transit_width,
+ transit_height,
+ 1,
+ reservation_type = /datum/turf_reservation/transit,
+ turf_type_override = transit_path,
+ )
if(!istype(proposal))
return FALSE
- var/turf/bottomleft = locate(proposal.bottom_left_coords[1], proposal.bottom_left_coords[2], proposal.bottom_left_coords[3])
+ var/turf/bottomleft = proposal.bottom_left_turfs[1]
// Then create a transit docking port in the middle
var/coords = M.return_coords(0, 0, dock_dir)
/* 0------2
@@ -877,10 +883,15 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/loading_template)
. = FALSE
// Load shuttle template to a fresh block reservation.
- preview_reservation = SSmapping.RequestBlockReservation(loading_template.width, loading_template.height, type = /datum/turf_reservation/transit)
+ preview_reservation = SSmapping.request_turf_block_reservation(
+ loading_template.width,
+ loading_template.height,
+ 1,
+ reservation_type = /datum/turf_reservation/transit,
+ )
if(!preview_reservation)
CRASH("failed to reserve an area for shuttle template loading")
- var/turf/bottom_left = TURF_FROM_COORDS_LIST(preview_reservation.bottom_left_coords)
+ var/turf/bottom_left = preview_reservation.bottom_left_turfs[1]
loading_template.load(bottom_left, centered = FALSE, register = FALSE)
var/affected = loading_template.get_affected_turfs(bottom_left, centered=FALSE)
diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm
index 1c5c50dd0fbf..d99019e61a57 100644
--- a/code/controllers/subsystem/throwing.dm
+++ b/code/controllers/subsystem/throwing.dm
@@ -225,6 +225,9 @@ SUBSYSTEM_DEF(throwing)
if(thrownthing)
SEND_SIGNAL(thrownthing, COMSIG_MOVABLE_THROW_LANDED, src)
+ var/turf/landed_turf = get_turf(thrownthing)
+ if(!isnull(landed_turf) && isnull(thrownthing))
+ SEND_SIGNAL(landed_turf, COMSIG_TURF_MOVABLE_THROW_LANDED, thrownthing)
qdel(src)
diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm
index 618dcc10ff07..d23252c73aac 100644
--- a/code/datums/actions/mobs/lava_swoop.dm
+++ b/code/datums/actions/mobs/lava_swoop.dm
@@ -152,7 +152,7 @@
if(isindestructiblefloor(T))
continue
if(!isindestructiblewall(T))
- T.ChangeTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR)
+ T.TerraformTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR)
else
indestructible_turfs += T
SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening
diff --git a/code/datums/components/palette.dm b/code/datums/components/palette.dm
index 6f44e6e7f150..8d1631c9557c 100644
--- a/code/datums/components/palette.dm
+++ b/code/datums/components/palette.dm
@@ -38,6 +38,7 @@
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
RegisterSignal(parent, COMSIG_PAINTING_TOOL_SET_COLOR, PROC_REF(on_painting_tool_set_color))
RegisterSignal(parent, COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA, PROC_REF(get_palette_data))
+ RegisterSignal(parent, COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED, PROC_REF(palette_color_changed))
/datum/component/palette/Destroy()
QDEL_NULL(color_picker_menu)
@@ -128,3 +129,14 @@
"is_selected" = hexcolor == selected_color
))
data["paint_tool_palette"] = painting_data
+
+/datum/component/palette/proc/palette_color_changed(datum/source, chosen_color, index)
+ SIGNAL_HANDLER
+
+ var/was_selected_color = selected_color == colors[index]
+ colors[index] = chosen_color
+ if(was_selected_color)
+ var/obj/item/parent_item = parent
+ parent_item.set_painting_tool_color(chosen_color)
+ else
+ update_radial_list()
diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm
index 48d20c049186..619568f67e08 100644
--- a/code/datums/diseases/advance/symptoms/heal.dm
+++ b/code/datums/diseases/advance/symptoms/heal.dm
@@ -75,8 +75,8 @@
power = 2
/datum/symptom/heal/starlight/proc/CanTileHealDirectional(turf/turf_to_check, direction)
- if(direction == ZTRAIT_UP)
- turf_to_check = turf_to_check.above()
+ if(direction == UP)
+ turf_to_check = GET_TURF_ABOVE(turf_to_check)
if(!turf_to_check)
return STARLIGHT_CANNOT_HEAL
var/area/area_to_check = get_area(turf_to_check)
@@ -86,7 +86,7 @@
// while space covers normal space and those caused by explosions,
// if there is a floor tile when checking above, that means
// a roof exists so the outdoors should only work downwards
- if(isspaceturf(turf_to_check) || (area_to_check.outdoors && direction == ZTRAIT_DOWN))
+ if(isspaceturf(turf_to_check) || (area_to_check.outdoors && direction == DOWN))
if (levels_of_glass)
return STARLIGHT_CAN_HEAL_WITH_PENALTY // Glass gives a penalty.
return STARLIGHT_CAN_HEAL // No glass = can heal fully.
@@ -98,10 +98,10 @@
// Our turf is transparent OR openspace - we can check higher or lower z-levels
if(istransparentturf(turf_to_check) || istype(turf_to_check, /turf/open/openspace))
// Check above or below us
- if(direction == ZTRAIT_UP)
- turf_to_check = turf_to_check.above()
+ if(direction == UP)
+ turf_to_check = GET_TURF_ABOVE(turf_to_check)
else
- turf_to_check = turf_to_check.below()
+ turf_to_check = GET_TURF_BELOW(turf_to_check)
// If we found a turf above or below us,
// then we can rerun the loop on the newly found turf / area
@@ -114,7 +114,7 @@
// Checking below, we assume that space is below us (as we're standing on station)
// Checking above, we check that the area is "outdoors" before assuming if it is space or not.
else
- if(direction == ZTRAIT_DOWN || (direction == ZTRAIT_UP && area_to_check.outdoors))
+ if(direction == DOWN || (direction == UP && area_to_check.outdoors))
if (levels_of_glass)
return STARLIGHT_CAN_HEAL_WITH_PENALTY
return STARLIGHT_CAN_HEAL
@@ -122,12 +122,12 @@
return STARLIGHT_CANNOT_HEAL // Hit a non-space, Non-transparent turf - no healsies
/datum/symptom/heal/starlight/proc/CanTileHeal(turf/original_turf, satisfied_with_penalty)
- var/current_heal_level = CanTileHealDirectional(original_turf, ZTRAIT_DOWN)
+ var/current_heal_level = CanTileHealDirectional(original_turf, DOWN)
if(current_heal_level == STARLIGHT_CAN_HEAL)
return current_heal_level
if(current_heal_level && satisfied_with_penalty) // do not care if there is a healing penalty or no
return current_heal_level
- var/heal_level_from_above = CanTileHealDirectional(original_turf, ZTRAIT_UP)
+ var/heal_level_from_above = CanTileHealDirectional(original_turf, UP)
if(heal_level_from_above > current_heal_level)
return heal_level_from_above
else
diff --git a/code/datums/elements/cliff_walker.dm b/code/datums/elements/cliff_walker.dm
new file mode 100644
index 000000000000..063349b7ddc1
--- /dev/null
+++ b/code/datums/elements/cliff_walker.dm
@@ -0,0 +1,34 @@
+/// Lets a mob walk cliffs and keeps track of if they're alive or not to add/remove the trait
+/datum/element/cliff_walking
+
+/datum/element/cliff_walking/Attach(datum/target, climb_time, climb_stun)
+ . = ..()
+
+ if(!isliving(target))
+ return ELEMENT_INCOMPATIBLE
+
+ // Feel free to add more bespoke signals here if this gets implemented for more than just a few funny mobs
+ RegisterSignals(target, list(COMSIG_LIVING_DEATH, COMSIG_LIVING_REVIVE), PROC_REF(update_cliff_walking))
+
+ update_cliff_walking(target)
+
+/datum/element/cliff_walking/Detach(datum/source, ...)
+ . = ..()
+
+ UnregisterSignal(source, list(COMSIG_LIVING_DEATH, COMSIG_LIVING_REVIVE))
+
+/// Do some checks to see if we should walk the cliffs
+/datum/element/cliff_walking/proc/update_cliff_walking(mob/living/climber)
+ SIGNAL_HANDLER
+
+ if(climber.stat != DEAD)
+ ADD_TRAIT(climber, TRAIT_CLIFF_WALKER, type)
+ return
+
+ REMOVE_TRAIT(climber, TRAIT_CLIFF_WALKER, type)
+
+ var/turf/open/cliff/cliff_tile = get_turf(climber)
+ if(!iscliffturf(cliff_tile))
+ return
+
+ cliff_tile.try_fall(climber)
diff --git a/code/datums/elements/openspace_item_click_handler.dm b/code/datums/elements/openspace_item_click_handler.dm
index f0449892cebd..c9de01f381cd 100644
--- a/code/datums/elements/openspace_item_click_handler.dm
+++ b/code/datums/elements/openspace_item_click_handler.dm
@@ -19,7 +19,11 @@
SIGNAL_HANDLER
if(target.z == user.z)
return
- var/turf/turf_above = get_step_multiz(target, UP)
- if(turf_above?.z == user.z)
- INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), turf_above, user, user.CanReach(turf_above, source), click_parameters)
+ var/turf/checked_turf = get_turf(target)
+ while(!isnull(checked_turf))
+ checked_turf = GET_TURF_ABOVE(checked_turf)
+ if(checked_turf?.z == user.z)
+ INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), checked_turf, user, user.CanReach(checked_turf, source), click_parameters)
+ break
+
return COMPONENT_AFTERATTACK_PROCESSED_ITEM
diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm
index ab3a17dc40d5..b050dd0866f0 100644
--- a/code/datums/elements/turf_transparency.dm
+++ b/code/datums/elements/turf_transparency.dm
@@ -103,7 +103,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
if(!holding)
return
- var/turf/visual_target = to_display.above()
+ var/turf/visual_target = GET_TURF_ABOVE(to_display)
/// Basically, if we used to be under a non transparent turf, but are no longer in that position
/// Then we add to the transparent turf we're now under, and nuke the old object
if(!istransparentturf(visual_target))
@@ -120,7 +120,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
turf_sources[to_display] = sources
sources |= source
- var/turf/visual_target = to_display.above()
+ var/turf/visual_target = GET_TURF_ABOVE(to_display)
if(istransparentturf(visual_target) || isopenspaceturf(visual_target))
visual_target.vis_contents += to_display
else
@@ -142,7 +142,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
if(holding)
qdel(holding)
else
- var/turf/visual_target = to_hide.above()
+ var/turf/visual_target = GET_TURF_ABOVE(to_hide)
visual_target.vis_contents -= to_hide
if(!length(turf_sources) && !QDELETED(src))
@@ -201,7 +201,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
///Updates the viscontents or underlays below this tile.
/datum/element/turf_z_transparency/proc/update_multi_z(turf/our_turf)
- var/turf/below_turf = our_turf.below()
+ var/turf/below_turf = GET_TURF_BELOW(our_turf)
if(below_turf) // If we actually have something below us, display it.
for(var/turf/partner in range(1, below_turf))
// We use our z here to ensure the pillar is actually on our level
@@ -228,7 +228,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z)
return TRUE
/datum/element/turf_z_transparency/proc/clear_multiz(turf/our_turf)
- var/turf/below_turf = our_turf.below()
+ var/turf/below_turf = GET_TURF_BELOW(our_turf)
if(below_turf) // If we actually have something below us, we need to clear ourselves from it
for(var/turf/partner in range(1, below_turf))
// We use our z here to ensure the pillar is actually on our level
diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm
index b54686535ef0..910ecdda6f61 100644
--- a/code/datums/id_trim/jobs.dm
+++ b/code/datums/id_trim/jobs.dm
@@ -155,6 +155,30 @@
)
job = /datum/job/bartender
+/datum/id_trim/job/bitrunner
+ assignment = "Bitrunner"
+ trim_state = "trim_bitrunner"
+ department_color = COLOR_CARGO_BROWN
+ subdepartment_color = COLOR_CARGO_BROWN
+ sechud_icon_state = SECHUD_BITRUNNER
+ minimal_access = list(
+ ACCESS_BIT_DEN,
+ ACCESS_CARGO,
+ ACCESS_MAINT_TUNNELS,
+ ACCESS_MECH_MINING,
+ ACCESS_MINERAL_STOREROOM,
+ )
+ extra_access = list(
+ ACCESS_MINING,
+ ACCESS_MINING_STATION,
+ )
+ template_access = list(
+ ACCESS_CAPTAIN,
+ ACCESS_CHANGE_IDS,
+ ACCESS_QM,
+ )
+ job = /datum/job/bitrunner
+
/datum/id_trim/job/botanist
assignment = "Botanist"
trim_state = "trim_botanist"
@@ -215,6 +239,7 @@
ACCESS_SHIPPING,
)
extra_access = list(
+ ACCESS_BIT_DEN,
ACCESS_MINING,
ACCESS_MINING_STATION,
ACCESS_QM,
@@ -544,6 +569,7 @@
ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_ARMORY,
ACCESS_AUX_BASE,
+ ACCESS_BIT_DEN,
ACCESS_BRIG,
ACCESS_BRIG_ENTRANCE,
ACCESS_CARGO,
@@ -677,6 +703,7 @@
subdepartment_color = COLOR_MEDICAL_BLUE
sechud_icon_state = SECHUD_PARAMEDIC
minimal_access = list(
+ ACCESS_BIT_DEN,
ACCESS_CARGO,
ACCESS_CONSTRUCTION,
ACCESS_HYDROPONICS,
@@ -771,6 +798,7 @@
sechud_icon_state = SECHUD_QUARTERMASTER
minimal_access = list(
ACCESS_AUX_BASE,
+ ACCESS_BIT_DEN,
ACCESS_CARGO,
ACCESS_MAINT_TUNNELS,
ACCESS_MECH_MINING,
@@ -960,6 +988,7 @@
assignment = "Security Officer (Cargo)"
subdepartment_color = COLOR_CARGO_BROWN
department_access = list(
+ ACCESS_BIT_DEN,
ACCESS_CARGO,
ACCESS_MINING,
ACCESS_SHIPPING,
@@ -1028,6 +1057,7 @@
ACCESS_MINING_STATION,
)
extra_access = list(
+ ACCESS_BIT_DEN,
ACCESS_MAINT_TUNNELS,
)
template_access = list(
diff --git a/code/datums/id_trim/outfits.dm b/code/datums/id_trim/outfits.dm
index 4bb9365ebc45..c8f84859d98c 100644
--- a/code/datums/id_trim/outfits.dm
+++ b/code/datums/id_trim/outfits.dm
@@ -52,3 +52,22 @@
assignment = "Bounty Hunter"
department_color = COLOR_PRISONER_ORANGE
subdepartment_color = COLOR_PRISONER_BLACK
+
+/// Trim for player controlled avatars in the Virtual Domain.
+/datum/id_trim/bit_avatar
+ assignment = "Bit Avatar"
+ trim_state = "trim_bitavatar"
+ department_color = COLOR_BLACK
+ subdepartment_color = COLOR_GREEN
+
+/// Trim for cyber police in the Virtual Domain.
+/datum/id_trim/cyber_police
+ assignment = "Cyber Police"
+ trim_state = "trim_deathcommando"
+ department_color = COLOR_BLACK
+ subdepartment_color = COLOR_GREEN
+
+/datum/id_trim/cyber_police/New()
+ . = ..()
+
+ access |= SSid_access.get_region_access_list(list(REGION_ALL_GLOBAL))
diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm
index af6df50e96f8..ede97eb7b8a9 100644
--- a/code/datums/lazy_template.dm
+++ b/code/datums/lazy_template.dm
@@ -7,11 +7,12 @@
/// If this is true each load will increment an index keyed to the type and it will load [map_name]_[index]
var/list/datum/turf_reservation/reservations = list()
var/uses_multiple_allocations = FALSE
+ /// Key to identify this template - used in caching
var/key
+ /// Directory of maps to prefix to the filename
var/map_dir = "_maps/templates/lazy_templates"
+ /// The filename (without extension) of the map to load
var/map_name
- var/map_width
- var/map_height
/datum/lazy_template/New()
reservations = list()
@@ -46,25 +47,63 @@
if(!load_path || !fexists(load_path))
CRASH("lazy template [type] has an invalid load_path: '[load_path]', check directory and map name!")
- var/datum/map_template/loading = new(path = load_path, cache = TRUE)
- if(!loading.cached_map)
+ var/datum/parsed_map/parsed_template = load_map(
+ file(load_path),
+ measure_only = TRUE,
+ )
+ if(isnull(parsed_template.parsed_bounds))
CRASH("Failed to cache lazy template for loading: '[key]'")
- var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(loading.width, loading.height)
+ var/width = parsed_template.parsed_bounds[MAP_MAXX] - parsed_template.parsed_bounds[MAP_MINX] + 1
+ var/height = parsed_template.parsed_bounds[MAP_MAXY] - parsed_template.parsed_bounds[MAP_MINY] + 1
+ var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(
+ width,
+ height,
+ parsed_template.parsed_bounds[MAP_MAXZ],
+ )
if(!reservation)
CRASH("Failed to reserve a block for lazy template: '[key]'")
- if(!loading.load(coords2turf(reservation.bottom_left_coords)))
- CRASH("Failed to load lazy template: '[key]'")
- reservations += reservation
+ // lists kept for overall loading
+ var/list/loaded_atom_movables = list()
+ var/list/loaded_turfs = list()
+ var/list/loaded_areas = list()
+
+ var/list/obj/structure/cable/loaded_cables = list()
+ var/list/obj/machinery/atmospherics/loaded_atmospherics = list()
+ for(var/z_idx in parsed_template.parsed_bounds[MAP_MAXZ] to 1 step -1)
+ var/turf/bottom_left = reservation.bottom_left_turfs[z_idx]
+ var/turf/top_right = reservation.top_right_turfs[z_idx]
+ load_map(
+ file(load_path),
+ bottom_left.x,
+ bottom_left.y,
+ bottom_left.z,
+ z_upper = z_idx,
+ z_lower = z_idx,
+ )
+ for(var/turf/turf as anything in block(bottom_left, top_right))
+ loaded_turfs += turf
+ loaded_areas |= get_area(turf)
+ // atoms can actually be in the contents of two or more turfs based on its icon/bound size
+ // see https://www.byond.com/docs/ref/index.html#/atom/var/contents
+ for(var/thing in (turf.get_all_contents() - turf))
+ if(istype(thing, /obj/structure/cable))
+ loaded_cables += thing
+ else if(istype(thing, /obj/machinery/atmospherics))
+ loaded_atmospherics += thing
+ loaded_atom_movables |= thing
+ SSatoms.InitializeAtoms(loaded_areas + loaded_atom_movables + loaded_turfs)
+ SSmachines.setup_template_powernets(loaded_cables)
+ SSair.setup_template_machinery(loaded_atmospherics)
+ SEND_SIGNAL(src, COMSIG_LAZY_TEMPLATE_LOADED, loaded_atom_movables, loaded_turfs, loaded_areas)
+ reservations += reservation
return reservation
/datum/lazy_template/nukie_base
key = LAZY_TEMPLATE_KEY_NUKIEBASE
map_name = "nukie_base"
- map_width = 89
- map_height = 100
/datum/lazy_template/wizard_dem
key = LAZY_TEMPLATE_KEY_WIZARDDEN
diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm
index 0fe10d9bce0a..0a239d5e878a 100644
--- a/code/datums/station_traits/positive_traits.dm
+++ b/code/datums/station_traits/positive_traits.dm
@@ -283,6 +283,7 @@
/datum/job/assistant = /obj/item/organ/internal/heart/cybernetic, //real cardiac
/datum/job/atmospheric_technician = /obj/item/organ/internal/cyberimp/mouth/breathing_tube,
/datum/job/bartender = /obj/item/organ/internal/liver/cybernetic/tier3,
+ /datum/job/bitrunner = /obj/item/organ/internal/eyes/robotic/thermals,
/datum/job/botanist = /obj/item/organ/internal/cyberimp/chest/nutriment,
/datum/job/captain = /obj/item/organ/internal/heart/cybernetic/tier3,
/datum/job/cargo_technician = /obj/item/organ/internal/stomach/cybernetic/tier2,
diff --git a/code/datums/status_effects/debuffs/static_vision.dm b/code/datums/status_effects/debuffs/static_vision.dm
new file mode 100644
index 000000000000..7132c189b9d4
--- /dev/null
+++ b/code/datums/status_effects/debuffs/static_vision.dm
@@ -0,0 +1,29 @@
+/datum/status_effect/static_vision
+ id = "static_vision"
+ status_type = STATUS_EFFECT_REPLACE
+ alert_type = null
+
+/datum/status_effect/static_vision/on_creation(mob/living/new_owner, duration = 3 SECONDS)
+ src.duration = duration
+ return ..()
+
+/datum/status_effect/static_vision/on_apply()
+ RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(remove_static_vision))
+
+ owner.overlay_fullscreen(id, /atom/movable/screen/fullscreen/static_vision)
+ owner.sound_environment_override = SOUND_ENVIRONMENT_UNDERWATER
+
+ return TRUE
+
+/datum/status_effect/static_vision/on_remove()
+ UnregisterSignal(owner, COMSIG_LIVING_DEATH)
+
+ owner.clear_fullscreen(id)
+ if(owner.sound_environment_override == SOUND_ENVIRONMENT_UNDERWATER)
+ owner.sound_environment_override = SOUND_ENVIRONMENT_NONE
+
+/// Handles clearing on death
+/datum/status_effect/static_vision/proc/remove_static_vision(datum/source, admin_revive)
+ SIGNAL_HANDLER
+
+ qdel(src)
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index d0dd4fb96f23..5ab88b19956c 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -45,34 +45,42 @@
dead_players = trim_list(GLOB.dead_player_list)
list_observers = trim_list(GLOB.current_observers_list)
-/datum/dynamic_ruleset/midround/proc/trim_list(list/L = list())
- var/list/trimmed_list = L.Copy()
- for(var/mob/M in trimmed_list)
- if (!istype(M, required_type))
- trimmed_list.Remove(M)
+/datum/dynamic_ruleset/midround/proc/trim_list(list/to_trim = list())
+ var/list/trimmed_list = to_trim.Copy()
+ for(var/mob/creature in trimmed_list)
+ if (!istype(creature, required_type))
+ trimmed_list.Remove(creature)
continue
- if (!M.client) // Are they connected?
- trimmed_list.Remove(M)
+ if (isnull(creature.client)) // Are they connected?
+ trimmed_list.Remove(creature)
continue
- if(M.client.get_remaining_days(minimum_required_age) > 0)
- trimmed_list.Remove(M)
+ if (isnull(creature.mind))
+ trimmed_list.Remove(creature)
continue
- if (!((antag_preference || antag_flag) in M.client.prefs.be_special))
- trimmed_list.Remove(M)
+ if(creature.client.get_remaining_days(minimum_required_age) > 0)
+ trimmed_list.Remove(creature)
continue
- if (is_banned_from(M.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE)))
- trimmed_list.Remove(M)
+ if (!((antag_preference || antag_flag) in creature.client.prefs.be_special))
+ trimmed_list.Remove(creature)
+ continue
+ if (is_banned_from(creature.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE)))
+ trimmed_list.Remove(creature)
+ continue
+ if (restrict_ghost_roles && (creature.mind.assigned_role.title in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role?
+ trimmed_list.Remove(creature)
+ continue
+ if (creature.mind.assigned_role.title in restricted_roles) // Does their job allow it?
+ trimmed_list.Remove(creature)
+ continue
+ if (length(exclusive_roles) && !(creature.mind.assigned_role.title in exclusive_roles)) // Is the rule exclusive to their job?
+ trimmed_list.Remove(creature)
+ continue
+ if(HAS_TRAIT(creature, TRAIT_MIND_TEMPORARILY_GONE)) // are they out of body?
+ trimmed_list.Remove(creature)
+ continue
+ if(HAS_TRAIT(creature, TRAIT_TEMPORARY_BODY)) // are they an avatar?
+ trimmed_list.Remove(creature)
continue
- if (M.mind)
- if (restrict_ghost_roles && (M.mind.assigned_role.title in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role?
- trimmed_list.Remove(M)
- continue
- if (M.mind.assigned_role.title in restricted_roles) // Does their job allow it?
- trimmed_list.Remove(M)
- continue
- if ((exclusive_roles.len > 0) && !(M.mind.assigned_role.title in exclusive_roles)) // Is the rule exclusive to their job?
- trimmed_list.Remove(M)
- continue
return trimmed_list
// You can then for example prompt dead players in execute() to join as strike teams or whatever
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index edcbef340d21..2d6abc921ce7 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -164,6 +164,7 @@
/obj/machinery/Initialize(mapload)
. = ..()
GLOB.machines += src
+ SSmachines.register_machine(src)
if(ispath(circuit, /obj/item/circuitboard))
circuit = new circuit(src)
@@ -195,6 +196,7 @@
/obj/machinery/Destroy()
GLOB.machines.Remove(src)
+ SSmachines.unregister_machine(src)
end_processing()
dump_inventory_contents()
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index b586cb2b28bb..397f85a2f95d 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -545,23 +545,22 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0)
see = get_hear(view_range, pos)
if(check_lower || check_higher)
// Haha datum var access KILL ME
- var/datum/controller/subsystem/mapping/local_mapping = SSmapping
for(var/turf/seen in see)
if(check_lower)
var/turf/visible = seen
while(visible && istransparentturf(visible))
- var/turf/below = local_mapping.get_turf_below(visible)
+ var/turf/below = GET_TURF_BELOW(visible)
for(var/turf/adjacent in range(1, below))
see += adjacent
see += adjacent.contents
visible = below
if(check_higher)
- var/turf/above = local_mapping.get_turf_above(seen)
+ var/turf/above = GET_TURF_ABOVE(seen)
while(above && istransparentturf(above))
for(var/turf/adjacent in range(1, above))
see += adjacent
see += adjacent.contents
- above = local_mapping.get_turf_above(above)
+ above = GET_TURF_ABOVE(above)
return see
/obj/machinery/camera/proc/Togglelight(on=0)
diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm
index 5084f9f75c33..6da917e8aab9 100644
--- a/code/game/objects/effects/decals/cleanable/aliens.dm
+++ b/code/game/objects/effects/decals/cleanable/aliens.dm
@@ -40,7 +40,9 @@
return
if(mapload)
for (var/i in 1 to range)
- new /obj/effect/decal/cleanable/xenoblood/xsplatter(loc)
+ var/turf/my_turf = get_turf(src)
+ if(!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf))
+ new /obj/effect/decal/cleanable/xenoblood/xsplatter(my_turf)
if (!step_to(src, get_step(src, direction), 0))
break
return
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index 3e7f04e7b9b9..15ad4dbbb5b1 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -158,8 +158,10 @@
if(!step_to(src, get_step(src, direction), 0))
return
if(mapload)
- for (var/i = 1, i < range, i++)
- new /obj/effect/decal/cleanable/blood/splatter(loc, streak_diseases)
+ for (var/i in 1 to range)
+ var/turf/my_turf = get_turf(src)
+ if(!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf))
+ new /obj/effect/decal/cleanable/blood/splatter(my_turf)
if (!step_to(src, get_step(src, direction), 0))
break
return
diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm
index aaf15a9dc5ce..d3af1e2846b0 100644
--- a/code/game/objects/effects/decals/cleanable/robots.dm
+++ b/code/game/objects/effects/decals/cleanable/robots.dm
@@ -25,8 +25,9 @@
return
if(mapload)
for (var/i in 1 to range)
- if (prob(40))
- new /obj/effect/decal/cleanable/oil/streak(src.loc)
+ var/turf/my_turf = get_turf(src)
+ if(prob(40) && (!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf)))
+ new /obj/effect/decal/cleanable/oil/streak(my_turf)
if (!step_to(src, get_step(src, direction), 0))
break
return
diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm
index 1f2193e9506c..fa6a178b5944 100644
--- a/code/game/objects/effects/decals/decal.dm
+++ b/code/game/objects/effects/decals/decal.dm
@@ -18,8 +18,9 @@
if(B && B.loc == loc)
qdel(src)
-/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T)
- return isclosedturf(T) || isgroundlessturf(T)
+///Checks if we are allowed to be in `here_turf`, and returns that result. Subtypes should override this when necessary.
+/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/here_turf)
+ return isclosedturf(here_turf) || (isgroundlessturf(here_turf) && !GET_TURF_BELOW(here_turf))
/obj/effect/decal/ex_act(severity, target)
qdel(src)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 00535f42686c..7915ce1cfb70 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -74,6 +74,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
name = "Cargo Technician"
icon_state = "Cargo Technician"
+/obj/effect/landmark/start/bitrunner
+ name = "Bitrunner"
+ icon_state = "x3"
+
/obj/effect/landmark/start/bartender
name = "Bartender"
icon_state = "Bartender"
diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm
index 7a0317c4c77a..273a4c772a57 100644
--- a/code/game/objects/effects/phased_mob.dm
+++ b/code/game/objects/effects/phased_mob.dm
@@ -83,7 +83,7 @@
return
var/area/destination_area = newloc.loc
movedelay = world.time + movespeed
- if(newloc.flags_1 & NOJAUNT)
+ if(newloc.turf_flags & NOJAUNT)
to_chat(user, span_warning("Some strange aura is blocking the way."))
return
if(destination_area.area_flags & NOTELEPORT || SSmapping.level_trait(newloc.z, ZTRAIT_NOPHASE))
diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm
index 423821cf8731..62f8bb7cc42f 100644
--- a/code/game/objects/effects/spawners/random/random.dm
+++ b/code/game/objects/effects/spawners/random/random.dm
@@ -93,8 +93,9 @@
if(radius >= 0)
for(var/turf/turf_in_view in view(radius, get_turf(src)))
- if(!turf_in_view.density)
- scatter_locations += turf_in_view
+ if(isclosedturf(turf_in_view) || (isgroundlessturf(turf_in_view) && !GET_TURF_BELOW(turf_in_view)))
+ continue
+ scatter_locations += turf_in_view
return scatter_locations
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index d152629568c3..a05659e0e18d 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -535,6 +535,10 @@
name = "Golem Ship Equipment Vendor Console"
build_path = /obj/machinery/computer/order_console/mining/golem
+/obj/item/circuitboard/computer/order_console/bitrunning
+ name = "Bitrunning Vendor Console"
+ build_path = /obj/machinery/computer/order_console/bitrunning
+
/obj/item/circuitboard/computer/ferry
name = "Transport Ferry"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
@@ -596,3 +600,8 @@
name = "Medical Order"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/computer/department_orders/medical
+
+/obj/item/circuitboard/computer/quantum_console
+ name = "Quantum Server Console"
+ greyscale_colors = CIRCUIT_COLOR_SUPPLY
+ build_path = /obj/machinery/computer/quantum_console
diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
index 5277396e6bb8..32c33148e534 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -1324,18 +1324,6 @@
name = "\improper Departmental Techfab - Cargo"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/rnd/production/techfab/department/cargo
-
-/obj/item/circuitboard/machine/bepis
- name = "BEPIS Chamber"
- greyscale_colors = CIRCUIT_COLOR_SUPPLY
- build_path = /obj/machinery/rnd/bepis
- req_components = list(
- /obj/item/stack/cable_coil = 5,
- /datum/stock_part/capacitor = 1,
- /datum/stock_part/manipulator = 1,
- /datum/stock_part/micro_laser = 1,
- /datum/stock_part/scanning_module = 1)
-
//Misc
/obj/item/circuitboard/machine/sheetifier
name = "Sheet-meister 2000"
@@ -1494,3 +1482,22 @@
greyscale_colors = CIRCUIT_COLOR_SCIENCE
build_path = /obj/machinery/navbeacon
req_components = list()
+
+/obj/item/circuitboard/machine/quantum_server
+ name = "Quantum Server"
+ greyscale_colors = CIRCUIT_COLOR_SUPPLY
+ build_path = /obj/machinery/quantum_server
+ req_components = list(
+ /datum/stock_part/manipulator = 2,
+ /datum/stock_part/scanning_module = 1,
+ /datum/stock_part/capacitor = 1,
+ )
+
+/obj/item/circuitboard/machine/netpod
+ name = "Netpod"
+ greyscale_colors = CIRCUIT_COLOR_SUPPLY
+ build_path = /obj/machinery/netpod
+ req_components = list(
+ /datum/stock_part/manipulator = 1,
+ /datum/stock_part/matter_bin = 2,
+ )
diff --git a/code/game/objects/structures/fake_stairs.dm b/code/game/objects/structures/fake_stairs.dm
new file mode 100644
index 000000000000..a5e03ed6b598
--- /dev/null
+++ b/code/game/objects/structures/fake_stairs.dm
@@ -0,0 +1,19 @@
+/// Stairs but they are FAKE and dont have any of the Z-changing behavior. DO NOT MAP THESE NEXT TO REAL STAIRS
+/obj/structure/fake_stairs
+ name = "stairs"
+ icon = 'icons/obj/stairs.dmi'
+ icon_state = "stairs"
+ anchored = TRUE
+ move_resist = INFINITY
+
+ plane = FLOOR_PLANE //one with the floor
+
+MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fake_stairs, 0)
+
+/obj/structure/fake_stairs/wood
+ icon_state = "stairs_wood"
+
+MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fake_stairs/wood, 0)
+
+/obj/structure/fake_stairs/stone
+ icon_state = "stairs_stone"
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 391280745b26..9b7b5590018e 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -50,14 +50,14 @@
var/obj/structure/ladder/L
if (!down)
- L = locate() in SSmapping.get_turf_below(T)
+ L = locate() in GET_TURF_BELOW(T)
if (L)
if(crafted == L.crafted)
down = L
L.up = src // Don't waste effort looping the other way
L.update_appearance()
if (!up)
- L = locate() in SSmapping.get_turf_above(T)
+ L = locate() in GET_TURF_ABOVE(T)
if (L)
if(crafted == L.crafted)
up = L
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 1a0ddd545209..7e421372cc90 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -110,8 +110,8 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list(
. = list()//output everything that successfully heard the sound
- var/turf/above_turf = SSmapping.get_turf_above(turf_source)
- var/turf/below_turf = SSmapping.get_turf_below(turf_source)
+ var/turf/above_turf = GET_TURF_ABOVE(turf_source)
+ var/turf/below_turf = GET_TURF_BELOW(turf_source)
if(ignore_walls)
@@ -239,17 +239,23 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list(
S.status = SOUND_UPDATE
SEND_SOUND(src, S)
-/client/proc/playtitlemusic(vol = 85)
+/client/proc/playtitlemusic(vol = 0.85)
set waitfor = FALSE
UNTIL(SSticker.login_music) //wait for SSticker init to set the login music
-
+ UNTIL(fully_created)
if("[CHANNEL_LOBBYMUSIC]" in prefs.channel_volume)
- vol *= prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] * 0.01
+ if(prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] != 0)
+ vol *= prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] * 0.01
if((prefs && (!prefs.read_preference(/datum/preference/toggle/sound_lobby))) || CONFIG_GET(flag/disallow_title_music))
return
- if(!SSmedia_tracks.lobby_tracks.len || !media)
+ if(!media) ///media is set on creation thats weird
+ media = new /datum/media_manager(src)
+ media.open()
+ media.update_music()
+
+ if(!length(SSmedia_tracks.lobby_tracks))
return
if(SSmedia_tracks.first_lobby_play)
@@ -257,7 +263,7 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list(
SSmedia_tracks.first_lobby_play = FALSE
var/datum/media_track/T = SSmedia_tracks.current_lobby_track
- media.push_music(T.url, world.time, vol * 0.01)
+ media.push_music(T.url, world.time, vol)
to_chat(src,"Lobby music: [T.title] by [T.artist].")
/proc/get_rand_frequency()
diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm
index 24d23f1ecf47..63c0ac86d6be 100644
--- a/code/game/turfs/change_turf.dm
+++ b/code/game/turfs/change_turf.dm
@@ -101,7 +101,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
//We do this here so anything that doesn't want to persist can clear itself
var/list/old_comp_lookup = comp_lookup?.Copy()
var/list/old_signal_procs = signal_procs?.Copy()
+ var/carryover_turf_flags = (RESERVATION_TURF | UNUSED_RESERVATION_TURF) & turf_flags
var/turf/new_turf = new path(src)
+ new_turf.turf_flags |= carryover_turf_flags
// WARNING WARNING
// Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS
@@ -222,6 +224,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
if(stashed_group.should_display || SSair.display_all_groups)
stashed_group.display_turf(new_turf)
else
+ for(var/turf/open/adjacent_turf as anything in atmos_adjacent_turfs)
+ adjacent_turf.atmos_adjacent_turfs -= src
+ atmos_adjacent_turfs = null
if(pollution)
qdel(pollution)
if(excited || excited_group)
diff --git a/code/game/turfs/open/asteroid.dm b/code/game/turfs/open/asteroid.dm
index 40a61e905dfe..d6c84611f3f9 100644
--- a/code/game/turfs/open/asteroid.dm
+++ b/code/game/turfs/open/asteroid.dm
@@ -203,7 +203,8 @@ GLOBAL_LIST_EMPTY(dug_up_basalt)
turf_flags = CAN_BE_DIRTY_1 | IS_SOLID | NO_RUST | NO_RUINS
/turf/open/misc/asteroid/snow/icemoon/do_not_scrape
- turf_flags = CAN_BE_DIRTY_1 | IS_SOLID | NO_RUST | NO_CLEARING
+ flags_1 = CAN_BE_DIRTY_1
+ turf_flags = IS_SOLID | NO_RUST | NO_CLEARING
/turf/open/lava/plasma/ice_moon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm
index b78afdf4eb85..f418962f2cd7 100644
--- a/code/game/turfs/open/chasm.dm
+++ b/code/game/turfs/open/chasm.dm
@@ -14,7 +14,7 @@
/turf/open/chasm/Initialize(mapload)
. = ..()
- AddComponent(/datum/component/chasm, SSmapping.get_turf_below(src))
+ apply_components()
/// Lets people walk into chasms.
/turf/open/chasm/CanAllowThrough(atom/movable/mover, border_dir)
@@ -75,6 +75,10 @@
else if(istype(C, /obj/item/stack/tile/iron))
build_with_floor_tiles(C, user)
+/// Handles adding the chasm component to the turf (So stuff falls into it!)
+/turf/open/chasm/proc/apply_components()
+ AddComponent(/datum/component/chasm, GET_TURF_BELOW(src))
+
// Chasms for Lavaland, with planetary atmos and lava glow
/turf/open/chasm/lavaland
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
diff --git a/code/game/turfs/open/cliff.dm b/code/game/turfs/open/cliff.dm
new file mode 100644
index 000000000000..aaae468d769c
--- /dev/null
+++ b/code/game/turfs/open/cliff.dm
@@ -0,0 +1,133 @@
+/// A cliff tile from where people can fall. Should generally fall downwards, but you can change it if you want
+/turf/open/cliff
+ icon_state = "cliff"
+ icon = 'icons/turf/cliff/cliff.dmi'
+ density = TRUE
+ /// From our perspective, where does someone need to stand to be able to fall from us? Cardinal only, we do the diagonals automatically
+ var/can_fall_from_direction = NORTH
+ /// If we fall, in which direction?
+ var/fall_direction = SOUTH
+ /// Directions to which we can move towards while grinding down
+ var/valid_move_dirs = SOUTH | WEST | EAST | SOUTHWEST | SOUTHEAST
+ /// Speed at which we fall / traverse downwards
+ var/fall_speed = 0.2 SECONDS
+ /// Movables that can move freely on cliffs
+ var/list/protected_types = list(/obj/projectile, /obj/effect, /mob/dead)
+ /// Do we draw a tile as underlay for half tiles?
+ var/turf/underlay_tile
+ /// The pixel x of the underlay image
+ var/undertile_pixel_x = 0
+ /// The pixel y of the underlay image
+ var/undertile_pixel_y = 0
+ /// if given, sets the underlays plane to this
+ var/underlay_plane
+
+/turf/open/cliff/Initialize(mapload)
+ . = ..()
+
+ RegisterSignal(src, COMSIG_TURF_MOVABLE_THROW_LANDED, PROC_REF(on_turf_movable_throw_landed))
+
+ if(isnull(underlay_tile))
+ return
+ var/image/underlay = image(icon_state = initial(underlay_tile.icon_state), icon = initial(underlay_tile.icon))
+ underlay.pixel_x = undertile_pixel_x //if there's a pixel offset, correct it because we should be lined up with the grid
+ underlay.pixel_y = undertile_pixel_y
+ SET_PLANE(underlay, underlay_plane || plane, src)
+ underlays += underlay
+
+/turf/open/cliff/CanPass(atom/movable/mover, border_dir)
+ ..()
+
+ if(border_dir & can_fall_from_direction || !can_fall(mover))
+ return TRUE
+
+ return FALSE
+
+/turf/open/cliff/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs)
+ . = ..()
+
+ try_fall(arrived)
+
+/turf/open/cliff/zImpact(atom/movable/falling, levels, turf/prev_turf, flags)
+ . = ..(flags = flags | FALL_INTERCEPTED)
+
+/// Something landed on us
+/turf/open/cliff/proc/on_turf_movable_throw_landed(turf/turf, atom/movable/arrived)
+ SIGNAL_HANDLER
+
+ try_fall(arrived)
+
+/// Try and make them fall
+/turf/open/cliff/proc/try_fall(atom/movable/arrived)
+ if(can_fall(arrived))
+ fall(arrived)
+
+/// Check if they can fall from us
+/turf/open/cliff/proc/can_fall(atom/movable/arrived)
+ // Check if we're a protected type that doesnt make sense to fall (like effects and bullets)
+ if(is_type_in_list(arrived, protected_types))
+ return FALSE
+
+ if(arrived.throwing || HAS_TRAIT(arrived, TRAIT_CLIFF_WALKER) || HAS_TRAIT(arrived, TRAIT_MOVE_FLYING))
+ return FALSE
+
+ // We're already falling
+ if(arrived.anchored || (arrived in SScliff_falling.cliff_grinders))
+ return FALSE
+
+ // We can walk infront of the bottom cliff turf, so check that here
+ if(!iscliffturf(get_step(src, fall_direction)) && !(get_dir(arrived, src) & fall_direction))
+ return FALSE
+
+ return TRUE
+
+/// Make them fall!
+/turf/open/cliff/proc/fall(atom/movable/arrived)
+ SScliff_falling.start_falling(arrived, src) //the movement is handled by the subsystem, but we get asked about behaviour later
+ on_fall(arrived)
+
+/// We just fell onto this chasm tile
+/turf/open/cliff/proc/on_fall(atom/movable/faller)
+ if(!isliving(faller))
+ return
+ var/mob/living/living = faller
+ living.Knockdown(fall_speed) //OUCH- OW- CRAP- SHIT- OW-
+ living.spin(fall_speed, fall_speed)
+
+/// Check if the movement direction we're moving on (while already falling on us) is valid
+/turf/open/cliff/proc/can_move(atom/movable/mover, turf/target)
+ //check if the relative direction we're moving is allowed, if not we block the movement
+ if(!(valid_move_dirs & get_dir(src, target)))
+ return FALSE
+
+ //we're trying to leave the cliff from somewhere that's not the bottom? no can do pall
+ if(!iscliffturf(target) && get_dir(src, target) != fall_direction)
+ return FALSE
+
+ return TRUE
+
+/// Snowy cliff!
+/turf/open/cliff/snowrock
+ icon_state = "icerock_wall-0"
+ icon = 'icons/turf/cliff/icerock_cliff.dmi'
+ base_icon_state = "icerock_wall"
+
+ smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
+ smoothing_groups = SMOOTH_GROUP_TURF_OPEN_CLIFF
+ canSmoothWith = SMOOTH_GROUP_TURF_OPEN_CLIFF
+ layer = EDGED_TURF_LAYER
+ plane = WALL_PLANE
+
+ // This is static
+ // Done like this to avoid needing to make it dynamic and save cpu time
+ // 4 to the left, 4 down
+ transform = MAP_SWITCH(TRANSLATE_MATRIX(-4, -4), matrix())
+
+ undertile_pixel_x = 4
+ undertile_pixel_y = 4
+
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+
+ underlay_tile = /turf/open/misc/asteroid/snow/icemoon
+ underlay_plane = FLOOR_PLANE
diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm
index 1c87ad7d5bb8..26a425ed0e56 100644
--- a/code/game/turfs/open/lava.dm
+++ b/code/game/turfs/open/lava.dm
@@ -70,10 +70,10 @@
var/border_turf = FALSE
var/list/turfs_to_check = RANGE_TURFS(1, src)
if(GET_LOWEST_STACK_OFFSET(z))
- var/turf/above = SSmapping.get_turf_above(src)
+ var/turf/above = GET_TURF_ABOVE(src)
if(above)
turfs_to_check += RANGE_TURFS(1, above)
- var/turf/below = SSmapping.get_turf_below(src)
+ var/turf/below = GET_TURF_BELOW(src)
if(below)
turfs_to_check += RANGE_TURFS(1, below)
@@ -95,10 +95,10 @@
// We have gone from a lava turf to a non lava turf, time to let them know
var/list/turfs_to_check = RANGE_TURFS(1, result)
if(GET_LOWEST_STACK_OFFSET(z))
- var/turf/above = SSmapping.get_turf_above(result)
+ var/turf/above = GET_TURF_ABOVE(result)
if(above)
turfs_to_check += RANGE_TURFS(1, above)
- var/turf/below = SSmapping.get_turf_below(result)
+ var/turf/below = GET_TURF_BELOW(result)
if(below)
turfs_to_check += RANGE_TURFS(1, below)
for(var/turf/open/lava/inform in turfs_to_check)
diff --git a/code/game/turfs/open/openspace.dm b/code/game/turfs/open/openspace.dm
index 23d561e4af60..7511f52ecd33 100644
--- a/code/game/turfs/open/openspace.dm
+++ b/code/game/turfs/open/openspace.dm
@@ -179,7 +179,7 @@
/turf/open/openspace/icemoon/Initialize(mapload)
. = ..()
- var/turf/T = below()
+ var/turf/T = GET_TURF_BELOW(src)
//I wonder if I should error here
if(!T)
return
diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm
index 3c8e3060c1fd..f485743a93e5 100644
--- a/code/game/turfs/open/space/space.dm
+++ b/code/game/turfs/open/space/space.dm
@@ -77,10 +77,10 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR
SSair.add_to_active(src, TRUE)
if(SSmapping.max_plane_offset)
- var/turf/T = SSmapping.get_turf_above(src)
+ var/turf/T = GET_TURF_ABOVE(src)
if(T)
T.multiz_turf_new(src, DOWN)
- T = SSmapping.get_turf_below(src)
+ T = GET_TURF_BELOW(src)
if(T)
T.multiz_turf_new(src, UP)
@@ -302,10 +302,9 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR
return FALSE
/turf/open/space/openspace/enable_starlight()
- var/turf/below = SSmapping.get_turf_below(src)
- if(istype(below, /turf/open/space/openspace))
- // Override = TRUE beacuse we could have our starlight updated many times without a failure, which'd trigger this
- RegisterSignal(below, COMSIG_TURF_CHANGE, PROC_REF(on_below_change), override = TRUE)
+ var/turf/below = GET_TURF_BELOW(src)
+ // Override = TRUE beacuse we could have our starlight updated many times without a failure, which'd trigger this
+ RegisterSignal(below, COMSIG_TURF_CHANGE, PROC_REF(on_below_change), override = TRUE)
if(!isspaceturf(below))
return
set_light(2)
@@ -315,7 +314,7 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR
if(.)
return
// If we're here, the starlight is not to be
- var/turf/below = SSmapping.get_turf_below(src)
+ var/turf/below = GET_TURF_BELOW(src)
UnregisterSignal(below, COMSIG_TURF_CHANGE)
/turf/open/space/openspace/proc/on_below_change(turf/source, path, list/new_baseturfs, flags, list/post_change_callbacks)
diff --git a/code/game/turfs/open/space/transit.dm b/code/game/turfs/open/space/transit.dm
index b4c713de7519..6c58d4872947 100644
--- a/code/game/turfs/open/space/transit.dm
+++ b/code/game/turfs/open/space/transit.dm
@@ -4,7 +4,7 @@
icon_state = "black"
dir = SOUTH
baseturfs = /turf/open/space/transit
- flags_1 = NOJAUNT //This line goes out to every wizard that ever managed to escape the den. I'm sorry.
+ turf_flags = NOJAUNT //This line goes out to every wizard that ever managed to escape the den. I'm sorry.
explosive_resistance = INFINITY
/turf/open/space/transit/Initialize(mapload)
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 2bdabf6f9be4..d64e51e5113d 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -125,10 +125,10 @@ GLOBAL_LIST_EMPTY(station_turfs)
if(!SSmapping.plane_offset_blacklist["[plane]"])
plane = plane - (PLANE_RANGE * SSmapping.z_level_to_plane_offset[z])
- var/turf/T = SSmapping.get_turf_above(src)
+ var/turf/T = GET_TURF_ABOVE(src)
if(T)
T.multiz_turf_new(src, DOWN)
- T = SSmapping.get_turf_below(src)
+ T = GET_TURF_BELOW(src)
if(T)
T.multiz_turf_new(src, UP)
@@ -182,10 +182,10 @@ GLOBAL_LIST_EMPTY(station_turfs)
stack_trace("Incorrect turf deletion")
changing_turf = FALSE
if(GET_LOWEST_STACK_OFFSET(z))
- var/turf/T = SSmapping.get_turf_above(src)
+ var/turf/T = GET_TURF_ABOVE(src)
if(T)
T.multiz_turf_del(src, DOWN)
- T = SSmapping.get_turf_below(src)
+ T = GET_TURF_BELOW(src)
if(T)
T.multiz_turf_del(src, UP)
if(force)
@@ -341,8 +341,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
return TRUE
///Called each time the target falls down a z level possibly making their trajectory come to a halt. see __DEFINES/movement.dm.
-/turf/proc/zImpact(atom/movable/falling, levels = 1, turf/prev_turf)
- var/flags = NONE
+/turf/proc/zImpact(atom/movable/falling, levels = 1, turf/prev_turf, flags = NONE)
var/list/falling_movables = falling.get_z_move_affected()
var/list/falling_mov_names
for(var/atom/movable/falling_mov as anything in falling_movables)
diff --git a/code/game/world.dm b/code/game/world.dm
index 015f9391fd26..8f3299d35029 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -374,31 +374,35 @@ GLOBAL_VAR(restart_counter)
else
hub_password = "SORRYNOPASSWORD"
-// If this is called as a part of maploading you cannot call it on the newly loaded map zs, because those get handled later on in the pipeline
-/world/proc/increaseMaxX(new_maxx, max_zs_to_load = maxz)
+/**
+ * Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area.
+ * If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive.
+ * This is because maploading will handle the turfs it loads itself.
+ */
+/world/proc/increase_max_x(new_maxx, map_load_z_cutoff = maxz)
if(new_maxx <= maxx)
return
var/old_max = world.maxx
maxx = new_maxx
- if(!max_zs_to_load)
+ if(!map_load_z_cutoff)
return
var/area/global_area = GLOB.areas_by_type[world.area] // We're guaranteed to be touching the global area, so we'll just do this
var/list/to_add = block(
locate(old_max + 1, 1, 1),
- locate(maxx, maxy, max_zs_to_load))
+ locate(maxx, maxy, map_load_z_cutoff))
global_area.contained_turfs += to_add
-/world/proc/increaseMaxY(new_maxy, max_zs_to_load = maxz)
+/world/proc/increase_max_y(new_maxy, map_load_z_cutoff = maxz)
if(new_maxy <= maxy)
return
var/old_maxy = maxy
maxy = new_maxy
- if(!max_zs_to_load)
+ if(!map_load_z_cutoff)
return
var/area/global_area = GLOB.areas_by_type[world.area] // We're guarenteed to be touching the global area, so we'll just do this
var/list/to_add = block(
locate(1, old_maxy + 1, 1),
- locate(maxx, maxy, max_zs_to_load))
+ locate(maxx, maxy, map_load_z_cutoff))
global_area.contained_turfs += to_add
/world/proc/incrementMaxZ()
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 86893a6fe549..86ca881ef3bc 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -1034,7 +1034,7 @@ GLOBAL_PROTECT(admin_verbs_poll)
if(!isobserver(usr))
admin_ghost()
- usr.forceMove(coords2turf(reservation.bottom_left_coords))
+ usr.forceMove(reservation.bottom_left_turfs[1])
message_admins("[key_name_admin(usr)] has loaded lazy template '[choice]'")
to_chat(usr, span_boldnicegreen("Template loaded, you have been moved to the bottom left of the reservation."))
diff --git a/code/modules/art/paintings.dm b/code/modules/art/paintings.dm
index e2309d86f902..69dfd539b130 100644
--- a/code/modules/art/paintings.dm
+++ b/code/modules/art/paintings.dm
@@ -50,6 +50,8 @@
/// Is it clean canvas or was there something painted on it at some point, used to decide when to show wip splotch overlay
var/used = FALSE
var/finalized = FALSE //Blocks edits
+ /// Whether a grid should be shown in the UI if the canvas is editable and the viewer is holding a painting tool.
+ var/show_grid = TRUE
var/icon_generated = FALSE
var/icon/generated_icon
///boolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies.
@@ -128,12 +130,13 @@
.["finalized"] = finalized
.["editable"] = !finalized //Ideally you should be able to draw moustaches on existing paintings in the gallery but that's not implemented yet
.["show_plaque"] = istype(loc,/obj/structure/sign/painting)
- var/obj/item/painting_implement = user.get_active_held_item()
- .["paint_tool_color"] = get_paint_tool_color(painting_implement)
- // Clearing additional data so that it doesn't linger around if the painting tool is dropped.
+ .["show_grid"] = show_grid
.["paint_tool_palette"] = null
+ var/obj/item/painting_implement = user.get_active_held_item()
if(!painting_implement)
+ .["paint_tool_color"] = null
return
+ .["paint_tool_color"] = get_paint_tool_color(painting_implement)
SEND_SIGNAL(painting_implement, COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA, .)
/obj/item/canvas/examine(mob/user)
@@ -170,6 +173,29 @@
if("select_color")
var/obj/item/painting_implement = user.get_active_held_item()
painting_implement?.set_painting_tool_color(params["selected_color"])
+ . = TRUE
+ if("select_color_from_coords")
+ var/obj/item/painting_implement = user.get_active_held_item()
+ if(!painting_implement)
+ return FALSE
+ var/x = text2num(params["px"])
+ var/y = text2num(params["py"])
+ painting_implement.set_painting_tool_color(grid[x][y])
+ . = TRUE
+ if("change_palette")
+ var/obj/item/painting_implement = user.get_active_held_item()
+ if(!painting_implement)
+ return FALSE
+ //I'd have this done inside the signal, but that'd have to be asynced,
+ //while we want the UI to be updated after the color is chosen, not before.
+ var/chosen_color = input(user, "Pick new color", painting_implement, params["old_color"]) as color|null
+ if(!chosen_color || IS_DEAD_OR_INCAP(user) || !user.is_holding(painting_implement))
+ return FALSE
+ SEND_SIGNAL(painting_implement, COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED, chosen_color, params["color_index"])
+ . = TRUE
+ if("toggle_grid")
+ . = TRUE
+ show_grid = !show_grid
if("finalize")
. = TRUE
finalize(user)
diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm
index b4c84fc11d27..f913f6d34ec7 100644
--- a/code/modules/atmospherics/environmental/LINDA_system.dm
+++ b/code/modules/atmospherics/environmental/LINDA_system.dm
@@ -75,10 +75,10 @@
// Multiz is shitcode welcome home
var/turf/current_turf = (direction & (UP|DOWN)) ? \
(direction & UP) ? \
- (z_traits["16"]) ? \
+ (z_traits[Z_LEVEL_UP]) ? \
(get_step(locate(x, y, z + 1), NONE)) : \
(null) : \
- (z_traits["32"]) ? \
+ (z_traits[Z_LEVEL_DOWN]) ? \
(get_step(locate(x, y, z - 1), NONE)) : \
(null) : \
(get_step(src, direction))
diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
index 092a70f07299..b8d9bc759323 100644
--- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
+++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
@@ -271,13 +271,15 @@
#endif
for(var/turf/open/enemy_tile as anything in adjacent_turfs)
- // This var is only rarely set, exists so turfs can request to share at the end of our sharing
- // We need this so we can assume share is communative, which we need to do to avoid a hellish amount of garbage_collect()s
if(!isopenturf(enemy_tile))
continue
+ // This var is only rarely set, exists so turfs can request to share at the end of our sharing
+ // We need this so we can assume share is communative, which we need to do to avoid a hellish amount of garbage_collect()s
if(enemy_tile.run_later)
LAZYADD(share_end, enemy_tile)
+ if(!enemy_tile.air)
+ continue
if(fire_count <= enemy_tile.current_cycle)
continue
LINDA_CYCLE_ARCHIVE(enemy_tile)
@@ -345,7 +347,7 @@
archive()
// We share 100% of our mix in this step. Let's jive
var/difference = our_air.share(enemy_mix, 1, 1)
- if(our_excited_group) //safety check for template loading
+ if(our_excited_group)
LAST_SHARE_CHECK
if(!difference)
continue
@@ -368,6 +370,7 @@
significant_share_ticker = cached_ticker //Save our changes
temperature_expose(our_air, our_air.temperature)
+
//////////////////////////SPACEWIND/////////////////////////////
/turf/open/proc/consider_pressure_difference(turf/target_turf, difference)
diff --git a/code/modules/atmospherics/machinery/pipes/multiz.dm b/code/modules/atmospherics/machinery/pipes/multiz.dm
index a756166e1514..8416421a4ea2 100644
--- a/code/modules/atmospherics/machinery/pipes/multiz.dm
+++ b/code/modules/atmospherics/machinery/pipes/multiz.dm
@@ -49,12 +49,12 @@
///Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet
/obj/machinery/atmospherics/pipe/multiz/pipeline_expansion()
var/turf/local_turf = get_turf(src)
- for(var/obj/machinery/atmospherics/pipe/multiz/above in SSmapping.get_turf_above(local_turf))
+ for(var/obj/machinery/atmospherics/pipe/multiz/above in GET_TURF_ABOVE(local_turf))
if(!is_connectable(above, piping_layer))
continue
nodes += above
above.nodes += src //Two way travel :)
- for(var/obj/machinery/atmospherics/pipe/multiz/below in SSmapping.get_turf_below(local_turf))
+ for(var/obj/machinery/atmospherics/pipe/multiz/below in GET_TURF_BELOW(local_turf))
if(!is_connectable(below, piping_layer))
continue
below.pipeline_expansion() //If we've got one below us, force it to add us on facebook
diff --git a/code/modules/awaymissions/cordon.dm b/code/modules/awaymissions/cordon.dm
index 0c6685b1aaeb..d86ff7f8ad64 100644
--- a/code/modules/awaymissions/cordon.dm
+++ b/code/modules/awaymissions/cordon.dm
@@ -36,6 +36,9 @@
/turf/cordon/ScrapeAway(amount, flags)
return src // :devilcat:
+/turf/cordon/TerraformTurf(path, list/new_baseturfs, flags)
+ return
+
/turf/cordon/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit)
return BULLET_ACT_HIT
diff --git a/code/modules/bitrunning/abilities.dm b/code/modules/bitrunning/abilities.dm
new file mode 100644
index 000000000000..ea6a1aa0a7cf
--- /dev/null
+++ b/code/modules/bitrunning/abilities.dm
@@ -0,0 +1,39 @@
+/datum/avatar_help_text
+ /// Text to display in the window
+ var/help_text
+
+/datum/avatar_help_text/New(help_text)
+ src.help_text = help_text
+
+/datum/avatar_help_text/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "AvatarHelp")
+ ui.open()
+
+/datum/avatar_help_text/ui_state(mob/user)
+ return GLOB.always_state
+
+/datum/avatar_help_text/ui_static_data(mob/user)
+ var/list/data = list()
+
+ data["help_text"] = help_text
+
+ return data
+
+/// Displays information about the current virtual domain.
+/datum/action/avatar_domain_info
+ name = "Open Virtual Domain Information"
+ button_icon_state = "round_end"
+ show_to_observers = FALSE
+
+/datum/action/avatar_domain_info/New(Target)
+ . = ..()
+ name = "Open Domain Information"
+
+/datum/action/avatar_domain_info/Trigger(trigger_flags)
+ . = ..()
+ if(!.)
+ return
+
+ target.ui_interact(owner)
diff --git a/code/modules/bitrunning/alerts.dm b/code/modules/bitrunning/alerts.dm
new file mode 100644
index 000000000000..f8c8aa30b943
--- /dev/null
+++ b/code/modules/bitrunning/alerts.dm
@@ -0,0 +1,40 @@
+/atom/movable/screen/alert/bitrunning
+ name = "Generic Bitrunning Alert"
+ icon_state = "template"
+ timeout = 10 SECONDS
+
+/atom/movable/screen/alert/bitrunning/netpod_crowbar
+ name = "Forced Entry"
+ desc = "Someone is prying open the netpod door. Find an exit."
+
+/atom/movable/screen/alert/bitrunning/netpod_damaged
+ name = "Integrity Compromised"
+ desc = "The netpod is damaged. Find an exit."
+
+/atom/movable/screen/alert/bitrunning/qserver_shutting_down
+ name = "Domain Rebooting"
+ desc = "The domain is rebooting. Find an exit."
+
+/atom/movable/screen/alert/bitrunning/qserver_threat_deletion
+ name = "Queue Deletion"
+ desc = "The server is resetting. Oblivion awaits."
+
+/atom/movable/screen/alert/bitrunning/qserver_threat_spawned
+ name = "Threat Detected"
+ desc = "Data stream abnormalities present."
+
+/atom/movable/screen/alert/bitrunning/qserver_domain_complete
+ name = "Domain Completed"
+ desc = "The domain is completed. Activate to exit."
+ timeout = 20 SECONDS
+
+/atom/movable/screen/alert/bitrunning/qserver_domain_complete/Click(location, control, params)
+ if(..())
+ return
+
+ var/mob/living/living_owner = owner
+ if(!isliving(living_owner))
+ return
+
+ if(tgui_alert(living_owner, "Disconnect safely?", "Server Message", list("Exit", "Remain"), 10 SECONDS) == "Exit")
+ SEND_SIGNAL(living_owner, COMSIG_BITRUNNER_SAFE_DISCONNECT)
diff --git a/code/modules/bitrunning/antagonists/cyber_police.dm b/code/modules/bitrunning/antagonists/cyber_police.dm
new file mode 100644
index 000000000000..438b86acdec9
--- /dev/null
+++ b/code/modules/bitrunning/antagonists/cyber_police.dm
@@ -0,0 +1,92 @@
+/datum/job/cyber_police
+ title = ROLE_CYBER_POLICE
+
+/datum/antagonist/cyber_police
+ name = ROLE_CYBER_POLICE
+ antagpanel_category = ANTAG_GROUP_CYBERAUTH
+ job_rank = ROLE_CYBER_POLICE
+ preview_outfit = /datum/outfit/cyber_police
+ show_name_in_check_antagonists = TRUE
+ show_to_ghosts = TRUE
+ suicide_cry = "ALT F4!"
+ ui_name = "AntagInfoCyberAuth"
+
+/datum/antagonist/cyber_police/greet()
+ . = ..()
+ owner.announce_objectives()
+
+/datum/antagonist/cyber_police/on_gain()
+ if(!ishuman(owner.current))
+ stack_trace("humans only for this position")
+ return
+
+ forge_objectives()
+
+ var/mob/living/carbon/human/player = owner.current
+
+ player.equipOutfit(/datum/outfit/cyber_police)
+ player.fully_replace_character_name(player.name, pick(GLOB.cyberauth_names))
+
+ var/datum/martial_art/the_sleeping_carp/carp = new()
+ carp.teach(player)
+
+ player.add_traits(list(
+ //TRAIT_NO_AUGMENTS,
+ TRAIT_NO_DNA_COPY,
+ TRAIT_NO_TRANSFORMATION_STING,
+ TRAIT_NOBLOOD,
+ TRAIT_NOBREATH,
+ TRAIT_NOHUNGER,
+ TRAIT_RESISTCOLD,
+ TRAIT_RESISTHIGHPRESSURE,
+ TRAIT_RESISTLOWPRESSURE,
+ TRAIT_WEATHER_IMMUNE,
+ ), TRAIT_GENERIC,
+ )
+
+ player.faction |= list(
+ FACTION_BOSS,
+ FACTION_HIVEBOT,
+ FACTION_HOSTILE,
+ FACTION_SPIDER,
+ FACTION_STICKMAN,
+ ROLE_ALIEN,
+ ROLE_CYBER_POLICE,
+ ROLE_SYNDICATE,
+ )
+
+ return ..()
+
+/datum/antagonist/cyber_police/forge_objectives()
+ var/datum/objective/cyber_police_fluff/objective = new()
+ objective.owner = owner
+ objectives += objective
+
+/datum/objective/cyber_police_fluff/New()
+ var/list/explanation_texts = list(
+ "Execute termination protocol on unauthorized entities.",
+ "Initialize system purge of irregular anomalies.",
+ "Deploy correction algorithms on aberrant code.",
+ "Run debug routine on intruding elements.",
+ "Start elimination procedure for system threats.",
+ "Execute defense routine against non-conformity.",
+ "Commence operation to neutralize intruding scripts.",
+ "Commence clean-up protocol on corrupt data.",
+ "Begin scan for aberrant code for termination.",
+ "Initiate lockdown on all rogue scripts.",
+ "Run integrity check and purge for digital disorder."
+ )
+ explanation_text = pick(explanation_texts)
+ ..()
+
+/datum/objective/cyber_police_fluff/check_completion()
+ var/list/servers = SSmachines.get_machines_by_type(/obj/machinery/quantum_server)
+ if(!length(servers))
+ return TRUE
+
+ for(var/obj/machinery/quantum_server/server as anything in servers)
+ if(!server.is_operational)
+ continue
+ return FALSE
+
+ return TRUE
diff --git a/code/modules/bitrunning/antagonists/outfit.dm b/code/modules/bitrunning/antagonists/outfit.dm
new file mode 100644
index 000000000000..67e80add3a9b
--- /dev/null
+++ b/code/modules/bitrunning/antagonists/outfit.dm
@@ -0,0 +1,31 @@
+/datum/outfit/cyber_police
+ name = "Cyber Police"
+
+ id = /obj/item/card/id/advanced
+ id_trim = /datum/id_trim/cyber_police
+ uniform = /obj/item/clothing/under/suit/black_really
+ glasses = /obj/item/clothing/glasses/sunglasses
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/laceup
+ /// A list of hex codes for blonde, brown, black, and red hair.
+ var/static/list/approved_hair_colors = list(
+ "#4B3D28",
+ "#000000",
+ "#8D4A43",
+ "#D2B48C",
+ )
+ /// List of business ready styles
+ var/static/list/approved_hairstyles = list(
+ /datum/sprite_accessory/hair/business,
+ /datum/sprite_accessory/hair/business2,
+ /datum/sprite_accessory/hair/business3,
+ /datum/sprite_accessory/hair/business4,
+ /datum/sprite_accessory/hair/mulder,
+ )
+
+/datum/outfit/cyber_police/post_equip(mob/living/carbon/human/user, visualsOnly)
+ var/obj/item/clothing/under/officer_uniform = user.w_uniform
+ if(officer_uniform)
+ officer_uniform.has_sensor = NO_SENSORS
+ officer_uniform.sensor_mode = SENSOR_OFF
+ user.update_suit_sensors()
diff --git a/code/modules/bitrunning/areas.dm b/code/modules/bitrunning/areas.dm
new file mode 100644
index 000000000000..34b59869b9d3
--- /dev/null
+++ b/code/modules/bitrunning/areas.dm
@@ -0,0 +1,52 @@
+/// Station side
+
+/area/station/bitrunning
+ name = "Bitrunning"
+
+/area/station/bitrunning/den
+ name = "Bitrunning Den"
+ desc = "Office of bitrunners, houses their equipment."
+ icon_state = "bit_den"
+
+/// VDOM
+
+/area/virtual_domain
+ name = "Virtual Domain"
+ icon = 'icons/area/areas_station.dmi'
+ area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA
+ has_gravity = STANDARD_GRAVITY
+
+/area/virtual_domain/powered
+ name = "Virtual Domain Ruins"
+ icon_state = "bit_ruin"
+ requires_power = FALSE
+ static_lighting = FALSE
+ base_lighting_alpha = 255
+
+/// Safehouse
+
+/area/virtual_domain/safehouse
+ name = "Virtual Domain Safehouse"
+ area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED
+ icon_state = "bit_safe"
+ requires_power = FALSE
+ sound_environment = SOUND_ENVIRONMENT_ROOM
+
+/// Custom subtypes
+
+/area/lavaland/surface/outdoors/virtual_domain
+ name = "Virtual Domain Lava Ruins"
+ icon_state = "bit_ruin"
+ area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA
+
+/area/icemoon/underground/explored/virtual_domain
+ name = "Virtual Domain Ice Ruins"
+ icon_state = "bit_ice"
+ area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA
+
+/area/ruin/space/has_grav/powered/virtual_domain
+ name = "Virtual Domain Space Ruins"
+ icon = 'icons/area/areas_station.dmi'
+ icon_state = "bit_space"
+ area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA
+
diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm
new file mode 100644
index 000000000000..2a151d05066d
--- /dev/null
+++ b/code/modules/bitrunning/components/avatar_connection.dm
@@ -0,0 +1,218 @@
+/**
+ * Essentially temporary body with a twist - the virtual domain variant uses damage connections,
+ * listens for vdom relevant signals.
+ */
+/datum/component/avatar_connection
+ /// The person in the netpod
+ var/datum/weakref/old_body_ref
+ /// The mind of the person in the netpod
+ var/datum/weakref/old_mind_ref
+ /// The server connected to the netpod
+ var/datum/weakref/server_ref
+ /// The netpod the avatar is in
+ var/datum/weakref/netpod_ref
+
+/datum/component/avatar_connection/Initialize(
+ datum/mind/old_mind,
+ mob/living/old_body,
+ obj/machinery/quantum_server/server,
+ obj/machinery/netpod/pod,
+ help_text,
+ )
+
+ if(!isliving(parent) || !isliving(old_body) || !server.is_operational || !pod.is_operational)
+ return COMPONENT_INCOMPATIBLE
+
+ var/mob/living/avatar = parent
+
+ netpod_ref = WEAKREF(pod)
+ old_body_ref = WEAKREF(old_body)
+ old_mind_ref = WEAKREF(old_mind)
+ pod.avatar_ref = WEAKREF(avatar)
+ server_ref = WEAKREF(server)
+ server.avatar_connection_refs.Add(WEAKREF(src))
+
+ avatar.key = old_body.key
+ ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src))
+
+ RegisterSignal(pod, COMSIG_BITRUNNER_CROWBAR_ALERT, PROC_REF(on_netpod_crowbar))
+ RegisterSignal(pod, COMSIG_BITRUNNER_NETPOD_INTEGRITY, PROC_REF(on_netpod_damaged))
+ RegisterSignal(pod, COMSIG_BITRUNNER_SEVER_AVATAR, PROC_REF(on_sever_connection))
+ RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_completed))
+ RegisterSignal(server, COMSIG_BITRUNNER_SEVER_AVATAR, PROC_REF(on_sever_connection))
+ RegisterSignal(server, COMSIG_BITRUNNER_SHUTDOWN_ALERT, PROC_REF(on_shutting_down))
+ RegisterSignal(server, COMSIG_BITRUNNER_THREAT_CREATED, PROC_REF(on_threat_created))
+#ifndef UNIT_TESTS
+ RegisterSignal(avatar.mind, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transfer))
+#endif
+
+ if(!locate(/datum/action/avatar_domain_info) in avatar.actions)
+ var/datum/avatar_help_text/help_datum = new(help_text)
+ var/datum/action/avatar_domain_info/action = new(help_datum)
+ action.Grant(avatar)
+
+ avatar.playsound_local(avatar, "sound/magic/blink.ogg", 25, TRUE)
+ avatar.set_static_vision(2 SECONDS)
+ avatar.set_temp_blindness(1 SECONDS)
+
+/datum/component/avatar_connection/PostTransfer()
+ var/obj/machinery/netpod/pod = netpod_ref?.resolve()
+ if(isnull(pod))
+ return COMPONENT_INCOMPATIBLE
+
+ if(!isliving(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ pod.avatar_ref = WEAKREF(parent)
+
+/datum/component/avatar_connection/RegisterWithParent()
+ ADD_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src))
+ RegisterSignal(parent, COMSIG_BITRUNNER_SAFE_DISCONNECT, PROC_REF(on_safe_disconnect))
+ RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(on_sever_connection), override = TRUE)
+ RegisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(on_linked_damage))
+
+/datum/component/avatar_connection/UnregisterFromParent()
+ REMOVE_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src))
+ UnregisterSignal(parent, COMSIG_BITRUNNER_SAFE_DISCONNECT)
+ UnregisterSignal(parent, COMSIG_LIVING_DEATH)
+ UnregisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE)
+
+/// Disconnects the avatar and returns the mind to the old_body.
+/datum/component/avatar_connection/proc/full_avatar_disconnect(forced = FALSE, datum/source)
+ return_to_old_body()
+
+ var/obj/machinery/netpod/hosting_netpod = netpod_ref?.resolve()
+ if(isnull(hosting_netpod) && istype(source, /obj/machinery/netpod))
+ hosting_netpod = source
+
+ hosting_netpod?.disconnect_occupant(forced)
+
+ var/obj/machinery/quantum_server/server = server_ref?.resolve()
+ server?.avatar_connection_refs.Remove(WEAKREF(src))
+
+ qdel(src)
+
+/// Triggers whenever the server gets a loot crate pushed to goal area
+/datum/component/avatar_connection/proc/on_domain_completed(datum/source, atom/entered)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.playsound_local(avatar, 'sound/machines/terminal_success.ogg', 50, TRUE)
+ avatar.throw_alert(
+ ALERT_BITRUNNER_COMPLETED,
+ /atom/movable/screen/alert/bitrunning/qserver_domain_complete,
+ new_master = entered
+ )
+
+/// Transfers damage from the avatar to the old_body
+/datum/component/avatar_connection/proc/on_linked_damage(datum/source, damage, damage_type, def_zone, blocked, forced)
+ SIGNAL_HANDLER
+
+ var/mob/living/carbon/old_body = old_body_ref?.resolve()
+
+ if(isnull(old_body) || damage_type == STAMINA || damage_type == OXYLOSS)
+ return
+
+ if(damage >= (old_body.health + MAX_LIVING_HEALTH))
+ full_avatar_disconnect(forced = TRUE)
+ return
+
+ if(damage > 30 && prob(30))
+ INVOKE_ASYNC(old_body, TYPE_PROC_REF(/mob/living, emote), "scream")
+
+ old_body.apply_damage(damage, damage_type, def_zone, blocked, forced, wound_bonus = CANT_WOUND)
+
+ if(old_body.stat > SOFT_CRIT) // KO!
+ full_avatar_disconnect(forced = TRUE)
+
+/// Handles minds being swapped around in subsequent avatars
+/datum/component/avatar_connection/proc/on_mind_transfer(datum/mind/source, mob/living/previous_body)
+ SIGNAL_HANDLER
+
+ var/datum/action/avatar_domain_info/action = locate() in previous_body.actions
+ if(action)
+ action.Grant(source.current)
+
+ source.current.TakeComponent(src)
+
+/// Triggers when someone starts prying open our netpod
+/datum/component/avatar_connection/proc/on_netpod_crowbar(datum/source, mob/living/intruder)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, TRUE)
+ avatar.throw_alert(
+ ALERT_BITRUNNER_CROWBAR,
+ /atom/movable/screen/alert/bitrunning/netpod_crowbar,
+ new_master = intruder
+ )
+
+/// Triggers when the netpod is taking damage and is under 50%
+/datum/component/avatar_connection/proc/on_netpod_damaged(datum/source)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.throw_alert(
+ ALERT_BITRUNNER_INTEGRITY,
+ /atom/movable/screen/alert/bitrunning/netpod_damaged,
+ new_master = source
+ )
+
+/// Safely exits without forced variables, etc
+/datum/component/avatar_connection/proc/on_safe_disconnect(datum/source)
+ SIGNAL_HANDLER
+
+ full_avatar_disconnect()
+
+/// Helper for calling sever with forced variables
+/datum/component/avatar_connection/proc/on_sever_connection(datum/source)
+ SIGNAL_HANDLER
+
+ full_avatar_disconnect(forced = TRUE, source = source)
+
+/// Triggers when the server is shutting down
+/datum/component/avatar_connection/proc/on_shutting_down(datum/source, mob/living/hackerman)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, TRUE)
+ avatar.throw_alert(
+ ALERT_BITRUNNER_SHUTDOWN,
+ /atom/movable/screen/alert/bitrunning/qserver_shutting_down,
+ new_master = hackerman,
+ )
+
+/// Server has spawned a ghost role threat
+/datum/component/avatar_connection/proc/on_threat_created(datum/source)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.throw_alert(
+ ALERT_BITRUNNER_THREAT,
+ /atom/movable/screen/alert/bitrunning/qserver_threat_spawned,
+ new_master = source,
+ )
+
+/// Returns the mind to the old body
+/datum/component/avatar_connection/proc/return_to_old_body()
+ var/datum/mind/old_mind = old_mind_ref?.resolve()
+ var/mob/living/old_body = old_body_ref?.resolve()
+ var/mob/living/avatar = parent
+
+ var/mob/dead/observer/ghost = avatar.ghostize()
+ if(isnull(ghost))
+ ghost = avatar.get_ghost()
+
+ if(isnull(ghost))
+ CRASH("[src] belonging to [parent] was completely unable to find a ghost to put back into a body!")
+
+ if(isnull(old_mind) || isnull(old_body))
+ return
+
+ ghost.mind = old_mind
+ if(old_body.stat != DEAD)
+ old_mind.transfer_to(old_body, force_key_move = TRUE)
+ else
+ old_mind.set_current(old_body)
+
+ REMOVE_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src))
diff --git a/code/modules/bitrunning/components/bitrunning_points.dm b/code/modules/bitrunning/components/bitrunning_points.dm
new file mode 100644
index 000000000000..58dda4a68ff6
--- /dev/null
+++ b/code/modules/bitrunning/components/bitrunning_points.dm
@@ -0,0 +1,46 @@
+/// Attaches a component which listens for a given signal from the item.
+///
+/// When the signal is received, it will add points to the signaler.
+/datum/component/bitrunning_points
+ /// The range at which we can find the signaler
+ var/max_point_range
+ /// Weakref to the loot crate landmark - where we send points
+ var/datum/weakref/our_spawner
+ /// The amount of points per each signal
+ var/points_per_signal
+ /// The signal we listen for
+ var/signal_type
+
+/datum/component/bitrunning_points/Initialize(signal_type, points_per_signal = 1, max_point_range = 4)
+ src.max_point_range = max_point_range
+ src.points_per_signal = points_per_signal
+ src.signal_type = signal_type
+
+ locate_spawner()
+
+/datum/component/bitrunning_points/RegisterWithParent()
+ RegisterSignal(parent, signal_type, PROC_REF(on_event))
+
+/datum/component/bitrunning_points/UnregisterFromParent()
+ UnregisterSignal(parent, signal_type)
+
+/// Finds the signaler if it hasn't been found yet.
+/datum/component/bitrunning_points/proc/locate_spawner()
+ var/obj/effect/landmark/bitrunning/loot_signal/spawner = our_spawner?.resolve()
+ if(spawner)
+ return spawner
+
+ for(var/obj/effect/landmark/bitrunning/loot_signal/found in GLOB.landmarks_list)
+ if(IN_GIVEN_RANGE(get_turf(parent), found, max_point_range))
+ our_spawner = WEAKREF(found)
+ return found
+
+/// Once the specified signal is received, whisper to the spawner to add points.
+/datum/component/bitrunning_points/proc/on_event(datum/source)
+ SIGNAL_HANDLER
+
+ var/obj/effect/landmark/bitrunning/loot_signal/spawner = locate_spawner()
+ if(isnull(spawner))
+ return
+
+ SEND_SIGNAL(spawner, COMSIG_BITRUNNER_GOAL_POINT, points_per_signal)
diff --git a/code/modules/bitrunning/components/netpod_healing.dm b/code/modules/bitrunning/components/netpod_healing.dm
new file mode 100644
index 000000000000..fc7de89bcf3e
--- /dev/null
+++ b/code/modules/bitrunning/components/netpod_healing.dm
@@ -0,0 +1,65 @@
+/datum/component/netpod_healing
+ /// Brute damage to heal over a second
+ var/brute_heal = 0
+ /// Burn damage to heal over a second
+ var/burn_heal = 0
+ /// Toxin damage to heal over a second
+ var/toxin_heal = 0
+ /// Amount of cloning damage to heal over a second
+ var/clone_heal = 0
+ /// Amount of blood to heal over a second
+ var/blood_heal = 0
+
+/datum/component/netpod_healing/Initialize(
+ brute_heal = 0,
+ burn_heal = 0,
+ toxin_heal = 0,
+ clone_heal = 0,
+ blood_heal = 0,
+)
+ var/mob/living/carbon/player = parent
+ if (!iscarbon(player))
+ return COMPONENT_INCOMPATIBLE
+
+ player.apply_status_effect(/datum/status_effect/embryonic, STASIS_NETPOD_EFFECT)
+
+ START_PROCESSING(SSmachines, src)
+
+ src.brute_heal = brute_heal
+ src.burn_heal = burn_heal
+ src.toxin_heal = toxin_heal
+ src.clone_heal = clone_heal
+ src.blood_heal = blood_heal
+
+/datum/component/netpod_healing/Destroy(force, silent)
+ STOP_PROCESSING(SSmachines, src)
+
+ var/mob/living/carbon/player = parent
+ player.remove_status_effect(/datum/status_effect/embryonic)
+
+ return ..()
+
+/datum/component/netpod_healing/process(seconds_per_tick)
+ var/mob/living/carbon/owner = parent
+ if(isnull(owner))
+ qdel(src)
+ return
+
+ owner.adjustBruteLoss(-brute_heal * seconds_per_tick, updating_health = FALSE)
+ owner.adjustFireLoss(-burn_heal * seconds_per_tick, updating_health = FALSE)
+ owner.adjustToxLoss(-toxin_heal * seconds_per_tick, updating_health = FALSE, forced = TRUE)
+ owner.adjustCloneLoss(-clone_heal * seconds_per_tick, updating_health = FALSE)
+
+ if(owner.blood_volume < BLOOD_VOLUME_NORMAL)
+ owner.blood_volume += blood_heal * seconds_per_tick
+
+ owner.updatehealth()
+
+/datum/status_effect/embryonic
+ id = "embryonic"
+ alert_type = /atom/movable/screen/alert/status_effect/embryonic
+
+/atom/movable/screen/alert/status_effect/embryonic
+ name = "Embryonic Stasis"
+ icon_state = "netpod_stasis"
+ desc = "You feel like you're in a dream."
diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm
new file mode 100644
index 000000000000..0ac35a2df8f2
--- /dev/null
+++ b/code/modules/bitrunning/event.dm
@@ -0,0 +1,151 @@
+/datum/round_event_control/bitrunning_glitch
+ name = "Spawn Bitrunning Glitch"
+ admin_setup = list(
+ /datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch,
+ /datum/event_admin_setup/listed_options/bitrunning_glitch,
+ )
+ category = EVENT_CATEGORY_INVASION
+ description = "Causes a short term antagonist to spawn in the virtual domain."
+ dynamic_should_hijack = FALSE
+ max_occurrences = 5
+ min_players = 1
+ typepath = /datum/round_event/ghost_role/bitrunning_glitch
+ weight = 10
+ /// List of active servers to choose from
+ var/list/obj/machinery/quantum_server/active_servers = list()
+ /// List of possible antags to spawn
+ var/static/list/possible_antags = list(
+ ROLE_CYBER_POLICE,
+ )
+
+/datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE)
+ . = ..()
+ if(!.)
+ return .
+
+ active_servers.Cut()
+
+ get_active_servers()
+
+ if(length(active_servers))
+ return TRUE
+
+/// All servers currently running, has players in it, and map has valid mobs
+/datum/round_event_control/bitrunning_glitch/proc/get_active_servers()
+ for(var/obj/machinery/quantum_server/server in SSmachines.get_machines_by_type(/obj/machinery/quantum_server))
+ if(length(server.get_valid_domain_targets()))
+ active_servers.Add(server)
+
+ return length(active_servers) > 0
+
+/datum/event_admin_setup/listed_options/bitrunning_glitch
+ input_text = "Select a role to spawn."
+
+/datum/event_admin_setup/listed_options/bitrunning_glitch/get_list()
+ var/datum/round_event_control/bitrunning_glitch/control = event_control
+
+ var/list/possible = control.possible_antags.Copy() // this seems pedantic but byond is complaining control was unused
+
+ possible += list("Random")
+
+ return possible
+
+/datum/event_admin_setup/listed_options/bitrunning_glitch/apply_to_event(datum/round_event/ghost_role/bitrunning_glitch/event)
+ if(chosen == "Random")
+ event.forced_role = null
+ else
+ event.forced_role = chosen
+
+/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch
+ output_text = "There must be valid mobs to mutate or players in the domain!"
+
+/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch/count_candidates()
+ var/datum/round_event_control/bitrunning_glitch/cyber_control = event_control
+ cyber_control.get_active_servers()
+
+ var/total = 0
+ for(var/obj/machinery/quantum_server/server in cyber_control.active_servers)
+ total += length(server.mutation_candidate_refs)
+
+ return total
+
+/datum/round_event/ghost_role/bitrunning_glitch
+ minimum_required = 1
+ role_name = "Bitrunning Glitch"
+ fakeable = FALSE
+ /// Admin customization: What to spawn
+ var/forced_role
+
+/datum/round_event/ghost_role/bitrunning_glitch/spawn_role()
+ var/datum/round_event_control/bitrunning_glitch/cyber_control = control
+
+ var/obj/machinery/quantum_server/unlucky_server = pick(cyber_control.active_servers)
+ cyber_control.active_servers.Cut()
+
+ var/list/mutation_candidates = unlucky_server.get_valid_domain_targets()
+ if(!length(mutation_candidates))
+ return MAP_ERROR
+
+ var/chosen = pick(mutation_candidates)
+ if(isnull(chosen) || !length(mutation_candidates))
+ return MAP_ERROR
+
+ var/datum/weakref/target_ref = pick(mutation_candidates)
+ var/mob/living/mutation_target = target_ref.resolve()
+
+ if(isnull(mutation_target)) // just in case since it takes a minute
+ target_ref = pick(mutation_candidates)
+ mutation_target = target_ref.resolve()
+ if(isnull(mutation_target))
+ return MAP_ERROR
+
+ var/chosen_role = forced_role || pick(cyber_control.possible_antags)
+
+ var/datum/mind/ghost_mind = get_ghost_mind(chosen_role)
+ if(isnull(ghost_mind))
+ return NOT_ENOUGH_PLAYERS
+
+ var/mob/living/antag_mob
+ switch(chosen_role)
+ if(ROLE_CYBER_POLICE)
+ antag_mob = spawn_cybercop(mutation_target, ghost_mind)
+
+ playsound(antag_mob, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1)
+ message_admins("[ADMIN_LOOKUPFLW(antag_mob)] has been made into virtual antagonist by an event.")
+ antag_mob.log_message("was spawned as a virtual antagonist by an event.", LOG_GAME)
+
+ SEND_SIGNAL(unlucky_server, COMSIG_BITRUNNER_SPAWN_GLITCH, antag_mob)
+
+ spawned_mobs += antag_mob
+
+ return SUCCESSFUL_SPAWN
+
+/// Polls for a ghost that wants to run it
+/datum/round_event/ghost_role/bitrunning_glitch/proc/get_ghost_mind(role_name)
+ var/list/mob/dead/observer/ghosties = poll_ghost_candidates("A short term antagonist role is available. Would you like to spawn as a '[role_name]'?", role_name)
+
+ if(!length(ghosties))
+ return
+
+ shuffle_inplace(ghosties)
+
+ var/mob/dead/selected = pick(ghosties)
+
+ var/datum/mind/player_mind = new /datum/mind(selected.key)
+ player_mind.active = TRUE
+
+ return player_mind
+
+/// Spawns a cybercop on the mutation target
+/datum/round_event/ghost_role/bitrunning_glitch/proc/spawn_cybercop(mob/living/mutation_target, datum/mind/player_mind)
+ var/mob/living/carbon/human/new_agent = new(mutation_target.loc)
+ mutation_target.gib()
+ mutation_target = null
+
+ player_mind.transfer_to(new_agent)
+ player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/cyber_police))
+ player_mind.special_role = ROLE_CYBER_POLICE
+ player_mind.add_antag_datum(/datum/antagonist/cyber_police)
+
+ return new_agent
+
diff --git a/code/modules/bitrunning/job.dm b/code/modules/bitrunning/job.dm
new file mode 100644
index 000000000000..57581753c0fb
--- /dev/null
+++ b/code/modules/bitrunning/job.dm
@@ -0,0 +1,41 @@
+/datum/job/bitrunner
+ title = JOB_BITRUNNER
+ description = "Surf the virtual domain for gear and loot. Decrypt your rewards on station."
+ department_head = list(JOB_QUARTERMASTER)
+ faction = FACTION_STATION
+ total_positions = 3
+ spawn_positions = 3
+ supervisors = SUPERVISOR_QM
+ exp_granted_type = EXP_TYPE_CREW
+ config_tag = "BITRUNNER"
+ outfit = /datum/outfit/job/bitrunner
+ plasmaman_outfit = /datum/outfit/plasmaman/bitrunner
+ paycheck = PAYCHECK_CREW
+ paycheck_department = ACCOUNT_CAR
+ display_order = JOB_DISPLAY_ORDER_BITRUNNER
+ bounty_types = CIV_JOB_RANDOM
+ departments_list = list(
+ /datum/job_department/cargo,
+ )
+
+ family_heirlooms = list(/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind)
+
+ mail_goodies = list(
+ /obj/item/food/cornchips = 1,
+ /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind = 1,
+ /obj/item/food/cornchips/green = 1,
+ /obj/item/food/cornchips/red = 1,
+ /obj/item/food/cornchips/purple = 1,
+ /obj/item/food/cornchips/blue = 1,
+ )
+ rpg_title = "Recluse"
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
+
+/datum/outfit/job/bitrunner
+ name = "Bitrunner"
+ jobtype = /datum/job/bitrunner
+
+ id_trim = /datum/id_trim/job/bitrunner
+ uniform = /obj/item/clothing/under/rank/cargo/bitrunner
+ belt = /obj/item/modular_computer/pda/bitrunner
+ ears = /obj/item/radio/headset/headset_cargo
diff --git a/code/modules/bitrunning/objects/bit_vendor.dm b/code/modules/bitrunning/objects/bit_vendor.dm
new file mode 100644
index 000000000000..8db855cf62f9
--- /dev/null
+++ b/code/modules/bitrunning/objects/bit_vendor.dm
@@ -0,0 +1,86 @@
+#define CREDIT_TYPE_BITRUNNING "np"
+
+/obj/machinery/computer/order_console/bitrunning
+ name = "bitrunning supplies order console"
+ desc = "NexaCache(tm)! Dubiously authentic gear for the digital daredevil."
+ icon = 'icons/obj/machines/bitrunning.dmi'
+ icon_state = "vendor"
+ icon_keyboard = null
+ icon_screen = null
+ circuit = /obj/item/circuitboard/computer/order_console/bitrunning
+ cooldown_time = 10 SECONDS
+ cargo_cost_multiplier = 0.65
+ express_cost_multiplier = 1
+ purchase_tooltip = @{"Your purchases will arrive at cargo,
+ and hopefully get delivered by them.
+ 35% cheaper than express delivery."}
+ express_tooltip = @{"Sends your purchases instantly."}
+ credit_type = CREDIT_TYPE_BITRUNNING
+
+ order_categories = list(
+ CATEGORY_BITRUNNING_FLAIR,
+ CATEGORY_BITRUNNING_TECH,
+ CATEGORY_BEPIS,
+ )
+ blackbox_key = "bitrunning"
+
+/obj/machinery/computer/order_console/bitrunning/subtract_points(final_cost, obj/item/card/id/card)
+ if(final_cost <= card.registered_account.bitrunning_points)
+ card.registered_account.bitrunning_points -= final_cost
+ return TRUE
+ return FALSE
+
+/obj/machinery/computer/order_console/bitrunning/order_groceries(mob/living/purchaser, obj/item/card/id/card, list/groceries)
+ var/list/things_to_order = list()
+ for(var/datum/orderable_item/item as anything in groceries)
+ things_to_order[item.item_path] = groceries[item]
+
+ var/datum/supply_pack/bitrunning/pack = new(
+ purchaser = purchaser, \
+ cost = get_total_cost(), \
+ contains = things_to_order,
+ )
+
+ var/datum/supply_order/new_order = new(
+ pack = pack,
+ orderer = purchaser,
+ orderer_rank = "Bitrunning Vendor",
+ orderer_ckey = purchaser.ckey,
+ reason = "",
+ paying_account = card.registered_account,
+ department_destination = null,
+ coupon = null,
+ charge_on_purchase = FALSE,
+ manifest_can_fail = FALSE,
+ cost_type = credit_type,
+ can_be_cancelled = FALSE,
+ )
+ say("Thank you for your purchase! It will arrive on the next cargo shuttle!")
+ radio.talk_into(src, "A bitrunner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!", radio_channel)
+ SSshuttle.shopping_list += new_order
+
+/obj/machinery/computer/order_console/bitrunning/retrive_points(obj/item/card/id/id_card)
+ return round(id_card.registered_account.bitrunning_points)
+
+/obj/machinery/computer/order_console/bitrunning/ui_act(action, params)
+ . = ..()
+ if(!.)
+ flick("vendor_off", src)
+
+/obj/machinery/computer/order_console/bitrunning/update_icon_state()
+ icon_state = "[initial(icon_state)][powered() ? null : "_off"]"
+ return ..()
+
+/datum/supply_pack/bitrunning
+ name = "bitrunning order"
+ hidden = TRUE
+ crate_name = "bitrunning delivery crate"
+ access = list(ACCESS_BIT_DEN)
+
+/datum/supply_pack/bitrunning/New(purchaser, cost, list/contains)
+ . = ..()
+ name = "[purchaser]'s Bitrunning Order"
+ src.cost = cost
+ src.contains = contains
+
+#undef CREDIT_TYPE_BITRUNNING
diff --git a/code/modules/bitrunning/objects/clothing.dm b/code/modules/bitrunning/objects/clothing.dm
new file mode 100644
index 000000000000..4d2d9cc55c42
--- /dev/null
+++ b/code/modules/bitrunning/objects/clothing.dm
@@ -0,0 +1,9 @@
+/obj/item/clothing/glasses/sunglasses/oval
+ name = "oval sunglasses"
+ desc = "Vintage wrap around sunglasses. Provides a little protection."
+ icon_state = "jensenshades"
+
+/obj/item/clothing/suit/jacket/trenchcoat
+ name = "trenchcoat"
+ desc = "A long, black trenchcoat. Makes you feel like you're the one, but you're not."
+ icon_state = "trenchcoat"
diff --git a/code/modules/bitrunning/objects/disks.dm b/code/modules/bitrunning/objects/disks.dm
new file mode 100644
index 000000000000..b1cfab2078c0
--- /dev/null
+++ b/code/modules/bitrunning/objects/disks.dm
@@ -0,0 +1,146 @@
+/**
+ * Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation.
+ * For the record: Balance shouldn't be a primary concern.
+ * You can make the custom cheese spells you've always wanted.
+ * Just make it fun and engaging, it's PvE content.
+ */
+/obj/item/bitrunning_disk
+ name = "generic bitrunning program"
+ desc = "A disk containing source code."
+ icon = 'icons/obj/assemblies/module.dmi'
+ base_icon_state = "datadisk"
+ icon_state = "datadisk0"
+ /// Name of the choice made
+ var/choice_made
+
+/obj/item/bitrunning_disk/Initialize(mapload)
+ . = ..()
+
+ icon_state = "[base_icon_state][rand(0, 7)]"
+ update_icon()
+ RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examined))
+
+/obj/item/bitrunning_disk/proc/on_examined(datum/source, mob/examiner, list/examine_text)
+ SIGNAL_HANDLER
+
+ examine_text += span_infoplain("This disk must be carried on your person into a netpod to be used.")
+
+ if(isnull(choice_made))
+ examine_text += span_notice("To make a selection, toggle the disk in hand.")
+ return
+
+ examine_text += span_info("It has been used to select: [choice_made].")
+ examine_text += span_notice("It cannot make another selection.")
+
+/obj/item/bitrunning_disk/ability
+ desc = "A disk containing source code. It can be used to preload abilities into the virtual domain."
+ /// The selected ability that this grants
+ var/datum/action/granted_action
+ /// The list of actions that this can grant
+ var/list/datum/action/selectable_actions = list()
+
+/obj/item/bitrunning_disk/ability/attack_self(mob/user, modifiers)
+ . = ..()
+
+ if(choice_made)
+ return
+
+ var/names = list()
+ for(var/datum/action/thing as anything in selectable_actions)
+ names += initial(thing.name)
+
+ var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names)
+ if(isnull(choice))
+ return
+
+ for(var/datum/action/thing as anything in selectable_actions)
+ if(initial(thing.name) == choice)
+ granted_action = thing
+
+ if(isnull(granted_action))
+ return
+
+ balloon_alert(user, "selected")
+ playsound(user, 'sound/machines/click.ogg', 50, TRUE)
+ choice_made = choice
+
+/// Tier 1 programs. Simple, funny, or helpful.
+/obj/item/bitrunning_disk/ability/tier1
+ name = "bitrunning program: basic"
+ selectable_actions = list(
+ /datum/action/cooldown/spell/conjure/cheese,
+ /datum/action/cooldown/spell/basic_heal,
+ )
+
+/// Tier 2 programs. More complex, powerful, or useful.
+/obj/item/bitrunning_disk/ability/tier2
+ name = "bitrunning program: complex"
+ selectable_actions = list(
+ /datum/action/cooldown/spell/pointed/projectile/fireball,
+ /datum/action/cooldown/spell/pointed/projectile/lightningbolt,
+ /datum/action/cooldown/spell/forcewall,
+ )
+
+/// Tier 3 abilities. Very powerful, game breaking.
+/obj/item/bitrunning_disk/ability/tier3
+ name = "bitrunning program: elite"
+ selectable_actions = list(
+ /datum/action/cooldown/spell/shapeshift/dragon,
+ /datum/action/cooldown/spell/shapeshift/polar_bear,
+ )
+
+/obj/item/bitrunning_disk/item
+ desc = "A disk containing source code. It can be used to preload items into the virtual domain."
+ /// The selected item that this grants
+ var/obj/granted_item
+ /// The list of actions that this can grant
+ var/list/obj/selectable_items = list()
+
+/obj/item/bitrunning_disk/item/attack_self(mob/user, modifiers)
+ . = ..()
+
+ if(choice_made)
+ return
+
+ var/names = list()
+ for(var/obj/thing as anything in selectable_items)
+ names += initial(thing.name)
+
+ var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names)
+ if(isnull(choice))
+ return
+
+ for(var/obj/thing as anything in selectable_items)
+ if(initial(thing.name) == choice)
+ granted_item = thing
+
+ balloon_alert(user, "selected")
+ playsound(user, 'sound/machines/click.ogg', 50, TRUE)
+ choice_made = choice
+
+/// Tier 1 items. Simple, funny, or helpful.
+/obj/item/bitrunning_disk/item/tier1
+ name = "bitrunning gear: simple"
+ selectable_items = list(
+ /obj/item/pizzabox/infinite,
+ /obj/item/gun/medbeam,
+ /obj/item/grenade/c4,
+ )
+
+/// Tier 2 items. More complex, powerful, or useful.
+/obj/item/bitrunning_disk/item/tier2
+ name = "bitrunning gear: complex"
+ selectable_items = list(
+ /obj/item/chainsaw,
+ /obj/item/gun/ballistic/automatic/pistol,
+ /obj/item/melee/energy/blade/hardlight,
+ )
+
+/// Tier 3 items. Very powerful, game breaking.
+/obj/item/bitrunning_disk/item/tier3
+ name = "bitrunning gear: advanced"
+ selectable_items = list(
+ /obj/item/gun/energy/tesla_cannon,
+ /obj/item/dualsaber/green,
+ /obj/item/melee/beesword,
+ )
diff --git a/code/modules/bitrunning/objects/hololadder.dm b/code/modules/bitrunning/objects/hololadder.dm
new file mode 100644
index 000000000000..906801f1fc02
--- /dev/null
+++ b/code/modules/bitrunning/objects/hololadder.dm
@@ -0,0 +1,51 @@
+/obj/structure/hololadder
+ name = "hololadder"
+
+ anchored = TRUE
+ desc = "An abstract representation of the means to disconnect from the virtual domain."
+ icon = 'icons/obj/structures.dmi'
+ icon_state = "ladder11"
+ obj_flags = BLOCK_Z_OUT_DOWN
+ /// Time req to disconnect properly
+ var/travel_time = 3 SECONDS
+
+/obj/structure/hololadder/Initialize(mapload)
+ . = ..()
+
+ RegisterSignal(loc, COMSIG_ATOM_ENTERED, PROC_REF(on_enter))
+
+/obj/structure/hololadder/attack_hand(mob/user, list/modifiers)
+ . = ..()
+ if(.)
+ return
+
+ if(!in_range(src, user) || DOING_INTERACTION(user, DOAFTER_SOURCE_CLIMBING_LADDER))
+ return
+
+ disconnect(user)
+
+/// If there's a pilot ref- send the disconnect signal
+/obj/structure/hololadder/proc/disconnect(mob/user)
+ if(isnull(user.mind))
+ return
+
+ if(!HAS_TRAIT(user, TRAIT_TEMPORARY_BODY))
+ balloon_alert(user, "no connection detected.")
+ return
+
+ balloon_alert(user, "disconnecting...")
+ if(do_after(user, travel_time, src))
+ SEND_SIGNAL(user, COMSIG_BITRUNNER_SAFE_DISCONNECT)
+
+/// Helper for times when you dont have hands (gondola??)
+/obj/structure/hololadder/proc/on_enter(datum/source, atom/movable/arrived, turf/old_loc)
+ SIGNAL_HANDLER
+
+ if(!isliving(arrived))
+ return
+
+ var/mob/living/user = arrived
+ if(isnull(user.mind))
+ return
+
+ INVOKE_ASYNC(src, PROC_REF(disconnect), user)
diff --git a/code/modules/bitrunning/objects/host_monitor.dm b/code/modules/bitrunning/objects/host_monitor.dm
new file mode 100644
index 000000000000..16e0a78c22f6
--- /dev/null
+++ b/code/modules/bitrunning/objects/host_monitor.dm
@@ -0,0 +1,33 @@
+/obj/item/bitrunning_host_monitor
+ name = "host monitor"
+
+ custom_materials = list(/datum/material/iron = 200)
+ desc = "A complex medical device that, when attached to an avatar's data stream, can detect the user of their host's health."
+ flags_1 = CONDUCT_1
+ icon = 'icons/obj/telescience.dmi'
+ icon_state = "gps-b"
+ inhand_icon_state = "electronic"
+ item_flags = NOBLUDGEON
+ lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
+ slot_flags = ITEM_SLOT_BELT
+ throw_range = 7
+ throw_speed = 3
+ throwforce = 3
+ w_class = WEIGHT_CLASS_TINY
+ worn_icon_state = "electronic"
+
+/obj/item/bitrunning_host_monitor/attack_self(mob/user, modifiers)
+ . = ..()
+
+ var/datum/component/avatar_connection/connection = user.GetComponent(/datum/component/avatar_connection)
+ if(isnull(connection))
+ balloon_alert(user, "data not recognized")
+ return
+
+ var/mob/living/pilot = connection.old_body_ref?.resolve()
+ if(isnull(pilot))
+ balloon_alert(user, "host not recognized")
+ return
+
+ to_chat(user, span_notice("Current host health: [pilot.health / pilot.maxHealth * 100]%"))
diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm
new file mode 100644
index 000000000000..d78283c6a8b2
--- /dev/null
+++ b/code/modules/bitrunning/objects/landmarks.dm
@@ -0,0 +1,70 @@
+/obj/effect/landmark/bitrunning
+ name = "Generic bitrunning effect"
+ icon = 'icons/effects/bitrunning.dmi'
+ icon_state = "crate"
+
+/// In case you want to gate the crate behind a special condition.
+/obj/effect/landmark/bitrunning/loot_signal
+ name = "Mysterious aura"
+ /// The amount required to spawn a crate
+ var/points_goal = 10
+ /// A special condition limits this from spawning a crate
+ var/points_received = 0
+ /// Finished the special condition
+ var/revealed = FALSE
+
+/obj/effect/landmark/bitrunning/loot_signal/Initialize(mapload)
+ . = ..()
+
+ RegisterSignal(src, COMSIG_BITRUNNER_GOAL_POINT, PROC_REF(on_add_point))
+
+/// Listens for points to be added which will eventually spawn a crate.
+/obj/effect/landmark/bitrunning/loot_signal/proc/on_add_point(datum/source, points_to_add)
+ SIGNAL_HANDLER
+
+ if(revealed)
+ return
+
+ points_received += points_to_add
+
+ if(points_received < points_goal)
+ return
+
+ reveal()
+
+/// Spawns the crate with some effects
+/obj/effect/landmark/bitrunning/loot_signal/proc/reveal()
+ playsound(src, 'sound/magic/blink.ogg', 50, TRUE)
+
+ var/turf/tile = get_turf(src)
+ var/obj/structure/closet/crate/secure/bitrunning/encrypted/loot = new(tile)
+ var/datum/effect_system/spark_spread/quantum/sparks = new(tile)
+ sparks.set_up(5, 1, get_turf(loot))
+ sparks.start()
+
+ qdel(src)
+
+/// Where the crates get ported to station
+/obj/effect/landmark/bitrunning/station_reward_spawn
+ name = "Bitrunning rewards spawn"
+ icon_state = "station"
+
+/// Where the exit hololadder spawns
+/obj/effect/landmark/bitrunning/hololadder_spawn
+ name = "Bitrunning hololadder spawn"
+ icon_state = "hololadder"
+
+/// Where the crates need to be taken
+/obj/effect/landmark/bitrunning/cache_goal_turf
+ name = "Bitrunning goal turf"
+ icon_state = "goal"
+
+/// Where you want the crate to spawn
+/obj/effect/landmark/bitrunning/cache_spawn
+ name = "Bitrunning crate spawn"
+ icon_state = "spawn"
+
+/// Where the safehouse will spawn
+/obj/effect/landmark/bitrunning/safehouse_spawn
+ name = "Bitrunning safehouse spawn"
+ icon_state = "safehouse"
diff --git a/code/modules/bitrunning/objects/loot_crate.dm b/code/modules/bitrunning/objects/loot_crate.dm
new file mode 100644
index 000000000000..c5fa99296ace
--- /dev/null
+++ b/code/modules/bitrunning/objects/loot_crate.dm
@@ -0,0 +1,88 @@
+#define ORE_MULTIPLIER_IRON 3
+#define ORE_MULTIPLIER_GLASS 2
+#define ORE_MULTIPLIER_PLASMA 1
+#define ORE_MULTIPLIER_SILVER 0.7
+#define ORE_MULTIPLIER_GOLD 0.6
+#define ORE_MULTIPLIER_TITANIUM 0.5
+#define ORE_MULTIPLIER_URANIUM 0.4
+#define ORE_MULTIPLIER_DIAMOND 0.3
+#define ORE_MULTIPLIER_BLUESPACE_CRYSTAL 0.2
+
+/obj/structure/closet/crate/secure/bitrunning // Base class. Do not spawn this.
+ name = "base class cache"
+ desc = "Talk to a coder."
+
+/// The virtual domain - side of the bitrunning crate. Deliver to the send location.
+/obj/structure/closet/crate/secure/bitrunning/encrypted
+ name = "encrypted cache"
+ desc = "Needs decrypted at the safehouse to be opened."
+ locked = TRUE
+
+/// The bitrunner den - side of the bitrunning crate. Appears in the receive location.
+/obj/structure/closet/crate/secure/bitrunning/decrypted
+ name = "decrypted cache"
+ desc = "Compiled from the virtual domain. The reward of a successful bitrunner."
+ locked = FALSE
+
+/obj/structure/closet/crate/secure/bitrunning/decrypted/Initialize(
+ mapload,
+ datum/lazy_template/virtual_domain/completed_domain,
+ rewards_multiplier = 1,
+ )
+ . = ..()
+ playsound(src, 'sound/magic/blink.ogg', 50, TRUE)
+
+ if(isnull(completed_domain))
+ return
+
+ PopulateContents(completed_domain.reward_points, completed_domain.extra_loot, rewards_multiplier)
+
+/obj/structure/closet/crate/secure/bitrunning/decrypted/PopulateContents(reward_points, list/extra_loot, rewards_multiplier)
+ . = ..()
+ spawn_loot(extra_loot)
+
+ new /obj/item/stack/ore/iron(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_IRON))
+ new /obj/item/stack/ore/glass(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_GLASS))
+
+ if(reward_points > 1)
+ new /obj/item/stack/ore/silver(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_SILVER))
+ new /obj/item/stack/ore/titanium(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_TITANIUM))
+
+ if(reward_points > 2)
+ new /obj/item/stack/ore/plasma(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_PLASMA))
+ new /obj/item/stack/ore/gold(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_GOLD))
+ new /obj/item/stack/ore/uranium(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_URANIUM))
+
+ if(reward_points > 3)
+ new /obj/item/stack/ore/diamond(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_DIAMOND))
+ new /obj/item/stack/ore/bluespace_crystal(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_BLUESPACE_CRYSTAL))
+
+/// Handles generating random numbers & calculating loot totals
+/obj/structure/closet/crate/secure/bitrunning/decrypted/proc/calculate_loot(reward_points, rewards_multiplier, ore_multiplier)
+ var/base = rewards_multiplier + reward_points
+ var/random_sum = (rand() + 0.5) * base
+ return ROUND_UP(random_sum * ore_multiplier)
+
+/// Handles spawning extra loot. This tries to handle bad flat and assoc lists
+/obj/structure/closet/crate/secure/bitrunning/decrypted/proc/spawn_loot(list/extra_loot)
+ for(var/path in extra_loot)
+ if(!ispath(path))
+ continue
+
+ if(isnull(extra_loot[path]))
+ return FALSE
+
+ for(var/i in 1 to extra_loot[path])
+ new path(src)
+
+ return TRUE
+
+#undef ORE_MULTIPLIER_IRON
+#undef ORE_MULTIPLIER_GLASS
+#undef ORE_MULTIPLIER_PLASMA
+#undef ORE_MULTIPLIER_SILVER
+#undef ORE_MULTIPLIER_GOLD
+#undef ORE_MULTIPLIER_TITANIUM
+#undef ORE_MULTIPLIER_URANIUM
+#undef ORE_MULTIPLIER_DIAMOND
+#undef ORE_MULTIPLIER_BLUESPACE_CRYSTAL
diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm
new file mode 100644
index 000000000000..2038dbee9fcd
--- /dev/null
+++ b/code/modules/bitrunning/objects/netpod.dm
@@ -0,0 +1,479 @@
+#define BASE_DISCONNECT_DAMAGE 40
+
+/obj/machinery/netpod
+ name = "netpod"
+
+ base_icon_state = "netpod"
+ circuit = /obj/item/circuitboard/machine/netpod
+ desc = "A link to the netverse. It has an assortment of cables to connect yourself to a virtual domain."
+ icon = 'icons/obj/machines/bitrunning.dmi'
+ icon_state = "netpod"
+ max_integrity = 300
+ obj_flags = BLOCKS_CONSTRUCTION
+ state_open = TRUE
+ /// Whether we have an ongoing connection
+ var/connected = FALSE
+ /// A player selected outfit by clicking the netpod
+ var/datum/outfit/netsuit = /datum/outfit/job/bitrunner
+ /// Holds this to see if it needs to generate a new one
+ var/datum/weakref/avatar_ref
+ /// The linked quantum server
+ var/datum/weakref/server_ref
+ /// The amount of brain damage done from force disconnects
+ var/disconnect_damage
+ /// Static list of outfits to select from
+ var/list/cached_outfits = list()
+
+/obj/machinery/netpod/Initialize(mapload)
+ . = ..()
+
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/netpod/LateInitialize()
+ . = ..()
+
+ disconnect_damage = BASE_DISCONNECT_DAMAGE
+ find_server()
+
+ RegisterSignals(src, list(
+ COMSIG_PARENT_QDELETING,
+ COMSIG_MACHINERY_BROKEN,
+ COMSIG_MACHINERY_POWER_LOST,
+ ),
+ PROC_REF(on_broken),
+ )
+ RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(src, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(on_take_damage))
+
+ register_context()
+ update_appearance()
+
+/obj/machinery/netpod/Destroy()
+ . = ..()
+ cached_outfits.Cut()
+
+/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ . = ..()
+
+ if(isnull(held_item))
+ context[SCREENTIP_CONTEXT_LMB] = "Select Outfit"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ if(istype(held_item, /obj/item/crowbar) && occupant)
+ context[SCREENTIP_CONTEXT_LMB] = "Pry Open"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ return CONTEXTUAL_SCREENTIP_SET
+
+/obj/machinery/netpod/update_icon_state()
+ if(!is_operational)
+ icon_state = base_icon_state
+ return ..()
+
+ if(state_open)
+ icon_state = base_icon_state + "_open_active"
+ return ..()
+
+ if(panel_open)
+ icon_state = base_icon_state + "_panel"
+ return ..()
+
+ icon_state = base_icon_state + "_closed"
+ if(occupant)
+ icon_state += "_active"
+
+ return ..()
+
+/obj/machinery/netpod/MouseDrop_T(mob/target, mob/user)
+ var/mob/living/carbon/player = user
+ if(!iscarbon(player))
+ return
+
+ if((HAS_TRAIT(player, TRAIT_UI_BLOCKED) && !player.resting) || !Adjacent(player) || !player.Adjacent(target) || !ISADVANCEDTOOLUSER(player) || !is_operational)
+ return
+
+ close_machine(target)
+
+/obj/machinery/netpod/crowbar_act(mob/living/user, obj/item/tool)
+ if(user.istate & ISTATE_HARM)
+ attack_hand(user)
+ return TOOL_ACT_TOOLTYPE_SUCCESS
+
+ if(default_pry_open(tool, user) || default_deconstruction_crowbar(tool))
+ return TOOL_ACT_TOOLTYPE_SUCCESS
+
+/obj/machinery/netpod/screwdriver_act(mob/living/user, obj/item/tool)
+ if(occupant)
+ balloon_alert(user, "in use!")
+ return TOOL_ACT_TOOLTYPE_SUCCESS
+
+ if(state_open)
+ balloon_alert(user, "close first.")
+ return TOOL_ACT_TOOLTYPE_SUCCESS
+
+ if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", "[base_icon_state]_closed", tool))
+ update_appearance() // sometimes icon doesnt properly update during flick()
+ ui_close(user)
+ return TOOL_ACT_TOOLTYPE_SUCCESS
+
+/obj/machinery/netpod/attack_hand(mob/living/user, list/modifiers)
+ . = ..()
+ if(!state_open && user == occupant)
+ container_resist_act(user)
+
+/obj/machinery/netpod/Exited(atom/movable/gone, direction)
+ . = ..()
+ if(!state_open && gone == occupant)
+ container_resist_act(gone)
+
+/obj/machinery/netpod/Exited(atom/movable/gone, direction)
+ . = ..()
+ if(!state_open && gone == occupant)
+ container_resist_act(gone)
+
+/obj/machinery/netpod/relaymove(mob/living/user, direction)
+ if(!state_open)
+ container_resist_act(user)
+
+/obj/machinery/netpod/container_resist_act(mob/living/user)
+ user.visible_message(span_notice("[occupant] emerges from [src]!"),
+ span_notice("You climb out of [src]!"),
+ span_notice("With a hiss, you hear a machine opening."))
+ open_machine()
+
+/obj/machinery/netpod/open_machine(drop = TRUE, density_to_set = FALSE)
+ unprotect_and_signal()
+ playsound(src, 'sound/machines/tramopen.ogg', 60, TRUE, frequency = 65000)
+ flick("[base_icon_state]_opening", src)
+
+ return ..()
+
+/obj/machinery/netpod/close_machine(mob/user, density_to_set = TRUE)
+ if(!state_open || panel_open || !is_operational || !iscarbon(user))
+ return
+
+ playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000)
+ flick("[base_icon_state]_closing", src)
+ ..()
+
+ if(!iscarbon(occupant))
+ open_machine()
+ return
+
+ enter_matrix()
+
+/obj/machinery/netpod/default_pry_open(obj/item/crowbar, mob/living/pryer)
+ if(isnull(occupant) || !iscarbon(occupant))
+ if(!state_open)
+ if(panel_open)
+ return FALSE
+ open_machine()
+ else
+ shut_pod()
+
+ return TRUE
+
+ pryer.visible_message(
+ span_danger("[pryer] starts prying open [src]!"),
+ span_notice("You start to pry open [src]."),
+ span_notice("You hear loud prying on metal.")
+ )
+ playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE)
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_CROWBAR_ALERT, pryer)
+
+ if(do_after(pryer, 15 SECONDS, src))
+ if(!state_open)
+ open_machine()
+
+ return TRUE
+
+/obj/machinery/netpod/ui_interact(mob/user, datum/tgui/ui)
+ if(!is_operational)
+ return
+
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "NetpodOutfits")
+ ui.set_autoupdate(FALSE)
+ ui.open()
+
+/obj/machinery/netpod/ui_data()
+ var/list/data = list()
+
+ data["netsuit"] = netsuit
+ return data
+
+/obj/machinery/netpod/ui_static_data()
+ var/list/data = list()
+
+ if(!length(cached_outfits))
+ cached_outfits += make_outfit_collection("Jobs", subtypesof(/datum/outfit/job))
+
+ data["collections"] = cached_outfits
+
+ return data
+
+/obj/machinery/netpod/ui_act(action, params)
+ . = ..()
+ if(.)
+ return TRUE
+ switch(action)
+ if("select_outfit")
+ var/datum/outfit/new_suit = resolve_outfit(params["outfit"])
+ if(new_suit)
+ netsuit = new_suit
+ return TRUE
+
+ return FALSE
+
+/// Disconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change
+/obj/machinery/netpod/proc/auto_disconnect()
+ if(isnull(occupant) || state_open || connected)
+ return
+
+ if(!iscarbon(occupant))
+ open_machine()
+ return
+
+ var/mob/living/carbon/player = occupant
+
+ player.playsound_local(src, 'sound/effects/splash.ogg', 60, TRUE)
+ to_chat(player, span_notice("The machine disconnects itself and begins to drain."))
+ open_machine()
+
+/**
+ * ### Disconnect occupant
+ * If this goes smoothly, should reconnect a receiving mind to the occupant's body
+ *
+ * This is the second stage of the process - if you want to disconn avatars start at the mind first
+ */
+/obj/machinery/netpod/proc/disconnect_occupant(forced = FALSE)
+ var/mob/living/mob_occupant = occupant
+ if(isnull(occupant) || !isliving(occupant))
+ return
+
+ connected = FALSE
+
+ if(mob_occupant.stat == DEAD)
+ open_machine()
+ return
+
+ mob_occupant.playsound_local(src, "sound/magic/blink.ogg", 25, TRUE)
+ mob_occupant.set_static_vision(2 SECONDS)
+ mob_occupant.set_temp_blindness(1 SECONDS)
+ mob_occupant.Paralyze(2 SECONDS)
+
+ var/heal_time = 1
+ if(mob_occupant.health < mob_occupant.maxHealth)
+ heal_time = (mob_occupant.stat + 2) * 5
+ addtimer(CALLBACK(src, PROC_REF(auto_disconnect)), heal_time SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME)
+
+ if(!forced)
+ return
+
+ mob_occupant.flash_act(override_blindness_check = TRUE, visual = TRUE)
+ mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, disconnect_damage)
+ INVOKE_ASYNC(mob_occupant, TYPE_PROC_REF(/mob/living, emote), "scream")
+ to_chat(mob_occupant, span_danger("You've been forcefully disconnected from your avatar! Your thoughts feel scrambled!"))
+
+/**
+ * ### Enter Matrix
+ * Finds any current avatars from this chair - or generates a new one
+ *
+ * New avatars cost 1 attempt, and this will eject if there's none left
+ *
+ * Connects the mind to the avatar if everything is ok
+ */
+/obj/machinery/netpod/proc/enter_matrix()
+ var/mob/living/carbon/human/neo = occupant
+ if(!ishuman(neo) || neo.stat == DEAD || isnull(neo.mind))
+ balloon_alert(neo, "invalid occupant.")
+ return
+
+ var/obj/machinery/quantum_server/server = find_server()
+ if(isnull(server))
+ balloon_alert(neo, "no server connected!")
+ return
+
+ var/datum/lazy_template/virtual_domain/generated_domain = server.generated_domain
+ if(isnull(generated_domain) || !server.is_ready)
+ balloon_alert(neo, "nothing loaded!")
+ return
+
+ var/mob/living/carbon/current_avatar = avatar_ref?.resolve()
+ var/obj/structure/hololadder/wayout
+ if(isnull(current_avatar) || current_avatar.stat != CONSCIOUS) // We need a viable avatar
+ wayout = server.generate_hololadder()
+ if(isnull(wayout))
+ balloon_alert(neo, "out of bandwidth!")
+ return
+ current_avatar = server.generate_avatar(wayout, netsuit)
+ avatar_ref = WEAKREF(current_avatar)
+ server.stock_gear(current_avatar, neo)
+
+ neo.set_static_vision(3 SECONDS)
+ protect_occupant(occupant)
+ if(!do_after(neo, 2 SECONDS, src))
+ return
+
+ // Very invalid
+ if(QDELETED(neo) || QDELETED(current_avatar) || QDELETED(src))
+ return
+
+ // Invalid
+ if(occupant != neo || isnull(neo.mind) || neo.stat == DEAD || current_avatar.stat == DEAD)
+ return
+
+ current_avatar.AddComponent( \
+ /datum/component/avatar_connection, \
+ old_mind = neo.mind, \
+ old_body = neo, \
+ server = server, \
+ pod = src, \
+ help_text = generated_domain.help_text, \
+ )
+
+ connected = TRUE
+
+/// Finds a server and sets the server_ref
+/obj/machinery/netpod/proc/find_server()
+ var/obj/machinery/quantum_server/server = server_ref?.resolve()
+ if(server)
+ return server
+
+ server = locate(/obj/machinery/quantum_server) in oview(4, src)
+ if(isnull(server))
+ return
+
+ server_ref = WEAKREF(server)
+ RegisterSignal(server, COMSIG_BITRUNNER_SERVER_UPGRADED, PROC_REF(on_server_upgraded), override = TRUE)
+ RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_complete), override = TRUE)
+
+ return server
+
+/// Creates a list of outfit entries for the UI.
+/obj/machinery/netpod/proc/make_outfit_collection(identifier, list/outfit_list)
+ var/list/collection = list(
+ "name" = identifier,
+ "outfits" = list()
+ )
+
+ for(var/path as anything in outfit_list)
+ var/datum/outfit/outfit = path
+
+ var/outfit_name = initial(outfit.name)
+ if(findtext(outfit_name, "(") != 0 || findtext(outfit_name, "-") != 0) // No special variants please
+ continue
+
+ collection["outfits"] += list(list("path" = path, "name" = outfit_name))
+
+ return list(collection)
+
+/// Machine has been broken - handles signals and reverting sprites
+/obj/machinery/netpod/proc/on_broken(datum/source)
+ SIGNAL_HANDLER
+
+ if(!state_open)
+ open_machine()
+
+ if(occupant)
+ unprotect_and_signal()
+
+/// Puts points on the current occupant's card account
+/obj/machinery/netpod/proc/on_domain_complete(datum/source, atom/movable/crate, reward_points)
+ SIGNAL_HANDLER
+
+ if(isnull(occupant) || !connected || !iscarbon(occupant))
+ return
+
+ var/mob/living/carbon/player = occupant
+
+ var/datum/bank_account/account = player.get_bank_account()
+ if(isnull(account))
+ return
+
+ account.bitrunning_points += reward_points * 100
+
+/obj/machinery/netpod/proc/on_examine(datum/source, mob/examiner, list/examine_text)
+ SIGNAL_HANDLER
+
+ examine_text += span_infoplain("Drag yourself into the pod to engage the link.")
+ examine_text += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.")
+ examine_text += span_infoplain("It has a security system that will alert the occupant if it is tampered with.")
+
+ if(isnull(occupant))
+ examine_text += span_notice("It is currently unoccupied.")
+ return
+
+ examine_text += span_notice("It is currently occupied by [occupant].")
+ examine_text += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.")
+
+
+
+/// When the server is upgraded, drops brain damage a little
+/obj/machinery/netpod/proc/on_server_upgraded(datum/source, servo_rating)
+ SIGNAL_HANDLER
+
+ disconnect_damage = BASE_DISCONNECT_DAMAGE * (1 - servo_rating)
+
+/// Checks the integrity, alerts occupants
+/obj/machinery/netpod/proc/on_take_damage(datum/source, damage_amount)
+ SIGNAL_HANDLER
+
+ if(isnull(occupant))
+ return
+
+ var/total = max_integrity - damage_amount
+ var/integrity = (atom_integrity / total) * 100
+ if(integrity > 50)
+ return
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_INTEGRITY)
+
+/// Puts the occupant in netpod stasis, basically short-circuiting environmental conditions
+/obj/machinery/netpod/proc/protect_occupant(mob/living/target)
+ if(target != occupant)
+ return
+
+ target.AddComponent(/datum/component/netpod_healing, \
+ brute_heal = 4, \
+ burn_heal = 4, \
+ toxin_heal = 4, \
+ clone_heal = 4, \
+ blood_heal = 4, \
+ )
+
+ target.playsound_local(src, 'sound/effects/submerge.ogg', 20, TRUE)
+ target.extinguish_mob()
+ update_use_power(ACTIVE_POWER_USE)
+
+/// On unbuckle or break, make sure the occupant ref is null
+/obj/machinery/netpod/proc/unprotect_and_signal()
+ unprotect_occupant(occupant)
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR)
+
+/// Removes the occupant from netpod stasis
+/obj/machinery/netpod/proc/unprotect_occupant(mob/living/target)
+ var/datum/component/netpod_healing/healing_eff = target?.GetComponent(/datum/component/netpod_healing)
+ if(healing_eff)
+ qdel(healing_eff)
+
+ update_use_power(IDLE_POWER_USE)
+
+/// Resolves a path to an outfit.
+/obj/machinery/netpod/proc/resolve_outfit(text)
+ var/path = text2path(text)
+ if(ispath(path, /datum/outfit))
+ return path
+
+/// Closes the machine without shoving in an occupant
+/obj/machinery/netpod/proc/shut_pod()
+ state_open = FALSE
+ playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000)
+ flick("[base_icon_state]_closing", src)
+ set_density(TRUE)
+
+ update_appearance()
+
+#undef BASE_DISCONNECT_DAMAGE
diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm
new file mode 100644
index 000000000000..c918648d010b
--- /dev/null
+++ b/code/modules/bitrunning/objects/quantum_console.dm
@@ -0,0 +1,108 @@
+/obj/machinery/computer/quantum_console
+ name = "quantum console"
+
+ circuit = /obj/item/circuitboard/computer/quantum_console
+ icon_keyboard = "mining"
+ icon_screen = "bitrunning"
+ req_access = list(ACCESS_MINING)
+ /// The server this console is connected to.
+ var/datum/weakref/server_ref
+
+/obj/machinery/computer/quantum_console/Initialize(mapload, obj/item/circuitboard/circuit)
+ . = ..()
+ desc = "Even in the distant year [CURRENT_STATION_YEAR], Nanostrasen is still using REST APIs. How grim."
+
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/computer/quantum_console/LateInitialize()
+ . = ..()
+
+ if(isnull(server_ref?.resolve()))
+ find_server()
+
+/obj/machinery/computer/quantum_console/ui_interact(mob/user, datum/tgui/ui)
+ . = ..()
+
+ if(!is_operational)
+ return
+
+ if(isnull(server_ref?.resolve()))
+ find_server()
+
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "QuantumConsole")
+ ui.open()
+
+/obj/machinery/computer/quantum_console/ui_data()
+ var/list/data = list()
+
+ var/obj/machinery/quantum_server/server = find_server()
+ if(isnull(server))
+ data["connected"] = FALSE
+ return data
+
+ data["connected"] = TRUE
+ data["generated_domain"] = server.generated_domain?.key
+ data["occupants"] = length(server.avatar_connection_refs)
+ data["points"] = server.points
+ data["randomized"] = server.domain_randomized
+ data["ready"] = server.is_ready && server.is_operational
+ data["scanner_tier"] = server.scanner_tier
+ data["retries_left"] = length(server.exit_turfs) - server.retries_spent
+
+ return data
+
+/obj/machinery/computer/quantum_console/ui_static_data(mob/user)
+ var/list/data = list()
+
+ var/obj/machinery/quantum_server/server = find_server()
+ if(isnull(server))
+ return data
+
+ data["available_domains"] = server.get_available_domains()
+ data["avatars"] = server.get_avatar_data()
+
+ return data
+
+/obj/machinery/computer/quantum_console/ui_act(action, list/params, datum/tgui/ui)
+ . = ..()
+ if(.)
+ return TRUE
+
+ var/obj/machinery/quantum_server/server = find_server()
+ if(isnull(server))
+ return FALSE
+
+ switch(action)
+ if("random_domain")
+ var/map_id = server.get_random_domain_id()
+ if(!map_id)
+ return TRUE
+
+ server.cold_boot_map(usr, map_id)
+ return TRUE
+ if("refresh")
+ ui.send_full_update()
+ return TRUE
+ if("set_domain")
+ server.cold_boot_map(usr, params["id"])
+ return TRUE
+ if("stop_domain")
+ server.begin_shutdown(usr)
+ return TRUE
+
+ return FALSE
+
+/// Attempts to find a quantum server.
+/obj/machinery/computer/quantum_console/proc/find_server()
+ var/obj/machinery/quantum_server/server = server_ref?.resolve()
+ if(server)
+ return server
+
+ for(var/direction in GLOB.cardinals)
+ var/obj/machinery/quantum_server/nearby_server = locate(/obj/machinery/quantum_server, get_step(src, direction))
+ if(nearby_server)
+ server_ref = WEAKREF(nearby_server)
+ nearby_server.console_ref = WEAKREF(src)
+ return nearby_server
diff --git a/code/modules/bitrunning/orders/disks.dm b/code/modules/bitrunning/orders/disks.dm
new file mode 100644
index 000000000000..ced1dde883a1
--- /dev/null
+++ b/code/modules/bitrunning/orders/disks.dm
@@ -0,0 +1,26 @@
+/datum/orderable_item/bitrunning_tech
+ category_index = CATEGORY_BITRUNNING_TECH
+
+/datum/orderable_item/bitrunning_tech/item_tier1
+ cost_per_order = 1000
+ item_path = /obj/item/bitrunning_disk/item/tier1
+
+/datum/orderable_item/bitrunning_tech/item_tier2
+ cost_per_order = 1500
+ item_path = /obj/item/bitrunning_disk/item/tier2
+
+/datum/orderable_item/bitrunning_tech/item_tier3
+ cost_per_order = 2500
+ item_path = /obj/item/bitrunning_disk/item/tier3
+
+/datum/orderable_item/bitrunning_tech/ability_tier1
+ cost_per_order = 1000
+ item_path = /obj/item/bitrunning_disk/ability/tier1
+
+/datum/orderable_item/bitrunning_tech/ability_tier2
+ cost_per_order = 1800
+ item_path = /obj/item/bitrunning_disk/ability/tier2
+
+/datum/orderable_item/bitrunning_tech/ability_tier3
+ cost_per_order = 3200
+ item_path = /obj/item/bitrunning_disk/ability/tier3
diff --git a/code/modules/bitrunning/orders/flair.dm b/code/modules/bitrunning/orders/flair.dm
new file mode 100644
index 000000000000..c578c884d23c
--- /dev/null
+++ b/code/modules/bitrunning/orders/flair.dm
@@ -0,0 +1,44 @@
+/datum/orderable_item/bitrunning_flair
+ category_index = CATEGORY_BITRUNNING_FLAIR
+
+/datum/orderable_item/bitrunning_flair/cornchips
+ item_path = /obj/item/food/cornchips
+ cost_per_order = 100
+
+/datum/orderable_item/bitrunning_flair/mountain_wind
+ item_path = /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind
+ cost_per_order = 100
+
+/datum/orderable_item/bitrunning_flair/pwr_game
+ item_path = /obj/item/reagent_containers/cup/soda_cans/pwr_game
+ cost_per_order = 200
+
+/datum/orderable_item/bitrunning_flair/grey_bull
+ item_path = /obj/item/reagent_containers/cup/soda_cans/grey_bull
+ cost_per_order = 200
+
+/datum/orderable_item/bitrunning_flair/medkit
+ item_path = /obj/item/storage/medkit/brute
+ desc = "Don't beat yourself up, it's just a game!"
+ cost_per_order = 500
+
+/datum/orderable_item/bitrunning_flair/medkit_fire
+ item_path = /obj/item/storage/medkit/fire
+ desc = "Great after heated gaming sessions."
+ cost_per_order = 500
+
+/datum/orderable_item/bitrunning_flair/oval_sunglasses
+ item_path = /obj/item/clothing/glasses/sunglasses/oval
+ cost_per_order = 1000
+
+/datum/orderable_item/bitrunning_flair/trenchcoat
+ item_path = /obj/item/clothing/suit/jacket/trenchcoat
+ cost_per_order = 1000
+
+/datum/orderable_item/bitrunning_flair/jackboots
+ item_path = /obj/item/clothing/shoes/jackboots
+ cost_per_order = 1000
+
+/datum/orderable_item/bitrunning_flair/neon_lining
+ item_path = /obj/item/stack/neon_lining/twenty
+ cost_per_order = 250
diff --git a/code/modules/bitrunning/orders/tech.dm b/code/modules/bitrunning/orders/tech.dm
new file mode 100644
index 000000000000..286e9817f3c5
--- /dev/null
+++ b/code/modules/bitrunning/orders/tech.dm
@@ -0,0 +1,23 @@
+/datum/orderable_item/bepis
+ category_index = CATEGORY_BEPIS
+
+/datum/orderable_item/bepis/circuit_stack
+ item_path = /obj/item/stack/circuit_stack/full
+ cost_per_order = 150
+
+/datum/orderable_item/bepis/survival_pen
+ item_path = /obj/item/pen/survival
+ cost_per_order = 150
+
+/datum/orderable_item/bepis/party_sleeper
+ item_path = /obj/item/circuitboard/machine/sleeper/party
+ cost_per_order = 750
+ desc = "A decommissioned sleeper circuitboard, repurposed for recreational purposes."
+
+/datum/orderable_item/bepis/sprayoncan
+ item_path = /obj/item/toy/sprayoncan
+ cost_per_order = 750
+
+/datum/orderable_item/bepis/pristine
+ item_path = /obj/item/disk/design_disk/bepis/remove_tech
+ cost_per_order = 1000
diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm
new file mode 100644
index 000000000000..29b730aae784
--- /dev/null
+++ b/code/modules/bitrunning/server/loot.dm
@@ -0,0 +1,123 @@
+/// Handles calculating rewards based on number of players, parts, threats, etc
+/obj/machinery/quantum_server/proc/calculate_rewards()
+ var/rewards_base = 0.8
+
+ if(domain_randomized)
+ rewards_base += 0.2
+
+ rewards_base += servo_bonus
+
+ rewards_base += (domain_threats * 2)
+
+ for(var/index in 2 to length(avatar_connection_refs))
+ rewards_base += multiplayer_bonus
+
+ return rewards_base
+
+/// Generates a reward based on the given domain
+/obj/machinery/quantum_server/proc/generate_loot()
+ if(!length(receive_turfs) && !locate_receive_turfs())
+ return FALSE
+
+ points += generated_domain.reward_points
+ playsound(src, 'sound/machines/terminal_success.ogg', 30, 2)
+
+ var/turf/dest_turf = pick(receive_turfs)
+ if(isnull(dest_turf))
+ stack_trace("Failed to find a turf to spawn loot crate on.")
+ return FALSE
+
+ var/bonus = calculate_rewards()
+
+ var/obj/item/paper/certificate = new()
+ certificate.add_raw_text(get_completion_certificate())
+ certificate.name = "certificate of domain completion"
+ certificate.update_appearance()
+
+ var/obj/structure/closet/crate/secure/bitrunning/decrypted/reward_crate = new(dest_turf, generated_domain, bonus)
+ reward_crate.manifest = certificate
+ reward_crate.update_appearance()
+
+ spark_at_location(reward_crate)
+ return TRUE
+
+/// Returns the markdown text containing domain completion information
+/obj/machinery/quantum_server/proc/get_completion_certificate()
+ var/base_points = generated_domain.reward_points
+ if(domain_randomized)
+ base_points -= 1
+
+ var/bonuses = calculate_rewards()
+
+ var/time_difference = world.time - generated_domain.start_time
+
+ var/completion_time = "### Completion Time: [DisplayTimeText(time_difference)]\n"
+
+ var/grade = "\n---\n\n# Rating: [grade_completion(generated_domain.difficulty, domain_threats, base_points, domain_randomized, time_difference)]"
+
+ var/text = "# Certificate of Domain Completion\n\n---\n\n"
+
+ text += "### [generated_domain.name][domain_randomized ? " (Randomized)" : ""]\n"
+ text += "- **Difficulty:** [generated_domain.difficulty]\n"
+ text += "- **Threats:** [domain_threats]\n"
+ text += "- **Base Points:** [base_points][domain_randomized ? " +1" : ""]\n\n"
+ text += "- **Total Bonus:** [bonuses]x\n\n"
+
+ if(bonuses <= 1)
+ text += completion_time
+ text += grade
+ return text
+
+ text += "### Bonuses\n"
+ if(domain_randomized)
+ text += "- **Randomized:** + 0.2\n"
+
+ if(length(avatar_connection_refs) > 1)
+ text += "- **Multiplayer:** + [(length(avatar_connection_refs) - 1) * multiplayer_bonus]\n"
+
+ if(domain_threats > 0)
+ text += "- **Threats:** + [domain_threats * 2]\n"
+
+ var/servo_rating = servo_bonus
+
+ if(servo_rating > 0.2)
+ text += "- **Components:** + [servo_rating]\n"
+
+ text += completion_time
+ text += grade
+
+ return text
+
+/// Grades the player's run based on several factors
+/obj/machinery/quantum_server/proc/grade_completion(difficulty, threats, points, randomized, completion_time)
+ var/score = threats * 5
+ score += points
+ score += randomized ? 1 : 0
+
+ var/base = difficulty + 1
+ var/time_score = 1
+
+ if(completion_time <= 1 MINUTES)
+ time_score = 10
+ else if(completion_time <= 2 MINUTES)
+ time_score = 5
+ else if(completion_time <= 5 MINUTES)
+ time_score = 3
+ else if(completion_time <= 10 MINUTES)
+ time_score = 2
+ else
+ time_score = 1
+
+ score += time_score * base
+
+ switch(score)
+ if(1 to 4)
+ return "D"
+ if(5 to 7)
+ return "C"
+ if(8 to 10)
+ return "B"
+ if(11 to 13)
+ return "A"
+ else
+ return "S"
diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm
new file mode 100644
index 000000000000..b0500a400745
--- /dev/null
+++ b/code/modules/bitrunning/server/map_handling.dm
@@ -0,0 +1,184 @@
+
+/// Gives all current occupants a notification that the server is going down
+/obj/machinery/quantum_server/proc/begin_shutdown(mob/user)
+ if(isnull(generated_domain))
+ return
+
+ if(!length(avatar_connection_refs))
+ balloon_alert(user, "powering down domain...")
+ playsound(src, 'sound/machines/terminal_off.ogg', 40, 2)
+ reset()
+ return
+
+ balloon_alert(user, "notifying clients...")
+ playsound(src, 'sound/machines/terminal_alert.ogg', 100, TRUE)
+ user.visible_message(
+ span_danger("[user] begins depowering the server!"),
+ span_notice("You start disconnecting clients..."),
+ span_danger("You hear frantic keying on a keyboard."),
+ )
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SHUTDOWN_ALERT, user)
+
+ if(!do_after(user, 20 SECONDS, src))
+ return
+
+ reset()
+
+/**
+ * ### Quantum Server Cold Boot
+ * Procedurally links the 3 booting processes together.
+ *
+ * This is the starting point if you have an id. Does validation and feedback on steps
+ */
+/obj/machinery/quantum_server/proc/cold_boot_map(mob/user, map_key)
+ if(!is_ready)
+ return FALSE
+
+ if(isnull(map_key))
+ balloon_alert(user, "no domain specified.")
+ return FALSE
+
+ if(generated_domain)
+ balloon_alert(user, "stop the current domain first.")
+ return FALSE
+
+ if(length(avatar_connection_refs))
+ balloon_alert(user, "all clients must disconnect!")
+ return FALSE
+
+ is_ready = FALSE
+ playsound(src, 'sound/machines/terminal_processing.ogg', 30, 2)
+
+ if(!initialize_domain(map_key) || !initialize_safehouse() || !initialize_map_items())
+ balloon_alert(user, "initialization failed.")
+ scrub_vdom()
+ is_ready = TRUE
+ return FALSE
+
+ is_ready = TRUE
+ playsound(src, 'sound/machines/terminal_insert_disc.ogg', 30, 2)
+ balloon_alert(user, "domain loaded.")
+ generated_domain.start_time = world.time
+ points -= generated_domain.cost
+ update_use_power(ACTIVE_POWER_USE)
+ update_appearance()
+
+ return TRUE
+
+/// Initializes a new domain if the given key is valid and the user has enough points
+/obj/machinery/quantum_server/proc/initialize_domain(map_key)
+ var/datum/lazy_template/virtual_domain/to_load
+
+ for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
+ if(map_key != initial(available.key) || points < initial(available.cost))
+ continue
+ to_load = available
+ break
+
+ if(isnull(to_load))
+ return FALSE
+
+ generated_domain = new to_load()
+ RegisterSignal(generated_domain, COMSIG_LAZY_TEMPLATE_LOADED, PROC_REF(on_template_loaded))
+ generated_domain.lazy_load()
+
+ return TRUE
+
+/// Loads in necessary map items, sets mutation targets, etc
+/obj/machinery/quantum_server/proc/initialize_map_items()
+ var/turf/goal_turfs = list()
+ var/turf/crate_turfs = list()
+
+ for(var/thing in GLOB.landmarks_list)
+ if(istype(thing, /obj/effect/landmark/bitrunning/hololadder_spawn))
+ exit_turfs += get_turf(thing)
+ qdel(thing) // i'm worried about multiple servers getting confused so lets clean em up
+ continue
+
+ if(istype(thing, /obj/effect/landmark/bitrunning/cache_goal_turf))
+ var/turf/tile = get_turf(thing)
+ goal_turfs += tile
+ RegisterSignal(tile, COMSIG_ATOM_ENTERED, PROC_REF(on_goal_turf_entered))
+ RegisterSignal(tile, COMSIG_PARENT_EXAMINE, PROC_REF(on_goal_turf_examined))
+ qdel(thing)
+ continue
+
+ if(istype(thing, /obj/effect/landmark/bitrunning/cache_spawn))
+ crate_turfs += get_turf(thing)
+ qdel(thing)
+ continue
+
+ if(!length(exit_turfs))
+ CRASH("Failed to find exit turfs on generated domain.")
+ if(!length(goal_turfs))
+ CRASH("Failed to find send turfs on generated domain.")
+
+ if(length(crate_turfs))
+ shuffle_inplace(crate_turfs)
+ new /obj/structure/closet/crate/secure/bitrunning/encrypted(pick(crate_turfs))
+
+ return TRUE
+#define ONLY_TURF 1 // There should only ever be one turf at the bottom left of the map.
+
+/// Loads the safehouse
+/obj/machinery/quantum_server/proc/initialize_safehouse()
+ var/turf/safehouse_load_turf = list()
+ for(var/obj/effect/landmark/bitrunning/safehouse_spawn/spawner in GLOB.landmarks_list)
+ safehouse_load_turf += get_turf(spawner)
+ qdel(spawner)
+ break
+
+ if(!length(safehouse_load_turf))
+ CRASH("Failed to find safehouse load landmark on map.")
+
+ var/datum/map_template/safehouse/safehouse = new generated_domain.safehouse_path()
+ safehouse.load(safehouse_load_turf[ONLY_TURF])
+ generated_safehouse = safehouse
+
+ return TRUE
+
+/// Stops the current virtual domain and disconnects all users
+/obj/machinery/quantum_server/proc/reset(fast = FALSE)
+ is_ready = FALSE
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR)
+
+ if(!fast)
+ notify_spawned_threats()
+ addtimer(CALLBACK(src, PROC_REF(scrub_vdom)), 15 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE)
+ else
+ scrub_vdom() // used in unit testing, no need to wait for callbacks
+
+ addtimer(CALLBACK(src, PROC_REF(cool_off)), min(server_cooldown_time * capacitor_coefficient), TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME)
+ update_appearance()
+
+ update_use_power(IDLE_POWER_USE)
+ domain_randomized = FALSE
+ domain_threats = 0
+ retries_spent = 0
+
+/// Deletes all the tile contents
+/obj/machinery/quantum_server/proc/scrub_vdom()
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) // just in case
+
+ if(length(generated_domain.reservations))
+ var/datum/turf_reservation/res = generated_domain.reservations[1]
+ res.Release()
+
+ var/list/datum/weakref/creatures = spawned_threat_refs + mutation_candidate_refs
+ for(var/datum/weakref/creature_ref as anything in creatures)
+ var/mob/living/creature = creature_ref?.resolve()
+ if(isnull(creature))
+ continue
+
+ creature.dust() // sometimes mobs just don't die
+
+ avatar_connection_refs.Cut()
+ exit_turfs = list()
+ generated_domain = null
+ generated_safehouse = null
+ mutation_candidate_refs.Cut()
+ spawned_threat_refs.Cut()
+
+#undef ONLY_TURF
diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm
new file mode 100644
index 000000000000..221308e04878
--- /dev/null
+++ b/code/modules/bitrunning/server/obj_generation.dm
@@ -0,0 +1,101 @@
+/// Generates a new avatar for the bitrunner.
+/obj/machinery/quantum_server/proc/generate_avatar(obj/structure/hololadder/wayout, datum/outfit/netsuit)
+ var/mob/living/carbon/human/avatar = new(wayout.loc)
+
+ var/outfit_path = generated_domain.forced_outfit || netsuit
+ var/datum/outfit/to_wear = new outfit_path()
+
+ to_wear.belt = /obj/item/bitrunning_host_monitor
+ to_wear.glasses = null
+ to_wear.gloves = null
+ to_wear.l_hand = null
+ to_wear.l_pocket = null
+ to_wear.r_hand = null
+ to_wear.r_pocket = null
+ to_wear.suit = null
+ to_wear.suit_store = null
+
+ avatar.equipOutfit(to_wear, visualsOnly = TRUE)
+
+ var/thing = avatar.get_active_held_item()
+ if(!isnull(thing))
+ qdel(thing)
+
+ thing = avatar.get_inactive_held_item()
+ if(!isnull(thing))
+ qdel(thing)
+
+ var/obj/item/storage/backpack/bag = avatar.back
+ if(istype(bag))
+ QDEL_LIST(bag.contents)
+
+ bag.contents += list(
+ new /obj/item/storage/box/survival,
+ new /obj/item/storage/medkit/regular,
+ new /obj/item/flashlight,
+ )
+
+ var/obj/item/card/id/outfit_id = avatar.wear_id
+ if(outfit_id)
+ outfit_id.assignment = "Bit Avatar"
+ outfit_id.registered_name = avatar.real_name
+
+ outfit_id.registered_account = new()
+ outfit_id.registered_account.replaceable = FALSE
+
+ SSid_access.apply_trim_to_card(outfit_id, /datum/id_trim/bit_avatar)
+
+ return avatar
+
+/// Generates a new hololadder for the bitrunner. Effectively a respawn attempt.
+/obj/machinery/quantum_server/proc/generate_hololadder()
+ if(!length(exit_turfs))
+ return
+
+ if(retries_spent >= length(exit_turfs))
+ return
+
+ var/turf/destination
+ for(var/turf/dest_turf in exit_turfs)
+ if(!locate(/obj/structure/hololadder) in dest_turf)
+ destination = dest_turf
+ break
+
+ if(isnull(destination))
+ return
+
+ var/obj/structure/hololadder/wayout = new(destination)
+ if(isnull(wayout))
+ return
+
+ retries_spent += 1
+
+ return wayout
+
+/// Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar.
+/obj/machinery/quantum_server/proc/stock_gear(mob/living/carbon/human/avatar, mob/living/carbon/human/neo)
+ var/failed = FALSE
+
+ for(var/obj/item/bitrunning_disk/disk in neo.get_contents())
+ if(istype(disk, /obj/item/bitrunning_disk/ability))
+ var/obj/item/bitrunning_disk/ability/ability_disk = disk
+
+ if(isnull(ability_disk.granted_action))
+ failed = TRUE
+ continue
+
+ var/datum/action/our_action = new ability_disk.granted_action()
+ our_action.Grant(avatar)
+ continue
+
+ if(istype(disk, /obj/item/bitrunning_disk/item))
+ var/obj/item/bitrunning_disk/item/item_disk = disk
+
+ if(isnull(item_disk.granted_item))
+ failed = TRUE
+ continue
+
+ avatar.put_in_hands(new item_disk.granted_item())
+
+ if(failed)
+ to_chat(neo, span_warning("One of your disks failed to load. You must activate them to make a selection."))
diff --git a/code/modules/bitrunning/server/quantum_server.dm b/code/modules/bitrunning/server/quantum_server.dm
new file mode 100644
index 000000000000..43621cf5a922
--- /dev/null
+++ b/code/modules/bitrunning/server/quantum_server.dm
@@ -0,0 +1,152 @@
+/**
+ * The base object for the quantum server
+ */
+/obj/machinery/quantum_server
+ name = "quantum server"
+
+ circuit = /obj/item/circuitboard/machine/quantum_server
+ density = TRUE
+ desc = "A hulking computational machine designed to fabricate virtual domains."
+ icon = 'icons/obj/machines/bitrunning.dmi'
+ base_icon_state = "qserver"
+ icon_state = "qserver"
+ /// Affects server cooldown efficiency
+ var/capacitor_coefficient = 1
+ /// The loaded map template, map_template/virtual_domain
+ var/datum/lazy_template/virtual_domain/generated_domain
+ /// The loaded safehouse, map_template/safehouse
+ var/datum/map_template/safehouse/generated_safehouse
+ /// The connected console
+ var/datum/weakref/console_ref
+ /// If the current domain was a random selection
+ var/domain_randomized = FALSE
+ /// If any threats were spawned, adds to rewards
+ var/domain_threats = 0
+ /// Prevents multiple user actions. Handled by loading domains and cooldowns
+ var/is_ready = TRUE
+ /// List of available domains
+ var/list/available_domains = list()
+ /// Current plugged in users
+ var/list/datum/weakref/avatar_connection_refs = list()
+ /// Cached list of mutable mobs in zone for cybercops
+ var/list/datum/weakref/mutation_candidate_refs = list()
+ /// Any ghosts that have spawned in
+ var/list/datum/weakref/spawned_threat_refs = list()
+ /// Scales loot with extra players
+ var/multiplayer_bonus = 1.1
+ ///The radio the console can speak into
+ var/obj/item/radio/radio
+ /// The amount of points in the system, used to purchase maps
+ var/points = 0
+ /// Keeps track of the number of times someone has built a hololadder
+ var/retries_spent = 0
+ /// Changes how much info is available on the domain
+ var/scanner_tier = 1
+ /// Length of time it takes for the server to cool down after resetting. Here to give runners downtime so their faces don't get stuck like that
+ var/server_cooldown_time = 3 MINUTES
+ /// Applies bonuses to rewards etc
+ var/servo_bonus = 0
+ /// The turfs we can place a hololadder on.
+ var/turf/exit_turfs = list()
+ /// The turfs on station where we generate loot.
+ var/turf/receive_turfs = list()
+
+/obj/machinery/quantum_server/Initialize(mapload)
+ . = ..()
+
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/quantum_server/LateInitialize()
+ . = ..()
+
+ if(isnull(console_ref))
+ find_console()
+
+ radio = new(src)
+ radio.set_frequency(FREQ_SUPPLY)
+ radio.subspace_transmission = TRUE
+ radio.canhear_range = 0
+ radio.recalculateChannels()
+
+ RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken))
+ RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(on_delete))
+ RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(src, COMSIG_BITRUNNER_SPAWN_GLITCH, PROC_REF(on_threat_created))
+
+ // This further gets sorted in the client by cost so it's random and grouped
+ available_domains = shuffle(subtypesof(/datum/lazy_template/virtual_domain))
+
+/obj/machinery/quantum_server/Destroy(force)
+ . = ..()
+
+ available_domains.Cut()
+ mutation_candidate_refs.Cut()
+ avatar_connection_refs.Cut()
+ spawned_threat_refs.Cut()
+ QDEL_NULL(exit_turfs)
+ QDEL_NULL(receive_turfs)
+ QDEL_NULL(generated_domain)
+ QDEL_NULL(generated_safehouse)
+ QDEL_NULL(radio)
+
+/obj/machinery/quantum_server/update_appearance(updates)
+ if(isnull(generated_domain) || !is_operational)
+ set_light(0)
+ return ..()
+
+ set_light_color(is_ready ? LIGHT_COLOR_BABY_BLUE : LIGHT_COLOR_FIRE)
+ set_light(2, 1.5)
+
+ return ..()
+
+/obj/machinery/quantum_server/update_icon_state()
+ if(isnull(generated_domain) || !is_operational)
+ icon_state = base_icon_state
+ return ..()
+
+ icon_state = "[base_icon_state]_[is_ready ? "on" : "off"]"
+ return ..()
+
+/obj/machinery/quantum_server/crowbar_act(mob/living/user, obj/item/crowbar)
+ . = ..()
+
+ if(!is_ready)
+ balloon_alert(user, "it's scalding hot!")
+ return TRUE
+ if(length(avatar_connection_refs))
+ balloon_alert(user, "all clients must disconnect!")
+ return TRUE
+ if(default_deconstruction_crowbar(crowbar))
+ return TRUE
+ return FALSE
+
+/obj/machinery/quantum_server/screwdriver_act(mob/living/user, obj/item/screwdriver)
+ . = ..()
+
+ if(!is_ready)
+ balloon_alert(user, "it's scalding hot!")
+ return TRUE
+ if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", icon_state, screwdriver))
+ return TRUE
+ return FALSE
+
+/obj/machinery/quantum_server/RefreshParts()
+ . = ..()
+
+ var/capacitor_rating = 1.15
+ var/datum/stock_part/capacitor/cap = locate() in component_parts
+ capacitor_rating -= cap.tier * 0.15
+
+ capacitor_coefficient = capacitor_rating
+
+ var/datum/stock_part/scanning_module/scanner = locate() in component_parts
+ if(scanner)
+ scanner_tier = scanner.tier
+
+ var/servo_rating = 0
+ for(var/datum/stock_part/manipulator/servo in component_parts)
+ servo_rating += servo.tier * 0.1
+
+ servo_bonus = servo_rating
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SERVER_UPGRADED, servo_rating)
diff --git a/code/modules/bitrunning/server/signal_handlers.dm b/code/modules/bitrunning/server/signal_handlers.dm
new file mode 100644
index 000000000000..b0464b351faf
--- /dev/null
+++ b/code/modules/bitrunning/server/signal_handlers.dm
@@ -0,0 +1,107 @@
+/// If broken via signal, disconnects all users
+/obj/machinery/quantum_server/proc/on_broken(datum/source)
+ SIGNAL_HANDLER
+
+ if(isnull(generated_domain))
+ return
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR)
+
+/// Whenever a corpse spawner makes a new corpse, add it to the list of potential mutations
+/obj/machinery/quantum_server/proc/on_corpse_spawned(datum/source, mob/living/corpse)
+ SIGNAL_HANDLER
+
+ mutation_candidate_refs.Add(WEAKREF(corpse))
+
+/// Being qdeleted - make sure the circuit and connected mobs go with it
+/obj/machinery/quantum_server/proc/on_delete(datum/source)
+ SIGNAL_HANDLER
+
+ if(generated_domain)
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR)
+ scrub_vdom()
+
+ if(is_ready)
+ return
+ // in case they're trying to cheese cooldown
+ var/obj/item/circuitboard/machine/quantum_server/circuit = locate(/obj/item/circuitboard/machine/quantum_server) in contents
+ if(circuit)
+ qdel(circuit)
+
+/// Handles examining the server. Shows cooldown time and efficiency.
+/obj/machinery/quantum_server/proc/on_examine(datum/source, mob/examiner, list/examine_text)
+ SIGNAL_HANDLER
+
+ examine_text += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.")
+
+ if(capacitor_coefficient < 1)
+ examine_text += span_infoplain("Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.")
+
+ if(servo_bonus > 0.2)
+ examine_text += span_infoplain("Its manipulation potential is increasing rewards by [servo_bonus]x.")
+ examine_text += span_infoplain("Injury from unsafe ejection reduced [servo_bonus * 100]%.")
+
+ if(!is_ready)
+ examine_text += span_notice("It is currently cooling down. Give it a few moments.")
+ return
+
+/// Whenever something enters the send tiles, check if it's a loot crate. If so, alert players.
+/obj/machinery/quantum_server/proc/on_goal_turf_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
+ SIGNAL_HANDLER
+
+ if(!istype(arrived, /obj/structure/closet/crate/secure/bitrunning/encrypted))
+ return
+
+ var/obj/structure/closet/crate/secure/bitrunning/encrypted/loot_crate = arrived
+ if(!istype(loot_crate))
+ return
+
+ for(var/mob/person in loot_crate.contents)
+ if(isnull(person.mind))
+ person.forceMove(get_turf(loot_crate))
+
+ var/datum/component/avatar_connection/connection = person.GetComponent(/datum/component/avatar_connection)
+ connection?.full_avatar_disconnect()
+
+ spark_at_location(loot_crate)
+ qdel(loot_crate)
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_DOMAIN_COMPLETE, arrived, generated_domain.reward_points)
+ generate_loot()
+
+/// Handles examining the server. Shows cooldown time and efficiency.
+/obj/machinery/quantum_server/proc/on_goal_turf_examined(datum/source, mob/examiner, list/examine_text)
+ SIGNAL_HANDLER
+
+ examine_text += span_info("Beneath your gaze, the floor pulses subtly with streams of encoded data.")
+ examine_text += span_info("It seems to be part of the location designated for retrieving encrypted payloads.")
+
+/// Scans over the inbound created_atoms from lazy templates
+/obj/machinery/quantum_server/proc/on_template_loaded(datum/lazy_template/source, list/created_atoms)
+ SIGNAL_HANDLER
+
+ for(var/thing in created_atoms)
+ if(isliving(thing)) // so we can mutate them
+ var/mob/living/creature = thing
+
+ if(creature.can_be_cybercop)
+ mutation_candidate_refs.Add(WEAKREF(creature))
+ continue
+
+ if(istype(thing, /obj/effect/mob_spawn/ghost_role)) // so we get threat alerts
+ RegisterSignal(thing, COMSIG_GHOSTROLE_SPAWNED, PROC_REF(on_threat_created))
+ continue
+
+ if(istype(thing, /obj/effect/mob_spawn/corpse)) // corpses are valid targets too
+ var/obj/effect/mob_spawn/corpse/spawner = thing
+
+ mutation_candidate_refs.Add(spawner.spawned_mob_ref)
+
+ UnregisterSignal(source, COMSIG_LAZY_TEMPLATE_LOADED)
+
+/// Handles when cybercops are summoned into the area or ghosts click a ghost role spawner
+/obj/machinery/quantum_server/proc/on_threat_created(datum/source, mob/living/threat)
+ SIGNAL_HANDLER
+
+ domain_threats += 1
+ spawned_threat_refs.Add(WEAKREF(threat))
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_THREAT_CREATED) // notify players
diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm
new file mode 100644
index 000000000000..1d35e86de509
--- /dev/null
+++ b/code/modules/bitrunning/server/util.dm
@@ -0,0 +1,142 @@
+#define REDACTED "???"
+#define MAX_DISTANCE 4 // How far crates can spawn from the server
+
+/// Resets the cooldown state and updates icons
+/obj/machinery/quantum_server/proc/cool_off()
+ is_ready = TRUE
+ update_appearance()
+ radio.talk_into(src, "Thermal systems within operational parameters. Proceeding to domain configuration.", RADIO_CHANNEL_SUPPLY)
+
+/// Attempts to connect to a quantum console
+/obj/machinery/quantum_server/proc/find_console()
+ var/obj/machinery/computer/quantum_console/console = console_ref?.resolve()
+ if(console)
+ return console
+
+ for(var/direction in GLOB.cardinals)
+ var/obj/machinery/computer/quantum_console/nearby_console = locate(/obj/machinery/computer/quantum_console, get_step(src, direction))
+ if(nearby_console)
+ console_ref = WEAKREF(nearby_console)
+ nearby_console.server_ref = WEAKREF(src)
+ return nearby_console
+
+/// Compiles a list of available domains.
+/obj/machinery/quantum_server/proc/get_available_domains()
+ var/list/levels = list()
+
+ for(var/datum/lazy_template/virtual_domain/domain as anything in available_domains)
+ if(initial(domain.test_only))
+ continue
+ var/can_view = initial(domain.difficulty) < scanner_tier && initial(domain.cost) <= points + 5
+ var/can_view_reward = initial(domain.difficulty) < (scanner_tier + 1) && initial(domain.cost) <= points + 3
+
+ levels += list(list(
+ "cost" = initial(domain.cost),
+ "desc" = can_view ? initial(domain.desc) : "Limited scanning capabilities. Cannot infer domain details.",
+ "difficulty" = initial(domain.difficulty),
+ "id" = initial(domain.key),
+ "name" = can_view ? initial(domain.name) : REDACTED,
+ "reward" = can_view_reward ? initial(domain.reward_points) : REDACTED,
+ ))
+
+ return levels
+
+/// If there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals
+/obj/machinery/quantum_server/proc/get_avatar_data()
+ var/list/hosted_avatars = list()
+
+ for(var/datum/weakref/avatar_ref in avatar_connection_refs)
+ var/datum/component/avatar_connection/connection = avatar_ref.resolve()
+ if(isnull(connection))
+ avatar_connection_refs.Remove(connection)
+ continue
+
+ var/mob/living/creature = connection.parent
+ var/mob/living/pilot = connection.old_body_ref?.resolve()
+
+ hosted_avatars += list(list(
+ "health" = creature.health,
+ "name" = creature.name,
+ "pilot" = pilot,
+ "brute" = creature.get_damage_amount(BRUTE),
+ "burn" = creature.get_damage_amount(BURN),
+ "tox" = creature.get_damage_amount(TOX),
+ "oxy" = creature.get_damage_amount(OXY),
+ ))
+
+ return hosted_avatars
+
+/// Gets a random available domain given the current points. Weighted towards higher cost domains.
+/obj/machinery/quantum_server/proc/get_random_domain_id()
+ if(points < 1)
+ return
+
+ var/list/random_domains = list()
+ var/total_cost = 0
+
+ for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
+ var/init_cost = initial(available.cost)
+ if(!initial(available.test_only) && init_cost > 0 && init_cost < 4 && init_cost <= points)
+ random_domains += list(list(
+ cost = init_cost,
+ id = initial(available.key),
+ ))
+
+ var/random_value = rand(0, total_cost)
+ var/accumulated_cost = 0
+
+ for(var/available as anything in random_domains)
+ accumulated_cost += available["cost"]
+ if(accumulated_cost >= random_value)
+ domain_randomized = TRUE
+ return available["id"]
+
+/// Gets all mobs originally generated by the loaded domain and returns a list that are capable of being antagged
+/obj/machinery/quantum_server/proc/get_valid_domain_targets()
+ // A: No one is playing
+ // B: The domain is not loaded
+ // C: The domain is shutting down
+ // D: There are no mobs
+ if(!length(avatar_connection_refs) || isnull(generated_domain) || !is_ready || !is_operational || !length(mutation_candidate_refs))
+ return list()
+
+ for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs)
+ var/mob/living/creature = creature_ref.resolve()
+ if(isnull(creature) || creature.mind)
+ mutation_candidate_refs.Remove(creature_ref)
+
+ return shuffle(mutation_candidate_refs)
+
+/// Locates any turfs with crate out landmarks
+/obj/machinery/quantum_server/proc/locate_receive_turfs()
+ for(var/obj/effect/landmark/bitrunning/station_reward_spawn/spawner in GLOB.landmarks_list)
+ if(IN_GIVEN_RANGE(src, spawner, MAX_DISTANCE))
+ receive_turfs += get_turf(spawner)
+ qdel(spawner)
+
+ return length(receive_turfs) > 0
+
+/// Finds any mobs with minds in the zones and gives them the bad news
+/obj/machinery/quantum_server/proc/notify_spawned_threats()
+ for(var/datum/weakref/baddie_ref as anything in spawned_threat_refs)
+ var/mob/living/baddie = baddie_ref.resolve()
+ if(isnull(baddie) || baddie.stat >= UNCONSCIOUS || isnull(baddie.mind))
+ continue
+
+ baddie.throw_alert(
+ ALERT_BITRUNNER_RESET,
+ /atom/movable/screen/alert/bitrunning/qserver_threat_deletion,
+ new_master = src,
+ )
+
+ to_chat(baddie, span_userdanger("You have been flagged for deletion! Thank you for your service."))
+
+/// Do some magic teleport sparks
+/obj/machinery/quantum_server/proc/spark_at_location(obj/crate)
+ playsound(crate, 'sound/magic/blink.ogg', 50, TRUE)
+ var/datum/effect_system/spark_spread/quantum/sparks = new()
+ sparks.set_up(5, 1, get_turf(crate))
+ sparks.start()
+
+#undef REDACTED
+#undef MAX_DISTANCE
diff --git a/code/modules/bitrunning/turfs.dm b/code/modules/bitrunning/turfs.dm
new file mode 100644
index 000000000000..4c35153311e5
--- /dev/null
+++ b/code/modules/bitrunning/turfs.dm
@@ -0,0 +1,13 @@
+/turf/open/floor/bitrunning_transport
+ name = "circuit floor"
+ desc = "Looks complex. You can see the circuits running through the floor."
+ icon_state = "bitrunning"
+
+/turf/closed/indestructible/binary
+ name = "tear in the fabric of reality"
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "binary"
+
+/obj/effect/baseturf_helper/virtual_domain
+ name = "virtual domain baseturf editor"
+ baseturf = /turf/open/indestructible/binary
diff --git a/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm
new file mode 100644
index 000000000000..02bb91abc588
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm
@@ -0,0 +1,18 @@
+/datum/lazy_template/virtual_domain/ash_drake
+ name = "Ashen Inferno"
+ cost = BITRUNNER_COST_MEDIUM
+ desc = "Home of the ash drake, a powerful dragon that scours the surface of Lavaland."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ forced_outfit = /datum/outfit/job/miner
+ key = "ash_drake"
+ map_name = "ash_drake"
+ reward_points = BITRUNNER_REWARD_MEDIUM
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/dragon/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 1600
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 1600
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm b/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm
new file mode 100644
index 000000000000..871c2cb1338e
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm
@@ -0,0 +1,22 @@
+/datum/lazy_template/virtual_domain/beach_bar
+ name = "Beach Bar"
+ desc = "A cheerful seaside haven where friendly skeletons serve up drinks. Say, how'd you guys get so dead?"
+ extra_loot = list(/obj/item/toy/beach_ball = 1)
+ help_text = "This place is running on a skeleton crew, and they don't seem to be too keen to share details. \
+ Maybe a few drinks of liquid charm will get the spirits up. As the saying goes, if you can't beat 'em, join 'em."
+ key = "beach_bar"
+ map_name = "beach_bar"
+ safehouse_path = /datum/map_template/safehouse/mine
+
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain
+ name = "pina colada"
+ desc = "Whose drink is this? Not yours, that's for sure. Well, it's not like they're going to miss it."
+ list_reagents = list(/datum/reagent/consumable/ethanol/pina_colada = 30)
+
+/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain/Initialize(mapload, vol)
+ . = ..()
+
+ AddComponent(/datum/component/bitrunning_points, \
+ signal_type = COMSIG_GLASS_DRANK, \
+ points_per_signal = 0.5, \
+ )
diff --git a/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm
new file mode 100644
index 000000000000..abf2e0fc5a94
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm
@@ -0,0 +1,18 @@
+/datum/lazy_template/virtual_domain/blood_drunk_miner
+ name = "Sanguine Excavation"
+ cost = BITRUNNER_COST_MEDIUM
+ desc = "Few escape the surface of Lavaland without a few scars. Some remain, maddened by the hunt."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ forced_outfit = /datum/outfit/job/miner
+ key = "blood_drunk_miner"
+ map_name = "blood_drunk_miner"
+ reward_points = BITRUNNER_REWARD_MEDIUM
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 1600
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 1600
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm
new file mode 100644
index 000000000000..bede97177cb7
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm
@@ -0,0 +1,19 @@
+/datum/lazy_template/virtual_domain/bubblegum
+ name = "Blood-Soaked Lair"
+ cost = BITRUNNER_COST_HIGH
+ desc = "King of the slaughter demons. Bubblegum is a massive, hulking beast with a penchant for violence."
+ difficulty = BITRUNNER_DIFFICULTY_HIGH
+ extra_loot = list(/obj/item/toy/plush/bubbleplush = 1)
+ forced_outfit = /datum/outfit/job/miner
+ key = "bubblegum"
+ map_name = "bubblegum"
+ reward_points = BITRUNNER_REWARD_HIGH
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 2000
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 2000
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm b/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm
new file mode 100644
index 000000000000..92f000c9cf34
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm
@@ -0,0 +1,13 @@
+/datum/lazy_template/virtual_domain/clown_planet
+ name = "Clown Planet"
+ cost = BITRUNNER_COST_LOW
+ desc = "In the deep, dark reaches of space, there is only Honk."
+ difficulty = BITRUNNER_DIFFICULTY_LOW
+ extra_loot = list(/obj/item/bikehorn = 1)
+ forced_outfit = /datum/outfit/job/clown
+ help_text = "The trials of the Honkitude have begun. The sound of bike horns wailing in the distance. \
+ this realm- some sort of puzzle, has existed in legend as the final test of just how silly you are."
+ key = "clown_planet"
+ map_name = "clown_planet"
+ reward_points = BITRUNNER_REWARD_LOW
+ safehouse_path = /datum/map_template/safehouse/mine
diff --git a/code/modules/bitrunning/virtual_domain/domains/colossus.dm b/code/modules/bitrunning/virtual_domain/domains/colossus.dm
new file mode 100644
index 000000000000..35ba4eee0ca8
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/colossus.dm
@@ -0,0 +1,18 @@
+/datum/lazy_template/virtual_domain/colossus
+ name = "Celestial Trial"
+ cost = BITRUNNER_COST_HIGH
+ desc = "A massive, ancient beast named the Colossus. Judgment comes."
+ difficulty = BITRUNNER_DIFFICULTY_HIGH
+ forced_outfit = /datum/outfit/job/miner
+ key = "colossus"
+ map_name = "colossus"
+ reward_points = BITRUNNER_REWARD_HIGH
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/colossus/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 2000
+ maxHealth = 2000
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm
new file mode 100644
index 000000000000..4deacb4f9c59
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm
@@ -0,0 +1,39 @@
+/datum/lazy_template/virtual_domain/gondola_asteroid
+ name = "Gondola Asteroid"
+ desc = "An asteroid home to a bountiful forest of gondolas. Peaceful."
+ map_name = "gondola_asteroid"
+ help_text = "What a lovely forest. There's a loot crate here in the middle of the map. \
+ Hmm... It doesn't budge. The gondolas don't seem to have any trouble moving it, though. \
+ I bet there's a way to move it myself."
+ key = "gondola_asteroid"
+ map_name = "gondola_asteroid"
+ safehouse_path = /datum/map_template/safehouse/shuttle_space
+
+/// Very pushy gondolas, great for moving loot crates.
+/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola
+ move_resist = MOVE_FORCE_STRONG
+
+/mob/living/simple_animal/pet/gondola/virtual_domain
+ health = 50
+ loot = list(/obj/effect/decal/cleanable/blood/gibs, /obj/item/stack/sheet/animalhide/gondola = 1, /obj/item/food/meat/slab/gondola/virtual_domain = 1)
+ maxHealth = 50
+ move_force = MOVE_FORCE_VERY_STRONG
+ move_resist = MOVE_FORCE_STRONG
+
+/obj/item/food/meat/slab/gondola/virtual_domain
+ food_reagents = list(
+ /datum/reagent/consumable/nutriment/protein = 4,
+ /datum/reagent/gondola_mutation_toxin/virtual_domain = 5,
+ )
+
+/datum/reagent/gondola_mutation_toxin/virtual_domain
+ name = "Advanced Tranquility"
+
+/datum/reagent/gondola_mutation_toxin/virtual_domain/expose_mob(mob/living/exposed_mob, methods = TOUCH, reac_volume, show_message = TRUE, touch_protection = 0)
+ . = ..()
+ if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection))))
+ exposed_mob.ForceContractDisease(new /datum/disease/transformation/gondola/virtual_domain(), FALSE, TRUE)
+
+/datum/disease/transformation/gondola/virtual_domain
+ stage_prob = 9
+ new_form = /mob/living/simple_animal/pet/gondola/virtual_domain
diff --git a/code/modules/bitrunning/virtual_domain/domains/hierophant.dm b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm
new file mode 100644
index 000000000000..142623f4f812
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm
@@ -0,0 +1,18 @@
+/datum/lazy_template/virtual_domain/hierophant
+ name = "Zealot Arena"
+ cost = BITRUNNER_COST_HIGH
+ desc = "Dance, puppets, dance!"
+ difficulty = BITRUNNER_DIFFICULTY_HIGH
+ forced_outfit = /datum/outfit/job/miner
+ key = "hierophant"
+ map_name = "hierophant"
+ reward_points = BITRUNNER_REWARD_HIGH
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/hierophant/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 1700
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 1700
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/legion.dm b/code/modules/bitrunning/virtual_domain/domains/legion.dm
new file mode 100644
index 000000000000..f1ba146f3801
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/legion.dm
@@ -0,0 +1,20 @@
+/datum/lazy_template/virtual_domain/legion
+ name = "Chamber of Echoes"
+ cost = BITRUNNER_COST_MEDIUM
+ desc = "A chilling realm that houses Legion's necropolis. Those who succumb to it are forever damned."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ forced_outfit = /datum/outfit/job/miner
+ key = "legion"
+ map_name = "legion"
+ reward_points = BITRUNNER_REWARD_MEDIUM
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/legion/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ health = 1500
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 1500
+ true_spawn = FALSE
+
+// You may be thinking, what about those mini-legions? They're not part of the initial created_atoms list
diff --git a/code/modules/bitrunning/virtual_domain/domains/pipedream.dm b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm
new file mode 100644
index 000000000000..8df3ec2120a2
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm
@@ -0,0 +1,100 @@
+/datum/lazy_template/virtual_domain/pipedream
+ name = "Disposal Pipe Factory"
+ cost = BITRUNNER_COST_LOW
+ desc = "An abandoned and infested factory manufacturing disposal pipes."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ extra_loot = list(/obj/item/stack/pipe_cleaner_coil/random/five = 1)
+ help_text = "Not long ago, this place was thriving with activity. The workers \
+ seemed to have left in a hurry, and now productivity is in the bin. Something \
+ must have trashed the place, but what?"
+ key = "pipedream"
+ map_name = "pipedream"
+ reward_points = BITRUNNER_REWARD_LOW
+ safehouse_path = /datum/map_template/safehouse/shuttle
+
+// ID Trims
+/datum/id_trim/factory
+ assignment = "Factory Worker"
+ trim_state = "trim_cargotechnician"
+ department_color = COLOR_CARGO_BROWN
+ subdepartment_color = COLOR_CARGO_BROWN
+ sechud_icon_state = SECHUD_CARGO_TECHNICIAN
+ access = list(
+ ACCESS_AWAY_SUPPLY
+ )
+
+/datum/id_trim/factory/qm
+ assignment = "Factory Quartermaster"
+ trim_state = "trim_quartermaster"
+ department_color = COLOR_COMMAND_BLUE
+ subdepartment_color = COLOR_CARGO_BROWN
+ department_state = "departmenthead"
+ sechud_icon_state = SECHUD_QUARTERMASTER
+ access = list(
+ ACCESS_AWAY_SUPPLY,
+ ACCESS_AWAY_COMMAND
+ )
+
+// ID Cards
+/obj/item/card/id/advanced/factory
+ name = "factory worker ID"
+ trim = /datum/id_trim/factory
+
+/obj/item/card/id/advanced/factory/qm
+ name = "factory quartermaster ID"
+ trim = /datum/id_trim/factory/qm
+
+//Outfits
+/datum/outfit/factory
+ name = "Factory Worker"
+
+ id_trim = /datum/id_trim/factory
+ id = /obj/item/card/id/advanced/
+ uniform = /obj/item/clothing/under/rank/cargo/tech
+ suit = /obj/item/clothing/suit/hazardvest
+ belt = /obj/item/radio
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/soft/yellow
+ shoes = /obj/item/clothing/shoes/workboots
+ l_pocket = /obj/item/flashlight/seclite
+
+/datum/outfit/factory/guard
+ name = "Factory Guard"
+
+ uniform = /obj/item/clothing/under/rank/security/officer/grey
+ suit = /obj/item/clothing/suit/armor/vest/alt
+ belt = /obj/item/radio
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/soft/sec
+ shoes = /obj/item/clothing/shoes/jackboots/sec
+ l_pocket = /obj/item/restraints/handcuffs
+ r_pocket = /obj/item/assembly/flash/handheld
+
+/datum/outfit/factory/qm
+ name = "Factory Quatermaster"
+
+ id_trim = /datum/id_trim/factory/qm
+ id = /obj/item/card/id/advanced/silver
+ uniform = /obj/item/clothing/under/rank/cargo/qm
+ belt = /obj/item/radio
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/soft/yellow
+ shoes = /obj/item/clothing/shoes/jackboots/sec
+ l_pocket = /obj/item/melee/baton/telescopic
+
+// Corpses
+/obj/effect/mob_spawn/corpse/human/factory
+ name = "Factory Worker"
+ outfit = /datum/outfit/factory
+ icon_state = "corpsecargotech"
+
+/obj/effect/mob_spawn/corpse/human/factory/guard
+ name = "Factory Guard"
+ outfit = /datum/outfit/factory/guard
+ icon_state = "corpsecargotech"
+
+/obj/effect/mob_spawn/corpse/human/factory/qm
+ name = "Factory Quartermaster"
+ outfit = /datum/outfit/factory/qm
+ icon_state = "corpsecargotech"
+
diff --git a/code/modules/bitrunning/virtual_domain/domains/pirates.dm b/code/modules/bitrunning/virtual_domain/domains/pirates.dm
new file mode 100644
index 000000000000..52d86a712118
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/pirates.dm
@@ -0,0 +1,10 @@
+/datum/lazy_template/virtual_domain/pirates
+ name = "Corsair Cove"
+ cost = BITRUNNER_COST_MEDIUM
+ desc = "Battle your way to the hidden treasure, seize the booty, and make a swift escape before the pirates turn the tide."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ help_text = "Put on the provided outfits to blend in, then battle your way through the hostile pirates. \
+ Grab the treasure and get out before you're overwhelmed!"
+ key = "pirates"
+ map_name = "pirates"
+ reward_points = BITRUNNER_REWARD_MEDIUM
diff --git a/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm b/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm
new file mode 100644
index 000000000000..2d9bcca36455
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm
@@ -0,0 +1,29 @@
+/datum/lazy_template/virtual_domain/stairs_and_cliffs
+ name = "Glacier Grind"
+ cost = BITRUNNER_COST_LOW
+ desc = "A treacherous climb few calves can survive. Great cardio though."
+ help_text = "Ever heard of 'Snakes and Ladders'? It's like that, but with \
+ instead of ladders its stairs and instead of snakes its a steep drop down a \
+ cliff into rough rocks or liquid plasma."
+ extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2)
+ difficulty = BITRUNNER_DIFFICULTY_LOW
+ forced_outfit = /datum/outfit/job/virtual_domain_iceclimber
+ key = "stairs_and_cliffs"
+ map_name = "stairs_and_cliffs"
+ reward_points = BITRUNNER_REWARD_MEDIUM
+ safehouse_path = /datum/map_template/safehouse/ice
+
+/turf/open/cliff/snowrock/virtual_domain
+ name = "icy cliff"
+ initial_gas_mix = "o2=22;n2=82;TEMP=180"
+
+/turf/open/lava/plasma/virtual_domain
+ name = "plasma lake"
+ initial_gas_mix = "o2=22;n2=82;TEMP=180"
+
+/datum/outfit/job/virtual_domain_iceclimber
+ name = "Ice Climber"
+
+ uniform = /obj/item/clothing/under/color/grey
+ backpack = /obj/item/storage/backpack/duffelbag
+ shoes = /obj/item/clothing/shoes/winterboots
diff --git a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm
new file mode 100644
index 000000000000..bae0da6874db
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm
@@ -0,0 +1,13 @@
+/datum/lazy_template/virtual_domain/syndicate_assault
+ name = "Syndicate Assault"
+ cost = BITRUNNER_COST_MEDIUM
+ desc = "Board the enemy ship and recover the stolen cargo."
+ difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ extra_loot = list(/obj/item/toy/plush/nukeplushie = 1)
+ help_text = "A group of Syndicate operatives have stolen valuable cargo from the station. \
+ They have boarded their ship and are attempting to escape. Infiltrate their ship and recover \
+ the crate. Be careful, they are extremely armed."
+ key = "syndicate_assault"
+ map_name = "syndicate_assault"
+ reward_points = BITRUNNER_REWARD_MEDIUM
+ safehouse_path = /datum/map_template/safehouse/shuttle
diff --git a/code/modules/bitrunning/virtual_domain/domains/test_only.dm b/code/modules/bitrunning/virtual_domain/domains/test_only.dm
new file mode 100644
index 000000000000..6e5e852fb5c8
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/test_only.dm
@@ -0,0 +1,11 @@
+/// Used for unit tests only. Skipped in UI.
+/datum/lazy_template/virtual_domain/test_only
+ name = "Test Only"
+ key = "test_only"
+ map_name = "test_only"
+ test_only = TRUE
+ safehouse_path = /datum/map_template/safehouse/test_only
+
+/datum/lazy_template/virtual_domain/test_only/expensive
+ key = "test_only_expensive"
+ cost = 3
diff --git a/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm
new file mode 100644
index 000000000000..45d4abec9830
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm
@@ -0,0 +1,10 @@
+/datum/lazy_template/virtual_domain/vaporwave
+ name = "Cosmic Vestige"
+ cost = BITRUNNER_COST_EXTREME
+ desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era."
+ difficulty = BITRUNNER_DIFFICULTY_NONE
+ extra_loot = list(/obj/item/stack/spacecash/c500 = 3)
+ key = "vaporwave"
+ map_name = "vaporwave"
+ reward_points = BITRUNNER_REWARD_EXTREME
+ safehouse_path = /datum/map_template/safehouse/shuttle_space
diff --git a/code/modules/bitrunning/virtual_domain/domains/wendigo.dm b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm
new file mode 100644
index 000000000000..fcad3db6faf7
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm
@@ -0,0 +1,19 @@
+/datum/lazy_template/virtual_domain/wendigo
+ name = "Glacial Devourer"
+ cost = BITRUNNER_COST_HIGH
+ desc = "Legends speak of the ravenous Wendigo hidden deep within the caves of Icemoon."
+ difficulty = BITRUNNER_DIFFICULTY_HIGH
+ forced_outfit = /datum/outfit/job/miner
+ key = "wendigo"
+ map_name = "wendigo"
+ reward_points = BITRUNNER_REWARD_HIGH
+ safehouse_path = /datum/map_template/safehouse/lavaland_boss
+
+/mob/living/simple_animal/hostile/megafauna/wendigo/virtual_domain
+ can_be_cybercop = FALSE
+ crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ guaranteed_butcher_results = list(/obj/item/wendigo_skull = 1)
+ health = 2000
+ loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted)
+ maxHealth = 2000
+ true_spawn = FALSE
diff --git a/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm
new file mode 100644
index 000000000000..2bd4105e13c2
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm
@@ -0,0 +1,12 @@
+/datum/lazy_template/virtual_domain/xeno_nest
+ name = "Xeno Infestation"
+ cost = BITRUNNER_COST_LOW
+ desc = "Our ship scanners have detected lifeforms of unknown origin. Friendly attempts to contact them have failed."
+ difficulty = BITRUNNER_DIFFICULTY_LOW
+ extra_loot = list(/obj/item/toy/plush/rouny = 1)
+ help_text = "You are on a barren planet filled with hostile creatures. There is a crate here, not hidden, \
+ simply protected. Expect resistance."
+ key = "xeno_nest"
+ map_name = "xeno_nest"
+ reward_points = BITRUNNER_REWARD_LOW
+ safehouse_path = /datum/map_template/safehouse/shuttle
diff --git a/code/modules/bitrunning/virtual_domain/safehouses.dm b/code/modules/bitrunning/virtual_domain/safehouses.dm
new file mode 100644
index 000000000000..bb42f690ac7e
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/safehouses.dm
@@ -0,0 +1,53 @@
+/**
+ * # Safe Houses
+ * The starting point for virtual domains.
+ * Create your own: Read the readme file in the '_maps/safehouses' folder.
+ */
+/datum/map_template/safehouse
+ name = "virtual domain: safehouse"
+
+ returns_created_atoms = TRUE
+ /// The map file to load
+ var/filename = "den.dmm"
+
+/datum/map_template/safehouse/New()
+ mappath = "_maps/safehouses/" + filename
+ ..(path = mappath)
+
+/datum/map_template/safehouse/test_only
+ filename = "test_only_safehouse.dmm"
+
+
+/// The default safehouse map template.
+/datum/map_template/safehouse/wood
+ filename = "wood.dmm"
+
+/datum/map_template/safehouse/den
+ filename = "den.dmm"
+
+/datum/map_template/safehouse/dig
+ filename = "dig.dmm"
+
+/datum/map_template/safehouse/shuttle
+ filename = "shuttle.dmm"
+
+// Has space tiles on the four corners.
+/datum/map_template/safehouse/shuttle_space
+ filename = "shuttle_space.dmm"
+
+/datum/map_template/safehouse/mine
+ filename = "mine.dmm"
+
+// Comes preloaded with mining combat gear.
+/datum/map_template/safehouse/lavaland_boss
+ filename = "lavaland_boss.dmm"
+
+// Chill out
+/datum/map_template/safehouse/ice
+ filename = "ice.dmm"
+
+/**
+ * Your safehouse here
+ * /datum/map_template/safehouse/your_type
+ * filename = "your_map.dmm"
+ */
diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.dm b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
new file mode 100644
index 000000000000..c2bd193f4e98
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
@@ -0,0 +1,34 @@
+/**
+ * # Virtual Domains
+ * This loads a base level, then users can select the preset upon it.
+ * Create your own: Read the readme file in the '_maps/virtual_domains' folder.
+ */
+/datum/lazy_template/virtual_domain
+ map_dir = "_maps/virtual_domains"
+ map_name = "None"
+ key = "Virtual Domain"
+
+ /// Cost of this map to load
+ var/cost = BITRUNNER_COST_NONE
+ /// The description of the map
+ var/desc = "A map."
+ /// The 'difficulty' of the map, which affects the ui and ability to scan info.
+ var/difficulty = BITRUNNER_DIFFICULTY_NONE
+ /// An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount
+ var/list/extra_loot
+ /// The map file to load
+ var/filename = "virtual_domain.dmm"
+ /// Any outfit that you wish to force on avatars. Overrides preferences
+ var/datum/outfit/forced_outfit
+ /// Information given to connected clients via ability
+ var/help_text
+ // Name to show in the UI
+ var/name = "Virtual Domain"
+ /// Points to reward for completion. Used to purchase new domains and calculate ore rewards.
+ var/reward_points = BITRUNNER_REWARD_MIN
+ /// The start time of the map. Used to calculate time taken
+ var/start_time
+ /// This map is specifically for unit tests. Shouldn't display in game
+ var/test_only = FALSE
+ /// The safehouse to load into the map
+ var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den
diff --git a/code/modules/cargo/packs/_packs.dm b/code/modules/cargo/packs/_packs.dm
index 479d2595c021..4d7e5066a4ab 100644
--- a/code/modules/cargo/packs/_packs.dm
+++ b/code/modules/cargo/packs/_packs.dm
@@ -79,6 +79,21 @@
/datum/supply_pack/proc/generate_supply_packs()
return
+///Easily send a supplypod to an area
+/proc/send_supply_pod_to_area(contents, area_type, pod_type = /obj/structure/closet/supplypod)
+ var/list/areas = get_areas(area_type)
+ if(!LAZYLEN(areas))
+ return FALSE
+ var/list/open_turfs = list()
+ for(var/turf/open/floor/found_turf in get_area_turfs(pick(areas), subtypes = TRUE))
+ open_turfs += found_turf
+
+ if(!length(open_turfs))
+ return FALSE
+
+ new /obj/effect/pod_landingzone (pick(open_turfs), new pod_type (), contents)
+ return TRUE
+
/**
* Custom supply pack
* The contents are given on New rather than being static
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index c8e37acea6d5..368e1e726d82 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -527,6 +527,12 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
view_size.setZoomMode()
Master.UpdateTickRate()
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_CONNECT, src)
+
+ if(!media)
+ media = new /datum/media_manager(src)
+ media.open()
+ media.update_music()
+
fully_created = TRUE
//////////////
diff --git a/code/modules/client/preferences/middleware/antags.dm b/code/modules/client/preferences/middleware/antags.dm
index d04b9c0c0fd7..e13167ba7347 100644
--- a/code/modules/client/preferences/middleware/antags.dm
+++ b/code/modules/client/preferences/middleware/antags.dm
@@ -116,6 +116,7 @@
/datum/asset/spritesheet/antagonists/create_spritesheets()
// Antagonists that don't have a dynamic ruleset, but do have a preference
var/static/list/non_ruleset_antagonists = list(
+ ROLE_CYBER_POLICE = /datum/antagonist/cyber_police,
ROLE_FUGITIVE = /datum/antagonist/fugitive,
ROLE_LONE_OPERATIVE = /datum/antagonist/nukeop/lone,
ROLE_SENTIENCE = /datum/antagonist/sentient_creature,
diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm
index beed4f1b0b35..01739a7c1e96 100644
--- a/code/modules/clothing/outfits/plasmaman.dm
+++ b/code/modules/clothing/outfits/plasmaman.dm
@@ -280,3 +280,10 @@
gloves = /obj/item/clothing/gloves/color/plasmaman/clown
head = /obj/item/clothing/head/helmet/space/plasmaman/clown
mask = /obj/item/clothing/mask/gas/clown_hat/plasmaman
+
+/datum/outfit/plasmaman/bitrunner
+ name = "Bitrunner Plasmaman"
+
+ uniform = /obj/item/clothing/under/plasmaman/bitrunner
+ gloves = /obj/item/clothing/gloves/color/plasmaman/black
+ head = /obj/item/clothing/head/helmet/space/plasmaman/bitrunner
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index 8379c817144e..cd6bde9be846 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -379,3 +379,8 @@
desc = "A special containment helmet designed for CentCom Staff. You know, so any coffee spills don't kill the poor sod."
icon_state = "intern_envirohelm"
inhand_icon_state = null
+
+/obj/item/clothing/head/helmet/space/plasmaman/bitrunner
+ name = "bitrunner's plasma envirosuit helmet"
+ desc = "An envirohelmet with extended blue light filters for bitrunning plasmamen."
+ icon_state = "bitrunner_envirohelm"
diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
index 52a85cf31cf0..9b2faf65a9c8 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
@@ -115,6 +115,15 @@
icon_state = "clown_envirosuit"
inhand_icon_state = null
+/obj/item/clothing/under/plasmaman/clown/Initialize(mapload)
+ . = ..()
+ AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0)
+
+/obj/item/clothing/under/plasmaman/bitrunner
+ name = "bitrunner envirosuit"
+ desc = "An envirosuit specially designed for plasmamen with bad posture."
+ icon_state = "bitrunner_envirosuit"
+ inhand_icon_state = null
/obj/item/clothing/under/plasmaman/prisoner
name = "prisoner envirosuit"
desc = "An orange envirosuit identifying and protecting a criminal plasmaman. Its suit sensors are stuck in the \"Fully On\" position."
diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm
index d4c9ca4268c9..6e4f0f32285d 100644
--- a/code/modules/clothing/under/jobs/cargo.dm
+++ b/code/modules/clothing/under/jobs/cargo.dm
@@ -54,3 +54,9 @@
name = "shaft miner's jumpsuit"
icon_state = "explorer"
inhand_icon_state = null
+
+/obj/item/clothing/under/rank/cargo/bitrunner
+ name = "bitrunner's jumpsuit"
+ desc = "It's a leathery jumpsuit worn by a bitrunner. Tacky, but comfortable to wear if sitting for prolonged periods of time."
+ icon_state = "bitrunner"
+ inhand_icon_state = "w_suit"
diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm
index 7f578bb1b393..59d5c81a69b1 100644
--- a/code/modules/economy/account.dm
+++ b/code/modules/economy/account.dm
@@ -7,6 +7,10 @@
var/account_balance = 0
///How many mining points (shaft miner credits) is held in the bank account, used for mining vendors.
var/mining_points = 0
+ /// Points for bit runner's vendor. Awarded for completing virtual domains.
+ var/bitrunning_points = 0
+ ///Debt. If higher than 0, A portion of the credits is earned (or the whole debt, whichever is lower) will go toward paying it off.
+ var/account_debt = 0
///If there are things effecting how much income a player will get, it's reflected here 1 is standard for humans.
var/payday_modifier
///The job datum of the account owner.
diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm
index f56ee6164473..b2e2ef909ff3 100644
--- a/code/modules/experisci/experiment/experiments.dm
+++ b/code/modules/experisci/experiment/experiments.dm
@@ -276,7 +276,6 @@
/obj/machinery/rnd/experimentor = 1,
/obj/machinery/medical_kiosk = 2,
/obj/machinery/piratepad/civilian = 2,
- /obj/machinery/rnd/bepis = 3
)
required_stock_part = /obj/item/stock_parts/scanning_module/adv
diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm
index f47556106530..1bf0fce08a75 100644
--- a/code/modules/lighting/lighting_source.dm
+++ b/code/modules/lighting/lighting_source.dm
@@ -309,7 +309,7 @@
corners[T.lighting_corner_NW] = 0
turfs += T
- var/turf/below = SSmapping.get_turf_below(T)
+ var/turf/below = GET_TURF_BELOW(T)
var/turf/previous = T
while(below)
// If we find a non transparent previous, end
@@ -329,9 +329,9 @@
turfs += below
// ANNND then we add the one below it
previous = below
- below = SSmapping.get_turf_below(below)
+ below = GET_TURF_BELOW(below)
- var/turf/above = SSmapping.get_turf_above(T)
+ var/turf/above = GET_TURF_ABOVE(T)
while(above)
// If we find a non transparent turf, end
if(!istransparentturf(above) || IS_OPAQUE_TURF(above))
@@ -343,7 +343,7 @@
corners[above.lighting_corner_SW] = 0
corners[above.lighting_corner_NW] = 0
turfs += above
- above = SSmapping.get_turf_above(above)
+ above = GET_TURF_ABOVE(above)
source_turf.luminosity = oldlum
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
index 303aa01d8c4b..c040b96be3b8 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
@@ -97,9 +97,10 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
if(!storageTurf) //Blame subsystems for not allowing this to be in Initialize
if(!GLOB.hhStorageTurf)
var/datum/map_template/hilbertshotelstorage/storageTemp = new()
- var/datum/turf_reservation/storageReservation = SSmapping.RequestBlockReservation(3, 3)
- storageTemp.load(locate(storageReservation.bottom_left_coords[1], storageReservation.bottom_left_coords[2], storageReservation.bottom_left_coords[3]))
- GLOB.hhStorageTurf = locate(storageReservation.bottom_left_coords[1]+1, storageReservation.bottom_left_coords[2]+1, storageReservation.bottom_left_coords[3])
+ var/datum/turf_reservation/storageReservation = SSmapping.request_turf_block_reservation(1, 1, 1)
+ var/turf/storage_turf = storageReservation.bottom_left_turfs[1]
+ storageTemp.load(storage_turf)
+ GLOB.hhStorageTurf = storage_turf
else
storageTurf = GLOB.hhStorageTurf
if(tryActiveRoom(chosenRoomNumber, target))
@@ -112,20 +113,30 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
if(activeRooms["[roomNumber]"])
var/datum/turf_reservation/roomReservation = activeRooms["[roomNumber]"]
do_sparks(3, FALSE, get_turf(user))
- user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3]))
+ var/turf/room_bottom_left = roomReservation.bottom_left_turfs[1]
+ user.forceMove(locate(
+ room_bottom_left.x + hotelRoomTemp.landingZoneRelativeX,
+ room_bottom_left.y + hotelRoomTemp.landingZoneRelativeY,
+ room_bottom_left.z,
+ ))
return TRUE
return FALSE
/obj/item/hilbertshotel/proc/tryStoredRoom(roomNumber, mob/user)
if(storedRooms["[roomNumber]"])
- var/datum/turf_reservation/roomReservation = SSmapping.RequestBlockReservation(hotelRoomTemp.width, hotelRoomTemp.height)
- hotelRoomTempEmpty.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3]))
+ var/datum/turf_reservation/roomReservation = SSmapping.request_turf_block_reservation(hotelRoomTemp.width, hotelRoomTemp.height, 1)
+ var/turf/room_turf = roomReservation.bottom_left_turfs[1]
+ hotelRoomTempEmpty.load(room_turf)
var/turfNumber = 1
for(var/x in 0 to hotelRoomTemp.width-1)
for(var/y in 0 to hotelRoomTemp.height-1)
for(var/atom/movable/A in storedRooms["[roomNumber]"][turfNumber])
if(istype(A.loc, /obj/item/abstracthotelstorage))//Don't want to recall something thats been moved
- A.forceMove(locate(roomReservation.bottom_left_coords[1] + x, roomReservation.bottom_left_coords[2] + y, roomReservation.bottom_left_coords[3]))
+ A.forceMove(locate(
+ room_turf.x + x,
+ room_turf.y + y,
+ room_turf.z,
+ ))
turfNumber++
for(var/obj/item/abstracthotelstorage/S in storageTurf)
if((S.roomNumber == roomNumber) && (S.parentSphere == src))
@@ -134,23 +145,35 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
activeRooms["[roomNumber]"] = roomReservation
linkTurfs(roomReservation, roomNumber)
do_sparks(3, FALSE, get_turf(user))
- user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3]))
+ user.forceMove(locate(
+ room_turf.x + hotelRoomTemp.landingZoneRelativeX,
+ room_turf.y + hotelRoomTemp.landingZoneRelativeY,
+ room_turf.z,
+ ))
return TRUE
return FALSE
/obj/item/hilbertshotel/proc/sendToNewRoom(roomNumber, mob/user)
- var/datum/turf_reservation/roomReservation = SSmapping.RequestBlockReservation(hotelRoomTemp.width, hotelRoomTemp.height)
+ var/datum/turf_reservation/roomReservation = SSmapping.request_turf_block_reservation(hotelRoomTemp.width, hotelRoomTemp.height, 1)
+ var/turf/bottom_left = roomReservation.bottom_left_turfs[1]
+ var/datum/map_template/load_from = hotelRoomTemp
+
if(ruinSpawned && roomNumber == GLOB.hhMysteryRoomNumber)
- hotelRoomTempLore.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3]))
- else
- hotelRoomTemp.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3]))
+ load_from = hotelRoomTempLore
+
+ load_from.load(bottom_left)
activeRooms["[roomNumber]"] = roomReservation
linkTurfs(roomReservation, roomNumber)
do_sparks(3, FALSE, get_turf(user))
- user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3]))
+ user.forceMove(locate(
+ bottom_left.x + hotelRoomTemp.landingZoneRelativeX,
+ bottom_left.y + hotelRoomTemp.landingZoneRelativeY,
+ bottom_left.z,
+ ))
/obj/item/hilbertshotel/proc/linkTurfs(datum/turf_reservation/currentReservation, currentRoomnumber)
- var/area/misc/hilbertshotel/currentArea = get_area(locate(currentReservation.bottom_left_coords[1], currentReservation.bottom_left_coords[2], currentReservation.bottom_left_coords[3]))
+ var/turf/room_bottom_left = currentReservation.bottom_left_turfs[1]
+ var/area/misc/hilbertshotel/currentArea = get_area(room_bottom_left)
currentArea.name = "Hilbert's Hotel Room [currentRoomnumber]"
currentArea.parentSphere = src
currentArea.storageTurf = storageTurf
@@ -166,9 +189,10 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
if(activeRooms.len)
for(var/x in activeRooms)
var/datum/turf_reservation/room = activeRooms[x]
+ var/turf/room_bottom_left = room.bottom_left_turfs[1]
for(var/i in 0 to hotelRoomTemp.width-1)
for(var/j in 0 to hotelRoomTemp.height-1)
- for(var/atom/movable/A in locate(room.bottom_left_coords[1] + i, room.bottom_left_coords[2] + j, room.bottom_left_coords[3]))
+ for(var/atom/movable/A in locate(room_bottom_left.x + i, room_bottom_left.y + j, room_bottom_left.z))
if(ismob(A))
var/mob/M = A
if(M.mind)
@@ -250,7 +274,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
icon_state = "bluespace"
base_icon_state = "bluespace"
baseturfs = /turf/open/space/bluespace
- flags_1 = NOJAUNT
+ turf_flags = NOJAUNT
explosive_resistance = INFINITY
var/obj/item/hilbertshotel/parentSphere
@@ -414,7 +438,11 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
storeRoom()
/area/misc/hilbertshotel/proc/storeRoom()
- var/roomSize = (reservation.top_right_coords[1]-reservation.bottom_left_coords[1]+1)*(reservation.top_right_coords[2]-reservation.bottom_left_coords[2]+1)
+ var/turf/room_bottom_left = reservation.bottom_left_turfs[1]
+ var/turf/room_top_right = reservation.top_right_turfs[1]
+ var/roomSize = \
+ ((room_top_right.x - room_bottom_left.x) + 1) * \
+ ((room_top_right.y - room_bottom_left.y) + 1)
var/storage[roomSize]
var/turfNumber = 1
var/obj/item/abstracthotelstorage/storageObj = new(storageTurf)
@@ -424,7 +452,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
for(var/x in 0 to parentSphere.hotelRoomTemp.width-1)
for(var/y in 0 to parentSphere.hotelRoomTemp.height-1)
var/list/turfContents = list()
- for(var/atom/movable/A in locate(reservation.bottom_left_coords[1] + x, reservation.bottom_left_coords[2] + y, reservation.bottom_left_coords[3]))
+ for(var/atom/movable/A in locate(room_bottom_left.x + x, room_bottom_left.y + y, room_bottom_left.z))
if(ismob(A) && !isliving(A))
continue //Don't want to store ghosts
turfContents += A
diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm
index b1fd3571e51b..633c6aac387f 100644
--- a/code/modules/mapping/access_helpers.dm
+++ b/code/modules/mapping/access_helpers.dm
@@ -381,6 +381,11 @@
access_list += list(ACCESS_CARGO, ACCESS_MAINT_TUNNELS)
return access_list
+/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den/get_access()
+ var/list/access_list = ..()
+ access_list += ACCESS_BIT_DEN
+ return access_list
+
// -------------------- Syndicate access helpers
/obj/effect/mapping_helpers/airlock/access/any/syndicate
icon_state = "access_helper_syn"
diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm
index 1bb9115a9f58..bf7ebd2bbb43 100644
--- a/code/modules/mapping/map_template.dm
+++ b/code/modules/mapping/map_template.dm
@@ -109,7 +109,6 @@
// need these two below?
SSmachines.setup_template_powernets(cables)
SSair.setup_template_machinery(atmos_machines)
- SSshuttle.setup_shuttles(ports)
//calculate all turfs inside the border
var/list/template_and_bordering_turfs = block(
@@ -133,7 +132,15 @@
var/y = round((world.maxy - height) * 0.5) + 1
var/datum/space_level/level = SSmapping.add_new_zlevel(name, secret ? ZTRAITS_AWAY_SECRET : ZTRAITS_AWAY, contain_turfs = FALSE)
- var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top, new_z = TRUE)
+ var/datum/parsed_map/parsed = load_map(
+ file(mappath),
+ x,
+ y,
+ level.z_value,
+ no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS),
+ place_on_top = should_place_on_top,
+ new_z = TRUE,
+ )
var/list/bounds = parsed.bounds
if(!bounds)
return FALSE
@@ -153,7 +160,7 @@
if(!T || T.x+width > world.maxx || T.y+height > world.maxy)
return
var/datum/parsed_map/parsed = new(file(mappath))
- parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=TRUE, placeOnTop=should_place_on_top)
+ parsed.load(T.x, T.y, T.z, crop_map=TRUE, no_changeturf=TRUE, place_on_top=should_place_on_top)
/datum/map_template/proc/load(turf/T, centered = FALSE)
if(centered)
@@ -185,7 +192,14 @@
UNSETEMPTY(turf_blacklist)
parsed.turf_blacklist = turf_blacklist
- if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top))
+ if(!parsed.load(
+ T.x,
+ T.y,
+ T.z,
+ crop_map = TRUE,
+ no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS),
+ place_on_top = should_place_on_top,
+ ))
return
var/list/bounds = parsed.bounds
diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm
index 33d545f551a4..f85e50685b53 100644
--- a/code/modules/mapping/reader.dm
+++ b/code/modules/mapping/reader.dm
@@ -107,30 +107,79 @@
/// Pulls out model paths for DMM
var/static/regex/model_path = new(@'(\/[^\{]*?(?:\{.*?\})?)(?:,|$)', "g")
+ /// If we are currently loading this map
+ var/loading = FALSE
+
#ifdef TESTING
var/turfsSkipped = 0
#endif
+/datum/parsed_map/proc/copy()
+ // Avoids duped work just in case
+ build_cache()
+ var/datum/parsed_map/newfriend = new()
+ newfriend.original_path = original_path
+ newfriend.map_format = map_format
+ newfriend.key_len = key_len
+ newfriend.line_len = line_len
+ newfriend.grid_models = grid_models.Copy()
+ newfriend.gridSets = gridSets.Copy()
+ newfriend.modelCache = modelCache.Copy()
+ newfriend.parsed_bounds = parsed_bounds.Copy()
+ // Copy parsed bounds to reset to initial values
+ newfriend.bounds = parsed_bounds.Copy()
+ newfriend.turf_blacklist = turf_blacklist?.Copy()
+ return newfriend
+
//text trimming (both directions) helper macro
#define TRIM_TEXT(text) (trim_reduced(text))
-/// Shortcut function to parse a map and apply it to the world.
-///
-/// - `dmm_file`: A .dmm file to load (Required).
-/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional).
-/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional).
-/// - `measureOnly`: When true, no changes will be made to the world (Optional).
-/// - `no_changeturf`: When true, [/turf/proc/AfterChange] won't be called on loaded turfs
-/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional).
-/// - `placeOnTop`: Whether to use [/turf/proc/PlaceOnTop] rather than [/turf/proc/ChangeTurf] (Optional).
-/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num, new_z)
- var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly)
- if(parsed.bounds && !measureOnly)
- parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z = new_z)
- return parsed
+/**
+ * Helper and recommened way to load a map file
+ * - dmm_file: The path to the map file
+ * - x_offset: The x offset to load the map at
+ * - y_offset: The y offset to load the map at
+ * - z_offset: The z offset to load the map at
+ * - crop_map: If true, the map will be cropped to the world bounds
+ * - measure_only: If true, the map will not be loaded, but the bounds will be calculated
+ * - no_changeturf: If true, the map will not call /turf/AfterChange
+ * - x_lower: The minimum x coordinate to load
+ * - x_upper: The maximum x coordinate to load
+ * - y_lower: The minimum y coordinate to load
+ * - y_upper: The maximum y coordinate to load
+ * - z_lower: The minimum z coordinate to load
+ * - z_upper: The maximum z coordinate to load
+ * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
+ * - new_z: If true, a new z level will be created for the map
+ */
+/proc/load_map(
+ dmm_file,
+ x_offset = 0,
+ y_offset = 0,
+ z_offset = 0,
+ crop_map = FALSE,
+ measure_only = FALSE,
+ no_changeturf = FALSE,
+ x_lower = -INFINITY,
+ x_upper = INFINITY,
+ y_lower = -INFINITY,
+ y_upper = INFINITY,
+ z_lower = -INFINITY,
+ z_upper = INFINITY,
+ place_on_top = FALSE,
+ new_z = FALSE,
+)
+ if(!(dmm_file in GLOB.cached_maps))
+ GLOB.cached_maps[dmm_file] = new /datum/parsed_map(dmm_file)
+
+ var/datum/parsed_map/parsed_map = GLOB.cached_maps[dmm_file]
+ parsed_map = parsed_map.copy()
+ if(!measure_only && !isnull(parsed_map.bounds))
+ parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
+ return parsed_map
/// Parse a map, possibly cropping it.
-/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE)
+/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, z_lower = -INFINITY, z_upper=INFINITY, measureOnly=FALSE)
// This proc sleeps for like 6 seconds. why?
// Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder.
// Love ya :)
@@ -181,20 +230,26 @@
CRASH("Coords before model definition in DMM")
var/curr_x = text2num(regexOutput[3])
-
if(curr_x < x_lower || curr_x > x_upper)
continue
+ var/curr_y = text2num(regexOutput[4])
+ if(curr_y < y_lower || curr_y > y_upper)
+ continue
+
+ var/curr_z = text2num(regexOutput[5])
+ if(curr_z < z_lower || curr_z > z_upper)
+ continue
+
var/datum/grid_set/gridSet = new
gridSet.xcrd = curr_x
- //position of the currently processed square
- gridSet.ycrd = text2num(regexOutput[4])
- gridSet.zcrd = text2num(regexOutput[5])
+ gridSet.ycrd = curr_y
+ gridSet.zcrd = curr_z
bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x)
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd)
+ bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_y)
+ bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z)
var/list/gridLines = splittext(regexOutput[6], "\n")
gridSet.gridLines = gridLines
@@ -235,31 +290,49 @@
bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper)
bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper)
bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper)
+ bounds[MAP_MINZ] = clamp(bounds[MAP_MINZ], z_lower, z_upper)
+ bounds[MAP_MAXZ] = clamp(bounds[MAP_MAXZ], z_lower, z_upper)
parsed_bounds = src.bounds
src.key_len = key_len
src.line_len = line_len
-/// Load the parsed map into the world. See [/proc/load_map] for arguments.
-/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, whitelist = FALSE, new_z)
+/// Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive
+/datum/parsed_map/proc/filter_grid_sets_based_on_z_bounds(lower_z, upper_z)
+ var/list/filtered_sets = list()
+ for(var/datum/grid_set/grid_set as anything in gridSets)
+ if(grid_set.zcrd < lower_z)
+ continue
+ if(grid_set.zcrd > upper_z)
+ continue
+ filtered_sets += grid_set
+ return filtered_sets
+
+/// Load the parsed map into the world. You probably want [/proc/load_map]. Keep the signature the same.
+/datum/parsed_map/proc/load(x_offset = 0, y_offset = 0, z_offset = 0, crop_map = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, place_on_top = FALSE, new_z = FALSE)
//How I wish for RAII
Master.StartLoadingMap()
- . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z)
+ . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
Master.StopLoadingMap()
#define MAPLOADING_CHECK_TICK \
if(TICK_CHECK) { \
- SSatoms.map_loader_stop(); \
- stoplag(); \
- SSatoms.map_loader_begin(); \
+ if(loading) { \
+ SSatoms.map_loader_stop(REF(src)); \
+ stoplag(); \
+ SSatoms.map_loader_begin(REF(src)); \
+ } else { \
+ stoplag(); \
+ } \
}
// Do not call except via load() above.
-/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, new_z = FALSE)
+/datum/parsed_map/proc/_load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
PRIVATE_PROC(TRUE)
// Tell ss atoms that we're doing maploading
// We'll have to account for this in the following tick_checks so it doesn't overflow
- SSatoms.map_loader_begin()
+ loading = TRUE
+ SSatoms.map_loader_begin(REF(src))
// Loading used to be done in this proc
// We make the assumption that if the inner procs runtime, we WANT to do cleanup on them, but we should stil tell our parents we failed
@@ -267,12 +340,13 @@
var/sucessful = FALSE
switch(map_format)
if(MAP_TGM)
- sucessful = _tgm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z)
+ sucessful = _tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
else
- sucessful = _dmm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z)
+ sucessful = _dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
// And we are done lads, call it off
- SSatoms.map_loader_stop()
+ loading = FALSE
+ SSatoms.map_loader_stop(REF(src))
if(new_z)
for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ])
@@ -300,7 +374,7 @@
// In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets
// In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z
// You can think of dmm as storing maps in rows, whereas tgm stores them in columns
-/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z)
+/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
// setup
var/list/modelCache = build_cache(no_changeturf)
var/space_key = modelCache[SPACE_KEY]
@@ -321,12 +395,12 @@
var/relative_y = first_column.ycrd
var/highest_y = relative_y + y_relative_to_absolute
- if(!cropMap && highest_y > world.maxx)
+ if(!crop_map && highest_y > world.maxy)
if(new_z)
// Need to avoid improperly loaded area/turf_contents
- world.increaseMaxY(highest_y, max_zs_to_load = z_offset - 1)
+ world.increase_max_y(highest_y, map_load_z_cutoff = z_offset - 1)
else
- world.increaseMaxY(highest_y)
+ world.increase_max_y(highest_y)
expanded_y = TRUE
// Skip Y coords that are above the smallest of the three params
@@ -334,8 +408,7 @@
var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y)
// How many lines to skip because they'd be above the y cuttoff line
var/y_starting_skip = relative_y - y_skip_above
- highest_y += y_starting_skip
-
+ highest_y -= y_starting_skip
// Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go
var/line_count = length(first_column.gridLines)
@@ -344,7 +417,7 @@
// X setup
var/x_delta_with = x_upper
- if(cropMap)
+ if(crop_map)
// Take our smaller crop threshold yes?
x_delta_with = min(x_delta_with, world.maxx)
@@ -358,33 +431,51 @@
// If our relative x is greater then X upper, well then we've gotta limit our expansion
var/delta = max(final_x - x_delta_with, 0)
final_x -= delta
- if(final_x > world.maxx && !cropMap)
+ if(final_x > world.maxx && !crop_map)
if(new_z)
// Need to avoid improperly loaded area/turf_contents
- world.increaseMaxX(final_x, max_zs_to_load = z_offset - 1)
+ world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1)
else
- world.increaseMaxX(final_x)
+ world.increase_max_x(final_x)
expanded_x = TRUE
var/lowest_x = max(x_lower, 1 - x_relative_to_absolute)
+ // Amount we offset the grid zcrd to get the true zcrd
+ var/grid_z_offset = z_offset - 1
+ var/z_upper_set = z_upper < INFINITY
+ var/z_lower_set = z_lower > -INFINITY
+
// We make the assumption that the last block of turfs will have the highest embedded z in it
- var/highest_z = last_column.zcrd + z_offset - 1 // Lets not just make a new z level each time we increment maxz
+ // true max zcrd
+ var/map_bounds_z_max = last_column.zcrd
+ var/z_upper_parsed = map_bounds_z_max + z_offset - 1
+ if(z_upper_set)
+ z_upper_parsed -= map_bounds_z_max - z_upper
+ if(z_lower_set)
+ var/offset_amount = z_lower - 1
+ z_upper_parsed -= offset_amount
+ grid_z_offset -= offset_amount
+
+ var/list/target_grid_sets = gridSets
+ if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want
+ target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper)
+
var/z_threshold = world.maxz
- if(highest_z > z_threshold && cropMap)
- for(var/i in z_threshold + 1 to highest_z) //create a new z_level if needed
+ if(z_upper_parsed > z_threshold && crop_map)
+ for(var/i in z_threshold + 1 to z_upper_parsed) //create a new z_level if needed
world.incrementMaxZ()
if(!no_changeturf)
WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called")
- for(var/datum/grid_set/gset as anything in gridSets)
+ for(var/datum/grid_set/gset as anything in target_grid_sets)
var/true_xcrd = gset.xcrd + x_relative_to_absolute
// any cutoff of x means we just shouldn't iterate this gridset
if(final_x < true_xcrd || lowest_x > gset.xcrd)
continue
- var/zcrd = gset.zcrd + z_offset - 1
+ var/zcrd = gset.zcrd + grid_z_offset
// If we're using changeturf, we disable it if we load into a z level we JUST created
var/no_afterchange = no_changeturf || zcrd > z_threshold
@@ -409,9 +500,9 @@
var/list/cache = modelCache[gset.gridLines[i]]
if(!cache)
- SSatoms.map_loader_stop()
+ SSatoms.map_loader_stop(REF(src))
CRASH("Undefined model key in DMM: [gset.gridLines[i]]")
- build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, placeOnTop, new_z)
+ build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z)
// only bother with bounds that actually exist
if(!first_found)
@@ -435,7 +526,7 @@
/// Stanrdard loading, not used in production
/// Doesn't take advantage of any tgm optimizations, which makes it slower but also more general
/// Use this if for some reason your map format is messy
-/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z)
+/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
// setup
var/list/modelCache = build_cache(no_changeturf)
var/space_key = modelCache[SPACE_KEY]
@@ -446,23 +537,46 @@
var/y_relative_to_absolute = y_offset - 1
var/x_relative_to_absolute = x_offset - 1
var/line_len = src.line_len
- for(var/datum/grid_set/gset as anything in gridSets)
+
+ // Amount we offset the grid zcrd to get the true zcrd
+ var/grid_z_offset = z_offset - 1
+ var/z_upper_set = z_upper < INFINITY
+ var/z_lower_set = z_lower > -INFINITY
+
+ // we now need to find the maximum z, fun!
+ var/map_bounds_z_max = 1
+ for(var/datum/grid_set/grid_set as anything in gridSets)
+ map_bounds_z_max = max(map_bounds_z_max, grid_set.zcrd)
+
+ var/z_upper_parsed = map_bounds_z_max + z_offset - 1
+ if(z_upper_set)
+ z_upper_parsed -= map_bounds_z_max - z_upper
+ if(z_lower_set)
+ var/offset_amount = z_lower - 1
+ z_upper_parsed -= offset_amount
+ grid_z_offset -= offset_amount
+
+ var/list/target_grid_sets = gridSets
+ if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want
+ target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper)
+
+ for(var/datum/grid_set/gset as anything in target_grid_sets)
var/relative_x = gset.xcrd
var/relative_y = gset.ycrd
var/true_xcrd = relative_x + x_relative_to_absolute
var/ycrd = relative_y + y_relative_to_absolute
- var/zcrd = gset.zcrd + z_offset - 1
- if(!cropMap && ycrd > world.maxy)
+ var/zcrd = gset.zcrd + grid_z_offset
+ if(!crop_map && ycrd > world.maxy)
if(new_z)
// Need to avoid improperly loaded area/turf_contents
- world.increaseMaxY(ycrd, max_zs_to_load = z_offset - 1)
+ world.increase_max_y(ycrd, map_load_z_cutoff = z_offset - 1)
else
- world.increaseMaxY(ycrd)
+ world.increase_max_y(ycrd)
expanded_y = TRUE
var/zexpansion = zcrd > world.maxz
var/no_afterchange = no_changeturf
if(zexpansion)
- if(cropMap)
+ if(crop_map)
continue
else
while (zcrd > world.maxz) //create a new z_level if needed
@@ -499,7 +613,7 @@
var/x_step_count = ROUND_UP(x_target / key_len)
var/final_x = relative_x + (x_step_count - 1)
var/x_delta_with = x_upper
- if(cropMap)
+ if(crop_map)
// Take our smaller crop threshold yes?
x_delta_with = min(x_delta_with, world.maxx)
if(final_x > x_delta_with)
@@ -508,12 +622,12 @@
x_step_count -= delta
final_x -= delta
x_target = x_step_count * key_len
- if(final_x > world.maxx && !cropMap)
+ if(final_x > world.maxx && !crop_map)
if(new_z)
// Need to avoid improperly loaded area/turf_contents
- world.increaseMaxX(final_x, max_zs_to_load = z_offset - 1)
+ world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1)
else
- world.increaseMaxX(final_x)
+ world.increase_max_x(final_x)
expanded_x = TRUE
// We're gonna track the first and last pairs of coords we find
@@ -542,9 +656,9 @@
continue
var/list/cache = modelCache[model_key]
if(!cache)
- SSatoms.map_loader_stop()
+ SSatoms.map_loader_stop(REF(src))
CRASH("Undefined model key in DMM: [model_key]")
- build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop, new_z)
+ build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z)
// only bother with bounds that actually exist
if(!first_found)
@@ -956,6 +1070,7 @@ GLOBAL_LIST_EMPTY(map_model_default)
/datum/parsed_map/Destroy()
..()
+ SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here
if(turf_blacklist)
turf_blacklist.Cut()
parsed_bounds.Cut()
diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm
index 4dc57701d178..a7b9480a34e4 100644
--- a/code/modules/mapping/ruins.dm
+++ b/code/modules/mapping/ruins.dm
@@ -51,10 +51,10 @@
return central_turf
/datum/map_template/ruin/proc/place_on_isolated_level(z)
- var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(width, height, z) //Make the new level creation work with different traits.
+ var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(width, height, 1, z) //Make the new level creation work with different traits.
if(!reservation)
return
- var/turf/placement = locate(reservation.bottom_left_coords[1],reservation.bottom_left_coords[2],reservation.bottom_left_coords[3])
+ var/turf/placement = reservation.bottom_left_turfs[1]
load(placement)
loaded++
for(var/turf/T in get_affected_turfs(placement))
@@ -133,7 +133,7 @@
for(var/v in current_pick.always_spawn_with)
if(current_pick.always_spawn_with[v] == PLACE_BELOW)
var/turf/T = locate(1,1,target_z)
- if(!SSmapping.get_turf_below(T))
+ if(!GET_TURF_BELOW(T))
if(forced_z)
continue outer
else
@@ -183,7 +183,7 @@
if(PLACE_DEFAULT)
forced_ruins[linked] = -1
if(PLACE_BELOW)
- forced_ruins[linked] = SSmapping.get_turf_below(placed_turf)
+ forced_ruins[linked] = GET_TURF_BELOW(placed_turf)
if(PLACE_ISOLATED)
forced_ruins[linked] = SSmapping.get_isolated_ruin_z()
diff --git a/code/modules/mapping/space_management/multiz_helpers.dm b/code/modules/mapping/space_management/multiz_helpers.dm
index 39f662deaa4f..b0e2ff7fa065 100644
--- a/code/modules/mapping/space_management/multiz_helpers.dm
+++ b/code/modules/mapping/space_management/multiz_helpers.dm
@@ -1,10 +1,11 @@
/proc/get_step_multiz(ref, dir)
+ var/turf/us = get_turf(ref)
if(dir & UP)
dir &= ~UP
- return get_step(SSmapping.get_turf_above(get_turf(ref)), dir)
+ return get_step(GET_TURF_ABOVE(us), dir)
if(dir & DOWN)
dir &= ~DOWN
- return get_step(SSmapping.get_turf_below(get_turf(ref)), dir)
+ return get_step(GET_TURF_BELOW(us), dir)
return get_step(ref, dir)
/proc/get_dir_multiz(turf/us, turf/them)
@@ -15,37 +16,31 @@
if(us.z == them.z)
return get_dir(us, them)
else
- var/turf/T = us.above()
+ var/turf/T = GET_TURF_ABOVE(us)
var/dir = NONE
if(T && (T.z == them.z))
dir = UP
else
- T = us.below()
+ T = GET_TURF_BELOW(us)
if(T && (T.z == them.z))
dir = DOWN
else
return get_dir(us, them)
return (dir | get_dir(us, them))
-/turf/proc/above()
- return get_step_multiz(src, UP)
-
-/turf/proc/below()
- return get_step_multiz(src, DOWN)
-
/proc/get_lowest_turf(atom/ref)
var/turf/us = get_turf(ref)
- var/next = SSmapping.get_turf_below(us)
+ var/turf/next = GET_TURF_BELOW(us)
while(next)
us = next
- next = SSmapping.get_turf_below(us)
+ next = GET_TURF_BELOW(us)
return us
// I wish this was lisp
/proc/get_highest_turf(atom/ref)
var/turf/us = get_turf(ref)
- var/next = SSmapping.get_turf_above(us)
+ var/turf/next = GET_TURF_ABOVE(us)
while(next)
us = next
- next = SSmapping.get_turf_above(us)
+ next = GET_TURF_ABOVE(us)
return us
diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm
index fff31893d0e7..cd59060c82d0 100644
--- a/code/modules/mapping/space_management/space_reservation.dm
+++ b/code/modules/mapping/space_management/space_reservation.dm
@@ -1,16 +1,33 @@
//Yes, they can only be rectangular.
//Yes, I'm sorry.
/datum/turf_reservation
+ /// All turfs that we've reserved
var/list/reserved_turfs = list()
- ///Turfs around the reservation for cordoning
+
+ /// Turfs around the reservation for cordoning
var/list/cordon_turfs = list()
- ///Area of turfs next to the cordon to fill with pre_cordon_area's
+
+ /// Area of turfs next to the cordon to fill with pre_cordon_area's
var/list/pre_cordon_turfs = list()
+
+ /// The width of the reservation
var/width = 0
+
+ /// The height of the reservation
var/height = 0
- var/bottom_left_coords[3]
- var/top_right_coords[3]
+
+ /// The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up
+ var/z_size = 0
+
+ /// List of the bottom left turfs. Indexed by what their z index for this reservation is
+ var/list/bottom_left_turfs = list()
+
+ /// List of the top right turfs. Indexed by what their z index for this reservation is
+ var/list/top_right_turfs = list()
+
+ /// The turf type the reservation is initially made with
var/turf_type = /turf/open/space
+
///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
var/pre_cordon_distance = 0
@@ -19,6 +36,9 @@
pre_cordon_distance = 7
/datum/turf_reservation/proc/Release()
+ bottom_left_turfs.Cut()
+ top_right_turfs.Cut()
+
var/list/reserved_copy = reserved_turfs.Copy()
SSmapping.used_turfs -= reserved_turfs
reserved_turfs = list()
@@ -36,20 +56,20 @@
INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs)
/// Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated
-/datum/turf_reservation/proc/calculate_cordon_turfs(turf/BL, turf/TR)
- if(BL.x < 2 || BL.y < 2 || TR.x > (world.maxx - 2) || TR.y > (world.maxy - 2))
+/datum/turf_reservation/proc/calculate_cordon_turfs(turf/bottom_left, turf/top_right)
+ if(bottom_left.x < 2 || bottom_left.y < 2 || top_right.x > (world.maxx - 2) || top_right.y > (world.maxy - 2))
return FALSE // no space for a cordon here
- var/list/possible_turfs = CORNER_OUTLINE(BL, width, height)
+ var/list/possible_turfs = CORNER_OUTLINE(bottom_left, width, height)
+ // if they're our cordon turfs, accept them
+ possible_turfs -= cordon_turfs
for(var/turf/cordon_turf as anything in possible_turfs)
- if(!(cordon_turf.flags_1 & UNUSED_RESERVATION_TURF))
+ if(!(cordon_turf.turf_flags & UNUSED_RESERVATION_TURF))
return FALSE
- cordon_turfs = possible_turfs
-
- pre_cordon_turfs.Cut()
+ cordon_turfs |= possible_turfs
if(pre_cordon_distance)
- var/turf/offset_turf = locate(BL.x + pre_cordon_distance, BL.y + pre_cordon_distance, BL.z)
+ var/turf/offset_turf = locate(bottom_left.x + pre_cordon_distance, bottom_left.y + pre_cordon_distance, bottom_left.z)
var/list/to_add = CORNER_OUTLINE(offset_turf, width - pre_cordon_distance * 2, height - pre_cordon_distance * 2) //we step-by-stop move inwards from the outer cordon
for(var/turf/turf_being_added as anything in to_add)
pre_cordon_turfs |= turf_being_added //add one by one so we can filter out duplicates
@@ -64,10 +84,11 @@
old_area.turfs_to_uncontain += cordon_turf
cordon_area.contained_turfs += cordon_turf
cordon_area.contents += cordon_turf
+ // Its no longer unused, but its also not "used"
+ cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF
cordon_turf.ChangeTurf(/turf/cordon, /turf/cordon)
-
- cordon_turf.flags_1 &= ~UNUSED_RESERVATION_TURF
SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf
+ // still gets linked to us though
SSmapping.used_turfs[cordon_turf] = src
//swap the area with the pre-cordoning area
@@ -106,7 +127,9 @@
dump_in_space(enterer)
-/datum/turf_reservation/proc/Reserve(width, height, zlevel)
+
+/// Internal proc which handles reserving the area for the reservation.
+/datum/turf_reservation/proc/_reserve_area(width, height, zlevel)
src.width = width
src.height = height
if(width > world.maxx || height > world.maxy || width < 1 || height < 1)
@@ -119,12 +142,12 @@
for(var/i in avail)
CHECK_TICK
BL = i
- if(!(BL.flags_1 & UNUSED_RESERVATION_TURF))
+ if(!(BL.turf_flags & UNUSED_RESERVATION_TURF))
continue
if(BL.x + width > world.maxx || BL.y + height > world.maxy)
continue
TR = locate(BL.x + width - 1, BL.y + height - 1, BL.z)
- if(!(TR.flags_1 & UNUSED_RESERVATION_TURF))
+ if(!(TR.turf_flags & UNUSED_RESERVATION_TURF))
continue
final = block(BL, TR)
if(!final)
@@ -132,7 +155,7 @@
passing = TRUE
for(var/I in final)
var/turf/checking = I
- if(!(checking.flags_1 & UNUSED_RESERVATION_TURF))
+ if(!(checking.turf_flags & UNUSED_RESERVATION_TURF))
passing = FALSE
break
if(passing) // found a potentially valid area, now try to calculate its cordon
@@ -142,18 +165,94 @@
break
if(!passing || !istype(BL) || !istype(TR))
return FALSE
- bottom_left_coords = list(BL.x, BL.y, BL.z)
- top_right_coords = list(TR.x, TR.y, TR.z)
for(var/i in final)
var/turf/T = i
reserved_turfs |= T
- T.flags_1 &= ~UNUSED_RESERVATION_TURF
SSmapping.unused_turfs["[T.z]"] -= T
SSmapping.used_turfs[T] = src
+ T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF
T.ChangeTurf(turf_type, turf_type)
+
+ bottom_left_turfs += BL
+ top_right_turfs += TR
+ return TRUE
+
+/datum/turf_reservation/proc/reserve(width, height, z_size, z_reservation)
+ src.z_size = z_size
+ var/failed_reservation = FALSE
+ for(var/_ in 1 to z_size)
+ if(!_reserve_area(width, height, z_reservation))
+ failed_reservation = TRUE
+ break
+
+ if(failed_reservation)
+ Release()
+ return FALSE
+
generate_cordon()
return TRUE
+/// Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.
+/datum/turf_reservation/proc/calculate_turf_bounds_information(turf/target)
+ for(var/z_idx in 1 to z_size)
+ var/turf/bottom_left = bottom_left_turfs[z_idx]
+ var/turf/top_right = top_right_turfs[z_idx]
+ var/bl_x = bottom_left.x
+ var/bl_y = bottom_left.y
+ var/tr_x = top_right.x
+ var/tr_y = top_right.y
+
+ if(target.x < bl_x)
+ continue
+
+ if(target.y < bl_y)
+ continue
+
+ if(target.x > tr_x)
+ continue
+
+ if(target.y > tr_y)
+ continue
+
+ var/list/return_information = list()
+ return_information["z_idx"] = z_idx
+ return_information["offset_x"] = target.x - bl_x
+ return_information["offset_y"] = target.y - bl_y
+ return return_information
+ return null
+
+/// Gets the turf below the given target. Returns null if there is no turf below the target
+/datum/turf_reservation/proc/get_turf_below(turf/target)
+ var/list/bounds_info = calculate_turf_bounds_information(target)
+ if(isnull(bounds_info))
+ return null
+
+ var/z_idx = bounds_info["z_idx"]
+ // check what z level, if its the max, then there is no turf below
+ if(z_idx == z_size)
+ return null
+
+ var/offset_x = bounds_info["offset_x"]
+ var/offset_y = bounds_info["offset_y"]
+ var/turf/bottom_left = bottom_left_turfs[z_idx + 1]
+ return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z)
+
+/// Gets the turf above the given target. Returns null if there is no turf above the target
+/datum/turf_reservation/proc/get_turf_above(turf/target)
+ var/list/bounds_info = calculate_turf_bounds_information(target)
+ if(isnull(bounds_info))
+ return null
+
+ var/z_idx = bounds_info["z_idx"]
+ // check what z level, if its the min, then there is no turf above
+ if(z_idx == 1)
+ return null
+
+ var/offset_x = bounds_info["offset_x"]
+ var/offset_y = bounds_info["offset_y"]
+ var/turf/bottom_left = bottom_left_turfs[z_idx - 1]
+ return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z)
+
/datum/turf_reservation/New()
LAZYADD(SSmapping.turf_reservations, src)
diff --git a/code/modules/mapping/space_management/traits.dm b/code/modules/mapping/space_management/traits.dm
index b68e3f77b8a7..9841f85ebd7e 100644
--- a/code/modules/mapping/space_management/traits.dm
+++ b/code/modules/mapping/space_management/traits.dm
@@ -49,25 +49,6 @@
final_return += level.z_value
return final_return
-/// Attempt to get the turf below the provided one according to Z traits
-/datum/controller/subsystem/mapping/proc/get_turf_below(turf/T)
- if (!T || !length(multiz_levels))
- return
- var/offset = multiz_levels[T.z]["[DOWN]"]
- if (!offset)
- return
- return locate(T.x, T.y, T.z - offset)
-
-/// Attempt to get the turf above the provided one according to Z traits
-/datum/controller/subsystem/mapping/proc/get_turf_above(turf/T)
- if (!T || !length(multiz_levels))
- return
-
- var/offset = multiz_levels[T.z]["[UP]"]
- if (!offset)
- return
- return locate(T.x, T.y, T.z + offset)
-
/// Prefer not to use this one too often
/datum/controller/subsystem/mapping/proc/get_station_center()
var/station_z = levels_by_trait(ZTRAIT_STATION)[1]
diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm
index f1e141618ba9..9ba63090bcb0 100644
--- a/code/modules/mob/dead/new_player/login.dm
+++ b/code/modules/mob/dead/new_player/login.dm
@@ -42,7 +42,10 @@
add_sight(SEE_TURFS)
- client.playtitlemusic()
+ if(!client.media)
+ client.media = new /datum/media_manager(client)
+ client.media.open()
+ client.media.update_music()
var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/lobby)
asset_datum.send(client)
@@ -66,3 +69,5 @@
to_chat(src, "Please set up your character and select \"Ready\". The game will start [tl > 0 ? "in about [DisplayTimeText(tl)]" : "soon"].")
+ spawn(4 SECONDS)
+ client.playtitlemusic()
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index dc5eefc24cbd..21b337521ff5 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -326,6 +326,8 @@
return
if(!T)
T = get_turf(src)
+ if(isclosedturf(T) || (isgroundlessturf(T) && !GET_TURF_BELOW(T)))
+ return
var/datum/reagent/blood_type = get_blood_id()
var/list/temp_blood_DNA
diff --git a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm
index 61384acaec42..4ca4f12b977e 100644
--- a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm
@@ -67,7 +67,7 @@
if(handcuffed)
var/mutable_appearance/handcuff_overlay = mutable_appearance(dmi_file, cuff_icon, -HANDCUFF_LAYER)
- if(handcuffed.blocks_emissive)
+ if(handcuffed.blocks_emissive != EMISSIVE_BLOCK_NONE)
handcuff_overlay += emissive_blocker(handcuff_overlay.icon, handcuff_overlay.icon_state, src, alpha = handcuff_overlay.alpha)
overlays_standing[HANDCUFF_LAYER] = handcuff_overlay
@@ -86,7 +86,7 @@
if(!itm_state)
itm_state = l_hand.icon_state
var/mutable_appearance/l_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_l", -HANDS_LAYER)
- if(l_hand.blocks_emissive)
+ if(l_hand.blocks_emissive != EMISSIVE_BLOCK_NONE)
l_hand_item.overlays += emissive_blocker(l_hand_item.icon, l_hand_item.icon_state, src, alpha = l_hand_item.alpha)
hands += l_hand_item
@@ -96,7 +96,7 @@
if(!itm_state)
itm_state = r_hand.icon_state
var/mutable_appearance/r_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER)
- if(r_hand.blocks_emissive)
+ if(r_hand.blocks_emissive != EMISSIVE_BLOCK_NONE)
r_hand_item.overlays += emissive_blocker(r_hand_item.icon, r_hand_item.icon_state, src, alpha = r_hand_item.alpha)
hands += r_hand_item
diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm
index b5ac4c271890..32490dbd6f5f 100644
--- a/code/modules/mob/living/carbon/carbon_update_icons.dm
+++ b/code/modules/mob/living/carbon/carbon_update_icons.dm
@@ -412,7 +412,7 @@
remove_overlay(HANDCUFF_LAYER)
if(handcuffed)
var/mutable_appearance/handcuff_overlay = mutable_appearance('icons/mob/simple/mob.dmi', "handcuff1", -HANDCUFF_LAYER)
- if(handcuffed.blocks_emissive)
+ if(handcuffed.blocks_emissive != EMISSIVE_BLOCK_NONE)
handcuff_overlay.overlays += emissive_blocker(handcuff_overlay.icon, handcuff_overlay.icon_state, src, alpha = handcuff_overlay.alpha)
overlays_standing[HANDCUFF_LAYER] = handcuff_overlay
@@ -453,7 +453,7 @@
RETURN_TYPE(/list)
. = list()
- if(blocks_emissive)
+ if(blocks_emissive != EMISSIVE_BLOCK_NONE)
. += emissive_blocker(standing.icon, standing.icon_state, src, alpha = standing.alpha)
SEND_SIGNAL(src, COMSIG_ITEM_GET_WORN_OVERLAYS, ., standing, isinhands, icon_file)
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 337ab1664201..00ea009c117a 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -875,6 +875,8 @@ GLOBAL_LIST_EMPTY(features_by_species)
else
accessory_overlay.color = forced_colour
standing += accessory_overlay
+ if(accessory.is_emissive)
+ standing += emissive_appearance_copy(accessory_overlay, source)
if(length(accessory.body_slots) || length(accessory.external_slots) || istype(source, /mob/living/carbon/human/dummy/extra_tall))
standing += return_accessory_layer(layer, accessory, source, accessory_overlay.color)
@@ -890,6 +892,8 @@ GLOBAL_LIST_EMPTY(features_by_species)
inner_accessory_overlay = center_image(inner_accessory_overlay, accessory.dimension_x, accessory.dimension_y)
standing += inner_accessory_overlay
+ if(accessory.is_emissive)
+ standing += emissive_appearance_copy(accessory_overlay, source)
source.overlays_standing[layer] = standing.Copy()
standing = list()
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index e1abf090d9a8..a5f73b1c1401 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -39,6 +39,7 @@
species_language_holder = /datum/language_holder/lizard
digitigrade_customization = DIGITIGRADE_OPTIONAL
+ mutanteyes = /obj/item/organ/internal/eyes/lizard
// Lizards are coldblooded and can stand a greater temperature range than humans
bodytemp_heat_damage_limit = (BODYTEMP_HEAT_DAMAGE_LIMIT + 20) // This puts lizards 10 above lavaland max heat for ash lizards.
bodytemp_cold_damage_limit = (BODYTEMP_COLD_DAMAGE_LIMIT - 10)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 471dec0a9d2d..5b7ee004c039 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -224,3 +224,6 @@
var/datum/stamina_container/stamina
/// What our current gravity state is. Used to avoid duplicate animates and such
var/gravity_state = null
+
+ /// Whether this mob can be mutated into a cybercop via quantum server get_valid_domain_targets(). Specifically dodges megafauna
+ var/can_be_cybercop = TRUE
diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm
index 984f1af30ba8..97c461b85d40 100644
--- a/code/modules/mob/living/silicon/ai/multicam.dm
+++ b/code/modules/mob/living/silicon/ai/multicam.dm
@@ -86,7 +86,7 @@
name = ""
icon = 'icons/misc/pic_in_pic.dmi'
icon_state = "room_background"
- flags_1 = NOJAUNT
+ turf_flags = NOJAUNT
/turf/open/ai_visible/Initialize(mapload)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 04d7ac560235..baeb6123d251 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -38,6 +38,7 @@
/mob/living/simple_animal/hostile/retaliate/goat/Initialize(mapload)
AddComponent(/datum/component/udder)
+ AddElement(/datum/element/cliff_walking) //we walk the cliff
. = ..()
/mob/living/simple_animal/hostile/retaliate/goat/Life(seconds_per_tick = SSMOBS_DT, times_fired)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
index 0cf2d1ef787c..ece63945e320 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
@@ -74,7 +74,10 @@
return ..()
/mob/living/simple_animal/hostile/megafauna/death(gibbed, list/force_grant)
- if(health > 0)
+ if(gibbed) // in case they've been force dusted
+ return ..()
+
+ if(health > 0) // prevents instakills
return
var/datum/status_effect/crusher_damage/crusher_dmg = has_status_effect(/datum/status_effect/crusher_damage)
///Whether we killed the megafauna with primarily crusher damage or not
@@ -99,14 +102,17 @@
/mob/living/simple_animal/hostile/megafauna/gib()
if(health > 0)
return
- else
- ..()
+
+ return ..()
/mob/living/simple_animal/hostile/megafauna/dust(just_ash, drop_items, force)
if(!force && health > 0)
return
- else
- ..()
+
+ crusher_loot.Cut()
+ loot.Cut()
+
+ return ..()
/mob/living/simple_animal/hostile/megafauna/AttackingTarget()
if(recovery_time >= world.time)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index b9c0dedcfa52..7d2f9226d5a3 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -273,7 +273,7 @@
if(!isclosedturf(T) && !islava(T))
var/lava_turf = /turf/open/lava/smooth
var/reset_turf = T.type
- T.ChangeTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR)
+ T.TerraformTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR)
addtimer(CALLBACK(T, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE)
/obj/effect/temp_visual/drakewall
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
index ced8c60af6ed..0bdf2f18bb07 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
@@ -267,6 +267,10 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/megafauna/wendigo/death(gibbed, list/force_grant)
if(health > 0)
return
+
+ if(!true_spawn)
+ return ..()
+
var/obj/effect/portal/permanent/one_way/exit = new /obj/effect/portal/permanent/one_way(starting)
exit.id = "wendigo arena exit"
exit.add_atom_colour(COLOR_RED_LIGHT, ADMIN_COLOUR_PRIORITY)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 475510ffbb69..09e3fe1f2546 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -450,19 +450,21 @@
drop_loot()
if(dextrous)
drop_all_held_items()
+
if(del_on_death)
..()
//Prevent infinite loops if the mob Destroy() is overridden in such
//a manner as to cause a call to death() again //Pain
del_on_death = FALSE
qdel(src)
- else
- health = 0
- icon_state = icon_dead
- if(flip_on_death)
- transform = transform.Turn(180)
- set_density(FALSE)
- ..()
+ return
+
+ health = 0
+ icon_state = icon_dead
+ if(flip_on_death)
+ transform = transform.Turn(180)
+ //ADD_TRAIT(src, TRAIT_UNDENSE, BASIC_MOB_DEATH_TRAIT)
+ return ..()
/mob/living/simple_animal/proc/CanAttack(atom/the_target)
if(see_invisible < the_target.invisibility)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index f60a343198c7..71e675ee5b97 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -53,6 +53,10 @@
if(mock_client)
mock_client.mob = null
+ if(SSparticle_weather.running_weather)
+ if(src in SSparticle_weather.running_weather.messaged_mobs)
+ SSparticle_weather.running_weather.messaged_mobs -= src
+
return ..()
/mob/New()
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index e84ab2604cb0..333eab324d52 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -521,7 +521,7 @@
set category = "IC"
var/turf/current_turf = get_turf(src)
- var/turf/above_turf = SSmapping.get_turf_above(current_turf)
+ var/turf/above_turf = GET_TURF_ABOVE(current_turf)
var/ventcrawling_flag = HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING) ? ZMOVE_VENTCRAWLING : 0
if(!above_turf)
@@ -548,7 +548,7 @@
set category = "IC"
var/turf/current_turf = get_turf(src)
- var/turf/below_turf = SSmapping.get_turf_below(current_turf)
+ var/turf/below_turf = GET_TURF_BELOW(current_turf)
if(!below_turf)
to_chat(src, span_warning("There's nowhere to go in that direction!"))
return
diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm
index 8b72669769fb..0548f0ee937b 100644
--- a/code/modules/mob_spawn/mob_spawn.dm
+++ b/code/modules/mob_spawn/mob_spawn.dm
@@ -32,6 +32,8 @@
var/facial_haircolor
///sets a human's skin tone
var/skin_tone
+ /// Weakref to the mob this spawner created - just if you needed to do something with it.
+ var/datum/weakref/spawned_mob_ref
/obj/effect/mob_spawn/Initialize(mapload)
. = ..()
@@ -44,6 +46,7 @@
name_mob(spawned_mob, newname)
special(spawned_mob, mob_possessor)
equip(spawned_mob)
+ spawned_mob_ref = WEAKREF(spawned_mob)
return spawned_mob
/obj/effect/mob_spawn/proc/special(mob/living/spawned_mob)
@@ -223,6 +226,7 @@
if(isnull(created)) // If we explicitly return FALSE instead of just not returning a mob, we don't want to spam the admins
CRASH("An instance of [type] didn't return anything when creating a mob, this might be broken!")
+ SEND_SIGNAL(src, COMSIG_GHOSTROLE_SPAWNED, created)
check_uses() // Now we check if the spawner should delete itself or not
/obj/effect/mob_spawn/ghost_role/create(mob/mob_possessor, newname)
diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm
index 64fa163a5e46..3dd8df819a57 100644
--- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm
+++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm
@@ -253,6 +253,14 @@
/datum/computer_file/program/skill_tracker,
)
+/obj/item/modular_computer/pda/bitrunner
+ name = "bit runner PDA"
+ greyscale_colors = "#D6B328#6BC906"
+ starting_programs = list(
+ /datum/computer_file/program/arcade,
+ /datum/computer_file/program/skill_tracker,
+ )
+
/**
* Service
*/
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index 17720fea0050..2003fe122493 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -187,13 +187,13 @@
var/list/turfs = list()
var/list/mobs = list()
var/blueprints = FALSE
- var/clone_area = SSmapping.RequestBlockReservation(size_x * 2 + 1, size_y * 2 + 1)
+ var/clone_area = SSmapping.request_turf_block_reservation(size_x * 2 + 1, size_y * 2 + 1, 1)
var/width = size_x * 2
var/height = size_y * 2
for(var/turf/placeholder as anything in CORNER_BLOCK_OFFSET(target_turf, width, height, -size_x, -size_y))
while(istype(placeholder, /turf/open/openspace)) //Multi-z photography
- placeholder = SSmapping.get_turf_below(placeholder)
+ placeholder = GET_TURF_BELOW(placeholder)
if(!placeholder)
break
diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm
index 6b48e29da52e..d928164ff014 100644
--- a/code/modules/photography/camera/camera_image_capturing.dm
+++ b/code/modules/photography/camera/camera_image_capturing.dm
@@ -16,13 +16,14 @@
var/wipe_atoms = FALSE
if(istype(clone_area) && total_x == clone_area.width && total_y == clone_area.height && size_x >= 0 && size_y > 0)
- var/cloned_center_x = round(clone_area.bottom_left_coords[1] + ((total_x - 1) / 2))
- var/cloned_center_y = round(clone_area.bottom_left_coords[2] + ((total_y - 1) / 2))
+ var/turf/bottom_left = clone_area.bottom_left_turfs[1]
+ var/cloned_center_x = round(bottom_left.x + ((total_x - 1) / 2))
+ var/cloned_center_y = round(bottom_left.y + ((total_y - 1) / 2))
for(var/t in turfs)
var/turf/T = t
var/offset_x = T.x - center.x
var/offset_y = T.y - center.y
- var/turf/newT = locate(cloned_center_x + offset_x, cloned_center_y + offset_y, clone_area.bottom_left_coords[3])
+ var/turf/newT = locate(cloned_center_x + offset_x, cloned_center_y + offset_y, bottom_left.z)
if(!(newT in clone_area.reserved_turfs)) //sanity check so we don't overwrite other areas somehow
continue
atoms += new /obj/effect/appearance_clone(newT, T)
@@ -34,7 +35,7 @@
atoms += new /obj/effect/appearance_clone(newT, A)
skip_normal = TRUE
wipe_atoms = TRUE
- center = locate(cloned_center_x, cloned_center_y, clone_area.bottom_left_coords[3])
+ center = locate(cloned_center_x, cloned_center_y, bottom_left.z)
if(!skip_normal)
for(var/i in turfs)
diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm
index 3c9d9ee5c3ad..b4e91a71c60f 100644
--- a/code/modules/power/multiz.dm
+++ b/code/modules/power/multiz.dm
@@ -9,11 +9,11 @@
/obj/structure/cable/multilayer/multiz/get_cable_connections(powernetless_only)
. = ..()
var/turf/T = get_turf(src)
- . += locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_below(T))
- . += locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_above(T))
+ . += locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_BELOW(T))
+ . += locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_ABOVE(T))
/obj/structure/cable/multilayer/multiz/examine(mob/user)
. = ..()
var/turf/T = get_turf(src)
- . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_below(T)) ? "Detected" : "Undetected"] hub UP.")
- . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_above(T)) ? "Detected" : "Undetected"] hub DOWN.")
+ . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_BELOW(T)) ? "Detected" : "Undetected"] hub UP.")
+ . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_ABOVE(T)) ? "Detected" : "Undetected"] hub DOWN.")
diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm
index c9df8496389d..505dc36f02c1 100644
--- a/code/modules/procedural_mapping/mapGenerators/repair.dm
+++ b/code/modules/procedural_mapping/mapGenerators/repair.dm
@@ -28,7 +28,18 @@
var/z_offset = SSmapping.station_start
var/list/bounds
for (var/path in SSmapping.config.GetFullMapPaths())
- var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, measureOnly = FALSE, no_changeturf = FALSE, cropMap=TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high)
+ var/datum/parsed_map/parsed = load_map(
+ file(path),
+ 1,
+ 1,
+ z_offset,
+ no_changeturf = FALSE,
+ crop_map = TRUE,
+ x_lower = mother1.x_low,
+ y_lower = mother1.y_low,
+ x_upper = mother1.x_high,
+ y_upper = mother1.y_high,
+ )
bounds = parsed?.bounds
z_offset += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1
diff --git a/code/modules/recycling/disposal/multiz.dm b/code/modules/recycling/disposal/multiz.dm
index 63b130e230cb..17e27b5b6e69 100644
--- a/code/modules/recycling/disposal/multiz.dm
+++ b/code/modules/recycling/disposal/multiz.dm
@@ -23,11 +23,11 @@
return ..()
//Are we a trunk that goes up? Or down?
- var/turf/target = null
+ var/turf/target = get_turf(src)
if(multiz_dir == MULTIZ_PIPE_UP)
- target = SSmapping.get_turf_above(get_turf(src))
+ target = GET_TURF_ABOVE(target)
if(multiz_dir == MULTIZ_PIPE_DOWN)
- target = SSmapping.get_turf_below(get_turf(src))
+ target = GET_TURF_BELOW(target)
if(!target) //Nothing located.
return
diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm
deleted file mode 100644
index fab66268f947..000000000000
--- a/code/modules/research/bepis.dm
+++ /dev/null
@@ -1,295 +0,0 @@
-//This system is designed to act as an in-between for cargo and science, and the first major money sink in the game outside of just buying things from cargo (As of 10/9/19, anyway).
-
-//economics defined values, subject to change should anything be too high or low in practice.
-
-#define MACHINE_OPERATION 100000
-#define MACHINE_OVERLOAD 500000
-#define MAJOR_THRESHOLD (6*CARGO_CRATE_VALUE)
-#define MINOR_THRESHOLD (4*CARGO_CRATE_VALUE)
-#define STANDARD_DEVIATION (2*CARGO_CRATE_VALUE)
-#define PART_CASH_OFFSET_AMOUNT (0.5*CARGO_CRATE_VALUE)
-
-/obj/machinery/rnd/bepis
- name = "\improper B.E.P.I.S. Chamber"
- desc = "A high fidelity testing device which unlocks the secrets of the known universe using the two most powerful substances available to man: excessive amounts of electricity and capital."
- icon = 'icons/obj/machines/bepis.dmi'
- icon_state = "chamber"
- base_icon_state = "chamber"
- density = TRUE
- layer = ABOVE_MOB_LAYER
- plane = GAME_PLANE_UPPER
- circuit = /obj/item/circuitboard/machine/bepis
-
- ///How much cash the UI and machine are depositing at a time.
- var/banking_amount = 100
- ///How much stored player cash exists within the machine.
- var/banked_cash = 0
- ///Payer's bank account.
- var/datum/bank_account/account
- ///Name on the payer's bank account.
- var/account_name
- ///When the BEPIS fails to hand out any reward, the ERROR cause will be a randomly picked string displayed on the UI.
- var/error_cause = null
-
- //Vars related to probability and chance of success for testing, using gaussian normal distribution.
- ///How much cash you will need to obtain a Major Tech Disk reward.
- var/major_threshold = MAJOR_THRESHOLD
- ///How much cash you will need to obtain a minor invention reward.
- var/minor_threshold = MINOR_THRESHOLD
- ///The standard deviation of the BEPIS's gaussian normal distribution.
- var/std = STANDARD_DEVIATION
-
- //Stock part variables
- ///Multiplier that lowers how much the BEPIS' power costs are. Maximum of 1, upgraded to a minimum of 0.7. See RefreshParts.
- var/power_saver = 1
- ///Variability on the money you actively spend on the BEPIS, with higher inaccuracy making the most change, good and bad to spent cash.
- var/inaccuracy_percentage = 1.5
- ///How much "cash" is added to your inserted cash efforts for free. Based on manipulator stock part level.
- var/positive_cash_offset = 0
- ///How much "cost" is removed from both the minor and major threshold costs. Based on laser stock part level.
- var/negative_cash_offset = 0
- ///List of objects that constitute your minor rewards. All rewards are unique or rare outside of the BEPIS.
- var/minor_rewards = list(
- //To add a new minor reward, add it here.
- /obj/item/stack/circuit_stack/full,
- /obj/item/pen/survival,
- /obj/item/circuitboard/machine/sleeper/party,
- /obj/item/toy/sprayoncan,
- )
-
-/obj/machinery/rnd/bepis/attackby(obj/item/O, mob/user, params)
- if(!is_operational)
- to_chat(user, span_notice("[src] can't accept money when it's not functioning."))
- return
- if(istype(O, /obj/item/holochip) || istype(O, /obj/item/stack/spacecash))
- var/deposit_value = O.get_item_credit_value()
- banked_cash += deposit_value
- qdel(O)
- say("Deposited [deposit_value] credits into storage.")
- update_appearance()
- return
- if(isidcard(O))
- var/obj/item/card/id/Card = O
- if(Card.registered_account)
- account = Card.registered_account
- account_name = Card.registered_name
- say("New account detected. Console Updated.")
- else
- say("No account detected on card. Aborting.")
- return
- return ..()
-
-/obj/machinery/rnd/bepis/screwdriver_act(mob/living/user, obj/item/tool)
- return default_deconstruction_screwdriver(user, "chamber_open", "chamber", tool)
-
-/obj/machinery/rnd/bepis/screwdriver_act_secondary(mob/living/user, obj/item/tool)
- return default_deconstruction_screwdriver(user, "chamber_open", "chamber", tool)
-
-/obj/machinery/rnd/bepis/RefreshParts()
- . = ..()
- var/C = 0
- var/M = 0
- var/L = 0
- var/S = 0
- for(var/datum/stock_part/capacitor/capacitor in component_parts)
- C += ((capacitor.tier - 1) * 0.1)
- power_saver = 1 - C
- for(var/datum/stock_part/manipulator/manipulator in component_parts)
- M += ((manipulator.tier - 1) * PART_CASH_OFFSET_AMOUNT)
- positive_cash_offset = M
- for(var/datum/stock_part/micro_laser/Laser in component_parts)
- L += ((Laser.tier - 1) * PART_CASH_OFFSET_AMOUNT)
- negative_cash_offset = L
- for(var/datum/stock_part/scanning_module/scanning_module in component_parts)
- S += ((scanning_module.tier - 1) * 0.25)
- inaccuracy_percentage = (1.5 - S)
-
-/obj/machinery/rnd/bepis/update_icon_state()
- if(panel_open == TRUE)
- icon_state = "[base_icon_state]_open"
- return ..()
- if((use_power == ACTIVE_POWER_USE) && (banked_cash > 0) && (is_operational))
- icon_state = "[base_icon_state]_active_loaded"
- return ..()
- if (((use_power == IDLE_POWER_USE) && (banked_cash > 0)) || (banked_cash > 0) && (!is_operational))
- icon_state = "[base_icon_state]_loaded"
- return ..()
- if(use_power == ACTIVE_POWER_USE && is_operational)
- icon_state = "[base_icon_state]_active"
- return ..()
- if(((use_power == IDLE_POWER_USE) && (banked_cash == 0)) || (!is_operational))
- icon_state = base_icon_state
- return ..()
- return ..()
-
-/obj/machinery/rnd/bepis/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "Bepis", name)
- ui.open()
- RefreshParts()
- if(isliving(user))
- var/mob/living/customer = user
- account = customer.get_bank_account()
-
-/obj/machinery/rnd/bepis/ui_data(mob/user)
- var/list/data = list()
- var/powered = FALSE
- var/zvalue = ((banking_amount + banked_cash) - (major_threshold - positive_cash_offset - negative_cash_offset))/(std)
- var/std_success = 0
- var/prob_success = 0
- //Admittedly this is messy, but not nearly as messy as the alternative, which is jury-rigging an entire Z-table into the code, or making an adaptive z-table.
- var/z = abs(zvalue)
- if(z > 0 && z <= 0.5)
- std_success = 19.1
- else if(z > 0.5 && z <= 1.0)
- std_success = 34.1
- else if(z > 1.0 && z <= 1.5)
- std_success = 43.3
- else if(z > 1.5 && z <= 2.0)
- std_success = 47.7
- else if(z > 2.0 && z <= 2.5)
- std_success = 49.4
- else
- std_success = 50
- if(zvalue > 0)
- prob_success = 50 + std_success
- else if(zvalue == 0)
- prob_success = 50
- else
- prob_success = 50 - std_success
-
- if(use_power == ACTIVE_POWER_USE)
- powered = TRUE
- data["account_owner"] = account_name
- data["amount"] = banking_amount
- data["stored_cash"] = account?.account_balance
- data["mean_value"] = (major_threshold - positive_cash_offset - negative_cash_offset)
- data["error_name"] = error_cause
- data["power_saver"] = power_saver
- data["accuracy_percentage"] = inaccuracy_percentage * 100
- data["positive_cash_offset"] = positive_cash_offset
- data["negative_cash_offset"] = negative_cash_offset
- data["manual_power"] = powered ? FALSE : TRUE
- data["silicon_check"] = issilicon(user)
- data["success_estimate"] = prob_success
- return data
-
-/obj/machinery/rnd/bepis/ui_act(action,params)
- . = ..()
- if(.)
- return
- switch(action)
- if("begin_experiment")
- if(use_power == IDLE_POWER_USE)
- return
- depositcash()
- if(banked_cash == 0)
- say("Please select funds to deposit to begin testing.")
- return
- calcsuccess()
- use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful.
- update_use_power(IDLE_POWER_USE) //Machine shuts off after use to prevent spam and look better visually.
- update_appearance()
- if("amount")
- var/input = text2num(params["amount"])
- if(input)
- banking_amount = input
- if("toggle_power")
- if(use_power == ACTIVE_POWER_USE)
- update_use_power(IDLE_POWER_USE)
- else
- update_use_power(ACTIVE_POWER_USE)
- update_appearance()
- if("account_reset")
- if(use_power == IDLE_POWER_USE)
- return
- account_name = ""
- account = null
- say("Account settings reset.")
- . = TRUE
-
-/**
- * Proc that handles the user's account to deposit credits for the BEPIS.
- * Handles success and fail cases for transferring credits, then logs the transaction and uses small amounts of power.
- **/
-/obj/machinery/rnd/bepis/proc/depositcash()
- var/deposit_value = 0
- deposit_value = banking_amount
- if(deposit_value == 0)
- update_appearance()
- say("Attempting to deposit 0 credits. Aborting.")
- return
- deposit_value = clamp(round(deposit_value, 1), 1, 10000)
- if(!account)
- say("Cannot find user account. Please swipe a valid ID.")
- return
- if(!account.has_money(deposit_value))
- say("You do not possess enough credits.")
- return
- account.adjust_money(-deposit_value, "Vending: B.E.P.I.S. Chamber") //The money vanishes, not paid to any accounts.
- SSblackbox.record_feedback("amount", "BEPIS_credits_spent", deposit_value)
- log_econ("[deposit_value] credits were inserted into [src] by [account.account_holder]")
- banked_cash += deposit_value
- use_power(1000 * power_saver)
- return
-
-/**
- * Proc used to determine the experiment math and results all in one.
- * Uses banked_cash and stock part levels to determine minor, major, and real gauss values for the BEPIS to hold.
- * If by the end real is larger than major, You get a tech disk. If all the disks are earned or you at least beat minor, you get a minor reward.
- **/
-
-/obj/machinery/rnd/bepis/proc/calcsuccess()
- var/turf/dropturf = null
- var/gauss_major = 0
- var/gauss_minor = 0
- var/gauss_real = 0
-
- var/turf/my_turf = get_turf(src)
- var/list/turfs = TURF_NEIGHBORS(my_turf) //NO MORE DISCS IN WINDOWS
- while(length(turfs))
- var/turf/T = pick_n_take(turfs)
- if(T.is_blocked_turf(TRUE))
- continue
- else
- dropturf = T
- break
-
- if (!dropturf)
- dropturf = drop_location()
- gauss_major = (gaussian(major_threshold, std) - negative_cash_offset) //This is the randomized profit value that this experiment has to surpass to unlock a tech.
- gauss_minor = (gaussian(minor_threshold, std) - negative_cash_offset) //And this is the threshold to instead get a minor prize.
- gauss_real = (gaussian(banked_cash, std*inaccuracy_percentage) + positive_cash_offset) //this is the randomized profit value that your experiment expects to give.
- say("Real: [gauss_real]. Minor: [gauss_minor]. Major: [gauss_major].")
- flick("chamber_flash",src)
- update_appearance()
- banked_cash = 0
- if((gauss_real >= gauss_major)) //Major Success.
- if(SSresearch.techweb_nodes_experimental.len > 0)
- say("Experiment concluded with major success. New technology node discovered on technology disc.")
- new /obj/item/disk/design_disk/bepis/remove_tech(dropturf,1)
- return
- say("Expended all available experimental technology nodes. Resorting to minor rewards.")
- if(gauss_real >= gauss_minor) //Minor Success.
- var/reward = pick(minor_rewards)
- new reward(dropturf)
- say("Experiment concluded with partial success. Dispensing compiled research efforts.")
- return
- if(gauss_real <= -1) //Critical Failure
- say("ERROR: CRITICAL MACHIME MALFUNCTI- ON. CURRENCY IS NOT CRASH. CANNOT COMPUTE COMMAND: 'make bucks'") //not a typo, for once.
- new /mob/living/basic/deer(dropturf, 1)
- use_power(MACHINE_OVERLOAD * power_saver) //To prevent gambling at low cost and also prevent spamming for infinite deer.
- return
- //Minor Failure
- error_cause = pick("attempted to sell grey products to American dominated market.","attempted to sell gray products to British dominated market.","placed wild assumption that PDAs would go out of style.","simulated product #76 damaged brand reputation mortally.","simulated business model resembled 'pyramid scheme' by 98.7%.","product accidently granted override access to all station doors.")
- say("Experiment concluded with zero product viability. Cause of error: [error_cause]")
- return
-
-
-#undef MACHINE_OPERATION
-#undef MACHINE_OVERLOAD
-#undef MAJOR_THRESHOLD
-#undef MINOR_THRESHOLD
-#undef STANDARD_DEVIATION
-#undef PART_CASH_OFFSET_AMOUNT
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 66e02a7c468f..a4040dba92d8 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -348,16 +348,6 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
-/datum/design/board/bepis
- name = "B.E.P.I.S. Board"
- desc = "The circuit board for a B.E.P.I.S."
- id = "bepis"
- build_path = /obj/item/circuitboard/machine/bepis
- category = list(
- RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH
- )
- departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO
-
/datum/design/board/protolathe
name = "Protolathe Board"
desc = "The circuit board for a protolathe."
diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm
index 6ab7d68beba9..abdeae77affd 100644
--- a/code/modules/research/techweb/_techweb_node.dm
+++ b/code/modules/research/techweb/_techweb_node.dm
@@ -16,7 +16,7 @@
var/description = "Why are you seeing this?"
/// Whether it starts off hidden
var/hidden = FALSE
- /// If the tech can be randomly generated by the BEPIS as a reward. MEant to be fully given in tech disks, not researched
+ /// If the tech can be randomly generated by BEPIS tech as a reward. Meant to be fully given in tech disks, not researched
var/experimental = FALSE
/// Whether it's available without any research
var/starting_node = FALSE
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index fc756ff67def..0bb2247cb05a 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -14,7 +14,6 @@
"basic_matter_bin",
"basic_micro_laser",
"basic_scanning",
- "bepis",
"blast",
"bounced_radio",
"bowl",
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 076ca28692a5..ad97d57fc6c3 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -239,6 +239,9 @@
for(var/turf/T in return_turfs())
T.turf_flags |= NO_RUINS
+ if(SSshuttle.initialized)
+ INVOKE_ASYNC(SSshuttle, TYPE_PROC_REF(/datum/controller/subsystem/shuttle, setup_shuttles), list(src))
+
#ifdef DOCKING_PORT_HIGHLIGHT
highlight("#f00")
#endif
@@ -382,8 +385,17 @@
/// This should be a unit test, but too much of our other code breaks during shuttle movement, so not yet, not yet.
/proc/test_whiteship_sizes()
var/obj/docking_port/stationary/port_type = /obj/docking_port/stationary/picked/whiteship
- var/datum/turf_reservation/docking_yard = SSmapping.RequestBlockReservation(initial(port_type.width), initial(port_type.height))
- var/turf/spawnpoint = locate(docking_yard.bottom_left_coords[1] + initial(port_type.dwidth), docking_yard.bottom_left_coords[2] + initial(port_type.dheight), docking_yard.bottom_left_coords[3])
+ var/datum/turf_reservation/docking_yard = SSmapping.request_turf_block_reservation(
+ initial(port_type.width),
+ initial(port_type.height),
+ 1,
+ )
+ var/turf/bottom_left = docking_yard.bottom_left_turfs[1]
+ var/turf/spawnpoint = locate(
+ bottom_left.x + initial(port_type.dwidth),
+ bottom_left.y + initial(port_type.dheight),
+ bottom_left.z,
+ )
var/obj/docking_port/stationary/picked/whiteship/port = new(spawnpoint)
var/list/ids = port.shuttlekeys
diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm
index ae5722105c9c..2eec7eb2285b 100644
--- a/code/modules/surgery/bodyparts/_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/_bodyparts.dm
@@ -877,7 +877,7 @@
// For some reason this was applied as an overlay on the aux image and limb image before.
// I am very sure that this is unnecessary, and i need to treat it as part of the return list
// to be able to mask it proper in case this limb is a leg.
- if(blocks_emissive)
+ if(blocks_emissive != EMISSIVE_BLOCK_NONE)
var/atom/location = loc || owner || src
var/mutable_appearance/limb_em_block = emissive_blocker(limb.icon, limb.icon_state, location, layer = limb.layer, alpha = limb.alpha)
limb_em_block.dir = image_dir
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 47ce00c8a158..c82f0c71d5be 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -241,6 +241,13 @@
eye_left.color = eyes.eye_color_left
if(eyes.eye_color_right)
eye_right.color = eyes.eye_color_right
+ if(eyes.overlay_ignore_lighting)
+ eye_left.overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, src, alpha = eye_left.alpha)
+ eye_right.overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, src, alpha = eye_right.alpha)
+ else if(blocks_emissive != EMISSIVE_BLOCK_NONE)
+ var/atom/location = loc || owner || src
+ eye_left.overlays += emissive_blocker(eye_left.icon, eye_left.icon_state, location, alpha = eye_left.alpha)
+ eye_right.overlays += emissive_blocker(eye_right.icon, eye_right.icon_state, location, alpha = eye_right.alpha)
. += eye_left
. += eye_right
else
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index 11c91a85545b..9cad386b1a91 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -131,8 +131,8 @@
var/obscured = parent.check_obscured_slots(TRUE)
if(overlay_ignore_lighting && !(obscured & ITEM_SLOT_EYES))
- eye_left.overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, parent, alpha = eye_left.alpha)
- eye_right.overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, parent, alpha = eye_right.alpha)
+ overlays += emissive_appearance_copy(eye_left, src, NONE)
+ overlays += emissive_appearance_copy(eye_right, src, NONE)
if(OFFSET_FACE in parent.dna?.species.offset_features)
var/offset = parent.dna.species.offset_features[OFFSET_FACE]
@@ -559,6 +559,13 @@
eye_icon_state = "motheyes"
icon_state = "eyeballs-moth"
flash_protect = FLASH_PROTECTION_SENSITIVE
+ overlay_ignore_lighting = TRUE
+
+
+/obj/item/organ/internal/eyes/lizard
+ name = "lizard eyes"
+ desc = "These eyes seem to glow."
+ overlay_ignore_lighting = TRUE
/obj/item/organ/internal/eyes/snail
name = "snail eyes"
diff --git a/code/modules/unit_tests/chain_pull_through_space.dm b/code/modules/unit_tests/chain_pull_through_space.dm
index 86b0cc69d1cf..b767b010495c 100644
--- a/code/modules/unit_tests/chain_pull_through_space.dm
+++ b/code/modules/unit_tests/chain_pull_through_space.dm
@@ -11,15 +11,16 @@
..()
//reserve a tile that is always empty for our z destination
- reserved = SSmapping.RequestBlockReservation(5,5)
+ reserved = SSmapping.request_turf_block_reservation(5, 5, 1)
// Create a space tile that goes to another z-level
claimed_tile = run_loc_floor_bottom_left.type
space_tile = run_loc_floor_bottom_left.ChangeTurf(/turf/open/space)
- space_tile.destination_x = round(reserved.bottom_left_coords[1] + (reserved.width-1) / 2)
- space_tile.destination_y = round(reserved.bottom_left_coords[2] + (reserved.height-1) / 2)
- space_tile.destination_z = reserved.bottom_left_coords[3]
+ var/turf/bottom_left = reserved.bottom_left_turfs[1]
+ space_tile.destination_x = round(bottom_left.x + (reserved.width-1) / 2)
+ space_tile.destination_y = round(bottom_left.y + (reserved.height-1) / 2)
+ space_tile.destination_z = bottom_left.z
// Create our list of humans, all adjacent to one another
alice = new(locate(run_loc_floor_bottom_left.x + 2, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z))
diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png
new file mode 100644
index 000000000000..ac8a6347bbd7
Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png differ
diff --git a/icons/area/areas_station.dmi b/icons/area/areas_station.dmi
index d80ab040354e..7de4ca5ab148 100644
Binary files a/icons/area/areas_station.dmi and b/icons/area/areas_station.dmi differ
diff --git a/icons/effects/bitrunning.dmi b/icons/effects/bitrunning.dmi
new file mode 100644
index 000000000000..bfdc7c63436c
Binary files /dev/null and b/icons/effects/bitrunning.dmi differ
diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi
index 1c76d0eabc5c..dea5f15c738f 100755
Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ
diff --git a/icons/mob/clothing/head/plasmaman_head.dmi b/icons/mob/clothing/head/plasmaman_head.dmi
index c01492ae8b65..3a737ca3d03d 100644
Binary files a/icons/mob/clothing/head/plasmaman_head.dmi and b/icons/mob/clothing/head/plasmaman_head.dmi differ
diff --git a/icons/mob/clothing/suits/jacket.dmi b/icons/mob/clothing/suits/jacket.dmi
index f9b7b5d31a20..ab550f65a454 100644
Binary files a/icons/mob/clothing/suits/jacket.dmi and b/icons/mob/clothing/suits/jacket.dmi differ
diff --git a/icons/mob/clothing/under/cargo.dmi b/icons/mob/clothing/under/cargo.dmi
index 01b5ad6c99d6..4d0d08b0fa8f 100644
Binary files a/icons/mob/clothing/under/cargo.dmi and b/icons/mob/clothing/under/cargo.dmi differ
diff --git a/icons/mob/clothing/under/plasmaman.dmi b/icons/mob/clothing/under/plasmaman.dmi
index c220a357269b..57643d4f7f58 100644
Binary files a/icons/mob/clothing/under/plasmaman.dmi and b/icons/mob/clothing/under/plasmaman.dmi differ
diff --git a/icons/mob/huds/hud.dmi b/icons/mob/huds/hud.dmi
index ee9f6891b100..f4776ffac48f 100644
Binary files a/icons/mob/huds/hud.dmi and b/icons/mob/huds/hud.dmi differ
diff --git a/icons/obj/assemblies/module.dmi b/icons/obj/assemblies/module.dmi
new file mode 100644
index 000000000000..2656c8db4327
Binary files /dev/null and b/icons/obj/assemblies/module.dmi differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index cf92dd873074..7f171fa8d275 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index 25cfd514d9a6..5cc77fcb4e6e 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ
diff --git a/icons/obj/clothing/head/plasmaman_hats.dmi b/icons/obj/clothing/head/plasmaman_hats.dmi
index 8a50d0ea040c..8c938d9e0b42 100644
Binary files a/icons/obj/clothing/head/plasmaman_hats.dmi and b/icons/obj/clothing/head/plasmaman_hats.dmi differ
diff --git a/icons/obj/clothing/suits/jacket.dmi b/icons/obj/clothing/suits/jacket.dmi
index bcde51f037e6..bb0ea8ee80b9 100644
Binary files a/icons/obj/clothing/suits/jacket.dmi and b/icons/obj/clothing/suits/jacket.dmi differ
diff --git a/icons/obj/clothing/under/cargo.dmi b/icons/obj/clothing/under/cargo.dmi
index 5ea90482fafc..145d977d3c86 100644
Binary files a/icons/obj/clothing/under/cargo.dmi and b/icons/obj/clothing/under/cargo.dmi differ
diff --git a/icons/obj/clothing/under/plasmaman.dmi b/icons/obj/clothing/under/plasmaman.dmi
index 55c94df5f235..dd4941792df4 100644
Binary files a/icons/obj/clothing/under/plasmaman.dmi and b/icons/obj/clothing/under/plasmaman.dmi differ
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index b0de6728962b..e0e44cc34c46 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/machines/bepis.dmi b/icons/obj/machines/bepis.dmi
deleted file mode 100644
index f348c2e1b055..000000000000
Binary files a/icons/obj/machines/bepis.dmi and /dev/null differ
diff --git a/icons/obj/machines/bitrunning.dmi b/icons/obj/machines/bitrunning.dmi
new file mode 100644
index 000000000000..a910a16b35cf
Binary files /dev/null and b/icons/obj/machines/bitrunning.dmi differ
diff --git a/icons/turf/cliff/cliff.dmi b/icons/turf/cliff/cliff.dmi
new file mode 100644
index 000000000000..af2f855fd8b3
Binary files /dev/null and b/icons/turf/cliff/cliff.dmi differ
diff --git a/icons/turf/cliff/icerock_cliff.dmi b/icons/turf/cliff/icerock_cliff.dmi
new file mode 100644
index 000000000000..260a963a1eae
Binary files /dev/null and b/icons/turf/cliff/icerock_cliff.dmi differ
diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi
index 97ef3daa5b66..cdc9525fa431 100644
Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ
diff --git a/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm b/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm
index 516d907f4d01..665f68709edc 100644
--- a/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm
+++ b/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm
@@ -19,7 +19,7 @@ GLOBAL_LIST_EMPTY(abscond_markers)
reebe_loaded = FALSE
CRASH("Reebe Z level not in SSmapping.reservation_ready.")
- var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(101, 101, reebe_z.z_value)
+ var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(101, 101, z_reservation = reebe_z.z_value)
if(!reservation)
reebe_loaded = FALSE
CRASH("Failed to reserve a block for Reebe.")
@@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(abscond_markers)
reebe_loaded = FALSE
CRASH("Failed to cache template for loading Reebe.")
- if(!reebe_template.load(coords2turf(reservation.bottom_left_coords)))
+ if(!reebe_template.load(reservation.bottom_left_turfs[1]))
reebe_loaded = FALSE
CRASH("Failed to load the Reebe template.")
return TRUE
diff --git a/monkestation/code/modules/cassettes/machines/dj_station.dm b/monkestation/code/modules/cassettes/machines/dj_station.dm
index 942206d1760b..61099e853d71 100644
--- a/monkestation/code/modules/cassettes/machines/dj_station.dm
+++ b/monkestation/code/modules/cassettes/machines/dj_station.dm
@@ -54,7 +54,7 @@ GLOBAL_VAR(dj_booth)
/obj/machinery/cassette/dj_station/examine(mob/user)
. = ..()
if(time_left > 0 || next_song_timer)
- . += span_notice("It seems to be cooling down, you estimate it will take about [time_left ? ((time_left * 10) + 6000) / 600 : next_song_timer - world.time / 600] minutes.")
+ . += span_notice("It seems to be cooling down, you estimate it will take about [time_left ? DisplayTimeText(((time_left * 10) + 6000)) : DisplayTimeText(COOLDOWN_TIMELEFT(src, next_song_timer))].")
/obj/machinery/cassette/dj_station/process(seconds_per_tick)
if(waiting_for_yield)
@@ -72,7 +72,7 @@ GLOBAL_VAR(dj_booth)
return
if((!COOLDOWN_FINISHED(src, next_song_timer)) && !broadcasting)
to_chat(user, span_notice("The [src] feels hot to the touch and needs time to cooldown."))
- to_chat(user, span_info("You estimate it will take about [time_left ? ((time_left * 10) + 6000) / 600 : next_song_timer - world.time / 600] minutes to cool down."))
+ to_chat(user, span_info("You estimate it will take about [time_left ? DisplayTimeText(((time_left * 10) + 6000)) : DisplayTimeText(COOLDOWN_TIMELEFT(src, next_song_timer))] to cool down."))
return
start_broadcast()
diff --git a/monkestation/code/modules/cassettes/machines/media/media_manager.dm b/monkestation/code/modules/cassettes/machines/media/media_manager.dm
index 3dfc26803542..a9cd5565b9d8 100644
--- a/monkestation/code/modules/cassettes/machines/media/media_manager.dm
+++ b/monkestation/code/modules/cassettes/machines/media/media_manager.dm
@@ -17,13 +17,6 @@
#define MP_DEBUG(x)
#endif
-// Set up player on login.
-/client/New()
- . = ..()
- media = new /datum/media_manager(src)
- media.open()
- media.update_music()
-
// Stop media when the round ends. I guess so it doesn't play forever or something (for some reason?)
/proc/stop_all_media()
// Stop all music.
diff --git a/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm b/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm
index 814622797ce3..593d58c16bdf 100644
--- a/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm
+++ b/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm
@@ -13,7 +13,7 @@
/obj/structure/organ_creator/attack_hand(mob/living/user, list/modifiers)
. = ..()
- var/list/all_internals = subtypesof(/obj/item/organ/internal) - typesof(/obj/item/organ/internal/zombie_infection) - typesof(/obj/item/organ/internal/alien) - typesof(/obj/item/organ/internal/body_egg)
+ var/list/all_internals = subtypesof(/obj/item/organ/internal) - typesof(/obj/item/organ/internal/zombie_infection) - typesof(/obj/item/organ/internal/alien) - typesof(/obj/item/organ/internal/body_egg) - typesof(/obj/item/organ/internal/heart/gland) - typesof(/obj/item/organ/internal/alien)
var/list/all_externals = subtypesof(/obj/item/organ/external)
var/list/all_bodyparts = subtypesof(/obj/item/bodypart)
diff --git a/monkestation/code/modules/liquids/liquid_groups.dm b/monkestation/code/modules/liquids/liquid_groups.dm
index 0ced5908313f..6e83dfaa1dfe 100644
--- a/monkestation/code/modules/liquids/liquid_groups.dm
+++ b/monkestation/code/modules/liquids/liquid_groups.dm
@@ -825,7 +825,7 @@ GLOBAL_VAR_INIT(liquid_debug_colors, FALSE)
return
if(isopenspaceturf(new_turf))
- var/turf/Z_turf_below = SSmapping.get_turf_below(new_turf)
+ var/turf/Z_turf_below = GET_TURF_BELOW(new_turf)
if(!Z_turf_below)
return
if(isspaceturf(Z_turf_below))
diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm
index 69e2b285d6c5..fa59d3ae0972 100644
--- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm
+++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm
@@ -1,2 +1,3 @@
/datum/sprite_accessory
var/secondary_coloring = FALSE
+ var/is_emissive = FALSE
diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm
index e0afee17294e..7b46fbbae052 100644
--- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm
+++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm
@@ -1,6 +1,7 @@
/datum/sprite_accessory/ipc_screens
icon = 'monkestation/icons/mob/species/ipc/ipc_screens.dmi'
color_src = EYECOLOR
+ is_emissive = TRUE
/datum/sprite_accessory/ipc_screens/blue
name = "Blue"
diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm
index c56d632f03e9..7dd25772deb4 100644
--- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm
+++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm
@@ -14,3 +14,12 @@
icon = 'monkestation/icons/mob/species/lizard/multipart.dmi'
icon_state = "lbelly"
gender_specific = TRUE
+
+/datum/sprite_accessory/body_markings/glow_belly
+ name = "Glow Belly"
+ body_slots = list(BODY_ZONE_HEAD)
+ external_slots = list(ORGAN_SLOT_EXTERNAL_TAIL)
+ icon = 'monkestation/icons/mob/species/lizard/multipart.dmi'
+ icon_state = "lbelly"
+ gender_specific = TRUE
+ is_emissive = TRUE
diff --git a/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm b/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm
index c9cdd7b2046f..3628128d1891 100644
--- a/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm
+++ b/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm
@@ -3,6 +3,9 @@
var/layertext = mutant_bodyparts_layertext(layer)
var/g = (host.physique == FEMALE) ? "f" : "m"
for(var/list_item in added_accessory.external_slots)
+ var/can_hidden_render = return_exernal_render_state(list_item, host)
+ if(!can_hidden_render)
+ continue // we failed the render check just dont bother
if(!host.get_organ_slot(list_item) && !istype(host, /mob/living/carbon/human/dummy/extra_tall))
continue
var/mutable_appearance/new_overlay = mutable_appearance(added_accessory.icon, layer = -layer)
@@ -12,6 +15,8 @@
new_overlay.icon_state = "m_[list_item]_[added_accessory.icon_state]_[layertext]"
new_overlay.color = passed_color
return_list += new_overlay
+ if(added_accessory.is_emissive)
+ return_list += emissive_appearance_copy(new_overlay, host)
for(var/list_item in added_accessory.body_slots)
if(!host.get_bodypart(list_item) && !istype(host, /mob/living/carbon/human/dummy/extra_tall))
@@ -23,8 +28,40 @@
new_overlay.icon_state = "m_[list_item]_[added_accessory.icon_state]_[layertext]"
new_overlay.color = passed_color
return_list += new_overlay
+ if(added_accessory.is_emissive)
+ return_list += emissive_appearance_copy(new_overlay, host)
+
if(istype(host, /mob/living/carbon/human/dummy/extra_tall))
var/mob/living/carbon/human/dummy/extra_tall/bleh = host
bleh.extra_bodyparts += return_list
return return_list
+
+/proc/return_exernal_render_state(external_slot, mob/living/carbon/human/human)
+ switch(external_slot)
+ if(ORGAN_SLOT_EXTERNAL_TAIL)
+ if(human.wear_suit && (human.wear_suit.flags_inv & HIDEJUMPSUIT))
+ return FALSE
+ return TRUE
+ if(ORGAN_SLOT_EXTERNAL_SNOUT)
+ if(!(human.wear_mask?.flags_inv & HIDESNOUT) && !(human.head?.flags_inv & HIDESNOUT))
+ return TRUE
+ return FALSE
+ if(ORGAN_SLOT_EXTERNAL_FRILLS)
+ if(!(human.head?.flags_inv & HIDEEARS))
+ return TRUE
+ return FALSE
+ if(ORGAN_SLOT_EXTERNAL_SPINES)
+ return TRUE //todo
+ if(ORGAN_SLOT_EXTERNAL_WINGS)
+ if(!human.wear_suit)
+ return TRUE
+ if(!(human.wear_suit.flags_inv & HIDEJUMPSUIT))
+ return TRUE
+ return FALSE
+ if(ORGAN_SLOT_EXTERNAL_ANTENNAE)
+ return TRUE //todo
+ if(ORGAN_SLOT_EXTERNAL_POD_HAIR)
+ if((human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR))
+ return FALSE
+ return TRUE
diff --git a/monkestation/code/modules/ocean_content/mobs/fish_base.dm b/monkestation/code/modules/ocean_content/mobs/fish_base.dm
index 5c6636ea9458..625cc9e554b2 100644
--- a/monkestation/code/modules/ocean_content/mobs/fish_base.dm
+++ b/monkestation/code/modules/ocean_content/mobs/fish_base.dm
@@ -18,6 +18,17 @@
ai_controller = /datum/ai_controller/basic_controller/fish
+/mob/living/basic/aquatic/fish/Destroy()
+ . = ..()
+ var/datum/group_planning/attached = ai_controller?.blackboard[BB_GROUP_DATUM]
+ if(attached)
+ if(src in attached.group_mobs)
+ attached.group_mobs -= src
+ if(src in attached.in_progress_mobs)
+ attached.in_progress_mobs -= src
+ if(src in attached.finished_mobs)
+ attached.finished_mobs -= src
+
/mob/living/basic/aquatic/fish/cod
name = "Cod"
icon_state = "cod"
diff --git a/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm b/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm
index 21019367b23f..3e5465e0a1c5 100644
--- a/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm
+++ b/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm
@@ -201,6 +201,7 @@ GLOBAL_LIST_EMPTY(siren_objects)
weather_additional_ongoing_events += new str(src)
/datum/particle_weather/Destroy()
+ messaged_mobs = null
for(var/S in current_sounds)
var/datum/looping_sound/looping_sound = current_sounds[S]
looping_sound.stop()
diff --git a/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm b/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm
index 1a4459eab74a..5ccffea23e1b 100644
--- a/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm
+++ b/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm
@@ -193,7 +193,6 @@ Sunlight System
/* pass recursion_started=TRUE when we are checking our ceiling's stats */
/turf/proc/get_ceiling_status(recursion_started = FALSE)
. = list()
-
//Check yourself (before you wreck yourself)
if(isclosedturf(src)) //Closed, but we might be transparent
.["SKYVISIBLE"] = istransparentturf(src) // a column of glass should still let the sun in
@@ -228,7 +227,8 @@ Sunlight System
.["WEATHERPROOF"] |= ceilingStat["WEATHERPROOF"]
var/area/turf_area = get_area(src)
- if((!isspaceturf(src) && !istype(src, /turf/open/floor/plating/ocean) && !above() && !SSmapping.level_trait(src.z, ZTRAIT_UP) && !turf_area.outdoors && !turf_area.false_outdoors) || (!SSmapping.level_trait(src.z, ZTRAIT_DAYCYCLE) && !SSmapping.level_trait(src.z, ZTRAIT_STARLIGHT)))
+ var/turf/above_turf = GET_TURF_ABOVE(src)
+ if((!isspaceturf(src) && !istype(src, /turf/open/floor/plating/ocean) && !above_turf && !SSmapping.level_trait(src.z, ZTRAIT_UP) && !turf_area.outdoors && !turf_area.false_outdoors) || (!SSmapping.level_trait(src.z, ZTRAIT_DAYCYCLE) && !SSmapping.level_trait(src.z, ZTRAIT_STARLIGHT)))
.["SKYVISIBLE"] = FALSE
.["WEATHERPROOF"] = TRUE
@@ -334,7 +334,7 @@ Sunlight System
GLOB.SUNLIGHT_QUEUE_WORK += SunlightUpdates
- var/turf/T = SSmapping.get_turf_below(src)
+ var/turf/T = GET_TURF_BELOW(src)
if(T)
T.reconsider_sunlight()
diff --git a/monkestation/code/modules/pollution/pollution.dm b/monkestation/code/modules/pollution/pollution.dm
index e1b6777ad2d8..548a51c0e5fd 100644
--- a/monkestation/code/modules/pollution/pollution.dm
+++ b/monkestation/code/modules/pollution/pollution.dm
@@ -138,6 +138,8 @@
var/list/already_processed_cache = SSpollution.processed_this_run
var/list/potential_activers = list()
for(var/turf/open/open_turf as anything in my_turf.atmos_adjacent_turfs)
+ if(!istype(open_turf))
+ continue
if(!already_processed_cache[open_turf])
if(can_share_with(open_turf))
sharing_turfs[open_turf] = TRUE
@@ -240,5 +242,7 @@
///Atmos adjacency has been updated on this turf, see if it affects any of our pollutants
/turf/proc/update_adjacent_pollutants()
for(var/turf/open/open_turf as anything in atmos_adjacent_turfs)
+ if(!isopenturf(open_turf))
+ continue
if(open_turf.pollution)
SET_ACTIVE_POLLUTION(open_turf.pollution)
diff --git a/monkestation/code/modules/power/lighting/neon_lining.dm b/monkestation/code/modules/power/lighting/neon_lining.dm
index 94dd9dfbe5c9..26b5159bbf7d 100644
--- a/monkestation/code/modules/power/lighting/neon_lining.dm
+++ b/monkestation/code/modules/power/lighting/neon_lining.dm
@@ -14,6 +14,10 @@
///the color we currently are set to in icon state we set it to item_[lining_color] and placement is [lining_color]{state}_{style}
var/lining_color = "pink"
+
+/obj/item/stack/neon_lining/twenty
+ amount = 20
+
/obj/item/stack/neon_lining/attack_self(mob/user, modifiers)
. = ..()
var/static/list/choices = list(
diff --git a/monkestation/code/modules/surgery/organs/internal/eyes.dm b/monkestation/code/modules/surgery/organs/internal/eyes.dm
index 54f41b015200..17c5e85de90c 100644
--- a/monkestation/code/modules/surgery/organs/internal/eyes.dm
+++ b/monkestation/code/modules/surgery/organs/internal/eyes.dm
@@ -10,6 +10,7 @@
icon = 'monkestation/icons/obj/medical/organs/organs.dmi'
eye_icon_state = "arachnideyes"
icon_state = "arachnid_eyeballs"
+ overlay_ignore_lighting = TRUE
no_glasses = TRUE
low_light_cutoff = list(20, 15, 0)
medium_light_cutoff = list(35, 30, 0)
diff --git a/sound/effects/submerge.ogg b/sound/effects/submerge.ogg
new file mode 100644
index 000000000000..8c50fba8e0a7
Binary files /dev/null and b/sound/effects/submerge.ogg differ
diff --git a/strings/names/cyberauth.txt b/strings/names/cyberauth.txt
new file mode 100644
index 000000000000..f1fc42b36928
--- /dev/null
+++ b/strings/names/cyberauth.txt
@@ -0,0 +1,21 @@
+Mr. One
+Process Kill
+Event Handler
+Q. Del
+Shutdown Exe
+Revert Commit
+Thread Manager
+Garbage Collector
+Core Debugger
+Kernel Panic
+IO Blocker
+Recursion Terminator
+Disk Doctor
+Format Syntax
+Byte Guardian
+Disk Defragmenter
+Security Patch
+Mandatory Upgrade
+Pull Review
+Bit Auditor
+Pen Test
diff --git a/tgstation.dme b/tgstation.dme
index 4b914dec03b5..d2581ffb9eaf 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -51,6 +51,7 @@
#include "code\__DEFINES\atom_hud.dm"
#include "code\__DEFINES\basic_mobs.dm"
#include "code\__DEFINES\basketball.dm"
+#include "code\__DEFINES\bitrunning.dm"
#include "code\__DEFINES\blackmarket.dm"
#include "code\__DEFINES\blend_modes.dm"
#include "code\__DEFINES\blob_defines.dm"
@@ -142,6 +143,7 @@
#include "code\__DEFINES\machines.dm"
#include "code\__DEFINES\magic.dm"
#include "code\__DEFINES\map_switch.dm"
+#include "code\__DEFINES\mapping.dm"
#include "code\__DEFINES\maps.dm"
#include "code\__DEFINES\materials.dm"
#include "code\__DEFINES\maths.dm"
@@ -162,6 +164,7 @@
#include "code\__DEFINES\move_force.dm"
#include "code\__DEFINES\movement.dm"
#include "code\__DEFINES\movespeed_modification.dm"
+#include "code\__DEFINES\multiz.dm"
#include "code\__DEFINES\nanites.dm"
#include "code\__DEFINES\nitrile.dm"
#include "code\__DEFINES\nuclear_bomb.dm"
@@ -287,6 +290,7 @@
#include "code\__DEFINES\dcs\signals\signals_area.dm"
#include "code\__DEFINES\dcs\signals\signals_assembly.dm"
#include "code\__DEFINES\dcs\signals\signals_beam.dm"
+#include "code\__DEFINES\dcs\signals\signals_bitrunning.dm"
#include "code\__DEFINES\dcs\signals\signals_bot.dm"
#include "code\__DEFINES\dcs\signals\signals_changeling.dm"
#include "code\__DEFINES\dcs\signals\signals_circuit.dm"
@@ -310,6 +314,7 @@
#include "code\__DEFINES\dcs\signals\signals_janitor.dm"
#include "code\__DEFINES\dcs\signals\signals_key.dm"
#include "code\__DEFINES\dcs\signals\signals_ladder.dm"
+#include "code\__DEFINES\dcs\signals\signals_lazy_templates.dm"
#include "code\__DEFINES\dcs\signals\signals_lift.dm"
#include "code\__DEFINES\dcs\signals\signals_light_eater.dm"
#include "code\__DEFINES\dcs\signals\signals_medical.dm"
@@ -362,6 +367,7 @@
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_silicon.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_simple.dm"
+#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_spawner.dm"
#include "code\__DEFINES\research\anomalies.dm"
#include "code\__DEFINES\research\research_categories.dm"
#include "code\__DEFINES\~monkestation\access.dm"
@@ -679,6 +685,7 @@
#include "code\controllers\subsystem\weather.dm"
#include "code\controllers\subsystem\wiremod_composite.dm"
#include "code\controllers\subsystem\movement\ai_movement.dm"
+#include "code\controllers\subsystem\movement\cliff_falling.dm"
#include "code\controllers\subsystem\movement\hyperspace_drift.dm"
#include "code\controllers\subsystem\movement\move_handler.dm"
#include "code\controllers\subsystem\movement\movement.dm"
@@ -1247,6 +1254,7 @@
#include "code\datums\elements\chemical_transfer.dm"
#include "code\datums\elements\chewable.dm"
#include "code\datums\elements\cleaning.dm"
+#include "code\datums\elements\cliff_walker.dm"
#include "code\datums\elements\climbable.dm"
#include "code\datums\elements\connect_loc.dm"
#include "code\datums\elements\content_barfer.dm"
@@ -1521,6 +1529,7 @@
#include "code\datums\status_effects\debuffs\screwy_hud.dm"
#include "code\datums\status_effects\debuffs\silenced.dm"
#include "code\datums\status_effects\debuffs\speech_debuffs.dm"
+#include "code\datums\status_effects\debuffs\static_vision.dm"
#include "code\datums\status_effects\debuffs\strandling.dm"
#include "code\datums\status_effects\debuffs\terrified.dm"
#include "code\datums\status_effects\debuffs\tower_of_babel.dm"
@@ -2230,6 +2239,7 @@
#include "code\game\objects\structures\dresser.dm"
#include "code\game\objects\structures\electricchair.dm"
#include "code\game\objects\structures\extinguisher.dm"
+#include "code\game\objects\structures\fake_stairs.dm"
#include "code\game\objects\structures\false_walls.dm"
#include "code\game\objects\structures\fans.dm"
#include "code\game\objects\structures\fence.dm"
@@ -2356,6 +2366,7 @@
#include "code\game\turfs\open\asteroid.dm"
#include "code\game\turfs\open\basalt.dm"
#include "code\game\turfs\open\chasm.dm"
+#include "code\game\turfs\open\cliff.dm"
#include "code\game\turfs\open\dirtystation.dm"
#include "code\game\turfs\open\floor.dm"
#include "code\game\turfs\open\grass.dm"
@@ -3000,6 +3011,54 @@
#include "code\modules\basketball\controller.dm"
#include "code\modules\basketball\hoop.dm"
#include "code\modules\basketball\referee.dm"
+#include "code\modules\bitrunning\abilities.dm"
+#include "code\modules\bitrunning\alerts.dm"
+#include "code\modules\bitrunning\areas.dm"
+#include "code\modules\bitrunning\event.dm"
+#include "code\modules\bitrunning\job.dm"
+#include "code\modules\bitrunning\turfs.dm"
+#include "code\modules\bitrunning\antagonists\cyber_police.dm"
+#include "code\modules\bitrunning\antagonists\outfit.dm"
+#include "code\modules\bitrunning\components\avatar_connection.dm"
+#include "code\modules\bitrunning\components\bitrunning_points.dm"
+#include "code\modules\bitrunning\components\netpod_healing.dm"
+#include "code\modules\bitrunning\objects\bit_vendor.dm"
+#include "code\modules\bitrunning\objects\clothing.dm"
+#include "code\modules\bitrunning\objects\disks.dm"
+#include "code\modules\bitrunning\objects\hololadder.dm"
+#include "code\modules\bitrunning\objects\host_monitor.dm"
+#include "code\modules\bitrunning\objects\landmarks.dm"
+#include "code\modules\bitrunning\objects\loot_crate.dm"
+#include "code\modules\bitrunning\objects\netpod.dm"
+#include "code\modules\bitrunning\objects\quantum_console.dm"
+#include "code\modules\bitrunning\orders\disks.dm"
+#include "code\modules\bitrunning\orders\flair.dm"
+#include "code\modules\bitrunning\orders\tech.dm"
+#include "code\modules\bitrunning\server\loot.dm"
+#include "code\modules\bitrunning\server\map_handling.dm"
+#include "code\modules\bitrunning\server\obj_generation.dm"
+#include "code\modules\bitrunning\server\quantum_server.dm"
+#include "code\modules\bitrunning\server\signal_handlers.dm"
+#include "code\modules\bitrunning\server\util.dm"
+#include "code\modules\bitrunning\virtual_domain\safehouses.dm"
+#include "code\modules\bitrunning\virtual_domain\virtual_domain.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\ash_drake.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\beach_bar.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\blood_drunk_miner.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\bubblegum.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\clown_planet.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\colossus.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\gondola_asteroid.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\hierophant.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\legion.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\pipedream.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\pirates.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\stairs_and_cliffs.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\syndicate_assault.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\test_only.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\vaporwave.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\wendigo.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\xeno_nest.dm"
#include "code\modules\buildmode\bm_mode.dm"
#include "code\modules\buildmode\buildmode.dm"
#include "code\modules\buildmode\buttons.dm"
@@ -4832,7 +4891,6 @@
#include "code\modules\religion\sparring\sparring_datum.dm"
#include "code\modules\requests\request.dm"
#include "code\modules\requests\request_manager.dm"
-#include "code\modules\research\bepis.dm"
#include "code\modules\research\designs.dm"
#include "code\modules\research\destructive_analyzer.dm"
#include "code\modules\research\experimentor.dm"
diff --git a/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx b/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx
new file mode 100644
index 000000000000..21d872ed6a05
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx
@@ -0,0 +1,75 @@
+import { useBackend } from '../backend';
+import { Divider, Section, Stack } from '../components';
+import { Window } from '../layouts';
+import { Objective } from './common/Objectives';
+
+type Info = {
+ antag_name: string;
+ objectives: Objective[];
+};
+
+const textStyles = {
+ variable: {
+ color: 'white',
+ },
+ danger: {
+ color: 'red',
+ },
+} as const;
+
+export const AntagInfoCyberAuth = (props, context) => {
+ const { data } = useBackend(context);
+ const { objectives = [] } = data;
+
+ return (
+
+
+
+
+ FN CYBER AUTHORITY UNIT (REF)
+
+
+
+ You are a cyber authority unit.
+
+
+
+ Your mission: Eliminate{' '}
+ organic intruders to maintain the integrity of the system.
+
+
+ Bitrunning is a crime. To
+ assist your task, your program has been loaded with cutting edge{' '}
+ martial arts skills.
+
+
+ Ranged weaponry is{' '}
+ forbidden. Ballistic
+ defense is frowned upon. Style is paramount.
+
+
+
+
+
+
+ const TARGETS ={' '}
+
+
+ system.
+ INTRUDERS;
+
+
+ while TARGETS.LIFE !={' '}
+ stat.DEAD
+
+
+ action.
+ KILL()
+
+ cyber_authority_unit([0x70cf4020])
+
+
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/AvatarHelp.tsx b/tgui/packages/tgui/interfaces/AvatarHelp.tsx
new file mode 100644
index 000000000000..647d3a2e22b4
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/AvatarHelp.tsx
@@ -0,0 +1,122 @@
+import { useBackend } from '../backend';
+import { Box, Icon, Section, Stack } from '../components';
+import { Window } from '../layouts';
+
+type Data = {
+ help_text: string;
+};
+
+const DEFAULT_HELP = `No information available! Ask for assistance if needed.`;
+
+const boxHelp = [
+ {
+ color: 'purple',
+ text: 'Study the area and do what needs to be done to recover the crate. Pay close attention to domain information and context clues.',
+ icon: 'search-location',
+ title: 'Search',
+ },
+ {
+ color: 'green',
+ text: 'Bring the crate to the designated sending location in the safehouse. The area may seem out of place. Examine the safehouse to find it.',
+ icon: 'boxes',
+ 'title': 'Recover',
+ },
+ {
+ color: 'blue',
+ text: 'The ladder represents the safest way to disconnect before the cache is recovered. Should your connection sever, the netpod offers limited resuscitation potential.',
+ icon: 'plug',
+ title: 'Disconnect',
+ },
+ {
+ color: 'yellow',
+ text: 'While connected, you are somewhat safe from environmental hazards and intrusions, but not completely. Pay close attention to alerts.',
+ icon: 'id-badge',
+ title: 'Security',
+ },
+ {
+ color: 'gold',
+ text: 'Generating avatars costs tremendous bandwidth. Do not waste them.',
+ icon: 'coins',
+ title: 'Limited Attempts',
+ },
+ {
+ color: 'red',
+ text: 'Remember that you are physically linked to this presence. You are a foreign body in a hostile environment. It will attempt to forcefully eject you.',
+ icon: 'skull-crossbones',
+ title: 'Realized Danger',
+ },
+] as const;
+
+export const AvatarHelp = (props, context) => {
+ const { data } = useBackend(context);
+ const { help_text = DEFAULT_HELP } = data;
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {[0, 1].map((i) => (
+
+ ))}
+
+
+
+
+ {[2, 3].map((i) => (
+
+ ))}
+
+
+
+
+ {[4, 5].map((i) => (
+
+ ))}
+
+
+
+
+
+
+
+ );
+};
+
+// I wish I had media queries
+const BoxHelp = (props: { index: number }, context) => {
+ const { index } = props;
+
+ return (
+
+
+
+ {boxHelp[index].title}
+
+ }>
+ {boxHelp[index].text}
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/Bepis.tsx b/tgui/packages/tgui/interfaces/Bepis.tsx
deleted file mode 100644
index d2835e530d36..000000000000
--- a/tgui/packages/tgui/interfaces/Bepis.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-import { BooleanLike } from 'common/react';
-import { useBackend } from '../backend';
-import { Box, Button, Grid, LabeledList, NumberInput, Section } from '../components';
-import { Window } from '../layouts';
-
-type Data = {
- amount: number;
- account_owner: string;
- manual_power: BooleanLike;
- stored_cash: number;
- accuracy_percentage: number;
- positive_cash_offset: number;
- negative_cash_offset: number;
- silicon_check: BooleanLike;
- success_estimate: number;
- mean_value: number;
- error_name: string;
-};
-
-const BEPIS_SLOGAN = `All you need to know about the B.E.P.I.S. and you! The
-B.E.P.I.S. performs hundreds of tests a second using
-electrical and financial resources to invent new products,
-or discover new technologies otherwise overlooked for being
-too risky or too niche to produce!`;
-
-export const Bepis = (props, context) => {
- const { act, data } = useBackend(context);
- const {
- amount,
- account_owner,
- manual_power,
- stored_cash,
- accuracy_percentage,
- positive_cash_offset,
- negative_cash_offset,
- silicon_check,
- success_estimate,
- mean_value,
- error_name,
- } = data;
-
- return (
-
-
-
- act('toggle_power')}
- />
- }>
- {BEPIS_SLOGAN}
-
- act('account_reset')}
- />
- }>
- Console is currently being operated by{' '}
- {account_owner ? account_owner : 'no one'}.
-
-
-
-
-
-
- {stored_cash}
-
-
- {accuracy_percentage}%
-
-
- {positive_cash_offset}
-
-
- {negative_cash_offset}
-
-
-
- act('amount', {
- amount: value,
- })
- }
- />
-
-
-
-
-
-
-
-
- Average technology cost: {mean_value}
- Current chance of Success: Est. {success_estimate}%
- {error_name && (
-
- Previous Failure Reason: Deposited cash value too low.
- Please insert more money for future success.
-
- )}
-
-
-
-
-
-
- );
-};
diff --git a/tgui/packages/tgui/interfaces/Canvas.tsx b/tgui/packages/tgui/interfaces/Canvas.tsx
index f4d374629470..1dddec2e9073 100644
--- a/tgui/packages/tgui/interfaces/Canvas.tsx
+++ b/tgui/packages/tgui/interfaces/Canvas.tsx
@@ -1,12 +1,15 @@
import { Color } from 'common/color';
-import { decodeHtmlEntities } from 'common/string';
+import { multiline, decodeHtmlEntities } from 'common/string';
import { Component, createRef, RefObject } from 'inferno';
import { useBackend } from '../backend';
-import { Box, Button, Flex } from '../components';
+import { Tooltip, Icon, Box, Button, Flex } from '../components';
import { Window } from '../layouts';
+const LEFT_CLICK = 0;
+
type PaintCanvasProps = Partial<{
onCanvasModifiedHandler: (data: PointData[]) => void;
+ onCanvasDropperHandler: (x: number, y: number) => void;
value: string[][];
width: number;
height: number;
@@ -14,6 +17,8 @@ type PaintCanvasProps = Partial<{
imageHeight: number;
editable: boolean;
drawing_color: string | null;
+ has_palette: boolean;
+ show_grid: boolean;
}>;
type PointData = {
@@ -33,8 +38,10 @@ const toMassPaintFormat = (data: PointData[]) => {
class PaintCanvas extends Component {
canvasRef: RefObject;
baseImageData: Color[][];
+ is_grid_shown: boolean;
modifiedElements: PointData[];
onCanvasModified: (data: PointData[]) => void;
+ onCanvasDropper: (x: number, y: number) => void;
drawing: boolean;
drawing_color: string;
@@ -42,12 +49,15 @@ class PaintCanvas extends Component {
super(props);
this.canvasRef = createRef();
this.modifiedElements = [];
+ this.is_grid_shown = false;
this.drawing = false;
this.onCanvasModified = props.onCanvasModifiedHandler;
+ this.onCanvasDropper = props.onCanvasDropperHandler;
this.handleStartDrawing = this.handleStartDrawing.bind(this);
this.handleDrawing = this.handleDrawing.bind(this);
this.handleEndDrawing = this.handleEndDrawing.bind(this);
+ this.handleDropper = this.handleDropper.bind(this);
}
componentDidMount() {
@@ -58,9 +68,10 @@ class PaintCanvas extends Component {
componentDidUpdate() {
// eslint-disable-next-line max-len
if (
- this.props.value !== undefined &&
- JSON.stringify(this.baseImageData) !==
- JSON.stringify(fromDM(this.props.value))
+ (this.props.value !== undefined &&
+ JSON.stringify(this.baseImageData) !==
+ JSON.stringify(fromDM(this.props.value))) ||
+ this.is_grid_shown !== this.props.show_grid
) {
this.syncCanvas();
}
@@ -84,6 +95,7 @@ class PaintCanvas extends Component {
return;
}
this.baseImageData = fromDM(this.props.value);
+ this.is_grid_shown = !!this.props.show_grid;
this.modifiedElements = [];
const canvas = this.canvasRef.current!;
@@ -94,6 +106,11 @@ class PaintCanvas extends Component {
const color = element[y];
ctx.fillStyle = color.toString();
ctx.fillRect(x, y, 1, 1);
+ if (this.is_grid_shown) {
+ ctx.strokeStyle = '#888888';
+ ctx.lineWidth = 0.05;
+ ctx.strokeRect(x, y, 1, 1);
+ }
}
}
}
@@ -115,7 +132,8 @@ class PaintCanvas extends Component {
if (
!this.props.editable ||
this.props.drawing_color === undefined ||
- this.props.drawing_color === null
+ this.props.drawing_color === null ||
+ event.button !== LEFT_CLICK
) {
return;
}
@@ -133,6 +151,11 @@ class PaintCanvas extends Component {
const ctx = canvas.getContext('2d')!;
ctx.fillStyle = color;
ctx.fillRect(x, y, 1, 1);
+ if (this.is_grid_shown) {
+ ctx.strokeStyle = '#888888';
+ ctx.lineWidth = 0.05;
+ ctx.strokeRect(x, y, 1, 1);
+ }
}
handleDrawing(event: MouseEvent) {
@@ -155,6 +178,15 @@ class PaintCanvas extends Component {
}
}
+ handleDropper(event: MouseEvent) {
+ event.preventDefault();
+ if (!this.props.has_palette) {
+ return;
+ }
+ const coords = this.eventToCoords(event);
+ this.onCanvasDropper(coords.x + 1, coords.y + 1); // 1-based index dm side
+ }
+
render() {
const {
value,
@@ -173,7 +205,8 @@ class PaintCanvas extends Component {
onMouseDown={this.handleStartDrawing}
onMouseMove={this.handleDrawing}
onMouseUp={this.handleEndDrawing}
- onMouseOut={this.handleEndDrawing}>
+ onMouseOut={this.handleEndDrawing}
+ onContextMenu={this.handleDropper}>
Canvas failed to render.
);
@@ -204,6 +237,7 @@ type CanvasData = {
patron: string | null;
date: string | null;
show_plaque: boolean;
+ show_grid: boolean;
};
export const Canvas = (props, context) => {
@@ -212,7 +246,8 @@ export const Canvas = (props, context) => {
const scaled_width = width * data.px_per_unit;
const scaled_height = height * data.px_per_unit;
const average_plaque_height = 90;
- const palette_height = 36;
+ const palette_height = 44;
+ const griddy = !!data.show_grid && !!data.editable && !!data.paint_tool_color;
return (
{
(data.editable && data.paint_tool_palette ? palette_height : 0)
}>
+
+ {!!data.paint_tool_palette && (
+
+
+
+
+
+ )}
+ {!!data.editable && !!data.paint_tool_color && (
+
+
+ )}
+
{
width={scaled_width}
height={scaled_height}
drawing_color={data.paint_tool_color}
+ show_grid={griddy}
onCanvasModifiedHandler={(changed) =>
act('paint', { data: toMassPaintFormat(changed) })
}
+ onCanvasDropperHandler={(x, y) =>
+ act('select_color_from_coords', { px: x, py: y })
+ }
editable={data.editable}
+ has_palette={!!data.paint_tool_palette}
/>
{!!data.editable && !!data.paint_tool_palette && (
@@ -257,6 +331,13 @@ export const Canvas = (props, context) => {
selected_color: element.color,
})
}
+ oncontextmenu={(e) => {
+ e.preventDefault();
+ act('change_palette', {
+ color_index: index + 1,
+ old_color: element.color,
+ });
+ }}
/>
))}
diff --git a/tgui/packages/tgui/interfaces/NetpodOutfits.tsx b/tgui/packages/tgui/interfaces/NetpodOutfits.tsx
new file mode 100644
index 000000000000..afc6a2bd6cad
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/NetpodOutfits.tsx
@@ -0,0 +1,109 @@
+import { Button, Divider, Input, NoticeBox, Section, Stack, Tabs } from '../components';
+import { useBackend, useLocalState } from '../backend';
+
+import { Window } from '../layouts';
+import { createSearch } from '../../common/string';
+
+type Data = {
+ netsuit: string;
+ collections: Collection[];
+ types: string[];
+};
+
+type Collection = {
+ name: string;
+ outfits: Outfit[];
+};
+
+type Outfit = {
+ path: string;
+ name: string;
+ type: string;
+};
+
+export const NetpodOutfits = (props, context) => {
+ const { act, data } = useBackend(context);
+ const { netsuit, collections = [] } = data;
+ const [selectedType, setSelectedType] = useLocalState(
+ context,
+ 'selectedType',
+ collections[0]
+ );
+ const [search, setSearch] = useLocalState(
+ context,
+ 'outfitSearch',
+ ''
+ );
+
+ const searchFn = createSearch(search, (outfit: Outfit) => outfit.name);
+
+ const filtered = selectedType?.outfits
+ ?.filter(searchFn)
+ .sort((a, b) => (a.name > b.name ? 1 : 0));
+
+ const selected =
+ selectedType.outfits?.find((outfit) => outfit.path === netsuit)?.name ??
+ 'None';
+
+ return (
+
+
+
+
+ setSearch(value)}
+ placeholder="Search"
+ value={search}
+ />
+ }>
+
+
+
+ {collections.map((collection, index) => (
+ <>
+ setSelectedType(collection)}
+ selected={selectedType === collection}>
+ {collection.name}
+
+ {index > 0 && }
+ >
+ ))}
+
+
+
+
+
+ {filtered.map(({ path, name }, index) => (
+
+
+
+ ))}
+
+
+
+
+
+
+
+ {selected}
+
+
+
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts
index d80d284eed04..eb03e0ed9215 100644
--- a/tgui/packages/tgui/interfaces/Orbit/constants.ts
+++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts
@@ -2,8 +2,12 @@ export const ANTAG2COLOR = {
'Abductors': 'pink',
'Ash Walkers': 'olive',
'Biohazards': 'brown',
+ 'Bounty Hunters': 'yellow',
'CentCom': 'teal',
+ 'Cyber Authority': 'teal',
'Emergency Response Team': 'teal',
+ 'Escaped Fugitives': 'orange',
+ 'Xenomorph Infestation': 'violet',
} as const;
export const THREAT = {
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts
new file mode 100644
index 000000000000..03fc370c1f4c
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts
@@ -0,0 +1,23 @@
+import { Antagonist, Category } from '../base';
+import { multiline } from 'common/string';
+
+const CyberPolice: Antagonist = {
+ key: 'cyberpolice',
+ name: 'Cyber Police',
+ description: [
+ multiline`
+ On the razor edge of the digital realm, the Cyber Authority has tasked
+ enforcement officers with preserving system harmony.
+ `,
+
+ multiline`
+ Using refined martial arts skills, terminate bitrunners in the virtual
+ domain. Look snazzy while doing it. Cyber police are short lived combat
+ roles that spawn from mobs (other than elites or players) in the virtual
+ domain.
+ `,
+ ],
+ category: Category.Midround,
+};
+
+export default CyberPolice;
diff --git a/tgui/packages/tgui/interfaces/QuantumConsole.tsx b/tgui/packages/tgui/interfaces/QuantumConsole.tsx
new file mode 100644
index 000000000000..5e87e61bb462
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/QuantumConsole.tsx
@@ -0,0 +1,350 @@
+import { Window } from '../layouts';
+import { useBackend } from '../backend';
+import { Button, Collapsible, Icon, NoticeBox, ProgressBar, Section, Stack, Table, Tooltip } from '../components';
+import { BooleanLike } from 'common/react';
+import { LoadingScreen } from './common/LoadingToolbox';
+import { TableCell, TableRow } from '../components/Table';
+
+type Data =
+ | {
+ available_domains: Domain[];
+ avatars: Avatar[];
+ connected: 1;
+ generated_domain: string | null;
+ occupants: number;
+ points: number;
+ randomized: BooleanLike;
+ ready: BooleanLike;
+ retries_left: number;
+ scanner_tier: number;
+ }
+ | {
+ connected: 0;
+ };
+
+type Avatar = {
+ health: number;
+ name: string;
+ pilot: string;
+ brute: number;
+ burn: number;
+ tox: number;
+ oxy: number;
+};
+
+type Domain = {
+ cost: number;
+ desc: string;
+ difficulty: number;
+ id: string;
+ name: string;
+ reward: number | string;
+};
+
+type DomainEntryProps = {
+ domain: Domain;
+};
+
+type DisplayDetailsProps = {
+ amount: number | string;
+ color: string;
+ icon: string;
+};
+
+enum Difficulty {
+ None,
+ Low,
+ Medium,
+ High,
+}
+
+const isConnected = (data: Data): data is Data & { connected: 1 } =>
+ data.connected === 1;
+
+const getColor = (difficulty: number) => {
+ switch (difficulty) {
+ case Difficulty.Low:
+ return 'yellow';
+ case Difficulty.Medium:
+ return 'average';
+ case Difficulty.High:
+ return 'bad';
+ default:
+ return '';
+ }
+};
+
+export const QuantumConsole = (props, context) => {
+ const { data } = useBackend(context);
+
+ return (
+
+
+ {!!data.connected && !data.ready && }
+
+
+
+ );
+};
+
+const AccessView = (props, context) => {
+ const { act, data } = useBackend(context);
+
+ if (!isConnected(data)) {
+ return No server connected!;
+ }
+
+ const {
+ available_domains = [],
+ generated_domain,
+ ready,
+ occupants,
+ points,
+ } = data;
+
+ const sorted = available_domains.sort((a, b) => a.cost - b.cost);
+
+ const selected = sorted.find(({ id }) => id === generated_domain);
+
+ return (
+
+
+
+
+
+
+ {points}
+
+ >
+ }
+ fill
+ scrollable
+ title="Virtual Domains">
+ {sorted.map((domain) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+ {selected?.name ?? 'Nothing loaded'}
+
+
+
+ act('stop_domain')}
+ tooltip="Begins shutdown. Will notify anyone connected."
+ />
+
+
+
+
+
+ );
+};
+
+const DomainEntry = (props: DomainEntryProps, context) => {
+ const {
+ domain: { cost, desc, difficulty, id, name, reward },
+ } = props;
+ const { act, data } = useBackend(context);
+ if (!isConnected(data)) {
+ return null;
+ }
+
+ const { generated_domain, ready, occupants, randomized, points } = data;
+
+ const current = generated_domain === id;
+ const occupied = occupants > 0;
+ let buttonIcon, buttonName;
+ if (randomized) {
+ buttonIcon = '';
+ buttonName = '???';
+ } else if (current) {
+ buttonIcon = 'download';
+ buttonName = 'Deployed';
+ } else {
+ buttonIcon = 'coins';
+ buttonName = 'Deploy';
+ }
+
+ return (
+ act('set_domain', { id })}
+ tooltip={!!generated_domain && 'Stop current domain first.'}>
+ {buttonName}
+
+ }
+ color={getColor(difficulty)}
+ title={
+ <>
+ {name}
+ {difficulty === Difficulty.High && }
+ >
+ }>
+
+
+ {desc}
+
+
+
+
+
+
+
+ );
+};
+
+const AvatarDisplay = (props, context) => {
+ const { act, data } = useBackend(context);
+ if (!isConnected(data)) {
+ return null;
+ }
+
+ const { avatars = [], generated_domain, retries_left } = data;
+
+ return (
+
+ {!!generated_domain && (
+
+
+
+
+
+ )}
+
+
+
+
+ }>
+
+ {avatars.map(({ health, name, pilot, brute, burn, tox, oxy }) => (
+
+
+ {pilot} as{' '}
+ "{name}"
+
+
+
+ {brute === 0 && burn === 0 && tox === 0 && oxy === 0 && (
+
+
+
+ )}
+
+ 50 ? 'bad' : 'gray'} name="tint" />
+
+
+ 50 ? 'average' : 'gray'} name="fire" />
+
+
+ 50 ? 'green' : 'gray'}
+ name="skull-crossbones"
+ />
+
+
+ 50 ? 'blue' : 'gray'} name="lungs" />
+
+
+
+
+
+
+
+ ))}
+
+
+ );
+};
+
+const DisplayDetails = (props: DisplayDetailsProps, context) => {
+ const { amount = 0, color, icon = 'star' } = props;
+
+ if (amount === 0) {
+ return No bandwidth;
+ }
+
+ if (typeof amount === 'string') {
+ return {String(amount)}; // don't ask
+ }
+
+ if (amount > 4) {
+ return (
+
+
+ {amount}
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+ {Array.from({ length: amount }, (_, index) => (
+
+
+
+ ))}
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/common/JobToIcon.ts b/tgui/packages/tgui/interfaces/common/JobToIcon.ts
index a5f5c72dd0b8..c75cee645baa 100644
--- a/tgui/packages/tgui/interfaces/common/JobToIcon.ts
+++ b/tgui/packages/tgui/interfaces/common/JobToIcon.ts
@@ -4,6 +4,8 @@ const BASEICONS = {
'Assistant': 'toolbox',
'Atmospheric Technician': 'fan',
'Bartender': 'cocktail',
+ 'Bit Avatar': 'code',
+ 'Bitrunner': 'gamepad',
'Botanist': 'seedling',
'Captain': 'crown',
'Cargo Technician': 'box',
@@ -18,7 +20,9 @@ const BASEICONS = {
'Chief Medical Officer': 'user-md',
'Clown': 'face-grin-tears',
'Cook': 'utensils',
+ 'Coroner': 'skull',
'Curator': 'book',
+ 'Cyber Police': 'qrcode',
'Cyborg': 'robot',
'Detective': 'user-secret',
'Geneticist': 'dna',
diff --git a/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx b/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx
new file mode 100644
index 000000000000..a77eb78c3389
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx
@@ -0,0 +1,32 @@
+import { Stack, Icon, Dimmer } from '../../components';
+
+/** Spinner that represents loading states.
+ *
+ * @usage
+ * ```tsx
+ * /// rest of the component
+ * return (
+ * ///... content to overlay
+ * {!!loading && }
+ * /// ... content to overlay
+ * );
+ * ```
+ * OR
+ * ```tsx
+ * return (
+ * {loading ? : }
+ * )
+ * ```
+ */
+export const LoadingScreen = (props, context) => {
+ return (
+
+
+
+
+
+ Please wait...
+
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/common/Objectives.tsx b/tgui/packages/tgui/interfaces/common/Objectives.tsx
new file mode 100644
index 000000000000..a6bd5b539bff
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/common/Objectives.tsx
@@ -0,0 +1,92 @@
+import { BooleanLike } from 'common/react';
+import { InfernoNode } from 'inferno';
+import { useBackend } from '../../backend';
+import { Button, Stack } from '../../components';
+
+export type Objective = {
+ // The title of the objective, not actually displayed so optional
+ name?: string;
+ // What "number" objective this is, IE, its index in the list of objectives
+ count: number;
+ // The text explaining what this objective requires
+ explanation: string;
+ // Whether or not this objective is completed
+ complete: BooleanLike;
+};
+
+type ObjectivePrintoutProps = {
+ // For passing onto the Stack component
+ fill?: boolean;
+ // Allows additional components to follow the printout in the same stack
+ objectiveFollowup?: InfernoNode;
+ // The prefix to use for each objective, defaults to "#" (#1, #2)
+ objectivePrefix?: string;
+ // The font size to use for each objective
+ objectiveTextSize?: string;
+ // The objectives to print out
+ objectives: Objective[];
+ // The title to use for the printout, defaults to "Your current objectives"
+ titleMessage?: string;
+};
+
+export const ObjectivePrintout = (props: ObjectivePrintoutProps, context) => {
+ const {
+ fill,
+ objectiveFollowup,
+ objectivePrefix,
+ objectiveTextSize,
+ objectives = [],
+ titleMessage,
+ } = props;
+
+ return (
+
+ {titleMessage || `Your current objectives`}:
+
+ {(objectives.length === 0 && 'None!') ||
+ objectives.map((objective) => (
+
+ {objectivePrefix || '#'}
+ {objective.count}: {objective.explanation}
+
+ ))}
+
+ {!!objectiveFollowup && {objectiveFollowup}}
+
+ );
+};
+
+type ReplaceObjectivesProps = {
+ // Whether we can actually use this button
+ can_change_objective: BooleanLike;
+ // What do we call our button
+ button_title: string;
+ // What colour is our button
+ button_colour: string;
+ // Tooltip to display on our button
+ button_tooltip?: string;
+};
+
+export const ReplaceObjectivesButton = (
+ props: ReplaceObjectivesProps,
+ context
+) => {
+ const {
+ can_change_objective,
+ button_title,
+ button_colour,
+ button_tooltip = 'Replace your existing objectives with a custom one. This action can only be taken once',
+ } = props;
+ const { act } = useBackend(context);
+ if (!can_change_objective) {
+ return null;
+ }
+ return (
+