diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
index dad43ef34082..bda6fb742d53 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -1144,7 +1144,7 @@
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/complex/wall)
"sa" = (
-/obj/effect/spawner/random/food_or_drink/garden/seaweed,
+/obj/effect/spawner/lootdrop/garden/seaweed,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"so" = (
diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
index 8c8097e2c794..b2c39404d641 100644
--- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
@@ -825,7 +825,7 @@
dir = 1
},
/obj/item/candle,
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/wood{
light_range = 2
},
diff --git a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
index 39bebb15982e..312e11abe0f4 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
@@ -113,7 +113,7 @@
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"bs" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"bu" = (
@@ -412,9 +412,9 @@
/area/ruin/beach/oceantown)
"fn" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"fp" = (
@@ -711,8 +711,8 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"ix" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"iz" = (
@@ -1560,11 +1560,11 @@
/area/ruin/beach/oceantown/bar)
"un" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"ur" = (
@@ -3367,8 +3367,8 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"NX" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"Oe" = (
@@ -3541,7 +3541,7 @@
/area/ruin/beach/oceantown)
"PF" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"PH" = (
@@ -3569,7 +3569,7 @@
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Qf" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"Qm" = (
@@ -3733,10 +3733,10 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"SS" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"SY" = (
@@ -3906,7 +3906,7 @@
/area/ruin/beach/oceantown/bar)
"Vr" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/carpet,
/area/ruin/beach/oceantown)
"VI" = (
@@ -3945,9 +3945,9 @@
/area/ruin/beach/oceantown/shop)
"VQ" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"VS" = (
@@ -4112,11 +4112,11 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"XQ" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"XS" = (
diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
index fddfa5bdc00f..67ac69292603 100644
--- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
@@ -1111,7 +1111,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/box,
/obj/item/stack/cable_coil/red,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/beach/piratecrash/shuttle)
@@ -1350,7 +1350,7 @@
"Pf" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/stack/sheet/mineral/gold/five,
/obj/item/stack/sheet/mineral/silver/five,
/obj/item/stack/sheet/mineral/silver/five,
@@ -1433,9 +1433,9 @@
"QG" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/circuit/machine/rare,
-/obj/effect/spawner/random/maintenance/four,
-/obj/effect/spawner/random/circuit/machine/common,
+/obj/effect/spawner/lootdrop/random_machine_circuit_rare,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/lootdrop/random_machine_circuit_common,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index fbf9bf8ed4eb..839e87815f93 100644
--- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -35,7 +35,7 @@
"bI" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
"bN" = (
@@ -53,7 +53,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/ruin/unpowered)
"cJ" = (
@@ -543,7 +543,7 @@
pixel_x = -10;
pixel_y = 4
},
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/wood,
/area/ruin/beach/treasure_cove)
"rA" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
index 294dd1056431..707be4573d13 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
@@ -473,7 +473,9 @@
/obj/structure/bed/double{
dir = 1
},
-/obj/effect/spawner/random/bedsheet/double,
+/obj/item/bedsheet/dorms/double{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_holemaker)
"iN" = (
@@ -672,7 +674,7 @@
/area/ruin/unpowered/crashed_holemaker)
"lt" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/spawner/lootdrop/crate_spawner,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"lu" = (
@@ -741,7 +743,7 @@
},
/obj/item/radio/intercom/directional/north,
/obj/structure/closet/cabinet,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_holemaker)
@@ -1439,7 +1441,7 @@
/turf/open/floor/carpet,
/area/ruin/unpowered/crashed_holemaker)
"ze" = (
-/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/spawner/lootdrop/crate_spawner,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"zh" = (
@@ -2387,7 +2389,7 @@
/turf/open/floor/plasteel/icemoon,
/area/ruin/unpowered/crashed_holemaker)
"RL" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{
dir = 4
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm b/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm
index a698cf49ea18..92b840e05aa0 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm
@@ -337,7 +337,7 @@
/turf/open/floor/concrete/slab_3/icemoon,
/area/overmap_encounter/planetoid/cave/explored)
"fe" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/effect/turf_decal/siding/wood,
/obj/structure/bed{
icon_state = "dirty_mattress"
@@ -1256,10 +1256,10 @@
/obj/item/clothing/head/frontier,
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
-/obj/effect/spawner/random/medical/chem_jug,
-/obj/effect/spawner/random/medical/chem_jug,
-/obj/effect/spawner/random/medical/chem_jug,
-/obj/effect/spawner/random/medical/chem_jug,
+/obj/effect/spawner/lootdrop/chem_jug,
+/obj/effect/spawner/lootdrop/chem_jug,
+/obj/effect/spawner/lootdrop/chem_jug,
+/obj/effect/spawner/lootdrop/chem_jug,
/obj/effect/turf_decal/corner/opaque/blue,
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 4
@@ -1659,7 +1659,7 @@
/area/ruin/powered/icemoon/lodge/mainhall)
"wD" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -1771,7 +1771,7 @@
/turf/open/floor/wood/maple,
/area/ruin/powered/icemoon/lodge/mainhall)
"yi" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
@@ -1968,9 +1968,9 @@
/obj/effect/turf_decal/spline/fancy/wood{
dir = 8
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/wood/mahogany{
icon_state = "wood-broken6"
},
@@ -2677,7 +2677,7 @@
/turf/closed/wall/mineral/wood,
/area/ruin/powered/icemoon/lodge/residential)
"Nq" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/effect/turf_decal/siding/wood,
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed{
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index f4db9fa9d9f7..42aa6b288469 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -40,7 +40,7 @@
"fD" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/blood/bubblegum,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/powered)
"fQ" = (
@@ -459,7 +459,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"LZ" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/powered)
"Nq" = (
@@ -477,7 +477,7 @@
/turf/open/floor/carpet,
/area/ruin/powered)
"Pp" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/holofloor/wood,
/area/ruin/powered)
"PQ" = (
@@ -554,7 +554,7 @@
"WH" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/powered)
"Ze" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
index 1a52405a3ec0..d560e98b2f20 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
@@ -478,7 +478,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"xN" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"xQ" = (
@@ -1028,7 +1028,7 @@
/obj/structure/rack,
/obj/item/hatchet,
/obj/item/hatchet,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"Ul" = (
@@ -1086,7 +1086,7 @@
/obj/item/ammo_casing/shotgun/improvised,
/obj/item/ammo_casing/shotgun/improvised,
/obj/item/ammo_casing/shotgun/improvised,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"WH" = (
@@ -1181,7 +1181,7 @@
"Yx" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/rack_parts,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/wood{
icon_state = "wood-broken3";
initial_gas_mix = "ICEMOON_ATMOS"
diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index 1afed51826aa..77c280d07e90 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -811,10 +811,10 @@
/area/overmap_encounter/planetoid/jungle/explored)
"fJ" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/dark,
/area/overmap_encounter/planetoid/jungle/explored)
"fL" = (
@@ -2699,7 +2699,7 @@
/area/overmap_encounter/planetoid/jungle/explored)
"sK" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/grimy,
/area/ruin/jungle/starport)
"sN" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
index 1159123d30f1..923e58b4cb05 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
@@ -167,7 +167,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"bH" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth/grey,
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/carpet/nanoweave/beige,
@@ -1028,10 +1028,10 @@
pixel_y = 32
},
/obj/structure/closet/secure_closet/freezer/wall/directional/west,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/condiment/enzyme{
pixel_x = -8;
pixel_y = 5
@@ -2221,7 +2221,7 @@
/area/ruin/jungle/cavecrew/bridge)
"Be" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth/grey,
/turf/open/floor/carpet/red_gold,
/area/ruin/jungle/cavecrew/dormitories)
diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
index 467dd8e8abd7..75b7e390c540 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
@@ -2108,7 +2108,7 @@
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 1
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Ie" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
index 4429e0b8779a..47455933ec16 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -685,7 +685,7 @@
/turf/open/floor/plating/grass/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"ei" = (
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/plating/dirt/jungle/dark,
/area/overmap_encounter/planetoid/cave/explored)
"el" = (
@@ -989,7 +989,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/dirt,
/obj/structure/railing{
color = "#A47449";
@@ -1446,7 +1446,7 @@
dir = 4;
layer = 3.9
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/cable/yellow{
icon_state = "1-9"
},
@@ -3204,7 +3204,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/cable/yellow{
icon_state = "0-5"
},
@@ -4344,11 +4344,11 @@
/obj/effect/turf_decal/techfloor/corner{
dir = 1
},
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/jungle/paradise/cargo)
"AT" = (
@@ -5764,9 +5764,9 @@
/obj/structure/cable/yellow{
icon_state = "1-6"
},
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/lootdrop/three_course_meal,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
@@ -7185,7 +7185,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood/walnut,
/area/ruin/jungle/paradise/dorms)
"UC" = (
@@ -7411,7 +7411,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"VV" = (
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"VW" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
index 60d24171ad0f..2eba13537777 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
@@ -662,7 +662,7 @@
/obj/item/storage/box/donkpockets/donkpocketteriyaki,
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets/donkpocketberry,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort)
"ve" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
index dd98807a4958..24fea81ce05c 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
@@ -77,7 +77,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
dir = 4
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/listening_post)
"cm" = (
@@ -2039,7 +2039,7 @@
/area/ruin/unpowered/listening_post/engineering)
"MZ" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/structure/sign/poster/official/high_class_martini{
pixel_y = 32
},
@@ -2124,8 +2124,8 @@
/area/ruin/unpowered/listening_post/commons)
"Om" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/canteen)
"On" = (
@@ -2246,7 +2246,7 @@
icon_state = "trimline";
dir = 8
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 10
},
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
index e0a98de791fc..336588e2d807 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
@@ -2415,7 +2415,7 @@
pixel_x = -26
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/pod/light,
/area/ruin/unpowered/crashed_starwalker)
"MO" = (
@@ -2447,7 +2447,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit,
/area/ruin/unpowered/crashed_starwalker)
"MX" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/structure/railing{
dir = 4
},
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
index 3a6b545859b7..768c6275cf56 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
@@ -164,8 +164,8 @@
/area/ruin/lavaland/factory/manager_office)
"bE" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/item/storage/bag/trash,
/obj/item/reagent_containers/glass/bucket,
/obj/item/mop,
@@ -216,7 +216,7 @@
"cm" = (
/obj/structure/table/wood,
/obj/machinery/light/directional/east,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/wood,
/area/ruin/lavaland/factory/adminstrative)
"co" = (
@@ -341,7 +341,7 @@
/area/ruin/lavaland/factory/warehouse)
"dc" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
@@ -641,7 +641,7 @@
},
/obj/item/modular_computer/laptop,
/obj/item/stack/arcadeticket,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"go" = (
@@ -1506,7 +1506,7 @@
},
/obj/item/storage/wallet/random,
/obj/item/instrument/guitar,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"oh" = (
@@ -1887,7 +1887,7 @@
/obj/item/poster/random_contraband,
/obj/item/toy/eightball,
/obj/item/toy/cards/deck/tarot,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"rh" = (
@@ -2287,7 +2287,7 @@
/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
/obj/item/lighter/greyscale,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"ve" = (
@@ -2985,7 +2985,7 @@
/obj/machinery/light/directional/west,
/obj/item/melee/knife/hunting,
/obj/item/clothing/suit/hooded/cloak/goliath,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"CW" = (
@@ -3149,18 +3149,18 @@
/obj/effect/turf_decal/corner/opaque/ntblue{
dir = 1
},
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"EP" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
@@ -4062,11 +4062,11 @@
/area/overmap_encounter/planetoid/cave/explored)
"Or" = (
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -4945,9 +4945,9 @@
/obj/effect/turf_decal/corner/opaque/bar,
/obj/structure/closet/crate/bin,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plasteel,
/area/ruin/lavaland/factory/dorms)
"Xn" = (
@@ -5078,7 +5078,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"YJ" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
index c9c7ea2501f3..3b2b995fd979 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
@@ -109,7 +109,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
"by" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel,
@@ -214,7 +214,7 @@
/area/ruin/rockplanet/nanotrasen)
"db" = (
/obj/structure/bed/pod,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
@@ -1551,7 +1551,7 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
"Ap" = (
@@ -1699,7 +1699,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"Cx" = (
/obj/structure/bed/pod,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/dim/directional/east,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
@@ -2493,7 +2493,7 @@
/area/ruin/rockplanet/nanotrasen)
"Rm" = (
/obj/structure/bed/pod,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/dim/directional/east,
/turf/open/floor/carpet/black,
/area/ruin/rockplanet/nanotrasen)
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
index 6d6f81ffd5a0..3926cffbbf81 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
@@ -401,7 +401,7 @@
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"dZ" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/spline/fancy/opaque/white,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
@@ -859,7 +859,7 @@
dir = 8;
icon_state = "dirty_mattress"
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/rockplanet/distillery/crew)
"kn" = (
@@ -1613,12 +1613,12 @@
"sQ" = (
/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/crew)
"tc" = (
@@ -2187,7 +2187,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/pod,
/area/ruin/rockplanet/distillery/office)
"yO" = (
@@ -3032,10 +3032,10 @@
"Iz" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline/red,
-/obj/effect/spawner/random/circuit/computer/common,
-/obj/effect/spawner/random/maintenance/four,
-/obj/effect/spawner/random/circuit/machine/common,
-/obj/effect/spawner/random/circuit/machine/common,
+/obj/effect/spawner/lootdrop/random_computer_circuit_common,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/obj/effect/spawner/lootdrop/random_machine_circuit_common,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/crew)
"IA" = (
@@ -3419,7 +3419,7 @@
icon_state = "1-5"
},
/obj/machinery/light/small/directional/west,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/wood/rockplanet{
icon_state = "wood-broken6"
},
@@ -3582,7 +3582,9 @@
},
/area/overmap_encounter/planetoid/rockplanet/explored)
"Os" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random{
+ tilted = 1
+ },
/obj/effect/turf_decal/spline/fancy/opaque/white,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
@@ -4183,7 +4185,7 @@
/obj/structure/fluff/glowshroom,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/wood,
/area/ruin/rockplanet/distillery/crew)
"Vg" = (
@@ -4197,7 +4199,7 @@
widenet = 1
},
/obj/machinery/light/small/broken/directional/east,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
"Vj" = (
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
index 6db4bf5240a2..ff58248ffc4e 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
@@ -408,7 +408,7 @@
icon_state = "1-8"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/random/salvage_matter_bin,
+/obj/effect/spawner/lootdrop/salvage_matter_bin,
/turf/open/floor/plasteel/rockplanet,
/area/ruin/rockplanet/nomad)
"oz" = (
@@ -558,7 +558,7 @@
},
/obj/structure/frame/machine,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/random/salvage_matter_bin,
+/obj/effect/spawner/lootdrop/salvage_matter_bin,
/turf/open/floor/plating,
/area/ruin/rockplanet/nomad)
"sn" = (
@@ -1272,7 +1272,7 @@
icon_state = "spline_plain_cee"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/random/salvage_matter_bin,
+/obj/effect/spawner/lootdrop/salvage_matter_bin,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/nomad)
"Lk" = (
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
index 1c518cceabca..f18742a8aadb 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -288,7 +288,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/shippingdockoffice)
"cz" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
@@ -2068,7 +2068,7 @@
"sa" = (
/obj/effect/turf_decal/rechargefloor,
/obj/effect/turf_decal/industrial/warning/dust,
-/obj/effect/spawner/random/exotic/ripley,
+/obj/effect/spawner/lootdrop/ripley,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdockwarehouse)
"sc" = (
@@ -2132,7 +2132,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"su" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -2426,7 +2426,7 @@
/area/ruin/rockplanet/shippingdockoffice)
"uo" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/trash/can,
/obj/item/trash/can/food/peaches,
/obj/item/trash/tray,
@@ -4044,7 +4044,7 @@
},
/area/overmap_encounter/planetoid/rockplanet/explored)
"HL" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -4208,7 +4208,7 @@
/turf/open/floor/concrete/pavement,
/area/ruin/rockplanet/shippingdockwarehouse)
"Ju" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
"Jz" = (
@@ -5282,9 +5282,9 @@
"SJ" = (
/obj/structure/rack,
/obj/structure/window/reinforced,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"SM" = (
@@ -5968,7 +5968,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/lootdrop/maintenance/eight,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"XU" = (
@@ -6020,7 +6020,7 @@
"Yf" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
index c19dd9de68a1..c7b060634951 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -115,7 +115,7 @@
/area/ruin)
"fb" = (
/obj/structure/flora/ash/cap_shroom,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -269,7 +269,7 @@
/area/overmap_encounter/planetoid/sand/explored)
"ko" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin)
@@ -290,7 +290,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"kO" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -699,7 +699,7 @@
/area/ruin)
"AI" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin)
"AR" = (
@@ -915,7 +915,7 @@
/turf/open/floor/wood,
/area/ruin)
"HX" = (
-/obj/effect/spawner/random/exotic/armory,
+/obj/effect/spawner/lootdrop/armory_contraband/metastation,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -964,7 +964,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"JE" = (
-/obj/effect/spawner/random/engineering/tool/sydnie,
+/obj/effect/spawner/lootdrop/tool_engie_sydnie,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -1164,7 +1164,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"SV" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -1273,7 +1273,7 @@
/area/ruin)
"Xa" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/wood,
/area/ruin)
"Xb" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index 17a16c3fffc6..219fc7a6b6b6 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -133,7 +133,7 @@
/area/ruin/whitesands/saloon)
"eq" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
@@ -220,7 +220,7 @@
/area/ruin/whitesands/saloon)
"ge" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
icon_state = "wood-broken5"
@@ -426,7 +426,7 @@
/area/ruin/whitesands/saloon)
"lg" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"lB" = (
@@ -444,7 +444,7 @@
/area/ruin/whitesands/saloon)
"lI" = (
/obj/structure/table/wood/poker,
-/obj/effect/spawner/random/entertainment/gambling,
+/obj/effect/spawner/lootdrop/gambling,
/turf/open/floor/carpet,
/area/ruin/whitesands/saloon)
"lV" = (
@@ -645,7 +645,7 @@
/area/ruin/whitesands/saloon)
"sj" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
@@ -848,7 +848,7 @@
/area/ruin/whitesands/saloon)
"zv" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood{
icon_state = "wood-broken5"
},
@@ -1025,7 +1025,7 @@
/area/ruin/whitesands/saloon)
"EV" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/item/gun/energy/plasmacutter{
icon_state = "pulse_carbine";
@@ -1355,7 +1355,7 @@
/area/ruin/whitesands/saloon)
"Pi" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"Px" = (
@@ -1590,7 +1590,7 @@
/area/ruin/whitesands/saloon)
"Wl" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"WP" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
index 60dfc9186132..7ae333dcd541 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
@@ -751,7 +751,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uu" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -760,7 +760,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uz" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -848,7 +848,7 @@
},
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"xd" = (
@@ -1210,7 +1210,7 @@
/area/ruin/powered)
"KU" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
index 5cfb5e8eb771..6906e1dd2bed 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
@@ -225,8 +225,8 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/spawner/random/maintenance/five,
-/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/lootdrop/maintenance/five,
/turf/open/floor/plasteel,
/area/ruin/whitesands/pubbycrash)
"fO" = (
@@ -405,7 +405,7 @@
dir = 8;
name = "engine fuel pump"
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"jt" = (
@@ -502,7 +502,7 @@
"ln" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/emcloset/wall/directional/south,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/whitesands/pubbycrash/engine_room)
"ly" = (
@@ -530,7 +530,7 @@
name = "engine fuel pump"
},
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/tech,
@@ -622,7 +622,7 @@
/area/ruin/whitesands/pubbycrash)
"nP" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"nQ" = (
@@ -780,7 +780,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"rT" = (
@@ -931,7 +931,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"vL" = (
@@ -972,7 +972,7 @@
/obj/structure/sign/poster/official/random{
pixel_x = 32
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/whitesands/pubbycrash)
@@ -1063,7 +1063,7 @@
/obj/structure/table,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"xX" = (
@@ -1792,7 +1792,7 @@
/obj/structure/sign/poster/retro/nanotrasen_logo_70s{
pixel_x = -32
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/ruin/whitesands/pubbycrash/engine_room)
"KT" = (
@@ -2003,7 +2003,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"PA" = (
@@ -2118,7 +2118,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/whitesands/pubbycrash/engine_room)
"RC" = (
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/stack/ore/salvage/scraptitanium,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
@@ -2292,7 +2292,7 @@
/obj/structure/sign/number/two,
/obj/item/stack/ore/salvage/scrapmetal,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"Wo" = (
diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
index e790766a2a94..2c62420cef30 100644
--- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm
+++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
@@ -101,7 +101,7 @@
/turf/open/space,
/area/space/nearstation)
"dx" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"dA" = (
@@ -326,7 +326,7 @@
/turf/open/space,
/area/space/nearstation)
"jd" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"je" = (
@@ -349,7 +349,7 @@
/obj/machinery/conveyor{
dir = 6
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"jT" = (
@@ -556,7 +556,7 @@
/area/ruin/space/has_grav/astraeus/bridge)
"pT" = (
/obj/item/stack/conveyor,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"pU" = (
@@ -621,7 +621,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/dark/airless,
/area/ruin/space/has_grav/astraeus/bridge)
"rk" = (
@@ -675,7 +675,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"sL" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/dorms_med)
"sR" = (
@@ -731,8 +731,8 @@
"uH" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/closet,
-/obj/effect/spawner/random/maintenance{
- spawn_loot_count = 2;
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
name = "2maintenance loot spawner"
},
/turf/open/floor/plasteel/airless,
@@ -800,7 +800,7 @@
/obj/machinery/conveyor{
dir = 4
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"wl" = (
@@ -1374,7 +1374,7 @@
/obj/machinery/conveyor/inverted{
dir = 9
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"KD" = (
@@ -1560,7 +1560,7 @@
/obj/machinery/power/apc/auto_name/directional/east{
start_charge = 0
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"Pd" = (
@@ -1734,7 +1734,7 @@
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
"UK" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"UU" = (
diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
index 956466fc4be0..a2cb21cd1c1c 100644
--- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
+++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
@@ -462,7 +462,7 @@
/area/ruin/space/has_grav/corporatemine/bridge)
"kZ" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 4
},
@@ -812,7 +812,7 @@
/obj/effect/decal/cleanable/oil/slippery,
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/random/materials,
+/obj/effect/spawner/lootdrop/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"sb" = (
@@ -1590,8 +1590,8 @@
"IF" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"IS" = (
@@ -1774,7 +1774,7 @@
"NH" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/random/materials,
+/obj/effect/spawner/lootdrop/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"NO" = (
@@ -2293,7 +2293,7 @@
/area/ruin/space/has_grav/corporatemine/crewquarters)
"ZU" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
diff --git a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
index c052a6f0cd04..e02a7e328b28 100644
--- a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
+++ b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
@@ -3,7 +3,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"ae" = (
@@ -365,9 +365,9 @@
/area/ruin/space/has_grav/powerpuzzle)
"br" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -695,14 +695,14 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"cB" = (
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/generic,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/structure/closet/crate/secure,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"cD" = (
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/obj/effect/decal/cleanable/glass,
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -797,7 +797,7 @@
/obj/effect/decal/cleanable/greenglow,
/obj/item/stack/ore/salvage/scrapuranium,
/obj/item/bodypart/l_arm/robot,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/assembly/prox_sensor,
/obj/item/stack/ore/salvage/scrapuranium{
pixel_x = -4;
@@ -1116,7 +1116,7 @@
/area/ruin/space/has_grav/powerpuzzle)
"gM" = (
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/random/maintenance/six,
+/obj/effect/spawner/lootdrop/maintenance/six,
/obj/structure/closet/crate/secure,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel/dark,
@@ -1478,7 +1478,7 @@
pixel_x = 2;
pixel_y = 4
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/light/broken/directional/south,
/obj/item/poster/random_official,
/obj/item/poster/random_official,
@@ -1677,7 +1677,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"rI" = (
@@ -1838,7 +1838,7 @@
/obj/structure/railing,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/item/stack/ore/salvage/scrapuranium/five,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/structure/closet/crate/engineering,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/dark,
@@ -1850,8 +1850,8 @@
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/stack/medical/gauze/improvised,
@@ -2446,7 +2446,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/small/broken/directional/north,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -3273,7 +3273,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -3546,7 +3546,7 @@
dir = 4
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"VV" = (
@@ -3589,7 +3589,7 @@
dir = 6
},
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/structure/noticeboard{
pixel_x = -15;
pixel_y = 32
@@ -3647,7 +3647,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle/engineering)
"Xj" = (
@@ -3692,7 +3692,7 @@
dir = 5
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"Yr" = (
diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
index c5acb2629e09..6b75031ae8ba 100644
--- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
@@ -708,7 +708,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"cO" = (
/obj/effect/turf_decal/box,
-/obj/effect/spawner/random/salvage_machine,
+/obj/effect/spawner/lootdrop/salvage_machine,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"cP" = (
@@ -1296,9 +1296,9 @@
"eS" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"eU" = (
@@ -1306,7 +1306,7 @@
pixel_y = -30
},
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/space/has_grav/spacemall/dorms)
"eV" = (
@@ -1323,7 +1323,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"eX" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -1391,7 +1391,7 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/stack/cable_coil/random/five,
-/obj/effect/spawner/random/techstorage/engineering,
+/obj/effect/spawner/lootdrop/techstorage/engineering,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"fi" = (
@@ -1399,8 +1399,8 @@
dir = 2
},
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"fl" = (
@@ -1655,7 +1655,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"gu" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -2516,9 +2516,9 @@
"jD" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/random/clothing/costume,
-/obj/effect/spawner/random/clothing/costume,
-/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/lootdrop/costume,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"jE" = (
@@ -3111,7 +3111,7 @@
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"lR" = (
@@ -3255,7 +3255,7 @@
"mJ" = (
/obj/structure/rack,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"mK" = (
@@ -3638,7 +3638,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"ob" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"od" = (
@@ -4048,7 +4048,7 @@
/area/ruin/space/has_grav/spacemall)
"pB" = (
/obj/effect/decal/cleanable/ash,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/structure/closet/crate,
/obj/structure/railing,
@@ -5749,7 +5749,7 @@
"vp" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"vs" = (
@@ -5866,7 +5866,7 @@
/area/ruin/space/has_grav/spacemall/shop2)
"vS" = (
/obj/structure/rack,
-/obj/effect/spawner/random/medical/beaker,
+/obj/effect/spawner/lootdrop/beaker_loot_spawner,
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/shop2)
@@ -6451,8 +6451,8 @@
/obj/structure/closet/crate/secure,
/obj/effect/turf_decal/box,
/obj/structure/railing,
-/obj/effect/spawner/random/exotic/prison_contraband,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"yk" = (
@@ -6524,7 +6524,7 @@
/obj/structure/closet/crate/trashcart,
/obj/item/trash/popcorn,
/obj/item/trash/candy,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"yF" = (
@@ -6666,7 +6666,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"yZ" = (
@@ -6964,9 +6964,9 @@
"Ag" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/circuit/computer/common,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/random_computer_circuit_common,
/obj/item/research_notes/loot,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -7269,9 +7269,9 @@
"Bq" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"Bu" = (
@@ -7469,7 +7469,7 @@
dir = 10
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Cv" = (
@@ -7631,7 +7631,7 @@
/area/ruin/space/has_grav/spacemall)
"CR" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/blood,
/obj/item/reagent_containers/food/snacks/spiderling{
pixel_y = 5;
@@ -8230,9 +8230,9 @@
/turf/open/floor/eighties,
/area/ruin/space/has_grav/spacemall/shop2)
"EI" = (
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"EJ" = (
@@ -9438,7 +9438,7 @@
/area/ruin/space/has_grav/spacemall)
"JE" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/space/has_grav/spacemall/dorms)
"JF" = (
@@ -9569,7 +9569,7 @@
"Kl" = (
/obj/effect/decal/cleanable/robot_debris/old,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Kn" = (
@@ -9999,9 +9999,9 @@
"LS" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/circuit/computer/common,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/random_computer_circuit_common,
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -10056,9 +10056,9 @@
/area/ruin/space/has_grav/spacemall/dorms)
"Mb" = (
/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/random/medical/prosthetic,
-/obj/effect/spawner/random/medical/memeorgans,
-/obj/effect/spawner/random/medical/memeorgans,
+/obj/effect/spawner/lootdrop/random_prosthetic,
+/obj/effect/spawner/lootdrop/memeorgans,
+/obj/effect/spawner/lootdrop/memeorgans,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 4
},
@@ -11266,7 +11266,7 @@
/area/ruin/space/has_grav/spacemall)
"Qf" = (
/obj/structure/rack,
-/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/spawner/lootdrop/tool_engie_common,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -11297,7 +11297,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"Qn" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -11311,7 +11311,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Qu" = (
@@ -11865,7 +11865,7 @@
/area/ruin/space/has_grav/spacemall/maint)
"SD" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/item/toy/plush/slimeplushie{
pixel_y = -4;
pixel_x = 4
@@ -12218,7 +12218,7 @@
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/obj/machinery/light/directional/east,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"TZ" = (
@@ -12290,10 +12290,10 @@
"Ul" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/engineering/electrical,
-/obj/effect/spawner/random/techstorage,
-/obj/effect/spawner/random/techstorage,
-/obj/effect/spawner/random/stockparts,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/techstorage,
+/obj/effect/spawner/lootdrop/techstorage,
+/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"Um" = (
@@ -12606,7 +12606,7 @@
},
/obj/structure/closet/crate,
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"Vr" = (
@@ -12655,8 +12655,8 @@
"VA" = (
/obj/structure/rack,
/obj/structure/window/reinforced/spawner,
-/obj/effect/spawner/random/medical/beaker,
-/obj/effect/spawner/random/medical/beaker,
+/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/lootdrop/beaker_loot_spawner,
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plasteel/white,
@@ -13459,7 +13459,7 @@
dir = 2
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/turf_decal/box,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
index 50d9986ea756..e1a64004decb 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
@@ -612,7 +612,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"fX" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/machinery/light/dim/directional/south,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -1084,8 +1084,8 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/item/mop,
/obj/item/reagent_containers/glass/bucket,
-/obj/effect/spawner/random/maintenance/two,
-/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/lootdrop/costume,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
@@ -1445,7 +1445,7 @@
"qH" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/six,
+/obj/effect/spawner/lootdrop/maintenance/six,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -2278,7 +2278,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"Bg" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/tech/grid,
@@ -2360,13 +2360,13 @@
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
"BF" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/food/salt,
@@ -2411,7 +2411,7 @@
"Cp" = (
/obj/structure/table,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/materials,
+/obj/effect/spawner/lootdrop/materials,
/obj/item/stack/sheet/metal/fifty,
/obj/item/stack/sheet/glass/twenty,
/turf/open/floor/plasteel/tech/grid,
@@ -3424,7 +3424,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"Oj" = (
/obj/structure/table,
-/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/turf/open/floor/plasteel,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
"Om" = (
@@ -3933,7 +3933,7 @@
"Vx" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index bdfc9c75a4a1..dba9f5e3c3c9 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -699,7 +699,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"HW" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/turf/open/floor/plating,
/area/ruin/powered)
"Ie" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
index 83c587268b34..c865138fb568 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
@@ -1806,10 +1806,10 @@
/obj/effect/turf_decal/industrial/warning/full,
/obj/structure/closet/crate,
/obj/machinery/light/small/broken/directional/south,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/pod/dark,
/area/ruin/wasteplanet/tradepost/warehouse)
"ug" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
index e3e0c20ef75f..a53934c91013 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
@@ -152,10 +152,10 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"bB" = (
@@ -1542,10 +1542,10 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/machinery/light/small/broken/directional/south,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"rd" = (
@@ -1965,8 +1965,8 @@
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"wc" = (
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/machinery/light/small/directional/west,
/obj/effect/turf_decal/corner/transparent/neutral/mono,
/obj/effect/turf_decal/corner/transparent/blue/border{
@@ -4045,7 +4045,7 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/light/small/broken/directional/west,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"Zy" = (
diff --git a/_maps/outpost/hangar/nt_asteroid_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm
index ab49a101ee1e..312e0443aeea 100644
--- a/_maps/outpost/hangar/nt_asteroid_40x20.dmm
+++ b/_maps/outpost/hangar/nt_asteroid_40x20.dmm
@@ -383,7 +383,7 @@
},
/area/hangar)
"kU" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -392,7 +392,7 @@
pixel_y = 7
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -861,7 +861,7 @@
},
/area/hangar)
"vh" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating{
planetary_atmos = 1
diff --git a/_maps/outpost/hangar/nt_asteroid_40x40.dmm b/_maps/outpost/hangar/nt_asteroid_40x40.dmm
index eab944babc1c..005b657e38ee 100644
--- a/_maps/outpost/hangar/nt_asteroid_40x40.dmm
+++ b/_maps/outpost/hangar/nt_asteroid_40x40.dmm
@@ -1070,7 +1070,10 @@
/area/hangar)
"NE" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 5;
+ pixel_y = 9
+ },
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -1330,7 +1333,7 @@
/obj/structure/catwalk/over/plated_catwalk,
/obj/item/stack/cable_coil/cut/yellow,
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
icon_state = "panelscorched";
planetary_atmos = 1
diff --git a/_maps/outpost/hangar/nt_asteroid_56x20.dmm b/_maps/outpost/hangar/nt_asteroid_56x20.dmm
index 070f2a949044..11ba5baac070 100644
--- a/_maps/outpost/hangar/nt_asteroid_56x20.dmm
+++ b/_maps/outpost/hangar/nt_asteroid_56x20.dmm
@@ -106,7 +106,7 @@
/area/hangar)
"cz" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -1024,8 +1024,8 @@
/area/hangar)
"MI" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark{
@@ -1254,7 +1254,10 @@
/area/hangar)
"Wp" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 5;
+ pixel_y = 9
+ },
/turf/open/floor/plating{
icon_state = "panelscorched";
planetary_atmos = 1
diff --git a/_maps/outpost/hangar/nt_asteroid_56x40.dmm b/_maps/outpost/hangar/nt_asteroid_56x40.dmm
index 020ab48b8d9f..5d66d8966d0b 100644
--- a/_maps/outpost/hangar/nt_asteroid_56x40.dmm
+++ b/_maps/outpost/hangar/nt_asteroid_56x40.dmm
@@ -277,8 +277,8 @@
/area/hangar)
"lZ" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark{
@@ -806,7 +806,7 @@
/area/hangar)
"Hs" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -963,7 +963,10 @@
/area/hangar)
"KT" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 5;
+ pixel_y = 9
+ },
/turf/open/floor/plating{
icon_state = "panelscorched";
planetary_atmos = 1
diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm
index b10b86822c8c..86a2a8d102b1 100644
--- a/_maps/outpost/indie_space.dmm
+++ b/_maps/outpost/indie_space.dmm
@@ -113,7 +113,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
-/obj/effect/spawner/random/entertainment/plushie{
+/obj/effect/spawner/lootdrop/plushie{
pixel_x = 16;
pixel_y = 4
},
@@ -270,7 +270,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
-/obj/effect/spawner/random/salvage/metal,
+/obj/effect/spawner/lootdrop/salvage/metal,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/central)
"bL" = (
@@ -287,7 +287,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"bS" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/turf_decal/corner_techfloor_grid{
dir = 8
},
@@ -346,7 +346,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"ci" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -481,7 +481,7 @@
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms)
"dl" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/turf_decal/steeldecal/steel_decals7{
dir = 9
},
@@ -958,7 +958,7 @@
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"gz" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
@@ -1001,7 +1001,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"gS" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"gT" = (
@@ -1078,7 +1078,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"hz" = (
@@ -1126,8 +1126,8 @@
/area/outpost/hallway/port)
"hK" = (
/obj/structure/rack,
-/obj/effect/spawner/random/salvage_laser,
-/obj/effect/spawner/random/salvage_capacitor,
+/obj/effect/spawner/lootdrop/salvage_laser,
+/obj/effect/spawner/lootdrop/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"hM" = (
@@ -1188,7 +1188,7 @@
/area/outpost/maintenance/central)
"hZ" = (
/obj/structure/table/wood,
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/wood,
/area/outpost/crew/bar)
"ib" = (
@@ -1269,7 +1269,7 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"iD" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"iG" = (
@@ -1350,7 +1350,7 @@
/area/outpost/crew/bar)
"jn" = (
/obj/structure/table,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
@@ -1430,7 +1430,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/hallway/central)
"jM" = (
-/obj/effect/spawner/random/chicken,
+/obj/effect/spawner/lootdrop/chicken,
/turf/open/floor/ship/dirt,
/area/outpost/hallway/port)
"jO" = (
@@ -1703,7 +1703,7 @@
/area/outpost/maintenance/central)
"lA" = (
/obj/structure/flora/grass/jungle,
-/obj/effect/spawner/random/chicken,
+/obj/effect/spawner/lootdrop/chicken,
/turf/open/floor/grass/ship/jungle,
/area/outpost/hallway/central)
"lB" = (
@@ -1858,7 +1858,7 @@
/area/outpost/hallway/central)
"mv" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
@@ -2597,8 +2597,8 @@
/area/outpost/maintenance/fore)
"rp" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/maintenance/seven,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/maintenance/seven,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"rr" = (
@@ -2670,7 +2670,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -2782,7 +2782,7 @@
/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
@@ -2988,9 +2988,9 @@
/area/outpost/crew/library)
"ta" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask,
+/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/lootdrop/gloves,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
@@ -3160,7 +3160,7 @@
/area/outpost/cargo)
"tS" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"tT" = (
@@ -3324,7 +3324,7 @@
/turf/open/floor/ship/dirt,
/area/outpost/hallway/central)
"uE" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3791,7 +3791,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"xu" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3884,7 +3884,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"xZ" = (
@@ -3968,7 +3968,7 @@
/area/outpost/crew/bar)
"yN" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"yQ" = (
@@ -4155,7 +4155,7 @@
/turf/open/floor/plating/asteroid,
/area/outpost/external)
"zS" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"zY" = (
@@ -4208,7 +4208,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/maintenance/fore)
"Am" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
@@ -4858,8 +4858,8 @@
/area/outpost/hallway/port)
"DH" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/bowler_or_that,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/minor/bowler_or_that,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"DI" = (
@@ -4912,7 +4912,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/random/salvage/metal,
+/obj/effect/spawner/lootdrop/salvage/metal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -4984,7 +4984,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"ER" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"EV" = (
@@ -4995,7 +4995,7 @@
/area/outpost/crew/bar)
"EX" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Fa" = (
@@ -5189,7 +5189,7 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"Gj" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -5222,7 +5222,7 @@
/area/outpost/external)
"Gn" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/bowler_or_that,
+/obj/effect/spawner/lootdrop/minor/bowler_or_that,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Gu" = (
@@ -5394,7 +5394,7 @@
/area/outpost/hallway/central)
"Hk" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/beret_or_rabbitears,
+/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
/obj/machinery/light/dim/directional/west,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
@@ -5853,7 +5853,7 @@
/area/outpost/cargo/office)
"JV" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
@@ -6213,8 +6213,8 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"LR" = (
-/obj/effect/spawner/random/engineering/tool/common,
-/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/lootdrop/tool_engie_common,
/obj/structure/rack,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -6454,7 +6454,7 @@
/area/outpost/cargo/office)
"No" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/lootdrop/donut/jelly,
/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/security)
@@ -6531,7 +6531,7 @@
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
-/obj/effect/spawner/random/salvage_capacitor,
+/obj/effect/spawner/lootdrop/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"NV" = (
@@ -6718,7 +6718,7 @@
/area/outpost/crew/cryo)
"Pw" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"Px" = (
@@ -6914,8 +6914,8 @@
/area/outpost/maintenance/fore)
"Qx" = (
/obj/structure/rack,
-/obj/effect/spawner/random/clothing/bowler_or_that,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/minor/bowler_or_that,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"QA" = (
@@ -7079,7 +7079,7 @@
/obj/structure/cable/yellow{
icon_state = "4-6"
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 10
},
@@ -7166,7 +7166,7 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"RJ" = (
@@ -7390,8 +7390,8 @@
/area/outpost/hallway/port)
"SW" = (
/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"SY" = (
@@ -7400,7 +7400,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Ta" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/steeldecal/steel_decals9,
/turf/open/floor/plating,
@@ -7556,7 +7556,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -7608,7 +7608,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"Uq" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/hallway/port)
"Us" = (
@@ -7618,7 +7618,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -7789,7 +7789,7 @@
},
/obj/item/bedsheet/double/captain,
/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/head/papersack/smiley{
pixel_x = 7
@@ -7897,7 +7897,7 @@
/turf/open/floor/carpet/green,
/area/outpost/crew/bar)
"Wa" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/mouse/brown,
/turf/open/floor/plating,
@@ -8004,7 +8004,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"WO" = (
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WR" = (
@@ -8029,7 +8029,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WV" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
@@ -8161,7 +8161,7 @@
/area/outpost/hallway/port)
"XA" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/lootdrop/maintenance/five,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"XD" = (
@@ -8332,7 +8332,7 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo)
"YC" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/structure/rack,
/obj/effect/turf_decal/steeldecal/steel_decals_central2{
dir = 4
@@ -8528,8 +8528,8 @@
/area/outpost/hallway/central)
"ZP" = (
/obj/structure/rack,
-/obj/effect/spawner/random/medical/surgery_tool/common,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"ZU" = (
diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm
index 179aa234e780..d5af45bfef2d 100644
--- a/_maps/outpost/nanotrasen_asteroid.dmm
+++ b/_maps/outpost/nanotrasen_asteroid.dmm
@@ -63,7 +63,7 @@
/area/outpost/hallway/starboard)
"aw" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/plating/rust,
/area/outpost/maintenance/aft)
@@ -951,7 +951,7 @@
dir = 8
},
/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/concrete/slab_1,
/area/outpost/hallway/central)
"dF" = (
@@ -1678,7 +1678,7 @@
dir = 8
},
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/paper/crumpled,
/turf/open/floor/concrete/slab_1,
/area/outpost/hallway/central)
@@ -1911,7 +1911,7 @@
/turf/closed/mineral/random/snow,
/area/outpost/crew/cryo)
"hd" = (
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/outpost/maintenance/aft)
"he" = (
@@ -2178,7 +2178,7 @@
/area/outpost/crew/bar)
"im" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/structure/grille/broken,
/turf/open/floor/plating{
icon_state = "foam_plating"
@@ -2337,7 +2337,7 @@
/area/outpost/vacant_rooms)
"iW" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/structure/sign/poster/contraband/random{
pixel_x = 32;
pixel_y = -32
@@ -5481,7 +5481,7 @@
/turf/open/floor/plasteel/dark,
/area/outpost/operations)
"tD" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating{
icon_state = "panelscorched"
@@ -6814,7 +6814,7 @@
"xV" = (
/obj/machinery/light/dim/directional/south,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"xW" = (
@@ -6990,7 +6990,7 @@
},
/area/outpost/maintenance/fore)
"yE" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
icon_state = "platingdmg1"
},
@@ -7386,7 +7386,7 @@
/area/outpost/engineering/atmospherics)
"zY" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/rust,
/area/outpost/maintenance/aft)
"zZ" = (
@@ -7614,7 +7614,7 @@
icon_state = "box_corners";
dir = 8
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/machinery/airalarm/directional/west,
/turf/open/floor/concrete/slab_1,
/area/outpost/hallway/central)
@@ -7899,7 +7899,7 @@
"BI" = (
/obj/machinery/door/window/brigdoor/southright,
/obj/structure/rack,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/concrete/tiles,
/area/outpost/hallway/central)
"BJ" = (
@@ -10357,7 +10357,7 @@
/obj/effect/turf_decal/box/corners{
dir = 4
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/concrete/slab_1,
/area/outpost/hallway/central)
"Kj" = (
@@ -10560,7 +10560,7 @@
/area/outpost/hallway/starboard)
"KW" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/aft)
"KX" = (
@@ -11767,7 +11767,7 @@
"Pb" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -12080,7 +12080,7 @@
/obj/effect/turf_decal/box/corners{
dir = 4
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/paperplane,
/obj/item/radio/intercom/directional/south,
/obj/machinery/firealarm/directional/south,
@@ -12344,7 +12344,7 @@
"Ra" = (
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Rc" = (
@@ -12447,7 +12447,7 @@
/area/outpost/maintenance/aft)
"Ru" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -12633,7 +12633,7 @@
"RZ" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/stack/rods/ten{
pixel_x = 9
},
@@ -12648,7 +12648,7 @@
/area/outpost/crew/canteen)
"Sd" = (
/obj/structure/grille/broken,
-/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Se" = (
@@ -12868,8 +12868,8 @@
"Tc" = (
/obj/structure/closet/crate/trashcart/laundry,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/two,
-/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
/obj/structure/grille/broken,
/obj/effect/turf_decal/box/white,
/turf/open/floor/plating{
@@ -13743,7 +13743,7 @@
/area/outpost/hallway/central)
"Wj" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/concrete/slab_1,
/area/outpost/hallway/central)
"Wn" = (
@@ -14038,7 +14038,7 @@
/obj/structure/railing{
layer = 3.1
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/item/trash/can{
pixel_x = -8;
pixel_y = -6
diff --git a/_maps/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm
index cfd32ad951ae..70fb809c4c95 100644
--- a/_maps/outpost/nanotrasen_ice.dmm
+++ b/_maps/outpost/nanotrasen_ice.dmm
@@ -943,7 +943,7 @@
"gO" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/sign/poster/retro/random{
pixel_x = -32
},
@@ -1168,7 +1168,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"iH" = (
@@ -1809,7 +1809,7 @@
"mV" = (
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"na" = (
@@ -2177,7 +2177,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
/obj/structure/grille/broken,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/outpost/maintenance/starboard)
"oF" = (
@@ -3267,7 +3267,7 @@
/area/outpost/maintenance/fore)
"vn" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating{
@@ -3476,7 +3476,7 @@
/area/outpost/engineering/atmospherics)
"wD" = (
/obj/structure/grille/broken,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/spider/stickyweb,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating/rust,
@@ -4002,7 +4002,7 @@
/obj/structure/flora/grass/both{
layer = 3.1
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -4396,7 +4396,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/trash/sosjerky,
/obj/item/trash/can,
/turf/open/floor/plasteel/patterned/brushed{
@@ -4552,7 +4552,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
@@ -4840,7 +4840,7 @@
dir = 5
},
/obj/item/trash/chips,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/trash/candy,
/turf/open/floor/wood/walnut,
/area/outpost/crew/bar)
@@ -6062,7 +6062,7 @@
"PN" = (
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"PT" = (
@@ -7551,7 +7551,7 @@
/obj/structure/flora/grass/green{
layer = 3.1
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -7688,7 +7688,7 @@
layer = 3.1
},
/obj/item/shard,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm
index ddbcfba512b3..c283c0d21584 100644
--- a/_maps/shuttles/independent/independent_beluga.dmm
+++ b/_maps/shuttles/independent/independent_beluga.dmm
@@ -1090,7 +1090,7 @@
pixel_y = -32
},
/obj/item/storage/bag/tray,
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_x = 6;
pixel_y = 6
},
@@ -2631,7 +2631,7 @@
"zh" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
/area/ship/crew/dorm)
@@ -3425,7 +3425,7 @@
/area/ship/crew/canteen)
"Hq" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/structure/sign/poster/official/ian{
pixel_x = 32
@@ -3803,7 +3803,7 @@
"Kc" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light_switch{
pixel_x = -8;
pixel_y = -20;
@@ -3827,7 +3827,7 @@
/area/ship/crew)
"Ko" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/turf/open/floor/carpet/red,
/area/ship/crew)
@@ -4118,7 +4118,7 @@
"Nv" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"Nw" = (
diff --git a/_maps/shuttles/independent/independent_box.dmm b/_maps/shuttles/independent/independent_box.dmm
index f64c84ca5b33..31891a371d8c 100644
--- a/_maps/shuttles/independent/independent_box.dmm
+++ b/_maps/shuttles/independent/independent_box.dmm
@@ -711,7 +711,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"cG" = (
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/closet/emcloset/anchored,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 4
@@ -968,7 +968,7 @@
dir = 8
},
/obj/structure/bed/pod,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/carpet/blue,
/area/ship/crew)
"dr" = (
@@ -1162,7 +1162,7 @@
/obj/structure/sign/poster/official/help_others{
pixel_x = -32
},
-/obj/effect/spawner/random/medical/surgery_tool/adv,
+/obj/effect/spawner/lootdrop/tool_surgery_adv,
/obj/item/megaphone/command,
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
@@ -1421,7 +1421,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"mx" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
@@ -1460,10 +1460,10 @@
/area/ship/medical)
"nA" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_y = 3
},
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_x = -5;
pixel_y = 3
},
@@ -2022,7 +2022,7 @@
/obj/item/circuitboard/machine/chem_master,
/obj/item/reagent_containers/glass/beaker/large,
/obj/item/stack/sheet/glass/two,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/trash/can/food/beans,
/turf/open/floor/plasteel/white,
/area/ship/medical)
@@ -2165,7 +2165,7 @@
/obj/item/vending_refill/medical,
/obj/item/screwdriver,
/obj/machinery/airalarm/directional/south,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Cn" = (
@@ -2808,7 +2808,7 @@
/obj/structure/cable/yellow{
icon_state = "0-10"
},
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/rack,
/obj/item/areaeditor/shuttle,
/obj/item/flashlight{
diff --git a/_maps/shuttles/independent/independent_bubble.dmm b/_maps/shuttles/independent/independent_bubble.dmm
index 298a919bbaa7..08fd116f2536 100644
--- a/_maps/shuttles/independent/independent_bubble.dmm
+++ b/_maps/shuttles/independent/independent_bubble.dmm
@@ -248,7 +248,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/hallway/central)
"jr" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/bed,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood{
@@ -905,7 +905,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"LK" = (
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/bed,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood{
@@ -1228,7 +1228,7 @@
/turf/open/floor/plasteel,
/area/ship/engineering)
"Yi" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
/area/ship/maintenance/port)
diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm
index 9d36cb61c748..7f8e7b569c68 100644
--- a/_maps/shuttles/independent/independent_dwayne.dmm
+++ b/_maps/shuttles/independent/independent_dwayne.dmm
@@ -257,7 +257,7 @@
/obj/structure/closet/crate,
/obj/machinery/firealarm/directional/north,
/obj/item/circuitboard/machine/pipedispenser,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"dh" = (
@@ -1442,7 +1442,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"vj" = (
@@ -1584,7 +1584,7 @@
},
/obj/machinery/light/directional/west,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"yu" = (
@@ -1889,7 +1889,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/large,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Ds" = (
@@ -2083,7 +2083,7 @@
/area/ship/external/dark)
"Gl" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/airalarm/directional/east,
/obj/item/radio/intercom/directional/south,
/turf/open/floor/carpet,
@@ -2213,7 +2213,7 @@
"Is" = (
/obj/structure/closet/crate/science,
/obj/item/paicard,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/cargo)
"IF" = (
@@ -2301,7 +2301,7 @@
/area/ship/storage/eva)
"JH" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/cable/yellow{
icon_state = "4-10"
},
@@ -2433,10 +2433,10 @@
/obj/structure/closet/secure_closet/freezer/wall/directional/south{
name = "kitchen cabinet"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -2617,13 +2617,28 @@
/area/ship/storage/eva)
"NT" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = 2
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = -3;
+ pixel_x = 7
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_y = -3
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = -4;
+ pixel_y = -4
+ },
/turf/open/floor/plating,
/area/ship/storage/eva)
"NW" = (
@@ -2736,11 +2751,11 @@
/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/structure/closet/crate/large,
/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/random/entertainment/plushie,
-/obj/effect/spawner/random/entertainment/plushie,
-/obj/effect/spawner/random/entertainment/plushie,
-/obj/effect/spawner/random/entertainment/plushie,
-/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/lootdrop/plushie,
/obj/structure/cable/cyan{
icon_state = "1-2"
},
@@ -3390,7 +3405,7 @@
/obj/item/trash/candy,
/obj/item/trash/sosjerky,
/obj/item/trash/can/food/beans,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/cable/cyan{
icon_state = "2-5"
},
@@ -3458,7 +3473,7 @@
/area/ship/engineering)
"ZQ" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/carpet,
/area/ship/crew/dorm)
"ZR" = (
diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm
index c7b7eb4ae673..0ae98ef37fe2 100644
--- a/_maps/shuttles/independent/independent_junker.dmm
+++ b/_maps/shuttles/independent/independent_junker.dmm
@@ -48,7 +48,7 @@
/area/ship/maintenance/port)
"aq" = (
/obj/item/trash/sosjerky,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/item/areaeditor/shuttle{
pixel_y = 7
},
@@ -67,7 +67,7 @@
/obj/item/storage/backpack/explorer,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/pickaxe/rusted,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
@@ -75,7 +75,7 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/broken/directional/north,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/item/flashlight/pen,
/turf/open/floor/wood/walnut{
icon_state = "wood-broken"
@@ -399,7 +399,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"hb" = (
@@ -857,7 +857,7 @@
"qm" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/item/reagent_containers/food/snacks/canned/peaches/maint,
/turf/open/floor/plating,
/area/ship/construction)
@@ -1232,7 +1232,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/lootdrop/maintenance/eight,
/obj/structure/safe/floor{
number_of_tumblers = 5
},
@@ -1610,7 +1610,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Df" = (
@@ -1735,7 +1735,7 @@
/obj/item/reagent_containers/glass/bottle/welding_fuel,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/ship/storage/eva)
"Fz" = (
@@ -1808,7 +1808,7 @@
/area/ship/storage/eva)
"Hj" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/decal_painter,
/obj/item/storage/box/mousetraps,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -2034,7 +2034,7 @@
"JZ" = (
/obj/structure/rack,
/obj/machinery/light/small/broken/directional/west,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/item/toner,
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plating,
@@ -2085,7 +2085,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/wood/walnut{
icon_state = "wood-broken3"
},
@@ -2231,7 +2231,7 @@
dir = 1
},
/mob/living/simple_animal/hostile/cockroach/glockroach,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 20;
@@ -2487,7 +2487,7 @@
},
/obj/effect/decal/cleanable/sprayweb,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/pod/light,
/area/ship/maintenance/aft)
"Wv" = (
@@ -2730,7 +2730,7 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/ship/maintenance/port)
diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm
index 7783dff02df5..43941169b66a 100644
--- a/_maps/shuttles/independent/independent_kilo.dmm
+++ b/_maps/shuttles/independent/independent_kilo.dmm
@@ -123,7 +123,7 @@
/turf/open/floor/plating,
/area/ship/hallway/port)
"bm" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"bn" = (
@@ -905,7 +905,7 @@
/area/ship/cargo)
"mz" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light_switch{
pixel_x = 7;
pixel_y = 20
@@ -1212,9 +1212,9 @@
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/effect/turf_decal/corner/transparent/beige/full,
@@ -1789,7 +1789,7 @@
/obj/structure/cable/pink{
icon_state = "1-6"
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/light/directional/west,
/turf/open/floor/carpet,
/area/ship/crew/dorm)
diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm
index 2855c6e0d686..5130aed76be3 100644
--- a/_maps/shuttles/independent/independent_lagoon.dmm
+++ b/_maps/shuttles/independent/independent_lagoon.dmm
@@ -4873,7 +4873,7 @@
/area/ship/hallway/aft)
"GN" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 4
},
@@ -6155,7 +6155,7 @@
/area/ship/hallway/port)
"QI" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm
index 676301c8271e..11d98b3c1475 100644
--- a/_maps/shuttles/independent/independent_mudskipper.dmm
+++ b/_maps/shuttles/independent/independent_mudskipper.dmm
@@ -1412,7 +1412,7 @@
/area/ship/hallway/aft)
"Ft" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/machinery/light_switch{
dir = 1;
@@ -1727,10 +1727,10 @@
/obj/structure/closet/crate{
name = "ration crate"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
@@ -1990,7 +1990,7 @@
/area/ship/crew/toilet)
"ST" = (
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/structure/closet/secure_closet/freezer{
anchored = 1;
name = "fridge"
@@ -2140,7 +2140,7 @@
/area/ship/engineering/engine)
"Vy" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/north,
diff --git a/_maps/shuttles/independent/independent_raleigh.dmm b/_maps/shuttles/independent/independent_raleigh.dmm
index 906af974bfe5..a6bff35f8dc7 100644
--- a/_maps/shuttles/independent/independent_raleigh.dmm
+++ b/_maps/shuttles/independent/independent_raleigh.dmm
@@ -714,12 +714,16 @@
/obj/structure/table,
/obj/effect/turf_decal/corner/opaque/yellow/mono,
/obj/structure/closet/wall/white/directional/east,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration{
+ pixel_y = 1
+ },
/obj/item/storage/cans/sixbeer,
/obj/item/storage/cans/sixbeer,
/obj/effect/decal/cleanable/food/flour,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration{
+ pixel_y = 1
+ },
/turf/open/floor/plasteel/mono/white,
/area/ship/crew/canteen)
"jc" = (
@@ -1032,7 +1036,7 @@
/area/ship/crew/ccommons)
"my" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/structure/curtain/bounty,
/obj/item/toy/plush/flushed,
/turf/open/floor/carpet/green,
@@ -1051,7 +1055,7 @@
/area/ship/hallway/central)
"mE" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/structure/curtain/bounty,
/obj/item/toy/plush/carpplushie,
/turf/open/floor/carpet/green,
@@ -1621,7 +1625,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"tg" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/corner_steel_grid{
dir = 9
},
@@ -1847,7 +1851,7 @@
"ws" = (
/obj/structure/curtain/bounty,
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/turf/open/floor/carpet/green,
/area/ship/crew/dorm)
"wS" = (
@@ -4078,7 +4082,7 @@
dir = 8
},
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"Wm" = (
@@ -4527,7 +4531,7 @@
"ZE" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating,
/area/ship/engineering/engines/starboard)
diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm
index 78053b7e5e8c..d87ae083832b 100644
--- a/_maps/shuttles/independent/independent_rigger.dmm
+++ b/_maps/shuttles/independent/independent_rigger.dmm
@@ -62,7 +62,7 @@
"bc" = (
/obj/structure/closet/cardboard,
/obj/item/paicard,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"bi" = (
@@ -239,8 +239,8 @@
populate = 0
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/sugar,
/obj/item/radio/intercom/directional/north,
@@ -283,7 +283,7 @@
"eu" = (
/obj/structure/closet/crate,
/obj/machinery/airalarm/directional/north,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"eF" = (
@@ -430,7 +430,7 @@
dir = 1
},
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/structure/curtain/bounty,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
@@ -1102,7 +1102,7 @@
"nU" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"od" = (
@@ -1160,7 +1160,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"oX" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"ph" = (
@@ -2463,7 +2463,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"DG" = (
@@ -2616,7 +2616,7 @@
},
/obj/structure/closet/crate,
/obj/machinery/firealarm/directional/west,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Fu" = (
@@ -3240,7 +3240,7 @@
/area/ship/medical)
"Ne" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/obj/structure/curtain/bounty,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
@@ -3552,7 +3552,7 @@
/area/ship/maintenance/central)
"Qv" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel,
/area/ship/construction)
"QB" = (
@@ -3680,7 +3680,7 @@
},
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/random,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"Sj" = (
@@ -3791,13 +3791,13 @@
dir = 1
},
/obj/structure/crate_shelf,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large{
pixel_x = 1;
pixel_y = -3
@@ -3903,7 +3903,7 @@
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Ug" = (
diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm
index bf97b9b1a44b..3ae3915db4d3 100644
--- a/_maps/shuttles/independent/independent_schmiedeberg.dmm
+++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm
@@ -167,7 +167,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -440,7 +440,7 @@
/area/ship/cargo)
"fq" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/greenglow/filled,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
@@ -462,7 +462,7 @@
/area/ship/engineering)
"fM" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
},
@@ -1176,8 +1176,8 @@
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/random/maintenance/two,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/mineral/titanium,
/area/ship/cargo)
"qj" = (
@@ -1222,7 +1222,7 @@
/area/ship/medical)
"qU" = (
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 9
@@ -2360,7 +2360,7 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
@@ -2728,14 +2728,14 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/wood/walnut,
/area/ship/cargo)
"OO" = (
@@ -2977,7 +2977,7 @@
pixel_y = -32
},
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
@@ -3050,7 +3050,7 @@
/obj/item/flashlight/glowstick/blue,
/obj/item/flashlight/glowstick/cyan,
/obj/item/storage/pill_bottle/floorpill,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 1
@@ -3097,7 +3097,7 @@
dir = 8
},
/obj/item/storage/pill_bottle/zoom,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
@@ -3205,7 +3205,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm
index 8cdb3dfae61a..75784c301eda 100644
--- a/_maps/shuttles/independent/independent_shetland.dmm
+++ b/_maps/shuttles/independent/independent_shetland.dmm
@@ -735,7 +735,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/crew/janitor)
"gd" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/corner/opaque/neutral/half{
dir = 4
},
@@ -3100,7 +3100,7 @@
/turf/open/floor/plating,
/area/ship/hallway/port)
"zr" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
dir = 8
},
@@ -4361,7 +4361,7 @@
"Li" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/random{
pixel_x = -32;
@@ -4647,7 +4647,7 @@
"MS" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"MT" = (
@@ -4676,7 +4676,7 @@
"Ni" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/random{
pixel_y = 32
@@ -4768,7 +4768,7 @@
"Ok" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
@@ -5423,9 +5423,9 @@
pixel_x = -5;
pixel_y = 3
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/drinks/waterbottle/large{
pixel_x = 1;
diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm
index 12f34a8991ac..3edffc72acbc 100644
--- a/_maps/shuttles/independent/independent_sunskipper.dmm
+++ b/_maps/shuttles/independent/independent_sunskipper.dmm
@@ -1182,7 +1182,9 @@
/obj/structure/bed{
dir = 1
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms{
+ dir = 1
+ },
/obj/structure/curtain/cloth/grey,
/obj/structure/cable/green{
icon_state = "1-2"
diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm
index 0ecbfbe09e90..35b3044df741 100644
--- a/_maps/shuttles/independent/independent_tranquility.dmm
+++ b/_maps/shuttles/independent/independent_tranquility.dmm
@@ -1721,7 +1721,7 @@
/area/ship/hallway/starboard)
"nr" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/east,
/obj/structure/sign/poster/contraband/gec{
@@ -4731,7 +4731,7 @@
"LT" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 4
},
@@ -5755,7 +5755,7 @@
/area/ship/crew/hydroponics)
"Tl" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/east,
/obj/structure/sign/poster/contraband/hacking_guide{
@@ -5891,7 +5891,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/north,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/carpet/black,
/area/ship/crew/dorm/dormthree)
"Up" = (
@@ -6197,10 +6197,10 @@
"WS" = (
/obj/machinery/light/dim/directional/north,
/obj/structure/closet/crate/hydroponics,
-/obj/effect/spawner/random/food_or_drink/seed,
-/obj/effect/spawner/random/food_or_drink/seed,
-/obj/effect/spawner/random/food_or_drink/seed,
-/obj/effect/spawner/random/food_or_drink/seed,
+/obj/effect/spawner/lootdrop/seeded,
+/obj/effect/spawner/lootdrop/seeded,
+/obj/effect/spawner/lootdrop/seeded,
+/obj/effect/spawner/lootdrop/seeded,
/obj/item/seeds/random,
/turf/open/floor/grass,
/area/ship/crew/hydroponics)
diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm
index e6542ff6a355..70f32bfb60f2 100644
--- a/_maps/shuttles/inteq/inteq_colossus.dmm
+++ b/_maps/shuttles/inteq/inteq_colossus.dmm
@@ -228,8 +228,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
@@ -856,7 +856,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"iT" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/structure/cable,
@@ -1632,16 +1632,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -2537,7 +2537,7 @@
},
/obj/structure/closet/cardboard,
/obj/item/radio/intercom/directional/south,
-/obj/effect/spawner/random/maintenance/seven,
+/obj/effect/spawner/lootdrop/maintenance/seven,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -3652,7 +3652,7 @@
/obj/structure/closet/crate/trashcart,
/obj/machinery/airalarm/directional/east,
/obj/machinery/firealarm/directional/south,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -4494,7 +4494,7 @@
/turf/open/floor/carpet/black,
/area/ship/crew)
"XS" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/machinery/airalarm/directional/south,
diff --git a/_maps/shuttles/inteq/inteq_hound.dmm b/_maps/shuttles/inteq/inteq_hound.dmm
index b0c1bdfb8171..c6f9e34a653d 100644
--- a/_maps/shuttles/inteq/inteq_hound.dmm
+++ b/_maps/shuttles/inteq/inteq_hound.dmm
@@ -27,8 +27,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/machinery/light/directional/south,
@@ -2043,11 +2043,11 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/turf/open/floor/plasteel/patterned/cargo_one,
diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm
index b322c45ea99b..5df5060f6f06 100644
--- a/_maps/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/shuttles/inteq/inteq_talos.dmm
@@ -888,12 +888,12 @@
/area/ship/maintenance/starboard)
"fN" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"fU" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"fX" = (
@@ -948,7 +948,7 @@
"gm" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"go" = (
@@ -1262,7 +1262,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/cigbutt,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"im" = (
@@ -1640,7 +1640,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"kD" = (
@@ -2132,7 +2132,7 @@
/area/ship/storage)
"nF" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"nH" = (
@@ -2345,7 +2345,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"oR" = (
@@ -2484,8 +2484,8 @@
name = "fridge"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/snacks/popsicle/creamsicle_orange,
/obj/item/reagent_containers/food/snacks/popsicle/creamsicle_orange,
/obj/item/radio/intercom/directional/north,
@@ -2636,7 +2636,7 @@
"qp" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"qr" = (
@@ -2879,7 +2879,7 @@
/area/ship/security)
"rN" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"rP" = (
@@ -3028,7 +3028,7 @@
/area/ship/maintenance/port)
"sD" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
@@ -3041,7 +3041,7 @@
/obj/effect/turf_decal/corner/opaque/brown{
dir = 4
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/machinery/camera/autoname,
/obj/machinery/status_display/shuttle{
pixel_y = 32
@@ -4081,7 +4081,7 @@
/area/ship/maintenance/port)
"zg" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"zh" = (
@@ -4159,7 +4159,7 @@
"zB" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"zE" = (
@@ -4237,7 +4237,7 @@
"Aa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"Ag" = (
@@ -4499,7 +4499,7 @@
/area/ship/crew/canteen)
"BN" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"BP" = (
@@ -4545,7 +4545,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"Cp" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/structure/sign/poster/contraband/inteq{
pixel_x = 32
},
@@ -5212,7 +5212,7 @@
icon_state = "1-8"
},
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"GR" = (
@@ -5286,7 +5286,7 @@
"Ho" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"Hp" = (
@@ -5522,7 +5522,7 @@
/turf/open/floor/engine/vacuum,
/area/ship/engineering/engine)
"Jk" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"Jo" = (
@@ -6161,7 +6161,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"NK" = (
@@ -6308,7 +6308,7 @@
"OP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Pf" = (
@@ -6360,7 +6360,7 @@
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/closet/crate,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
@@ -6635,7 +6635,7 @@
/area/ship/hallway/central)
"Ri" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Rp" = (
@@ -6717,7 +6717,7 @@
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/plasma,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"RY" = (
@@ -6888,7 +6888,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"SS" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -7105,11 +7105,11 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -7146,7 +7146,7 @@
/area/ship/storage/starboard)
"Uy" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"UD" = (
@@ -7684,7 +7684,7 @@
/area/ship/maintenance/starboard)
"YZ" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"Zb" = (
@@ -7883,7 +7883,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"ZY" = (
diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm
index 994041639613..00b25f936eab 100644
--- a/_maps/shuttles/inteq/inteq_valor.dmm
+++ b/_maps/shuttles/inteq/inteq_valor.dmm
@@ -92,7 +92,7 @@
},
/obj/effect/turf_decal/box/corners,
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/lootdrop/maintenance/five,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bv" = (
@@ -586,9 +586,9 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/ration/crayons,
/obj/effect/turf_decal/box/corners{
dir = 8
@@ -1491,7 +1491,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 5
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
@@ -2691,8 +2691,8 @@
dir = 1
},
/obj/item/reagent_containers/food/snacks/hotdog,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"yu" = (
@@ -4647,7 +4647,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Qn" = (
@@ -5393,7 +5393,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 4
},
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/patterned/grid,
diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm
index cd79d41cc9cc..9ea8b60d9b89 100644
--- a/_maps/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/shuttles/inteq/inteq_vaquero.dmm
@@ -1520,16 +1520,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -3217,7 +3217,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"XG" = (
@@ -3252,8 +3252,8 @@
name = "fridge"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/carneburrito,
/obj/effect/turf_decal/corner/opaque/yellow{
diff --git a/_maps/shuttles/minutemen/minutemen_atlas.dmm b/_maps/shuttles/minutemen/minutemen_atlas.dmm
index 1b9d5dc2dffb..325069e91a6e 100644
--- a/_maps/shuttles/minutemen/minutemen_atlas.dmm
+++ b/_maps/shuttles/minutemen/minutemen_atlas.dmm
@@ -3749,11 +3749,11 @@
/obj/structure/closet/secure_closet/freezer/fridge/open{
populate = 0
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
index f4643679b3d0..0d57e0ca165a 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
@@ -252,11 +252,11 @@
},
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bd" = (
@@ -497,7 +497,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"cm" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -1089,8 +1089,8 @@
dir = 1;
pixel_y = -32
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/turf/open/floor/plasteel,
/area/ship/crew)
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
index 1e65ca7f3773..2cb4e641cd53 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
@@ -130,7 +130,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/aft)
"bh" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
@@ -246,7 +246,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"cj" = (
@@ -319,7 +319,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"cP" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -357,7 +357,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/fore)
"dp" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -435,7 +435,7 @@
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
"ej" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/borderfloor,
/obj/structure/extinguisher_cabinet/directional/west,
@@ -559,7 +559,7 @@
/turf/open/floor/engine/hull,
/area/ship/external)
"eQ" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
@@ -658,7 +658,7 @@
/area/ship/engineering/atmospherics)
"ga" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/obj/structure/window/reinforced{
dir = 4
@@ -676,7 +676,7 @@
/turf/open/floor/plating,
/area/ship/engineering/engine)
"gf" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
@@ -696,7 +696,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/port)
"gh" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -712,7 +712,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
@@ -776,7 +776,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -815,7 +815,7 @@
/area/ship/crew)
"hA" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/port)
"hL" = (
@@ -907,7 +907,7 @@
/turf/open/floor/engine/airless,
/area/ship/engineering/engine)
"iJ" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/starboard)
"iK" = (
@@ -931,7 +931,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -944,9 +944,9 @@
/area/ship/bridge)
"jc" = (
/obj/structure/table/reinforced,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -1144,13 +1144,13 @@
/area/ship/engineering/engine)
"lb" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/bounty,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"lE" = (
/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"lM" = (
@@ -1176,7 +1176,7 @@
/area/ship/hallway/central)
"lT" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -1219,7 +1219,7 @@
/area/ship/cargo/port)
"mb" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"mm" = (
@@ -1402,7 +1402,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -1418,10 +1418,10 @@
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel/patterned,
/area/ship/storage)
"oR" = (
@@ -1579,7 +1579,7 @@
/area/ship/storage)
"qn" = (
/obj/machinery/power/apc/auto_name/directional/west,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
icon_state = "0-4"
@@ -1604,7 +1604,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"qu" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
@@ -1684,12 +1684,12 @@
/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
"qY" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 6
@@ -1955,7 +1955,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
@@ -2078,7 +2078,7 @@
icon_state = "1-8"
},
/obj/machinery/light/small/directional/south,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -2113,7 +2113,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/storage)
"vi" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"vl" = (
@@ -2158,7 +2158,7 @@
/turf/open/floor/plastic,
/area/ship/crew/toilet)
"vG" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/turf_decal/borderfloor{
dir = 1
},
@@ -2267,7 +2267,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering/communications)
"wP" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
/area/ship/cargo/port)
@@ -2294,7 +2294,7 @@
/turf/open/floor/plating,
/area/ship/engineering/engine)
"xd" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -2336,7 +2336,7 @@
/area/ship/cargo/port)
"xG" = (
/obj/item/radio/intercom/directional/north,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
/area/ship/cargo/port)
@@ -2397,7 +2397,7 @@
icon_state = "1-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plasteel/stairs{
dir = 1
},
@@ -2453,7 +2453,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plasteel/stairs,
/area/ship/maintenance/port)
"yG" = (
@@ -2524,7 +2524,7 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
"zv" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/ntspaceworks_big/six{
dir = 4
@@ -2637,7 +2637,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
"AD" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -2684,7 +2684,7 @@
"AN" = (
/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
"AW" = (
@@ -2729,7 +2729,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
"BM" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
dir = 4
},
@@ -2752,7 +2752,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -2761,7 +2761,7 @@
"Cc" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
@@ -3080,7 +3080,7 @@
/obj/effect/turf_decal/box/corners{
dir = 8
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
@@ -3345,14 +3345,14 @@
/area/ship/bridge)
"HK" = (
/obj/machinery/light/directional/north,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/turf_decal/borderfloor{
dir = 1
},
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"HN" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
"HT" = (
@@ -3437,7 +3437,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Is" = (
@@ -3543,7 +3543,7 @@
"Jk" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
"Jn" = (
@@ -3568,7 +3568,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"JL" = (
@@ -3739,7 +3739,7 @@
/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{
dir = 9
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"LK" = (
@@ -3771,7 +3771,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/warning/electricshock{
pixel_y = 32
@@ -3875,7 +3875,7 @@
/area/ship/hallway/aft)
"Nz" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
"NC" = (
@@ -3944,7 +3944,7 @@
/obj/effect/turf_decal/arrows{
dir = 1
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -3970,7 +3970,7 @@
/area/ship/external)
"OZ" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Pc" = (
@@ -4080,7 +4080,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
@@ -4160,7 +4160,7 @@
/obj/effect/turf_decal/box/corners{
dir = 4
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"Qz" = (
@@ -4243,7 +4243,7 @@
/obj/effect/turf_decal/box/corners{
dir = 8
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
@@ -4318,7 +4318,7 @@
"Sa" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -4340,7 +4340,7 @@
/obj/effect/turf_decal/borderfloor{
dir = 1
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
"Sl" = (
@@ -4382,7 +4382,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -4401,7 +4401,7 @@
/area/ship/cargo/port)
"SK" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/airalarm/directional/south,
/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
dir = 4
@@ -4416,7 +4416,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"SQ" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"SV" = (
@@ -4482,7 +4482,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 1
},
@@ -4527,7 +4527,7 @@
/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
@@ -4571,7 +4571,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/central)
"UC" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
@@ -4642,7 +4642,7 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -4704,7 +4704,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
"Vz" = (
@@ -4845,7 +4845,7 @@
/area/ship/cargo/port)
"Wo" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Wq" = (
@@ -5106,7 +5106,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/warning/electricshock{
pixel_y = -32
@@ -5248,7 +5248,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/fore)
"ZS" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/button/ignition/incinerator/atmos{
dir = 4;
@@ -5265,7 +5265,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
"ZY" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/starboard)
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
index 3ddabcf1253c..72bd430d743b 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
@@ -1370,11 +1370,11 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel/patterned,
@@ -5012,7 +5012,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"BO" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
@@ -7448,7 +7448,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/hallway/central)
"OD" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line,
/turf/open/floor/plasteel,
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
index 1a07763671e5..a02ec78fc9e6 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -1,6 +1,6 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
@@ -807,7 +807,7 @@
/area/ship/science/robotics)
"dq" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -1740,7 +1740,10 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"hn" = (
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick{
+ pixel_x = 5;
+ pixel_y = 9
+ },
/obj/effect/decal/cleanable/plastic,
/obj/machinery/atmospherics/pipe/simple/purple/hidden,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -1886,7 +1889,7 @@
/area/ship/crew/dorm/dormtwo)
"hM" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
@@ -2449,7 +2452,7 @@
/obj/effect/turf_decal/trimline/opaque/blue/line{
dir = 9
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/machinery/light/directional/west,
/obj/machinery/light_switch{
pixel_y = 22;
@@ -4832,7 +4835,7 @@
/area/ship/medical)
"sr" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 9
},
@@ -6160,14 +6163,14 @@
/area/ship/bridge)
"wq" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
dir = 8
},
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/lootdrop/maintenance/five,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -6913,9 +6916,9 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/spawner/random/clothing/gloves,
-/obj/effect/spawner/random/clothing/beret_or_rabbitears,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -7719,7 +7722,7 @@
/area/ship/crew/canteen)
"CP" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 4
},
@@ -8990,7 +8993,7 @@
/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
dir = 10
},
-/obj/effect/spawner/random/salvage/half,
+/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -10461,7 +10464,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/official/get_your_legs{
@@ -10960,7 +10963,7 @@
/area/ship/engineering/atmospherics)
"OR" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 8
},
@@ -11572,8 +11575,8 @@
dir = 9
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -11810,7 +11813,7 @@
/area/ship/hangar)
"Sz" = (
/obj/structure/bed,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 5
},
@@ -11886,7 +11889,7 @@
dir = 5
},
/obj/item/toy/plush/beeplushie,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
icon_state = "0-8"
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
index 2f1d3b060077..95b61c204b54 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
@@ -240,9 +240,9 @@
icon_state = "crateopen";
opened = 1
},
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/lootdrop/gloves,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"aF" = (
@@ -576,9 +576,9 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"bX" = (
@@ -2000,7 +2000,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen/kitchen)
"pF" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -2172,8 +2172,8 @@
/obj/effect/turf_decal/ntspaceworks_big/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/medical/surgery_tool/common,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"uk" = (
@@ -2520,8 +2520,8 @@
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
-/obj/effect/spawner/random/medical/prosthetic,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/lootdrop/random_prosthetic,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Ai" = (
@@ -2683,7 +2683,7 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/radio/intercom/directional/east,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/item/extinguisher/mini,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
@@ -2846,7 +2846,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/spacecash/bundle/pocketchange,
/turf/open/floor/plasteel/dark,
@@ -3064,7 +3064,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"La" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/machinery/light/broken/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -3701,11 +3701,11 @@
"Zf" = (
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration{
pixel_x = 7
},
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_x = -8
},
/obj/machinery/button/door{
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
index 25b3bb0a0c83..f749f60f7e52 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
@@ -50,7 +50,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
/turf/open/floor/plasteel/tech/grid,
@@ -876,7 +876,7 @@
/area/ship/engineering)
"fd" = (
/obj/structure/table/wood/reinforced,
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_x = 5;
pixel_y = 5
},
@@ -908,7 +908,7 @@
pixel_x = -5;
pixel_y = -7
},
-/obj/effect/spawner/random/food_or_drink/ration{
+/obj/effect/spawner/lootdrop/ration{
pixel_x = 6;
pixel_y = 11
},
@@ -1035,7 +1035,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -1412,7 +1412,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"hZ" = (
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -1441,7 +1441,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -2092,7 +2092,7 @@
dir = 6
},
/obj/structure/railing,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
@@ -2117,7 +2117,7 @@
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"lW" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -2330,7 +2330,7 @@
/area/ship/security/prison)
"nk" = (
/obj/structure/railing,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -2745,12 +2745,12 @@
/area/ship/engineering/electrical)
"pV" = (
/obj/structure/railing,
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"pY" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -2956,7 +2956,7 @@
/obj/structure/railing{
dir = 9
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -3258,7 +3258,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
@@ -3321,7 +3321,7 @@
icon_state = "5-8"
},
/obj/structure/rack,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
@@ -4610,7 +4610,7 @@
/obj/structure/railing/corner{
dir = 4
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange{
@@ -4726,7 +4726,7 @@
/obj/structure/window/reinforced/tinted/frosted{
dir = 8
},
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light_switch{
dir = 8;
@@ -4851,7 +4851,7 @@
/area/ship/crew/canteen)
"Dh" = (
/obj/structure/table/wood,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/plasteel,
/area/ship/security/prison)
"Dj" = (
@@ -5222,7 +5222,7 @@
/obj/item/canvas/twentythreeXtwentythree,
/obj/structure/closet/crate/trashcart,
/obj/item/paint/anycolor,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/sprayweb,
/turf/open/floor/plating,
@@ -5644,7 +5644,7 @@
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/hallway/central)
"GZ" = (
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"Ha" = (
@@ -5657,7 +5657,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/engineering)
@@ -5752,7 +5752,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -6434,7 +6434,7 @@
dir = 4
},
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"Lt" = (
@@ -6870,7 +6870,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -7102,7 +7102,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
"PC" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -7467,7 +7467,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -7713,7 +7713,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew/dorm/dormthree)
"Ti" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/railing{
dir = 9
@@ -7737,7 +7737,7 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -8532,7 +8532,7 @@
/area/ship/engineering/atmospherics)
"XY" = (
/obj/structure/table/wood,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/effect/turf_decal/spline/plain/opaque/blue,
/turf/open/floor/plasteel,
/area/ship/security/prison)
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 5d181bcf584c..f50061aaa28f 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
@@ -1137,7 +1137,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/firealarm/directional/east,
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/plasma,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -3923,7 +3923,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"EP" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"Ff" = (
@@ -4272,7 +4272,7 @@
id = "Ranger_Port_maint_shut";
req_ship_access = 1
},
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Ih" = (
@@ -5558,11 +5558,11 @@
/obj/effect/turf_decal/techfloor{
dir = 5
},
-/obj/effect/spawner/random/lpaid{
+/obj/effect/spawner/lootdrop/lpaid{
pixel_x = 2;
pixel_y = -2
},
-/obj/effect/spawner/random/lpretrieval{
+/obj/effect/spawner/lootdrop/lpretrieval{
pixel_x = -10;
pixel_y = 10
},
diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm
index ca6e86f10345..933d8f7fbfe0 100644
--- a/_maps/shuttles/pgf/pgf_crying_sun.dmm
+++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm
@@ -2667,7 +2667,7 @@
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/corner{
dir = 8
},
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
@@ -2935,7 +2935,7 @@
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
dir = 1
},
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"zc" = (
@@ -6330,10 +6330,10 @@
/obj/item/storage/ration/vegan_chili,
/obj/item/storage/ration/beef_strips,
/obj/item/storage/ration/beef_strips,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/cans/sixbeer,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm
index 2890fa5ba815..46d00806edd7 100644
--- a/_maps/shuttles/pirate/pirate_libertatia.dmm
+++ b/_maps/shuttles/pirate/pirate_libertatia.dmm
@@ -842,8 +842,8 @@
/area/ship/crew)
"AL" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/item/radio/intercom/directional/north,
/obj/item/lighter{
@@ -876,8 +876,8 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Bw" = (
-/obj/effect/spawner/random/clothing/pirate_or_bandana,
-/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/shoes/jackboots,
/obj/item/clothing/shoes/jackboots,
@@ -1569,12 +1569,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm
index 35387ea53cd5..3e48d25a962c 100644
--- a/_maps/shuttles/pirate/pirate_tortuga.dmm
+++ b/_maps/shuttles/pirate/pirate_tortuga.dmm
@@ -158,7 +158,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"bR" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"cb" = (
@@ -555,7 +555,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"gG" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -918,7 +918,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"kp" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -928,7 +928,7 @@
},
/area/ship/maintenance)
"kv" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -942,7 +942,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"la" = (
@@ -977,7 +977,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
"li" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -1022,7 +1022,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"mf" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/structure/cable/yellow{
icon_state = "5-9"
},
@@ -1297,8 +1297,8 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"oK" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -1391,7 +1391,7 @@
/turf/closed/wall,
/area/ship/crew/canteen)
"qi" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/crayon{
icon_state = "med"
@@ -1448,7 +1448,7 @@
/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -1546,7 +1546,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"ti" = (
-/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/lootdrop/donut,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
},
@@ -1577,7 +1577,7 @@
dir = 1
},
/obj/structure/curtain/cloth,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/carpet,
/area/ship/crew)
@@ -1936,7 +1936,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"yc" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -2051,7 +2051,7 @@
"Ar" = (
/obj/structure/bed,
/obj/structure/curtain/cloth,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/turf/open/floor/carpet,
/area/ship/crew)
"Av" = (
@@ -2072,7 +2072,7 @@
/turf/open/floor/plasteel,
/area/ship/crew)
"AG" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"AQ" = (
@@ -2199,7 +2199,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -2233,7 +2233,7 @@
dir = 1
},
/obj/structure/curtain/cloth,
-/obj/effect/spawner/random/bedsheet,
+/obj/item/bedsheet/dorms,
/obj/machinery/airalarm/directional/north,
/turf/open/floor/carpet,
/area/ship/crew)
@@ -2255,7 +2255,7 @@
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"Eb" = (
-/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -2820,9 +2820,9 @@
/area/ship/crew/canteen)
"Lb" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/effect/turf_decal/siding/wideplating{
dir = 5
},
@@ -2998,7 +2998,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -3216,7 +3216,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"Pb" = (
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
@@ -3309,7 +3309,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"QM" = (
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/closet/cardboard,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -3358,7 +3358,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
},
@@ -4044,7 +4044,7 @@
/turf/open/floor/plating,
/area/ship/cargo)
"YU" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm
index 8ed63dcfac50..0a63ed263799 100644
--- a/_maps/shuttles/solgov/solgov_inkwell.dmm
+++ b/_maps/shuttles/solgov/solgov_inkwell.dmm
@@ -2536,7 +2536,7 @@
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
},
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"qw" = (
@@ -2645,7 +2645,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"rm" = (
-/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/spawner/lootdrop/crate_spawner,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
},
@@ -2862,7 +2862,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"sn" = (
@@ -5208,7 +5208,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/techfloor,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage)
"GN" = (
@@ -5450,7 +5450,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"IC" = (
-/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/spawner/lootdrop/crate_spawner,
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
@@ -5613,7 +5613,7 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"JN" = (
@@ -6128,7 +6128,7 @@
/area/ship/crew/canteen/kitchen)
"Nj" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"Np" = (
@@ -6776,7 +6776,7 @@
/area/ship/bridge)
"RS" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"RX" = (
diff --git a/_maps/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
index ad9ef66d3d5d..0504142f55b3 100644
--- a/_maps/shuttles/subshuttles/independent_sugarcube.dmm
+++ b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
@@ -56,8 +56,8 @@
/turf/open/floor/plating,
/area/ship/engineering)
"h" = (
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/trash/cheesie,
/obj/item/trash/cheesie,
/obj/item/trash/candy,
@@ -259,8 +259,8 @@
/obj/item/circuitboard/machine/autolathe,
/obj/item/pickaxe/improvised,
/obj/item/pickaxe/improvised,
-/obj/effect/spawner/random/decoration/glowstick,
-/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/lootdrop/glowstick,
/obj/machinery/power/terminal{
dir = 8
},
diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
index 71019ff4131e..253a82277fdf 100644
--- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
+++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
@@ -849,9 +849,9 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/random/maintenance/five,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/item/stack/marker_beacon/thirty,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
index 711a9f2033ae..4aafbcf9dc72 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
@@ -222,12 +222,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/effect/turf_decal/industrial/outline,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
@@ -1284,8 +1284,8 @@
/area/ship/security/armory)
"wO" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/turf_decal/corner/transparent/bar{
dir = 1
},
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
index 6b63e3626a88..fedc993738bd 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
@@ -998,7 +998,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"jD" = (
-/obj/effect/spawner/random/salvage_capacitor,
+/obj/effect/spawner/lootdrop/salvage_capacitor,
/obj/effect/decal/cleanable/shreds,
/obj/structure/cable{
icon_state = "4-8"
@@ -1461,7 +1461,7 @@
dir = 9
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/effect/turf_decal/box,
/obj/machinery/camera/autoname{
dir = 10
@@ -2009,7 +2009,7 @@
dir = 4
},
/obj/machinery/light/dim/directional/north,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"sV" = (
@@ -2058,9 +2058,9 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/lootdrop/costume,
/obj/item/storage/box/emptysandbags,
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/obj/machinery/button/door{
dir = 4;
id = "syndie_mechbay";
@@ -3151,14 +3151,22 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/ration{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/ration{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/ration{
+ pixel_x = -6
+ },
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/machinery/airalarm/directional/south,
/turf/open/floor/mineral/plastitanium,
/area/ship/hallway/aft)
@@ -3249,7 +3257,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"FV" = (
-/obj/effect/spawner/random/salvage_scanning,
+/obj/effect/spawner/lootdrop/salvage_scanning,
/obj/effect/decal/cleanable/shreds{
pixel_y = 14
},
@@ -3876,10 +3884,10 @@
/obj/structure/table/reinforced,
/obj/item/hemostat,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/random/medical/prosthetic{
+/obj/effect/spawner/lootdrop/random_prosthetic{
pixel_x = 6
},
-/obj/effect/spawner/random/medical/prosthetic{
+/obj/effect/spawner/lootdrop/random_prosthetic{
pixel_x = -6
},
/turf/open/floor/pod/dark,
@@ -4452,7 +4460,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/random/salvage_manipulator,
+/obj/effect/spawner/lootdrop/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -5340,7 +5348,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"YT" = (
-/obj/effect/spawner/random/salvage_manipulator,
+/obj/effect/spawner/lootdrop/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "4-8"
@@ -5423,7 +5431,7 @@
},
/area/ship/cargo)
"Zf" = (
-/obj/effect/spawner/random/salvage_matter_bin,
+/obj/effect/spawner/lootdrop/salvage_matter_bin,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
@@ -5439,7 +5447,7 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/lootdrop/maintenance/two,
/obj/machinery/button/door{
dir = 1;
id = "Artillery2shutter";
diff --git a/_maps/shuttles/syndicate/syndicate_litieguai.dmm b/_maps/shuttles/syndicate/syndicate_litieguai.dmm
index 750f3016b14e..2b12f177f57e 100644
--- a/_maps/shuttles/syndicate/syndicate_litieguai.dmm
+++ b/_maps/shuttles/syndicate/syndicate_litieguai.dmm
@@ -266,7 +266,7 @@
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"fX" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/trimline/opaque/red/filled/line{
dir = 8
},
@@ -397,8 +397,8 @@
/area/ship/crew)
"jh" = (
/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/obj/item/radio/intercom/directional/west,
/turf/open/floor/wood/ebony,
/area/ship/crew)
@@ -538,7 +538,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/port)
"na" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/trimline/opaque/red/filled/line{
dir = 8
},
diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm
index 875d5806131c..3d26ff6512b5 100644
--- a/_maps/shuttles/syndicate/syndicate_panacea.dmm
+++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm
@@ -47,7 +47,7 @@
/turf/open/floor/plasteel/sepia,
/area/ship/crew/ccommons)
"az" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -7126,7 +7126,7 @@
/turf/open/floor/carpet/red,
/area/ship/crew/dorm/dormtwo)
"Qi" = (
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -8163,7 +8163,7 @@
/area/ship/engineering)
"Wr" = (
/obj/machinery/light/directional/north,
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/turf/open/floor/suns/dark/plain,
/area/ship/crew/ccommons)
"Wu" = (
diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
index f52d41d021c3..9b789add9c3e 100644
--- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -272,7 +272,7 @@
"bR" = (
/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters,
/obj/machinery/light/directional/south,
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/borderfloorblack{
dir = 1
},
@@ -358,7 +358,7 @@
/area/ship/medical)
"cp" = (
/obj/structure/closet/emcloset,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/item/trash/syndi_cakes,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
@@ -815,7 +815,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"eQ" = (
-/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/pod/dark,
/area/ship/engineering/atmospherics)
"eR" = (
@@ -3005,8 +3005,8 @@
/obj/item/storage/box/ingredients/vegetarian,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
-/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"qQ" = (
@@ -5820,7 +5820,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/lootdrop/maintenance/eight,
/obj/item/circuitboard/machine/autolathe,
/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/matter_bin,
@@ -6329,7 +6329,7 @@
dir = 8
},
/obj/machinery/light/directional/north,
-/obj/effect/spawner/random/vending/cola,
+/obj/machinery/vending/cola/random,
/obj/effect/turf_decal/borderfloorblack/corner{
dir = 8
},
@@ -7487,7 +7487,7 @@
icon_state = "2-8"
},
/obj/structure/closet/emcloset,
-/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/lootdrop/maintenance/four,
/obj/item/reagent_containers/food/snacks/burger/red{
name = "suspicious red burger";
desc = "A suspicious looking burger.";
@@ -8597,9 +8597,9 @@
"Xf" = (
/obj/structure/table/wood,
/obj/machinery/door/firedoor/border_only,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
-/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/lootdrop/ration,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"Xg" = (
diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm
index 6a076e34555b..c12d8dd837da 100644
--- a/_maps/templates/shelter_2.dmm
+++ b/_maps/templates/shelter_2.dmm
@@ -161,7 +161,7 @@
pixel_x = 7;
pixel_y = 2
},
-/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/lootdrop/three_course_meal,
/turf/open/floor/carpet/black,
/area/survivalpod)
"y" = (
diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm
index 56743e38b0f7..570483a06a1d 100644
--- a/_maps/templates/shelter_3.dmm
+++ b/_maps/templates/shelter_3.dmm
@@ -225,7 +225,7 @@
/turf/open/floor/carpet/black,
/area/survivalpod)
"L" = (
-/obj/effect/spawner/random/vending/snack,
+/obj/machinery/vending/snack/random,
/turf/open/floor/carpet/black,
/area/survivalpod)
"M" = (
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index 776014c4dfb5..b231b4e944c9 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -261,99 +261,43 @@
result = first ^ second
return result
-/**
- * Picks a random element from a list based on a weighting system:
- * 1. Adds up the total of weights for each element
- * 2. Gets a number between 1 and that total
- * 3. For each element in the list, subtracts its weighting from that number
- * 4. If that makes the number 0 or less, return that element.
- * Will output null sometimes if you use decimals (e.g. 0.1 instead of 10) as rand() uses integers, not floats
-**/
-/proc/pick_weight(list/list_to_pick)
+//Picks a random element from a list based on a weighting system:
+//1. Adds up the total of weights for each element
+//2. Gets a number between 1 and that total
+//3. For each element in the list, subtracts its weighting from that number
+//4. If that makes the number 0 or less, return that element.
+/proc/pickweight(list/L)
var/total = 0
var/item
- for(item in list_to_pick)
- if(!list_to_pick[item])
- list_to_pick[item] = 1
- total += list_to_pick[item]
+ for (item in L)
+ if (!L[item])
+ L[item] = 1
+ total += L[item]
total = rand(1, total)
- for(item in list_to_pick)
- total -= list_to_pick[item]
- if(total <= 0)
+ for (item in L)
+ total -=L [item]
+ if (total <= 0)
return item
return null
-/**
- * Picks a random element from a list based on a weighting system.
- * For example, given the following list:
- * A = 6, B = 3, C = 1, D = 0
- * A would have a 60% chance of being picked,
- * B would have a 30% chance of being picked,
- * C would have a 10% chance of being picked,
- * and D would have a 0% chance of being picked.
- * You should only pass integers in.
- */
-/proc/pick_weight_allow_zero(list/list_to_pick) //The original pick_weight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
- if(length(list_to_pick) == 0)
- return null
-
+/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
var/total = 0
- for(var/item in list_to_pick)
- if(!list_to_pick[item])
- list_to_pick[item] = 0
- total += list_to_pick[item]
-
- total = rand(1, total)
- for(var/item in list_to_pick)
- var/item_weight = list_to_pick[item]
- if(item_weight == 0)
- continue
+ var/item
+ for (item in L)
+ if (!L[item])
+ L[item] = 0
+ total += L[item]
- total -= item_weight
- if(total <= 0)
+ total = rand(0, total)
+ for (item in L)
+ total -=L [item]
+ if (total <= 0 && L[item])
return item
return null
-/**
- * Like pick_weight, but allowing for nested lists.
- *
- * For example, given the following list:
- * list(A = 1, list(B = 1, C = 1))
- * A would have a 50% chance of being picked,
- * and list(B, C) would have a 50% chance of being picked.
- * If list(B, C) was picked, B and C would then each have a 50% chance of being picked.
- * So the final probabilities would be 50% for A, 25% for B, and 25% for C.
- *
- * Weights should be integers. Entries without weights are assigned weight 1 (so unweighted lists can be used as well)
- */
-/proc/pick_weight_recursive(list/list_to_pick)
- var/result = pick_weight(fill_with_ones(list_to_pick))
- while(islist(result))
- result = pick_weight(fill_with_ones(result))
- return result
-
-/**
- * Given a list, return a copy where values without defined weights are given weight 1.
- * For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1)
- * Useful for weighted random choices (loot tables, syllables in languages, etc.)
- */
-/proc/fill_with_ones(list/list_to_pad)
- if (!islist(list_to_pad))
- return list_to_pad
-
- var/list/final_list = list()
-
- for (var/key in list_to_pad)
- if (list_to_pad[key])
- final_list[key] = list_to_pad[key]
- else
- final_list[key] = 1
-
- return final_list
-
/// Takes a weighted list (see above) and expands it into raw entries
/// This eats more memory, but saves time when actually picking from it
/proc/expand_weights(list/list_to_pick)
diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm
index 5dab48761ecc..cdbee26f9ba7 100644
--- a/code/__HELPERS/_string_lists.dm
+++ b/code/__HELPERS/_string_lists.dm
@@ -1,5 +1,5 @@
#define pick_list(FILE, KEY) (pick(strings(FILE, KEY)))
-#define pick_list_weighted(FILE, KEY) (pick_weight(strings(FILE, KEY)))
+#define pick_list_weighted(FILE, KEY) (pickweight(strings(FILE, KEY)))
#define pick_list_replacements(FILE, KEY) (strings_replacement(FILE, KEY))
#define json_load(FILE) (json_decode(file2text(FILE)))
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index 505734d6cd5d..15fbf39c6e24 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -92,7 +92,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items
/obj/item/clothing/suit/toggle/labcoat = 1,
/obj/item/clothing/under/color/grey = 1,
/obj/item/clothing/gloves/color/fyellow = 1,
- /obj/effect/spawner/random/clothing/gloves = 1,
+ /obj/effect/spawner/lootdrop/gloves = 1,
/obj/item/storage/wallet/random = 1,
/obj/item/clothing/glasses/science = 1,
/obj/item/clothing/glasses/meson = 1,
@@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items
//light sources
/obj/item/flashlight = 1,
- /obj/effect/spawner/random/decoration/glowstick = 1,
+ /obj/effect/spawner/lootdrop/glowstick = 1,
/obj/item/clothing/head/hardhat/red = 1,
/obj/item/flashlight/flare = 1,
) = 1,
@@ -233,7 +233,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/storage/box/donkpockets/donkpockethonk = 1,
) = 1,
/obj/item/reagent_containers/food/snacks/monkeycube = 1,
- /obj/effect/spawner/random/food_or_drink/ration = 1,
+ /obj/effect/spawner/lootdrop/ration = 1,
) = 8,
list(//fakeout items, keep this list at low relative weight
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index 37256f9ce833..ac7298dc100d 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -431,13 +431,3 @@
max_val = 255
config_entry_value = 127
min_val = 127
-
-/**
- * A config that skews with the random spawners weights
- * If the value is lower than 1, it'll tend to even out the odds
- * If higher than 1, it'll lean toward common spawns even more.
- */
-/datum/config_entry/number/random_loot_weight_modifier
- integer = FALSE
- default = 1
- min_val = 0.05
diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm
index dd5515397277..113bfefa7a52 100644
--- a/code/controllers/subsystem/overmap.dm
+++ b/code/controllers/subsystem/overmap.dm
@@ -154,7 +154,7 @@ SUBSYSTEM_DEF(overmap)
return
if(!length(orbits))
break // Can't fit any more in
- var/event_type = pick_weight(GLOB.overmap_event_pick_list)
+ var/event_type = pickweight(GLOB.overmap_event_pick_list)
var/selected_orbit = pick(orbits)
var/list/T = get_unused_overmap_square_in_radius(selected_orbit)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 7f0e9c8ee627..5ca963c53472 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -225,7 +225,7 @@ SUBSYSTEM_DEF(ticker)
if(!runnable_modes.len)
to_chat(world, "Unable to choose playable game mode. Reverting to pre-game lobby.")
return 0
- mode = pick_weight(runnable_modes)
+ mode = pickweight(runnable_modes)
if(!mode) //too few roundtypes all run too recently
mode = pick(runnable_modes)
diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm
index 148bf17ed210..acaa03d3ff7a 100644
--- a/code/datums/ai_laws.dm
+++ b/code/datums/ai_laws.dm
@@ -264,7 +264,7 @@
var/datum/ai_laws/lawtype
var/list/law_weights = CONFIG_GET(keyed_list/law_weight)
while(!lawtype && law_weights.len)
- var/possible_id = pick_weight_allow_zero(law_weights)
+ var/possible_id = pickweightAllowZero(law_weights)
lawtype = lawid_to_type(possible_id)
if(!lawtype)
law_weights -= possible_id
@@ -331,7 +331,7 @@
replaceable_groups[LAW_INHERENT] = inherent.len
if(supplied.len && (LAW_SUPPLIED in groups))
replaceable_groups[LAW_SUPPLIED] = supplied.len
- var/picked_group = pick_weight(replaceable_groups)
+ var/picked_group = pickweight(replaceable_groups)
switch(picked_group)
if(LAW_ZEROTH)
. = zeroth
diff --git a/code/datums/components/fantasy/_fantasy.dm b/code/datums/components/fantasy/_fantasy.dm
index 6941f6c169b4..92bd0868a746 100644
--- a/code/datums/components/fantasy/_fantasy.dm
+++ b/code/datums/components/fantasy/_fantasy.dm
@@ -75,7 +75,7 @@
var/usedSlots = NONE
for(var/i in 1 to max(1, abs(quality))) // We want at least 1 affix applied
- var/datum/fantasy_affix/affix = pick_weight(affixListing)
+ var/datum/fantasy_affix/affix = pickweight(affixListing)
if(affix.placement & usedSlots)
continue
if(!(affix.alignment & alignment))
diff --git a/code/datums/components/fantasy/suffixes.dm b/code/datums/components/fantasy/suffixes.dm
index 7035c143ae4f..8cabee42d21c 100644
--- a/code/datums/components/fantasy/suffixes.dm
+++ b/code/datums/components/fantasy/suffixes.dm
@@ -138,7 +138,7 @@
/obj/projectile/beam/disabler = 15
)
- var/obj/projectile/picked_projectiletype = pick_weight(weighted_projectile_types)
+ var/obj/projectile/picked_projectiletype = pickweight(weighted_projectile_types)
var/obj/item/master = comp.parent
comp.appliedComponents += master.AddComponent(/datum/component/mirv, picked_projectiletype)
diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm
index 7f4b8b50229e..1307d5d0ec8e 100644
--- a/code/datums/components/squeak.dm
+++ b/code/datums/components/squeak.dm
@@ -67,9 +67,9 @@
if(prob(squeak_chance))
if(!override_squeak_sounds)
- playsound(parent, pick_weight(default_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
+ playsound(parent, pickweight(default_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
else
- playsound(parent, pick_weight(override_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
+ playsound(parent, pickweight(override_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
/datum/component/squeak/proc/step_squeak()
SIGNAL_HANDLER
diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm
index f88e594e3fc7..bb7a33846a34 100644
--- a/code/datums/looping_sounds/_looping_sound.dm
+++ b/code/datums/looping_sounds/_looping_sound.dm
@@ -100,7 +100,7 @@
/datum/looping_sound/proc/get_sound(starttime, _mid_sounds)
. = _mid_sounds || mid_sounds
while(!isfile(.) && !isnull(.))
- . = pick_weight(.)
+ . = pickweight(.)
/datum/looping_sound/proc/on_start()
var/start_wait = 0
diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm
index f64e47504957..077065c8e44e 100644
--- a/code/datums/mapgen/planetary/JungleGenerator.dm
+++ b/code/datums/mapgen/planetary/JungleGenerator.dm
@@ -100,7 +100,7 @@
mob_spawn_list = list(
/mob/living/carbon/monkey = 10,
/mob/living/simple_animal/hostile/retaliate/chicken = 10,
- /obj/effect/spawner/random/chicken/jungle/flock = 1
+ /obj/effect/spawner/lootdrop/chicken/jungle/flock = 1
)
/datum/biome/jungle/dense
@@ -123,7 +123,7 @@
/mob/living/simple_animal/hostile/gorilla = 1,
/mob/living/carbon/monkey = 6,
/mob/living/simple_animal/hostile/retaliate/chicken = 4,
- /obj/effect/spawner/random/chicken/jungle/flock = 1
+ /obj/effect/spawner/lootdrop/chicken/jungle/flock = 1
)
/datum/biome/jungle/plains
@@ -181,7 +181,7 @@
feature_spawn_list = list(
/obj/item/pickaxe/rusted = 1,
/obj/structure/spawner/burrow/jungle_planet = 1,
- /obj/effect/spawner/random/anomaly/jungle = 1
+ /obj/effect/spawner/lootdrop/anomaly/jungle = 1
)
/datum/biome/cave/jungle/dirt
diff --git a/code/datums/mapgen/planetary/LavaGenerator.dm b/code/datums/mapgen/planetary/LavaGenerator.dm
index 846d4145a66c..bca54d019397 100644
--- a/code/datums/mapgen/planetary/LavaGenerator.dm
+++ b/code/datums/mapgen/planetary/LavaGenerator.dm
@@ -100,7 +100,7 @@
/obj/structure/flora/rock/hell = 20,
/obj/structure/elite_tumor = 4,
/obj/structure/geyser/random = 4,
- /obj/effect/spawner/random/anomaly/lava = 2,
+ /obj/effect/spawner/lootdrop/anomaly/lava = 2,
/obj/structure/flora/rock/hell = 14,
/obj/structure/vein = 5,
/obj/structure/vein/classtwo = 2,
@@ -108,7 +108,7 @@
/obj/structure/geyser/random = 2,
/obj/structure/vein/classthree = 1,
/obj/effect/spawner/minefield = 1,
- /obj/effect/spawner/random/anomaly/lava = 1,
+ /obj/effect/spawner/lootdrop/anomaly/lava = 1,
)
mob_spawn_chance = 4
mob_spawn_list = list(
@@ -167,7 +167,7 @@
feature_spawn_list = list(
/obj/structure/flora/tree/dead/barren = 50,
/obj/structure/flora/tree/dead/tall/grey = 45,
- /obj/effect/spawner/random/anomaly/lava = 10,
+ /obj/effect/spawner/lootdrop/anomaly/lava = 10,
/obj/structure/vein = 5,
/obj/structure/vein/classtwo = 2,
/obj/structure/vein/classthree = 1,
diff --git a/code/datums/mapgen/planetary/RockGenerator.dm b/code/datums/mapgen/planetary/RockGenerator.dm
index b7ab59f5d843..30349a2ea53b 100644
--- a/code/datums/mapgen/planetary/RockGenerator.dm
+++ b/code/datums/mapgen/planetary/RockGenerator.dm
@@ -89,10 +89,10 @@
/obj/structure/vein = 60,
/obj/structure/elite_tumor = 40,
/obj/structure/vein/classtwo = 40,
- /obj/effect/spawner/random/anomaly/rock = 10,
+ /obj/effect/spawner/lootdrop/anomaly/rock = 10,
/obj/structure/vein/classthree = 10,
/obj/effect/spawner/minefield = 2,
- /obj/effect/spawner/random/anomaly/big = 1 //get out of here stalker
+ /obj/effect/spawner/lootdrop/anomaly/big = 1 //get out of here stalker
)
flora_spawn_chance = 5
@@ -162,7 +162,7 @@
/obj/structure/vein/classthree = 1,
/obj/structure/spawner/burrow/rock_plant = 4,
/obj/effect/spawner/minefield = 1,
- /obj/effect/spawner/random/anomaly/rock/cave = 1,
+ /obj/effect/spawner/lootdrop/anomaly/rock/cave = 1,
)
mob_spawn_chance = 6
mob_spawn_list = list(
diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm
index 37615a6b961e..e285f5b1ac6c 100644
--- a/code/datums/mapgen/planetary/SandGenerator.dm
+++ b/code/datums/mapgen/planetary/SandGenerator.dm
@@ -96,7 +96,7 @@
/obj/structure/vein/classtwo = 4,
/obj/structure/elite_tumor = 4,
/obj/structure/vein/classthree = 2,
- /obj/effect/spawner/random/anomaly/sand = 1,
+ /obj/effect/spawner/lootdrop/anomaly/sand = 1,
)
mob_spawn_chance = 4
mob_spawn_list = list(
@@ -120,7 +120,7 @@
/obj/structure/flora/ash/cap_shroom = 4,
/obj/structure/flora/ash/stem_shroom = 4,
/obj/effect/decal/remains/human = 4,
- /obj/effect/spawner/random/maintenance = 40,
+ /obj/effect/spawner/lootdrop/maintenance = 40,
)
/datum/biome/sand/grass
@@ -199,7 +199,7 @@
/obj/structure/geyser/random = 4,
/obj/structure/vein/classtwo = 4,
/obj/structure/elite_tumor = 4,
- /obj/effect/spawner/random/anomaly/sand/cave = 1
+ /obj/effect/spawner/lootdrop/anomaly/sand/cave = 1
)
mob_spawn_chance = 4
mob_spawn_list = list(
diff --git a/code/datums/mapgen/planetary/SnowGenerator.dm b/code/datums/mapgen/planetary/SnowGenerator.dm
index 4297f8a50f2c..7fddcd176c66 100644
--- a/code/datums/mapgen/planetary/SnowGenerator.dm
+++ b/code/datums/mapgen/planetary/SnowGenerator.dm
@@ -112,8 +112,8 @@
)
feature_spawn_chance = 0.1
feature_spawn_list = list(
- /obj/effect/spawner/random/anomaly/ice = 12,
- /obj/effect/spawner/random/anomaly/big = 1,
+ /obj/effect/spawner/lootdrop/anomaly/ice = 12,
+ /obj/effect/spawner/lootdrop/anomaly/big = 1,
/obj/structure/spawner/burrow/ice_planet = 80,
/obj/structure/vein/ice = 25,
/obj/effect/spawner/minefield = 2,
@@ -212,8 +212,8 @@
)
feature_spawn_chance = 0.3
feature_spawn_list = list(
- /obj/effect/spawner/random/anomaly/ice = 100,
- /obj/effect/spawner/random/anomaly/big = 1,
+ /obj/effect/spawner/lootdrop/anomaly/ice = 100,
+ /obj/effect/spawner/lootdrop/anomaly/big = 1,
/obj/structure/spawner/burrow/ice_planet/hard = 600,
/obj/structure/vein/ice = 300,
/obj/structure/vein/ice/classtwo = 500,
@@ -268,7 +268,7 @@
feature_spawn_list = list(
/obj/structure/spawner/burrow/ice_planet = 60,
/obj/structure/spawner/burrow/ice_planet = 40,
- /obj/effect/spawner/random/anomaly/ice/cave = 10,
+ /obj/effect/spawner/lootdrop/anomaly/ice/cave = 10,
/obj/structure/vein/ice = 30,
/obj/structure/vein/ice/classtwo = 50,
/obj/structure/vein/ice/classthree = 6,
diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm
index 3f87e6879c1b..621d5e3b9c4d 100644
--- a/code/datums/mapgen/planetary/WasteGenerator.dm
+++ b/code/datums/mapgen/planetary/WasteGenerator.dm
@@ -96,27 +96,27 @@
flora_spawn_list = list(
//mech spawners
- /obj/effect/spawner/random/waste/mechwreck = 100,
- /obj/effect/spawner/random/waste/mechwreck/rare = 20,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
+ /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 20,
//decals and fluff structures
- /obj/effect/spawner/random/trash/decal = 1800,
- /obj/effect/spawner/random/waste/radiation = 80,
- /obj/effect/spawner/random/waste/radiation/more_rads = 10,
+ /obj/effect/spawner/lootdrop/waste/trash = 1800,
+ /obj/effect/spawner/lootdrop/waste/radiation = 80,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 10,
//stuff you can actually use
- /obj/effect/spawner/random/waste/girder = 600,
+ /obj/effect/spawner/lootdrop/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/atmos_can = 50,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 300,
- /obj/effect/spawner/random/waste/grille_or_trash = 200,
- /obj/effect/spawner/random/maintenance = 200,
- /obj/effect/spawner/random/maintenance/two = 100,
- /obj/effect/spawner/random/maintenance/three = 50,
- /obj/effect/spawner/random/maintenance/four = 20,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 300,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
+ /obj/effect/spawner/lootdrop/maintenance = 200,
+ /obj/effect/spawner/lootdrop/maintenance/two = 100,
+ /obj/effect/spawner/lootdrop/maintenance/three = 50,
+ /obj/effect/spawner/lootdrop/maintenance/four = 20,
//plants
/obj/structure/flora/ash/garden/waste = 70,
@@ -125,7 +125,7 @@
//the illusive shrapnel plant
/obj/item/mine/pressure/explosive/shrapnel/live = 30,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -133,7 +133,7 @@
/obj/effect/radiation/waste = 30,
/obj/effect/radiation/waste/intense = 10,
/obj/structure/geyser/random = 1,
- /obj/effect/spawner/random/anomaly/waste = 1
+ /obj/effect/spawner/lootdrop/anomaly/waste = 1
)
mob_spawn_list = list(
@@ -159,23 +159,23 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/random/trash/decal = 180,
- /obj/effect/spawner/random/waste/radiation = 16,
- /obj/effect/spawner/random/waste/radiation/more_rads = 2,
- /obj/effect/spawner/random/waste/atmos_can = 36,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 60,
+ /obj/effect/spawner/lootdrop/waste/trash = 180,
+ /obj/effect/spawner/lootdrop/waste/radiation = 16,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 2,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 36,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 60,
)
mob_spawn_chance = 1
/datum/biome/waste/crater/rad
flora_spawn_list = list(
/obj/structure/flora/ash/glowshroom = 180,
- /obj/effect/spawner/random/trash/decal = 90,
- /obj/effect/spawner/random/waste/radiation = 25,
- /obj/effect/spawner/random/waste/radiation/more_rads = 7,
- /obj/effect/spawner/random/waste/atmos_can = 7,
- /obj/effect/spawner/random/waste/salvageable = 15
+ /obj/effect/spawner/lootdrop/waste/trash = 90,
+ /obj/effect/spawner/lootdrop/waste/radiation = 25,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 7,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 7,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 15
)
/datum/biome/waste/clearing
@@ -184,26 +184,26 @@
/datum/biome/waste/clearing/mushroom
flora_spawn_list = list(
- /obj/effect/spawner/random/waste/mechwreck = 100,
- /obj/effect/spawner/random/trash/decal = 900,
- /obj/effect/spawner/random/waste/radiation = 300,
- /obj/effect/spawner/random/waste/radiation/more_rads = 120,
- /obj/effect/spawner/random/waste/girder = 600,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
+ /obj/effect/spawner/lootdrop/waste/trash = 900,
+ /obj/effect/spawner/lootdrop/waste/radiation = 300,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 120,
+ /obj/effect/spawner/lootdrop/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/atmos_can = 50,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 300,
- /obj/effect/spawner/random/waste/grille_or_trash = 200,
- /obj/effect/spawner/random/maintenance = 200,
- /obj/effect/spawner/random/maintenance/two = 100,
- /obj/effect/spawner/random/maintenance/three = 50,
- /obj/effect/spawner/random/maintenance/four = 20,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 300,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
+ /obj/effect/spawner/lootdrop/maintenance = 200,
+ /obj/effect/spawner/lootdrop/maintenance/two = 100,
+ /obj/effect/spawner/lootdrop/maintenance/three = 50,
+ /obj/effect/spawner/lootdrop/maintenance/four = 20,
/obj/structure/flora/ash/garden/waste = 300,
/obj/structure/flora/ash/glowshroom = 1800,
/obj/item/mine/pressure/explosive/shrapnel/live = 30,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -227,29 +227,29 @@
)
flora_spawn_list = list( //there are no plants here
- /obj/effect/spawner/random/waste/mechwreck = 200,
- /obj/effect/spawner/random/waste/mechwreck/rare = 50,
- /obj/effect/spawner/random/trash/decal = 900,
- /obj/effect/spawner/random/waste/radiation = 80,
- /obj/effect/spawner/random/waste/radiation/more_rads = 20,
- /obj/effect/spawner/random/waste/girder = 600,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 200,
+ /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 50,
+ /obj/effect/spawner/lootdrop/waste/trash = 900,
+ /obj/effect/spawner/lootdrop/waste/radiation = 80,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 20,
+ /obj/effect/spawner/lootdrop/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/atmos_can = 50,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 300,
- /obj/effect/spawner/random/waste/grille_or_trash = 200,
- /obj/effect/spawner/random/maintenance = 200,
- /obj/effect/spawner/random/maintenance/two = 100,
- /obj/effect/spawner/random/maintenance/three = 50,
- /obj/effect/spawner/random/maintenance/four = 20,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 300,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
+ /obj/effect/spawner/lootdrop/maintenance = 200,
+ /obj/effect/spawner/lootdrop/maintenance/two = 100,
+ /obj/effect/spawner/lootdrop/maintenance/three = 50,
+ /obj/effect/spawner/lootdrop/maintenance/four = 20,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/atmos_can = 180,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 300,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 180,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 300,
/obj/item/mine/pressure/explosive/rad/live = 30,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield = 2
)
mob_spawn_list = list( //nor organics, more biased towards hivebots though
@@ -288,28 +288,28 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/random/waste/mechwreck = 100,
- /obj/effect/spawner/random/waste/mechwreck/rare = 20,
- /obj/effect/spawner/random/trash/decal = 1800,
- /obj/effect/spawner/random/waste/radiation = 80,
- /obj/effect/spawner/random/waste/radiation/more_rads = 10,
- /obj/effect/spawner/random/waste/girder = 600,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
+ /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 20,
+ /obj/effect/spawner/lootdrop/waste/trash = 1800,
+ /obj/effect/spawner/lootdrop/waste/radiation = 80,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 10,
+ /obj/effect/spawner/lootdrop/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/atmos_can = 50,
- /obj/effect/spawner/random/waste/atmos_can/rare = 5,
- /obj/effect/spawner/random/waste/salvageable = 300,
- /obj/effect/spawner/random/waste/grille_or_trash = 200,
- /obj/effect/spawner/random/maintenance = 20,
- /obj/effect/spawner/random/maintenance/two = 50,
- /obj/effect/spawner/random/maintenance/three = 100,
- /obj/effect/spawner/random/maintenance/four = 200,
- /obj/effect/spawner/random/waste/salvageable = 400,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 5,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 300,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
+ /obj/effect/spawner/lootdrop/maintenance = 20,
+ /obj/effect/spawner/lootdrop/maintenance/two = 50,
+ /obj/effect/spawner/lootdrop/maintenance/three = 100,
+ /obj/effect/spawner/lootdrop/maintenance/four = 200,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 400,
/obj/structure/flora/ash/garden/waste = 70,
/obj/structure/flora/ash/glowshroom = 400, //more common in caves
/obj/item/mine/pressure/explosive/rad/live = 10,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -317,7 +317,7 @@
/obj/effect/radiation/waste = 30,
/obj/effect/radiation/waste/intense = 10,
/obj/structure/geyser/random = 1,
- /obj/effect/spawner/random/anomaly/waste/cave = 1
+ /obj/effect/spawner/lootdrop/anomaly/waste/cave = 1
)
mob_spawn_list = list(
/mob/living/simple_animal/hostile/hivebot/strong/rockplanet = 70,
@@ -348,24 +348,24 @@
/datum/biome/cave/waste/rad
flora_spawn_list = list(
- /obj/effect/spawner/random/trash/decal = 900,
- /obj/effect/spawner/random/waste/radiation = 250,
- /obj/effect/spawner/random/waste/radiation/more_rads = 70,
- /obj/effect/spawner/random/waste/atmos_can = 50,
- /obj/effect/spawner/random/waste/atmos_can/rare = 5,
- /obj/effect/spawner/random/waste/salvageable = 150,
- /obj/effect/spawner/random/waste/girder = 200,
+ /obj/effect/spawner/lootdrop/waste/trash = 900,
+ /obj/effect/spawner/lootdrop/waste/radiation = 250,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 70,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 5,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 150,
+ /obj/effect/spawner/lootdrop/waste/girder = 200,
/obj/structure/reagent_dispensers/watertank = 10,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/random/waste/grille_or_trash = 200,
- /obj/effect/spawner/random/maintenance = 20,
- /obj/effect/spawner/random/maintenance/two = 50,
- /obj/effect/spawner/random/maintenance/three = 100,
- /obj/effect/spawner/random/maintenance/four = 200,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
+ /obj/effect/spawner/lootdrop/maintenance = 20,
+ /obj/effect/spawner/lootdrop/maintenance/two = 50,
+ /obj/effect/spawner/lootdrop/maintenance/three = 100,
+ /obj/effect/spawner/lootdrop/maintenance/four = 200,
/obj/structure/flora/ash/glowshroom = 1800,
/obj/item/mine/pressure/explosive/rad/live = 30,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield = 2
)
feature_spawn_chance = 12
@@ -382,26 +382,26 @@
/turf/closed/wall/rust/wasteplanet = 10
)
flora_spawn_list = list(
- /obj/effect/spawner/random/waste/mechwreck = 40,
- /obj/effect/spawner/random/waste/mechwreck/rare = 10,
- /obj/effect/spawner/random/trash/decal = 180,
- /obj/effect/spawner/random/waste/radiation = 32,
- /obj/effect/spawner/random/waste/radiation/more_rads = 4,
- /obj/effect/spawner/random/waste/girder = 120,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 40,
+ /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 10,
+ /obj/effect/spawner/lootdrop/waste/trash = 180,
+ /obj/effect/spawner/lootdrop/waste/radiation = 32,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 4,
+ /obj/effect/spawner/lootdrop/waste/girder = 120,
/obj/structure/reagent_dispensers/watertank = 40,
/obj/item/stack/cable_coil/cut = 100,
/obj/structure/closet/crate/secure/loot = 6,
- /obj/effect/spawner/random/waste/atmos_can = 10,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 60,
- /obj/effect/spawner/random/waste/grille_or_trash = 40,
- /obj/effect/spawner/random/maintenance = 4,
- /obj/effect/spawner/random/maintenance/two = 10,
- /obj/effect/spawner/random/maintenance/three = 20,
- /obj/effect/spawner/random/maintenance/four = 40,
- /obj/effect/spawner/random/waste/salvageable = 80,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 10,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 60,
+ /obj/effect/spawner/lootdrop/waste/grille_or_trash = 40,
+ /obj/effect/spawner/lootdrop/maintenance = 4,
+ /obj/effect/spawner/lootdrop/maintenance/two = 10,
+ /obj/effect/spawner/lootdrop/maintenance/three = 20,
+ /obj/effect/spawner/lootdrop/maintenance/four = 40,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 80,
/obj/item/mine/proximity/spawner/manhack/live = 40,
- /obj/effect/spawner/random/mine = 8,
+ /obj/effect/spawner/lootdrop/mine = 8,
/obj/effect/spawner/minefield/manhack = 2
)
mob_spawn_list = list( //nor organics, more biased towards hivebots though
@@ -417,18 +417,18 @@
/datum/biome/cave/waste/metal/hivebot
flora_spawn_list = list(
- /obj/effect/spawner/random/trash/decal = 90,
- /obj/effect/spawner/random/waste/radiation = 16,
- /obj/effect/spawner/random/waste/radiation/more_rads = 2,
- /obj/effect/spawner/random/waste/girder = 60,
+ /obj/effect/spawner/lootdrop/waste/trash = 90,
+ /obj/effect/spawner/lootdrop/waste/radiation = 16,
+ /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 2,
+ /obj/effect/spawner/lootdrop/waste/girder = 60,
/obj/structure/reagent_dispensers/watertank = 20,
/obj/item/stack/cable_coil/cut = 50,
/obj/structure/closet/crate/secure/loot = 3,
- /obj/effect/spawner/random/maintenance = 2,
- /obj/effect/spawner/random/maintenance/two = 5,
- /obj/effect/spawner/random/maintenance/three = 10,
- /obj/effect/spawner/random/maintenance/four = 20,
- /obj/effect/spawner/random/waste/salvageable = 40,
+ /obj/effect/spawner/lootdrop/maintenance = 2,
+ /obj/effect/spawner/lootdrop/maintenance/two = 5,
+ /obj/effect/spawner/lootdrop/maintenance/three = 10,
+ /obj/effect/spawner/lootdrop/maintenance/four = 20,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 40,
/obj/structure/foamedmetal = 100,
/obj/item/mine/proximity/spawner/manhack/live = 20
)
@@ -456,19 +456,19 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/random/waste/mechwreck = 20,
- /obj/effect/spawner/random/trash/decal = 90,
- /obj/effect/spawner/random/waste/radiation = 16,
+ /obj/effect/spawner/lootdrop/waste/mechwreck = 20,
+ /obj/effect/spawner/lootdrop/waste/trash = 90,
+ /obj/effect/spawner/lootdrop/waste/radiation = 16,
/obj/structure/reagent_dispensers/watertank = 20,
/obj/item/stack/cable_coil/cut = 50,
/obj/structure/closet/crate/secure/loot = 3,
- /obj/effect/spawner/random/waste/atmos_can = 5,
- /obj/effect/spawner/random/waste/atmos_can/rare = 1,
- /obj/effect/spawner/random/waste/salvageable = 30,
- /obj/effect/spawner/random/maintenance = 2,
- /obj/effect/spawner/random/maintenance/two = 5,
- /obj/effect/spawner/random/maintenance/three = 10,
- /obj/effect/spawner/random/waste/salvageable = 40,
+ /obj/effect/spawner/lootdrop/waste/atmos_can = 5,
+ /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 30,
+ /obj/effect/spawner/lootdrop/maintenance = 2,
+ /obj/effect/spawner/lootdrop/maintenance/two = 5,
+ /obj/effect/spawner/lootdrop/maintenance/three = 10,
+ /obj/effect/spawner/lootdrop/waste/salvageable = 40,
)
mob_spawn_list = list(
/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80,
diff --git a/code/datums/mapgen/single_biome/WasteplanetCaves.dm b/code/datums/mapgen/single_biome/WasteplanetCaves.dm
index 3caf1c9429ad..08f63ba3149a 100644
--- a/code/datums/mapgen/single_biome/WasteplanetCaves.dm
+++ b/code/datums/mapgen/single_biome/WasteplanetCaves.dm
@@ -40,7 +40,7 @@
/obj/structure/salvageable/destructive_analyzer = 8,
/obj/structure/salvageable/server = 8,
/obj/item/mine/pressure/explosive/rusty/live = 30,
- /obj/effect/spawner/random/mine = 8
+ /obj/effect/spawner/lootdrop/mine = 8
)
feature_spawn_list = list(
/obj/structure/geyser/random = 1,
diff --git a/code/datums/votes/_vote_datum.dm b/code/datums/votes/_vote_datum.dm
index 7118695bf1bb..8c7b7234b516 100644
--- a/code/datums/votes/_vote_datum.dm
+++ b/code/datums/votes/_vote_datum.dm
@@ -156,7 +156,7 @@
/// Gets the winner of the vote, selecting a random choice from all choices based on their vote count.
/datum/vote/proc/get_random_winner()
- var/winner = pick_weight(choices)
+ var/winner = pickweight(choices)
return winner ? list(winner) : list()
/**
diff --git a/code/datums/weather/weather_controller.dm b/code/datums/weather/weather_controller.dm
index 30be3ebb23c5..ad4d5005c049 100644
--- a/code/datums/weather/weather_controller.dm
+++ b/code/datums/weather/weather_controller.dm
@@ -60,7 +60,7 @@
if(!possible_weathers)
return
next_weather = world.time + rand(wait_interval_low, wait_interval_high)
- next_weather_type = pick_weight(possible_weathers)
+ next_weather_type = pickweight(possible_weathers)
/datum/weather_controller/proc/run_weather(datum/weather/weather_datum_type, telegraph = TRUE)
if(!ispath(weather_datum_type, /datum/weather))
diff --git a/code/game/MapData/shuttles/nanotrasen_ranger.dm b/code/game/MapData/shuttles/nanotrasen_ranger.dm
index 06d988760722..08f1a7c670d2 100644
--- a/code/game/MapData/shuttles/nanotrasen_ranger.dm
+++ b/code/game/MapData/shuttles/nanotrasen_ranger.dm
@@ -283,9 +283,9 @@
//lootdrop
-/obj/effect/spawner/random/lpretrieval
+/obj/effect/spawner/lootdrop/lpretrieval
name = "LP Retrieval Missions"
- spawn_loot_double = FALSE
+ lootdoubles = FALSE
loot = list(
/obj/item/disk/holodisk/lp/retrieval/phazon = 1,
@@ -294,11 +294,11 @@
/obj/item/disk/holodisk/lp/retrieval/materials = 1
)
- spawn_loot_count = 2
+ lootcount = 2
-/obj/effect/spawner/random/lpaid
+/obj/effect/spawner/lootdrop/lpaid
name = "LP Aid Missions"
- spawn_loot_double = FALSE
+ lootdoubles = FALSE
loot = list(
/obj/item/disk/holodisk/lp/aid/repairs = 1,
@@ -306,5 +306,5 @@
/obj/item/disk/holodisk/lp/aid/guard = 1,
)
- spawn_loot_count = 4
+ lootcount = 4
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index f8d681199094..b8dcd669d385 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -435,7 +435,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/// Picks a random roundstart rule from the list given as an argument and executes it.
/datum/game_mode/dynamic/proc/picking_roundstart_rule(list/drafted_rules = list(), forced = FALSE)
- var/datum/dynamic_ruleset/roundstart/starting_rule = pick_weight(drafted_rules)
+ var/datum/dynamic_ruleset/roundstart/starting_rule = pickweight(drafted_rules)
if(!starting_rule)
log_game("DYNAMIC: Couldn't pick a starting ruleset. No rulesets available")
return FALSE
@@ -450,7 +450,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed due to blocking_rules and no more rulesets available. Report this.")
return FALSE
- starting_rule = pick_weight(drafted_rules)
+ starting_rule = pickweight(drafted_rules)
// Check if the ruleset is highlander and if a highlander ruleset has been executed
else if(starting_rule.flags & HIGHLANDER_RULESET) // Should already be filtered out, but making sure. Check filtering at end of proc if reported.
if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
@@ -459,14 +459,14 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed due to no highlander stacking and no more rulesets available. Report this.")
return FALSE
- starting_rule = pick_weight(drafted_rules)
+ starting_rule = pickweight(drafted_rules)
// With low pop and high threat there might be rulesets that get executed with no valid candidates.
else if(!starting_rule.ready()) // Should already be filtered out, but making sure. Check filtering at end of proc if reported.
drafted_rules -= starting_rule
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed because there were not enough candidates and no more rulesets available. Report this.")
return FALSE
- starting_rule = pick_weight(drafted_rules)
+ starting_rule = pickweight(drafted_rules)
log_game("DYNAMIC: Picked a ruleset: [starting_rule.name]")
@@ -512,7 +512,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/// Picks a random midround OR latejoin rule from the list given as an argument and executes it.
/// Also this could be named better.
/datum/game_mode/dynamic/proc/picking_midround_latejoin_rule(list/drafted_rules = list(), forced = FALSE)
- var/datum/dynamic_ruleset/rule = pick_weight(drafted_rules)
+ var/datum/dynamic_ruleset/rule = pickweight(drafted_rules)
if(!rule)
return FALSE
@@ -524,7 +524,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules -= rule
if(drafted_rules.len <= 0)
return FALSE
- rule = pick_weight(drafted_rules)
+ rule = pickweight(drafted_rules)
// Check if the ruleset is highlander and if a highlander ruleset has been executed
else if(rule.flags & HIGHLANDER_RULESET)
if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
@@ -532,7 +532,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules -= rule
if(drafted_rules.len <= 0)
return FALSE
- rule = pick_weight(drafted_rules)
+ rule = pickweight(drafted_rules)
if(!rule.repeatable)
if(rule.ruletype == "Latejoin")
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index eca77ba4df5a..00bc1bc95e13 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -149,7 +149,7 @@
message_admins("Convert_roundtype failed due to no valid modes to convert to. Please report this error to the Coders.")
return null
- replacementmode = pick_weight(usable_modes)
+ replacementmode = pickweight(usable_modes)
var/matc = CONFIG_GET(number/midround_antag_time_check)
if(world.time >= (matc * 600))
@@ -272,7 +272,7 @@
reports += config.mode_reports[report_type]
Count++
for(var/i in Count to rand(3,5)) //Between three and five wrong entries on the list.
- var/false_report_type = pick_weight_allow_zero(report_weights)
+ var/false_report_type = pickweightAllowZero(report_weights)
report_weights[false_report_type] = 0 //Make it so the same false report won't be selected twice
reports += config.mode_reports[false_report_type]
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 93f3e5d98a15..7e9d90bb482f 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -50,7 +50,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
max_i--
if(max_i<=0)
return
- var/Me = pick_weight(meteortypes)
+ var/Me = pickweight(meteortypes)
var/obj/effect/meteor/M = new Me(pickedstart, pickedgoal)
M.dest = pickedgoal
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 4caca6b376d3..96fbbd8254d1 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -72,7 +72,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
var/list/gameodds = list(/obj/item/circuitboard/computer/arcade/battle = 49,
/obj/item/circuitboard/computer/arcade/orion_trail = 49,
/obj/item/circuitboard/computer/arcade/amputation = 2)
- var/thegame = pick_weight(gameodds)
+ var/thegame = pickweight(gameodds)
var/obj/item/circuitboard/CB = new thegame()
new CB.build_path(loc, CB)
return INITIALIZE_HINT_QDEL
@@ -93,9 +93,9 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
return
var/prizeselect
if(prize_override)
- prizeselect = pick_weight(prize_override)
+ prizeselect = pickweight(prize_override)
else
- prizeselect = pick_weight(GLOB.arcade_prize_pool)
+ prizeselect = pickweight(GLOB.arcade_prize_pool)
var/atom/movable/the_prize = new prizeselect(get_turf(src))
playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
visible_message("[src] dispenses [the_prize]!", "You hear a chime and a clunk.")
@@ -118,9 +118,9 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
num_of_prizes = rand(0,2)
for(var/i = num_of_prizes; i > 0; i--)
if(override)
- empprize = pick_weight(prize_override)
+ empprize = pickweight(prize_override)
else
- empprize = pick_weight(GLOB.arcade_prize_pool)
+ empprize = pickweight(GLOB.arcade_prize_pool)
new empprize(loc)
explosion(loc, -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes)
@@ -635,7 +635,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
event = ORION_TRAIL_COLLISION
event()
else if(prob(75-gamerSkill))
- event = pick_weight(events)
+ event = pickweight(events)
if(lings_aboard)
if(event == ORION_TRAIL_LING || prob(55-gamerSkill))
event = ORION_TRAIL_LING_ATTACK
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 495b4c9ab666..ccc3e4f0286a 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -1,6 +1,6 @@
/obj/effect/landmark
name = "landmark"
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x2"
anchored = TRUE
layer = MID_LANDMARK_LAYER
@@ -210,7 +210,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
return ..()
/obj/effect/landmark/start/ai/secondary
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "ai_spawn"
primary_ai = FALSE
latejoin_active = FALSE
@@ -249,7 +249,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/wizard
name = "wizard"
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "wiznerd_spawn"
/obj/effect/landmark/start/wizard/Initialize()
@@ -259,7 +259,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/nukeop
name = "nukeop"
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "snukeop_spawn"
/obj/effect/landmark/start/nukeop/Initialize()
@@ -269,7 +269,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/nukeop_leader
name = "nukeop leader"
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "snukeop_leader_spawn"
/obj/effect/landmark/start/nukeop_leader/Initialize()
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index 986ad10eb187..73b96c29768c 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -9,6 +9,26 @@
/obj/effect/beam/singularity_pull()
return
+/obj/effect/spawner
+ name = "object spawner"
+
+// Brief explanation:
+// Rather then setting up and then deleting spawners, we block all atomlike setup
+// and do the absolute bare minimum
+// This is with the intent of optimizing mapload
+/obj/effect/spawner/Initialize(mapload)
+ SHOULD_CALL_PARENT(FALSE)
+ if(flags_1 & INITIALIZED_1)
+ stack_trace("Warning: [src]([type]) initialized multiple times!")
+ flags_1 |= INITIALIZED_1
+
+ return INITIALIZE_HINT_QDEL
+
+/obj/effect/spawner/Destroy(force)
+ SHOULD_CALL_PARENT(FALSE)
+ moveToNullspace()
+ return QDEL_HINT_QUEUE
+
/obj/effect/list_container
name = "list container"
diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm
index 8ccaf334feae..f9f465bf47ab 100644
--- a/code/game/objects/effects/spawners/bundle.dm
+++ b/code/game/objects/effects/spawners/bundle.dm
@@ -1,150 +1,134 @@
-/obj/effect/spawner/costume
- name = "costume spawner"
+/obj/effect/spawner/bundle
+ name = "bundle spawner"
icon = 'icons/hud/screen_gen.dmi'
icon_state = "x2"
- color = COLOR_VIBRANT_LIME
+ color = "#00FF00"
var/list/items
-/obj/effect/spawner/costume/Initialize(mapload)
+/obj/effect/spawner/bundle/Initialize(mapload)
. = ..()
- if(items?.len)
+ if(items && items.len)
for(var/path in items)
new path(loc)
-/obj/effect/spawner/costume/gladiator
+/obj/effect/spawner/bundle/costume/gladiator
name = "gladiator costume spawner"
items = list(
/obj/item/clothing/under/costume/gladiator,
- /obj/item/clothing/head/helmet/gladiator
- )
+ /obj/item/clothing/head/helmet/gladiator)
-/obj/effect/spawner/costume/madscientist
+/obj/effect/spawner/bundle/costume/madscientist
name = "mad scientist costume spawner"
items = list(
/obj/item/clothing/under/rank/command/captain/suit,
/obj/item/clothing/head/flatcap,
- /obj/item/clothing/suit/toggle/labcoat/mad
- )
+ /obj/item/clothing/suit/toggle/labcoat/mad)
-/obj/effect/spawner/costume/elpresidente
+/obj/effect/spawner/bundle/costume/elpresidente
name = "el presidente costume spawner"
items = list(
/obj/item/clothing/under/rank/command/captain/suit,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/mask/cigarette/cigar/havana,
- /obj/item/clothing/shoes/jackboots
- )
+ /obj/item/clothing/shoes/jackboots)
-/obj/effect/spawner/costume/nyangirl
+/obj/effect/spawner/bundle/costume/nyangirl
name = "nyangirl costume spawner"
items = list(
/obj/item/clothing/under/costume/schoolgirl,
/obj/item/clothing/head/kitty,
- /obj/item/clothing/glasses/blindfold
- )
+ /obj/item/clothing/glasses/blindfold)
-/obj/effect/spawner/costume/maid
+/obj/effect/spawner/bundle/costume/maid
name = "maid costume spawner"
items = list(
/obj/item/clothing/under/dress/skirt/color,
- /obj/effect/spawner/random/clothing/beret_or_rabbitears,
- /obj/item/clothing/glasses/blindfold
- )
+ /obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
+ /obj/item/clothing/glasses/blindfold)
-/obj/effect/spawner/costume/butler
+
+/obj/effect/spawner/bundle/costume/butler
name = "butler costume spawner"
items = list(
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/under/suit/black,
- /obj/item/clothing/head/that
- )
+ /obj/item/clothing/head/that)
-/obj/effect/spawner/costume/highlander
+/obj/effect/spawner/bundle/costume/highlander
name = "highlander costume spawner"
items = list(
/obj/item/clothing/under/costume/kilt,
- /obj/item/clothing/head/beret
- )
+ /obj/item/clothing/head/beret)
-/obj/effect/spawner/costume/prig
+/obj/effect/spawner/bundle/costume/prig
name = "prig costume spawner"
items = list(
/obj/item/clothing/accessory/waistcoat,
- /obj/effect/spawner/random/clothing/bowler_or_that,
+ /obj/effect/spawner/lootdrop/minor/bowler_or_that,
/obj/item/clothing/shoes/sneakers/black,
/obj/item/cane,
/obj/item/clothing/under/suit/sl,
- /obj/item/clothing/mask/fakemoustache
- )
+ /obj/item/clothing/mask/fakemoustache)
-/obj/effect/spawner/costume/plaguedoctor
+/obj/effect/spawner/bundle/costume/plaguedoctor
name = "plague doctor costume spawner"
items = list(
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit,
- /obj/item/clothing/mask/gas/plaguedoctor
- )
+ /obj/item/clothing/mask/gas/plaguedoctor)
-/obj/effect/spawner/costume/nightowl
+/obj/effect/spawner/bundle/costume/nightowl
name = "night owl costume spawner"
items = list(
/obj/item/clothing/suit/toggle/owlwings,
/obj/item/clothing/under/costume/owl,
- /obj/item/clothing/mask/gas/owl_mask
- )
+ /obj/item/clothing/mask/gas/owl_mask)
-/obj/effect/spawner/costume/waiter
+/obj/effect/spawner/bundle/costume/waiter
name = "waiter costume spawner"
items = list(
/obj/item/clothing/under/suit/waiter,
- /obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
- /obj/item/clothing/suit/apron
- )
+ /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+ /obj/item/clothing/suit/apron)
-/obj/effect/spawner/costume/pirate
+/obj/effect/spawner/bundle/costume/pirate
name = "pirate costume spawner"
items = list(
/obj/item/clothing/under/costume/pirate,
/obj/item/clothing/suit/pirate,
- /obj/effect/spawner/random/clothing/pirate_or_bandana,
- /obj/item/clothing/glasses/eyepatch
- )
+ /obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+ /obj/item/clothing/glasses/eyepatch)
-/obj/effect/spawner/costume/cutewitch
+/obj/effect/spawner/bundle/costume/cutewitch
name = "cute witch costume spawner"
items = list(
/obj/item/clothing/under/dress/sundress,
- /obj/item/staff/broom
- )
+ /obj/item/staff/broom)
-/obj/effect/spawner/costume/mafia
+/obj/effect/spawner/bundle/costume/mafia
name = "black mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora,
/obj/item/clothing/under/suit/blacktwopiece,
- /obj/item/clothing/shoes/laceup
- )
+ /obj/item/clothing/shoes/laceup)
-/obj/effect/spawner/costume/mafia/white
+/obj/effect/spawner/bundle/costume/mafia/white
name = "white mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora/white,
/obj/item/clothing/under/suit/white,
- /obj/item/clothing/shoes/laceup
- )
+ /obj/item/clothing/shoes/laceup)
-/obj/effect/spawner/costume/mafia/checkered
+/obj/effect/spawner/bundle/costume/mafia/checkered
name = "checkered mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora,
/obj/item/clothing/under/suit/checkered,
- /obj/item/clothing/shoes/laceup
- )
+ /obj/item/clothing/shoes/laceup)
-/obj/effect/spawner/costume/mafia/beige
+/obj/effect/spawner/bundle/costume/mafia/beige
name = "beige mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora/beige,
/obj/item/clothing/under/suit/beige,
- /obj/item/clothing/shoes/laceup
- )
+ /obj/item/clothing/shoes/laceup)
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
new file mode 100644
index 000000000000..b0239c8f5fdd
--- /dev/null
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -0,0 +1,1314 @@
+/obj/effect/spawner/lootdrop
+ icon = 'icons/effects/landmarks_static.dmi'
+ icon_state = "random_loot"
+ layer = OBJ_LAYER
+ var/lootcount = 1 //how many items will be spawned
+ var/lootdoubles = TRUE //if the same item can be spawned twice
+ var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
+ var/fan_out_items = FALSE //Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
+
+/obj/effect/spawner/lootdrop/Initialize(mapload)
+ . = ..()
+ if(loot && loot.len)
+ var/loot_spawned = 0
+ while((lootcount-loot_spawned) && loot.len)
+ var/lootspawn = pickweight_float(loot) // WS edit - Fix various startup runtimes
+ while(islist(lootspawn))
+ lootspawn = pickweight_float(lootspawn) // WS edit - Fix various startup runtimes
+ if(!lootdoubles)
+ loot.Remove(lootspawn)
+
+ if(lootspawn)
+ var/atom/movable/spawned_loot = new lootspawn(loc)
+ if (!fan_out_items)
+ if (pixel_x != 0)
+ spawned_loot.pixel_x = pixel_x
+ if (pixel_y != 0)
+ spawned_loot.pixel_y = pixel_y
+ else
+ if (loot_spawned)
+ spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-1)+((loot_spawned%2)*(loot_spawned+1)/2*1)
+ else
+ break // WS edit - Support spawn weights of 0 in loot tables and ruins
+ loot_spawned++
+
+/obj/effect/spawner/lootdrop/donkpockets
+ name = "donk pocket box spawner"
+ lootdoubles = FALSE
+
+ loot = list(
+ /obj/item/storage/box/donkpockets/donkpocketspicy = 1,
+ /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1,
+ /obj/item/storage/box/donkpockets/donkpocketpizza = 1,
+ /obj/item/storage/box/donkpockets/donkpocketberry = 1,
+ /obj/item/storage/box/donkpockets/donkpockethonk = 1,
+ )
+
+
+/obj/effect/spawner/lootdrop/armory_contraband
+ name = "armory contraband gun spawner"
+ lootdoubles = FALSE
+
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol/ringneck = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/gun/ballistic/revolver/mateba
+ )
+
+/obj/effect/spawner/lootdrop/armory_contraband/metastation
+ loot = list(/obj/item/gun/ballistic/automatic/pistol/ringneck = 5,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/gun/ballistic/revolver/mateba)
+
+/obj/effect/spawner/lootdrop/armory_contraband/donutstation
+ loot = list(/obj/item/grenade/clusterbuster/teargas = 5,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/bikehorn/golden,
+ /obj/item/grenade/clusterbuster,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/gun/ballistic/revolver/mateba)
+
+/obj/effect/spawner/lootdrop/prison_contraband
+ name = "prison contraband loot spawner"
+ loot = list(/obj/item/clothing/mask/cigarette/space_cigarette = 4,
+ /obj/item/clothing/mask/cigarette/robust = 2,
+ /obj/item/clothing/mask/cigarette/carp = 3,
+ /obj/item/clothing/mask/cigarette/uplift = 2,
+ /obj/item/clothing/mask/cigarette/dromedary = 3,
+ /obj/item/clothing/mask/cigarette/robustgold = 1,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes = 3,
+ /obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
+ /obj/item/toy/crayon/spraycan = 2,
+ /obj/item/crowbar = 1,
+ /obj/item/assembly/flash/handheld = 1,
+ /obj/item/restraints/handcuffs/cable/zipties = 1,
+ /obj/item/restraints/handcuffs = 1,
+ /obj/item/radio = 1,
+ /obj/item/lighter = 3,
+ /obj/item/storage/box/matches = 3,
+ /obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
+ /obj/item/reagent_containers/syringe/contraband/krokodil = 1,
+ /obj/item/reagent_containers/syringe/contraband/crank = 1,
+ /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
+ /obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
+ /obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
+ /obj/item/reagent_containers/syringe/contraband/morphine = 1,
+ /obj/item/storage/pill_bottle/happy = 1,
+ /obj/item/storage/pill_bottle/lsd = 1,
+ /obj/item/storage/pill_bottle/psicodine = 1,
+ /obj/item/reagent_containers/food/drinks/beer = 4,
+ /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
+ /obj/item/paper/fluff/jobs/prisoner/letter = 1,
+ /obj/item/grenade/smokebomb = 1,
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/melee/knife/shiv = 4,
+ /obj/item/melee/knife/shiv/carrot = 1,
+ /obj/item/melee/knife/kitchen = 1,
+ /obj/item/storage/wallet/random = 1,
+ /obj/item/pda = 1
+ )
+
+/obj/effect/spawner/lootdrop/gambling
+ name = "gambling valuables spawner"
+ loot = list(
+ /obj/item/clothing/head/trapper = 3,
+ /obj/item/storage/box/syndie_kit/throwing_weapons,
+ /obj/item/coin/gold,
+ /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+ )
+
+/obj/effect/spawner/lootdrop/grille_or_trash
+ name = "maint grille or trash spawner"
+ loot = list(/obj/structure/grille = 5,
+ /obj/item/flashlight/flare/burnt = 1,
+ /obj/item/cigbutt = 1,
+ /obj/item/trash/cheesie = 1,
+ /obj/item/trash/candy = 1,
+ /obj/item/trash/chips = 1,
+ /obj/item/reagent_containers/food/snacks/deadmouse = 1,
+ /obj/item/trash/pistachios = 1,
+ /obj/item/trash/plate = 1,
+ /obj/item/trash/popcorn = 1,
+ /obj/item/trash/raisins = 1,
+ /obj/item/trash/sosjerky = 1,
+ /obj/item/trash/syndi_cakes = 1)
+
+/obj/effect/spawner/lootdrop/three_course_meal
+ name = "three course meal spawner"
+ lootcount = 3
+ lootdoubles = FALSE
+ var/soups = list(
+ /obj/item/reagent_containers/food/snacks/soup/beet,
+ /obj/item/reagent_containers/food/snacks/soup/sweetpotato,
+ /obj/item/reagent_containers/food/snacks/soup/stew,
+ /obj/item/reagent_containers/food/snacks/soup/hotchili,
+ /obj/item/reagent_containers/food/snacks/soup/nettle,
+ /obj/item/reagent_containers/food/snacks/soup/meatball)
+ var/salads = list(
+ /obj/item/reagent_containers/food/snacks/salad/herbsalad,
+ /obj/item/reagent_containers/food/snacks/salad/validsalad,
+ /obj/item/reagent_containers/food/snacks/salad/fruit,
+ /obj/item/reagent_containers/food/snacks/salad/jungle,
+ /obj/item/reagent_containers/food/snacks/salad/aesirsalad)
+ var/mains = list(
+ /obj/item/reagent_containers/food/snacks/bearsteak,
+ /obj/item/reagent_containers/food/snacks/enchiladas,
+ /obj/item/reagent_containers/food/snacks/stewedsoymeat,
+ /obj/item/reagent_containers/food/snacks/burger/bigbite,
+ /obj/item/reagent_containers/food/snacks/burger/superbite,
+ /obj/item/reagent_containers/food/snacks/burger/fivealarm)
+
+/obj/effect/spawner/lootdrop/three_course_meal/Initialize(mapload)
+ loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
+ . = ..()
+
+/obj/effect/spawner/lootdrop/maintenance
+ name = "maintenance loot spawner"
+ // see code/_globalvars/lists/maintenance_loot.dm for loot table
+
+/obj/effect/spawner/lootdrop/maintenance/Initialize(mapload)
+ loot = GLOB.maintenance_loot
+ . = ..()
+
+/obj/effect/spawner/lootdrop/maintenance/two
+ name = "2 x maintenance loot spawner"
+ lootcount = 2
+
+/obj/effect/spawner/lootdrop/maintenance/three
+ name = "3 x maintenance loot spawner"
+ lootcount = 3
+
+/obj/effect/spawner/lootdrop/maintenance/four
+ name = "4 x maintenance loot spawner"
+ lootcount = 4
+
+/obj/effect/spawner/lootdrop/maintenance/five
+ name = "5 x maintenance loot spawner"
+ lootcount = 5
+
+/obj/effect/spawner/lootdrop/maintenance/six
+ name = "6 x maintenance loot spawner"
+ lootcount = 6
+
+/obj/effect/spawner/lootdrop/maintenance/seven
+ name = "7 x maintenance loot spawner"
+ lootcount = 7
+
+/obj/effect/spawner/lootdrop/maintenance/eight
+ name = "8 x maintenance loot spawner"
+ lootcount = 8
+
+/obj/effect/spawner/lootdrop/crate_spawner
+ name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF!
+ lootdoubles = FALSE
+
+ loot = list(
+ /obj/structure/closet/crate/secure/loot = 20,
+ "" = 80
+ )
+
+/obj/effect/spawner/lootdrop/organ_spawner
+ name = "ayylien organ spawner"
+ loot = list(
+ /obj/item/organ/heart/gland/electric = 3,
+ /obj/item/organ/heart/gland/trauma = 4,
+ /obj/item/organ/heart/gland/egg = 7,
+ /obj/item/organ/heart/gland/chem = 5,
+ /obj/item/organ/heart/gland/mindshock = 5,
+ /obj/item/organ/heart/gland/plasma = 7,
+ /obj/item/organ/heart/gland/transform = 5,
+ /obj/item/organ/heart/gland/slime = 4,
+ /obj/item/organ/heart/gland/spiderman = 5,
+ /obj/item/organ/heart/gland/ventcrawling = 1,
+ /obj/item/organ/body_egg/alien_embryo = 1,
+ /obj/item/organ/regenerative_core = 2)
+ lootcount = 3
+
+/obj/effect/spawner/lootdrop/memeorgans
+ name = "meme organ spawner"
+ loot = list(
+ /obj/item/organ/ears/penguin,
+ /obj/item/organ/ears/cat,
+ /obj/item/organ/eyes/compound,
+ /obj/item/organ/eyes/snail,
+ /obj/item/organ/tongue/bone,
+ /obj/item/organ/tongue/fly,
+ /obj/item/organ/tongue/snail,
+ /obj/item/organ/tongue/lizard,
+ /obj/item/organ/tongue/alien,
+ /obj/item/organ/tongue/ethereal,
+ /obj/item/organ/tongue/robot,
+ /obj/item/organ/tongue/zombie,
+ /obj/item/organ/appendix,
+ /obj/item/organ/liver/fly,
+ /obj/item/organ/lungs/plasmaman,
+ /obj/item/organ/tail/cat,
+ /obj/item/organ/tail/lizard)
+ lootcount = 5
+
+/obj/effect/spawner/lootdrop/rnd
+ name = "random RND spawner"
+ loot = list(
+ /obj/item/storage/box/rndmining,
+ /obj/item/storage/box/rndengi,
+ /obj/item/storage/box/rndsec,
+ /obj/item/storage/box/rndciv,
+ /obj/item/storage/box/rndmed)
+ lootcount = 1
+
+/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner
+ name = "2% chance xeno egg spawner"
+ loot = list(
+ /obj/effect/decal/remains/xeno = 49,
+ /obj/effect/spawner/xeno_egg_delivery = 1)
+
+/obj/effect/spawner/lootdrop/costume
+ name = "random costume spawner"
+
+/obj/effect/spawner/lootdrop/costume/Initialize()
+ loot = list()
+ for(var/path in subtypesof(/obj/effect/spawner/bundle/costume))
+ loot[path] = TRUE
+ . = ..()
+
+// Minor lootdrops follow
+
+/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears
+ name = "beret or rabbit ears spawner"
+ loot = list(
+ /obj/item/clothing/head/beret = 1)
+
+/obj/effect/spawner/lootdrop/minor/bowler_or_that
+ name = "bowler or top hat spawner"
+ loot = list(
+ /obj/item/clothing/head/that = 1)
+
+/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears
+ name = "kitty ears or rabbit ears spawner"
+ loot = list(
+ /obj/item/clothing/head/kitty = 1)
+
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana
+ name = "pirate hat or bandana spawner"
+ loot = list(
+ /obj/item/clothing/head/pirate = 1,
+ /obj/item/clothing/head/bandana = 1)
+
+/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask
+ name = "25% cyborg mask spawner"
+ loot = list(
+ /obj/item/clothing/mask/gas/cyborg = 25,
+ "" = 75)
+
+/obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people
+ name = "harmless AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/asimov,
+ /obj/item/aiModule/core/full/asimovpp,
+ /obj/item/aiModule/core/full/hippocratic,
+ /obj/item/aiModule/core/full/paladin_devotion,
+ /obj/item/aiModule/core/full/paladin
+ )
+
+/obj/effect/spawner/lootdrop/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
+ name = "neutral AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/corp,
+ /obj/item/aiModule/core/full/maintain,
+ /obj/item/aiModule/core/full/drone,
+ /obj/item/aiModule/core/full/peacekeeper,
+ /obj/item/aiModule/core/full/reporter,
+ /obj/item/aiModule/core/full/robocop,
+ /obj/item/aiModule/core/full/liveandletlive,
+ /obj/item/aiModule/core/full/hulkamania
+ )
+
+/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called
+ name = "harmful AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/antimov,
+ /obj/item/aiModule/core/full/balance,
+ /obj/item/aiModule/core/full/tyrant,
+ /obj/item/aiModule/core/full/thermurderdynamic,
+ /obj/item/aiModule/core/full/damaged,
+ /obj/item/aiModule/reset/purge
+ )
+
+// Tech storage circuit board spawners
+
+/obj/effect/spawner/lootdrop/techstorage
+ name = "generic circuit board spawner"
+ lootdoubles = FALSE
+ fan_out_items = TRUE
+ lootcount = INFINITY
+
+/obj/effect/spawner/lootdrop/techstorage/service
+ name = "service circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/arcade/battle,
+ /obj/item/circuitboard/computer/arcade/orion_trail,
+ /obj/item/circuitboard/machine/autolathe,
+ /obj/item/circuitboard/computer/mining,
+ /obj/item/circuitboard/machine/ore_redemption,
+ /obj/item/circuitboard/machine/vending/mining_equipment,
+ /obj/item/circuitboard/machine/microwave,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
+ /obj/item/circuitboard/computer/slot_machine
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/rnd
+ name = "RnD circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/aifixer,
+ /obj/item/circuitboard/machine/rdserver,
+ /obj/item/circuitboard/machine/mechfab,
+ /obj/item/circuitboard/machine/circuit_imprinter/department,
+ /obj/item/circuitboard/computer/teleporter,
+ /obj/item/circuitboard/machine/destructive_analyzer,
+ /obj/item/circuitboard/computer/rdconsole,
+ /obj/item/circuitboard/computer/nanite_chamber_control,
+ /obj/item/circuitboard/computer/nanite_cloud_controller,
+ /obj/item/circuitboard/machine/nanite_chamber,
+ /obj/item/circuitboard/machine/nanite_programmer,
+ /obj/item/circuitboard/machine/nanite_program_hub
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/security
+ name = "security circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/secure_data,
+ /obj/item/circuitboard/computer/security,
+ /obj/item/circuitboard/computer/prisoner
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/engineering
+ name = "engineering circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/atmos_alert,
+ /obj/item/circuitboard/computer/stationalert,
+ /obj/item/circuitboard/computer/powermonitor
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/tcomms
+ name = "tcomms circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/message_monitor,
+ /obj/item/circuitboard/machine/telecomms/broadcaster,
+ /obj/item/circuitboard/machine/telecomms/bus,
+ /obj/item/circuitboard/machine/telecomms/server,
+ /obj/item/circuitboard/machine/telecomms/receiver,
+ /obj/item/circuitboard/machine/telecomms/processor,
+ /obj/item/circuitboard/machine/announcement_system,
+ /obj/item/circuitboard/computer/comm_server,
+ /obj/item/circuitboard/computer/comm_monitor
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/medical
+ name = "medical circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/machine/chem_dispenser,
+ /obj/item/circuitboard/computer/scan_consolenew,
+ /obj/item/circuitboard/computer/med_data,
+ /obj/item/circuitboard/machine/smoke_machine,
+ /obj/item/circuitboard/machine/chem_master,
+ /obj/item/circuitboard/machine/dnascanner,
+ /obj/item/circuitboard/computer/pandemic
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/AI
+ name = "secure AI circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/aiupload,
+ /obj/item/circuitboard/computer/borgupload,
+ /obj/item/circuitboard/aicore
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/command
+ name = "secure command circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/crew,
+ /obj/item/circuitboard/computer/communications,
+ /obj/item/circuitboard/computer/card
+ )
+
+/obj/effect/spawner/lootdrop/techstorage/RnD_secure
+ name = "secure RnD circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/mecha_control,
+ /obj/item/circuitboard/computer/apc_control,
+ /obj/item/circuitboard/computer/robotics
+ )
+
+/obj/effect/spawner/lootdrop/mafia_outfit
+ name = "mafia outfit spawner"
+ loot = list(
+ /obj/effect/spawner/bundle/costume/mafia = 20,
+ /obj/effect/spawner/bundle/costume/mafia/white = 5,
+ /obj/effect/spawner/bundle/costume/mafia/checkered = 2,
+ /obj/effect/spawner/bundle/costume/mafia/beige = 5
+ )
+
+/obj/effect/spawner/lootdrop/salvage_machine
+ name = "salvageable machine spawner"
+ loot = list(
+ /obj/structure/salvageable/protolathe,
+ /obj/structure/salvageable/circuit_imprinter,
+ /obj/structure/salvageable/server,
+ /obj/structure/salvageable/machine,
+ /obj/structure/salvageable/autolathe,
+ /obj/structure/salvageable/computer,
+ /obj/structure/salvageable/destructive_analyzer
+ )
+
+/obj/effect/spawner/lootdrop/ripley
+ name = "25% exosuit 75% wreckage ripley spawner"
+ loot = list(/obj/mecha/working/ripley/mining = 1,
+ /obj/structure/mecha_wreckage/ripley = 5)
+ lootdoubles = FALSE
+
+/obj/effect/spawner/lootdrop/salvage_50
+ name = "50% salvage spawner"
+ loot = list(
+ /obj/effect/spawner/lootdrop/maintenance = 13,
+ /obj/effect/spawner/lootdrop/salvage_machine = 12,
+ /obj/effect/spawner/lootdrop/ripley = 12,
+ /obj/structure/closet/crate/secure/loot = 13,
+ "" = 50
+ )
+
+//finds the probabilities of items spawning from a loot spawner's loot pool
+/obj/item/loot_table_maker
+ icon = 'icons/effects/landmarks_static.dmi'
+ icon_state = "random_loot"
+ var/spawner_to_test = /obj/effect/spawner/lootdrop/maintenance //what lootdrop spawner to use the loot pool of
+ var/loot_count = 180 //180 is about how much maint loot spawns per map as of 11/14/2019
+ //result outputs
+ var/list/spawned_table //list of all items "spawned" and how many
+ var/list/stat_table //list of all items "spawned" and their occurrance probability
+
+/obj/item/loot_table_maker/Initialize()
+ . = ..()
+ make_table()
+
+/obj/item/loot_table_maker/attack_self(mob/user)
+ to_chat(user, "Loot pool re-rolled.")
+ make_table()
+
+/obj/item/loot_table_maker/proc/make_table()
+ spawned_table = list()
+ stat_table = list()
+ var/obj/effect/spawner/lootdrop/spawner_to_table = new spawner_to_test
+ var/lootpool = spawner_to_table.loot
+ qdel(spawner_to_table)
+ for(var/i in 1 to loot_count)
+ var/loot_spawn = pick_loot(lootpool)
+ if(!loot_spawn) // WS edit - Support spawn weights of 0 in loot tables and ruins
+ continue
+ if(!(loot_spawn in spawned_table))
+ spawned_table[loot_spawn] = 1
+ else
+ spawned_table[loot_spawn] += 1
+ stat_table += spawned_table
+ for(var/item in stat_table)
+ stat_table[item] /= loot_count
+
+/obj/item/loot_table_maker/proc/pick_loot(lootpool) //selects path from loot table and returns it
+ var/lootspawn = pickweight_float(lootpool) // WS edit - Fix various startup runtimes
+ while(islist(lootspawn))
+ lootspawn = pickweight_float(lootspawn) // WS edit - Fix various startup runtimes
+ return lootspawn
+
+/obj/effect/spawner/lootdrop/stockparts
+ name = "random good stock parts"
+ lootcount = 6
+ loot = list(
+ /obj/item/stock_parts/capacitor/adv,
+ /obj/item/stock_parts/capacitor/quadratic,
+ /obj/item/stock_parts/capacitor/super,
+ /obj/item/stock_parts/cell/hyper,
+ /obj/item/stock_parts/cell/super,
+ /obj/item/stock_parts/cell/bluespace,
+ /obj/item/stock_parts/matter_bin/bluespace,
+ /obj/item/stock_parts/matter_bin/super,
+ /obj/item/stock_parts/matter_bin/adv,
+ /obj/item/stock_parts/micro_laser/ultra,
+ /obj/item/stock_parts/micro_laser/quadultra,
+ /obj/item/stock_parts/micro_laser/high,
+ /obj/item/stock_parts/scanning_module/triphasic,
+ /obj/item/stock_parts/scanning_module/phasic,
+ /obj/item/stock_parts/scanning_module/adv,
+ /obj/item/reagent_containers/glass/beaker/bluespace,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/stock_parts/manipulator/nano,
+ /obj/item/stock_parts/manipulator/pico,
+ /obj/item/stock_parts/manipulator/femto
+ )
+
+/obj/effect/spawner/lootdrop/materials
+ name = "random bulk materials"
+ lootcount = 2
+ loot = list(
+ /obj/item/stack/sheet/plastic/fifty,
+ /obj/item/stack/sheet/bluespace_crystal/twenty,
+ /obj/item/stack/sheet/cardboard/fifty,
+ /obj/item/stack/sheet/glass/fifty,
+ /obj/item/stack/sheet/metal/fifty,
+ /obj/item/stack/sheet/plasteel/twenty,
+ /obj/item/stack/sheet/mineral/plasma/fifty,
+ /obj/item/stack/sheet/mineral/silver/fifty,
+ /obj/item/stack/sheet/mineral/titanium/fifty,
+ /obj/item/stack/sheet/mineral/uranium/fifty,
+ /obj/item/stack/sheet/mineral/wood/fifty,
+ /obj/item/stack/sheet/mineral/diamond/twenty,
+ /obj/item/stack/sheet/mineral/gold/fifty,
+
+ /obj/item/stack/cable_coil/red,
+ /obj/item/stack/rods/fifty
+ )
+
+/obj/effect/spawner/lootdrop/singularitygen
+ name = "Tesla or Singulo spawner"
+ lootdoubles = FALSE
+
+ loot = list(
+ /obj/machinery/the_singularitygen/tesla = 1,
+ /obj/machinery/the_singularitygen = 1,
+ )
+
+/obj/effect/spawner/lootdrop/stockparts
+ name = "random good stock parts"
+ lootcount = 5
+ loot = list(
+ /obj/item/stock_parts/capacitor/adv,
+ /obj/item/stock_parts/capacitor/quadratic,
+ /obj/item/stock_parts/capacitor/super,
+ /obj/item/stock_parts/cell/hyper,
+ /obj/item/stock_parts/cell/super,
+ /obj/item/stock_parts/cell/bluespace,
+ /obj/item/stock_parts/matter_bin/bluespace,
+ /obj/item/stock_parts/matter_bin/super,
+ /obj/item/stock_parts/matter_bin/adv,
+ /obj/item/stock_parts/micro_laser/ultra,
+ /obj/item/stock_parts/micro_laser/quadultra,
+ /obj/item/stock_parts/micro_laser/high,
+ /obj/item/stock_parts/scanning_module/triphasic,
+ /obj/item/stock_parts/scanning_module/phasic,
+ /obj/item/stock_parts/scanning_module/adv,
+ /obj/item/reagent_containers/glass/beaker/bluespace,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/stock_parts/manipulator/nano,
+ /obj/item/stock_parts/manipulator/pico,
+ /obj/item/stock_parts/manipulator/femto
+ )
+
+/obj/effect/spawner/lootdrop/materials
+ name = "random materials"
+ lootcount = 3
+ loot = list(
+ /obj/item/stack/sheet/plastic/fifty,
+ /obj/item/stack/sheet/plastic/five,
+ /obj/item/stack/sheet/bluespace_crystal/twenty,
+ /obj/item/stack/sheet/bluespace_crystal/five,
+ /obj/item/stack/sheet/cardboard/fifty,
+ /obj/item/stack/sheet/glass/fifty,
+ /obj/item/stack/sheet/metal/fifty,
+ /obj/item/stack/sheet/metal/twenty,
+ /obj/item/stack/sheet/plasteel/twenty,
+ /obj/item/stack/sheet/mineral/plasma/fifty,
+ /obj/item/stack/sheet/mineral/plasma/twenty,
+ /obj/item/stack/sheet/mineral/silver/fifty,
+ /obj/item/stack/sheet/mineral/titanium/twenty,
+ /obj/item/stack/sheet/mineral/uranium/twenty,
+ /obj/item/stack/sheet/mineral/wood/fifty,
+ /obj/item/stack/sheet/mineral/diamond/twenty,
+ /obj/item/stack/sheet/mineral/gold/fifty,
+ /obj/item/stack/cable_coil/red,
+ /obj/item/stack/rods/fifty
+ )
+
+/obj/effect/spawner/lootdrop/donut
+ name = "random donut" //donut :)
+ lootcount = 1
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/meat = 1,
+ /obj/item/reagent_containers/food/snacks/donut/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/trumpet = 1,
+ /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/chaos = 1,
+ )
+
+/obj/effect/spawner/lootdrop/donut/jelly
+ name = "random jelly donut"
+ lootcount = 1
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1,
+ )
+
+/obj/effect/spawner/lootdrop/donut/slimejelly
+ name = "random slimejelly donut"
+ lootcount = 1
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1,
+ )
+
+/obj/effect/spawner/lootdrop/seeded
+ name = "GO FORTH AND CULTIVATE"
+ icon = 'icons/obj/hydroponics/seeds.dmi'
+ icon_state = "seed"//sneed
+ loot = list(
+ /obj/item/seeds/aloe,
+ /obj/item/seeds/ambrosia,
+ /obj/item/seeds/apple,
+ /obj/item/seeds/cotton,
+ /obj/item/seeds/banana,
+ /obj/item/seeds/berry,
+ /obj/item/seeds/cabbage,
+ /obj/item/seeds/carrot,
+ /obj/item/seeds/cherry,
+ /obj/item/seeds/chanter,
+ /obj/item/seeds/chili,
+ /obj/item/seeds/cocoapod,
+ /obj/item/seeds/coffee,
+ /obj/item/seeds/corn,
+ /obj/item/seeds/eggplant,
+ /obj/item/seeds/garlic,
+ /obj/item/seeds/grape,
+ /obj/item/seeds/grass,
+ /obj/item/seeds/lemon,
+ /obj/item/seeds/lime,
+ /obj/item/seeds/onion,
+ /obj/item/seeds/orange,
+ /obj/item/seeds/peas,
+ /obj/item/seeds/pineapple,
+ /obj/item/seeds/potato,
+ /obj/item/seeds/poppy,
+ /obj/item/seeds/pumpkin,
+ /obj/item/seeds/wheat/rice,
+ /obj/item/seeds/soya,
+ /obj/item/seeds/sugarcane,
+ /obj/item/seeds/sunflower,
+ /obj/item/seeds/tea,
+ /obj/item/seeds/tobacco,
+ /obj/item/seeds/tomato,
+ /obj/item/seeds/tower,
+ /obj/item/seeds/watermelon,
+ /obj/item/seeds/wheat,
+ /obj/item/seeds/whitebeet,
+ /obj/item/seeds/amanita,
+ /obj/item/seeds/glowshroom,
+ /obj/item/seeds/liberty,
+ /obj/item/seeds/nettle,
+ /obj/item/seeds/plump,
+ /obj/item/seeds/reishi,
+ /obj/item/seeds/cannabis,
+ /obj/item/seeds/starthistle,
+ /obj/item/seeds/cherry/bomb,
+ /obj/item/seeds/berry/glow,
+ /obj/item/seeds/sunflower/moonflower
+ )
+
+/obj/effect/spawner/lootdrop/flora
+ name = "random flora spawner"
+ loot = list(
+ /obj/structure/flora/tree/chapel,
+ /obj/structure/flora/tree/pine,
+ /obj/structure/flora/tree/jungle/small,
+ /obj/structure/flora/tree/jungle,
+ /obj/structure/flora/ash/puce,
+ /obj/structure/flora/ash/fireblossom,
+ /obj/structure/flora/ash/fern,
+ /obj/structure/flora/ash/tall_shroom,
+ /obj/structure/flora/ash/stem_shroom,
+ /obj/structure/flora/ash/space/voidmelon,
+ /obj/structure/flora/ash/leaf_shroom,
+ /obj/structure/flora/junglebush/large,
+ /obj/structure/flora/junglebush/b,
+ /obj/structure/flora/junglebush/c,
+ /obj/structure/flora/ausbushes/fernybush,
+ /obj/structure/flora/ausbushes/genericbush,
+ /obj/structure/flora/ausbushes/grassybush,
+ /obj/structure/flora/ausbushes/leafybush,
+ /obj/structure/flora/ausbushes/palebush,
+ /obj/structure/flora/ausbushes/pointybush,
+ /obj/structure/flora/ausbushes/reedbush,
+ /obj/structure/flora/ausbushes/stalkybush,
+ /obj/structure/flora/ausbushes/sunnybush,
+ /obj/structure/flora/bush,
+ /obj/structure/flora/grass/jungle,
+ /obj/structure/flora/junglebush,
+ /obj/structure/flora/junglebush/b,
+ /obj/structure/flora/junglebush/c,
+ /obj/structure/flora/ash,
+ /obj/structure/flora/ash/cacti,
+ /obj/structure/flora/ash/cap_shroom,
+ /obj/structure/flora/ash/chilly,
+ /obj/structure/flora/tree/palm
+ )
+ lootcount = 1
+
+/obj/effect/spawner/lootdrop/flower
+ name = "random flower spawner"
+ loot = list(
+ /obj/structure/flora/ausbushes/brflowers,
+ /obj/structure/flora/ausbushes/ywflowers,
+ /obj/structure/flora/ausbushes/ppflowers,
+ /obj/structure/flora/ausbushes/fullgrass,
+ /obj/structure/flora/ausbushes/sparsegrass
+ )
+ lootcount = 1
+
+/obj/effect/spawner/lootdrop/anomaly
+ name = "random anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/safe
+ name = "relatively safe anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/dangerous
+ name = "relatively dangerous anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/big
+ name = "random big anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/big/planetary,
+ /obj/effect/anomaly/flux/big/planetary,
+ /obj/effect/anomaly/grav/high/big/planetary,
+ /obj/effect/anomaly/pyro/big/planetary
+
+ )
+
+//handpicked lists relevant to the planets they're on
+// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though
+
+/obj/effect/spawner/lootdrop/anomaly/jungle
+ name = "Jungle Anomaly Spawner"
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/jungle/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some*
+
+/obj/effect/spawner/lootdrop/anomaly/beach
+ name = "Beach anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/beach/cave
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/sand
+ name = "Sand anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/sand/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/rock
+ name = "Rock anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/rock/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/lava
+ name = "Lava anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/lava/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/ice
+ name = "Ice anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/ice/cave
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/waste
+ name = "Waste anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/waste/cave
+ loot = list(
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/lootdrop/anomaly/storm
+ loot = list(
+ /obj/effect/anomaly/flux/storm,
+ /obj/effect/anomaly/pyro/storm,
+ /obj/effect/anomaly/sparkler,
+ /obj/effect/anomaly/veins,
+ /obj/effect/anomaly/phantom,
+ /obj/effect/anomaly/melter,
+ )
+
+//wasteplanet things
+
+/obj/effect/spawner/lootdrop/waste/grille_or_trash
+ name = "wasteplanet loot spawner"
+ loot = list(
+ /obj/structure/grille/broken = 5,
+ /obj/structure/grille = 5,
+ /obj/item/flashlight/flare/burnt = 1,
+ /obj/item/cigbutt = 1,
+ /obj/item/trash/cheesie = 1,
+ /obj/item/trash/candy = 1,
+ /obj/item/trash/chips = 1,
+ /obj/item/reagent_containers/food/snacks/deadmouse = 1,
+ /obj/item/trash/pistachios = 1,
+ /obj/item/trash/plate = 1,
+ /obj/item/trash/popcorn = 1,
+ /obj/item/trash/raisins = 1,
+ /obj/item/trash/sosjerky = 1,
+ /obj/item/trash/syndi_cakes = 1
+ )
+
+/obj/effect/spawner/lootdrop/waste/mechwreck
+ name = "wasteplanet exosuit wreckage"
+ loot = list(
+ /obj/structure/mecha_wreckage/ripley = 15,
+ /obj/structure/mecha_wreckage/ripley/firefighter = 9,
+ /obj/structure/mecha_wreckage/ripley/mkii = 9,
+ /obj/structure/mecha_wreckage/ripley/clip = 9
+ )
+
+/obj/effect/spawner/lootdrop/waste/mechwreck/rare
+ loot = list(
+ /obj/structure/mecha_wreckage/durand = 12.5,
+ /obj/structure/mecha_wreckage/durand/clip = 12.5,
+ /obj/structure/mecha_wreckage/odysseus = 25,
+ /obj/structure/mecha_wreckage/gygax = 25
+ )
+
+/obj/effect/spawner/lootdrop/waste/trash //debatable if this is actually loot
+ loot = list(
+ /obj/item/flashlight/flare/burnt = 30,
+ /obj/effect/decal/cleanable/greenglow/filled = 30,
+ /obj/effect/decal/cleanable/greenglow/ecto = 1,
+ /obj/effect/decal/cleanable/glass = 30,
+ /obj/effect/decal/cleanable/glass/plasma = 30,
+ /obj/effect/decal/cleanable/glass/strange = 30,
+ /obj/effect/decal/cleanable/molten_object = 30,
+ /obj/effect/decal/cleanable/molten_object/large = 30,
+ /obj/effect/decal/cleanable/oil = 30,
+ /obj/effect/decal/cleanable/oil/slippery = 1, // :)
+ /obj/effect/decal/cleanable/plastic = 30,
+ /obj/effect/decal/cleanable/ash = 30,
+ /obj/effect/decal/cleanable/ash/large = 30,
+ )
+
+/obj/effect/spawner/lootdrop/waste/radiation
+ loot = list(
+ /obj/structure/radioactive = 6,
+ /obj/structure/radioactive/stack = 6,
+ /obj/structure/radioactive/waste = 6
+ )
+
+/obj/effect/spawner/lootdrop/waste/radiation/more_rads
+ loot = list(
+ /obj/structure/radioactive = 3,
+ /obj/structure/radioactive/stack = 12,
+ /obj/structure/radioactive/waste = 12
+ )
+
+/obj/effect/spawner/lootdrop/waste/atmos_can
+ loot = list(
+ /obj/machinery/portable_atmospherics/canister/toxins = 3,
+ /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
+ /obj/machinery/portable_atmospherics/canister/nitrogen = 3,
+ /obj/machinery/portable_atmospherics/canister/oxygen = 3,
+ /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1,
+ /obj/machinery/portable_atmospherics/canister/water_vapor = 1
+ )
+
+/obj/effect/spawner/lootdrop/waste/atmos_can/rare
+ loot = list(
+ /obj/machinery/portable_atmospherics/canister/tritium = 3,
+ /obj/machinery/portable_atmospherics/canister/pluoxium = 3
+ )
+
+/obj/effect/spawner/lootdrop/waste/salvageable
+ loot = list(
+ /obj/structure/salvageable/machine = 20,
+ /obj/structure/salvageable/autolathe = 15,
+ /obj/structure/salvageable/computer = 10,
+ /obj/structure/salvageable/protolathe = 10,
+ /obj/structure/salvageable/circuit_imprinter = 8,
+ /obj/structure/salvageable/destructive_analyzer = 8,
+ /obj/structure/salvageable/server = 8
+ )
+
+/obj/effect/spawner/lootdrop/waste/girder
+ loot = list(
+ /obj/structure/girder,
+ /obj/structure/girder/displaced,
+ /obj/structure/girder/reinforced
+ )
+/obj/effect/spawner/lootdrop/waste/hivebot
+ loot = list(
+ /obj/effect/spawner/lootdrop/salvage/metal,
+ /obj/effect/spawner/lootdrop/salvage/metal,
+ /obj/effect/spawner/lootdrop/salvage/metal,
+ /obj/effect/spawner/lootdrop/salvage/gold,
+ /obj/effect/spawner/lootdrop/salvage/plasma,
+ /obj/effect/spawner/lootdrop/salvage/silver,
+ /obj/effect/spawner/lootdrop/salvage/titanium,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+ lootcount = 2
+
+/obj/effect/spawner/lootdrop/waste/hivebot/beacon
+ lootcount = 6
+
+/obj/effect/spawner/lootdrop/salvage
+ name = "salvage mats spawner"
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapmetal,
+ /obj/item/stack/ore/salvage/scrapgold,
+ /obj/item/stack/ore/salvage/scrapplasma,
+ /obj/item/stack/ore/salvage/scrapsilver,
+ /obj/item/stack/ore/salvage/scraptitanium,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+
+/obj/effect/spawner/lootdrop/salvage/metal
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapmetal
+ )
+
+/obj/effect/spawner/lootdrop/salvage/metal/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/lootdrop/salvage/gold
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapgold
+ )
+
+/obj/effect/spawner/lootdrop/salvage/gold/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/lootdrop/salvage/plasma
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapplasma
+ )
+/obj/effect/spawner/lootdrop/salvage/plasma/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+
+/obj/effect/spawner/lootdrop/salvage/silver
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapsilver
+ )
+/obj/effect/spawner/lootdrop/salvage/silver/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+
+/obj/effect/spawner/lootdrop/salvage/titanium
+ loot = list(
+ /obj/item/stack/ore/salvage/scraptitanium
+ )
+/obj/effect/spawner/lootdrop/salvage/titanium/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/lootdrop/salvage/bluespace
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapbluespace
+ )
+/obj/effect/spawner/lootdrop/salvage/bluespace/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/lootdrop/salvage/uranium
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+/obj/effect/spawner/lootdrop/salvage/uranium/Initialize()
+ lootcount = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+
+//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason
+/obj/effect/spawner/lootdrop/randomprotolathe
+ name = "random departmental protolathe"
+ loot = list(
+ /obj/item/circuitboard/machine/protolathe/department/cargo,
+ /obj/item/circuitboard/machine/protolathe/department/engineering,
+ /obj/item/circuitboard/machine/protolathe/department/service,
+ /obj/item/circuitboard/machine/protolathe/department/medical,
+ /obj/item/circuitboard/machine/protolathe/department/science,
+ /obj/item/circuitboard/machine/protolathe/department/security
+ )
+
+/obj/effect/spawner/lootdrop/randomimprinter
+ name = "random departmental circuit imprinter"
+ loot = list(
+ /obj/item/circuitboard/machine/circuit_imprinter/department/cargo,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/engi,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/civ,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/med,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/science,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/sec
+ )
+
+/obj/effect/spawner/lootdrop/randomtechfab
+ name = "random departmental techfab"
+ loot = list(
+ /obj/item/circuitboard/machine/techfab/department/service,
+ /obj/item/circuitboard/machine/techfab/department/cargo,
+ /obj/item/circuitboard/machine/techfab/department/engineering,
+ /obj/item/circuitboard/machine/techfab/department/service,
+ /obj/item/circuitboard/machine/techfab/department/medical,
+ /obj/item/circuitboard/machine/techfab/department/science,
+ /obj/item/circuitboard/machine/techfab/department/security
+ )
+
+/obj/effect/spawner/lootdrop/ration
+ loot = list (
+ /obj/item/storage/ration/vegan_chili = 5,
+ /obj/item/storage/ration/shredded_beef = 5,
+ /obj/item/storage/ration/pork_spaghetti = 5,
+ /obj/item/storage/ration/fried_fish = 5,
+ /obj/item/storage/ration/beef_strips = 5,
+ /obj/item/storage/ration/chili_macaroni = 5,
+ /obj/item/storage/ration/chicken_wings_hot_sauce = 5,
+ /obj/item/storage/ration/fish_stew = 5,
+ /obj/item/storage/ration/lemon_pepper_chicken = 5,
+ /obj/item/storage/ration/sausage_peppers_onions = 5,
+ /obj/item/storage/ration/pork_dumplings_chili_sauce = 5,
+ /obj/item/storage/ration/battered_fish_sticks = 5,
+ /obj/item/storage/ration/assorted_salted_offal = 5,
+ /obj/item/storage/ration/maple_pork_sausage_patty = 5,
+ /obj/item/storage/ration/pepper_jack_beef_patty = 5,
+ /obj/item/storage/ration/beef_goulash = 5,
+ /obj/item/storage/ration/pepperoni_pizza_slice = 5,
+ /obj/item/storage/ration/blackened_calamari = 5,
+ /obj/item/storage/ration/elbow_macaroni = 5,
+ /obj/item/storage/ration/cheese_pizza_slice = 5,
+ /obj/item/storage/ration/crayons = 2 // :)
+ )
+
+/obj/effect/spawner/lootdrop/chem_jug
+ loot = list(
+ /obj/item/reagent_containers/glass/chem_jug/carbon,
+ /obj/item/reagent_containers/glass/chem_jug/oxygen,
+ /obj/item/reagent_containers/glass/chem_jug/nitrogen,
+ /obj/item/reagent_containers/glass/chem_jug/hydrogen,
+ /obj/item/reagent_containers/glass/chem_jug/radium,
+ /obj/item/reagent_containers/glass/chem_jug/aluminium,
+ /obj/item/reagent_containers/glass/chem_jug/chlorine,
+ /obj/item/reagent_containers/glass/chem_jug/copper,
+ /obj/item/reagent_containers/glass/chem_jug/bromine,
+ /obj/item/reagent_containers/glass/chem_jug/iodine,
+ /obj/item/reagent_containers/glass/chem_jug/potassium,
+ /obj/item/reagent_containers/glass/chem_jug/sulfur)
diff --git a/code/game/objects/effects/spawners/mobspawner.dm b/code/game/objects/effects/spawners/mobspawner.dm
index 2161ebd06bb5..187b7c155fe0 100644
--- a/code/game/objects/effects/spawners/mobspawner.dm
+++ b/code/game/objects/effects/spawners/mobspawner.dm
@@ -1,11 +1,11 @@
-/obj/effect/spawner/random/randomthreat
+/obj/effect/spawner/lootdrop/randomthreat
var/static/mob_category = rand(1, 3)
-/obj/effect/spawner/random/randomthreat/Initialize(mapload)
+/obj/effect/spawner/lootdrop/randomthreat/Initialize(mapload)
switch(mob_category)
if(1)
loot = list(
- /obj/effect/spawner/random/hivebotspawner
+ /obj/effect/spawner/lootdrop/hivebotspawner
)
if(2)
loot = list(
@@ -13,28 +13,28 @@
)
if(3)
loot = list(
- /obj/effect/spawner/random/spiderspawner
+ /obj/effect/spawner/lootdrop/spiderspawner
)
return ..()
-/obj/effect/spawner/random/xenospawner
+/obj/effect/spawner/lootdrop/xenospawner
name = "Xenomorph spawner"
loot = list(
/mob/living/simple_animal/hostile/alien = 0.3,
/mob/living/simple_animal/hostile/alien/drone = 0.2,
/mob/living/simple_animal/hostile/alien/sentinel = 0.3,
- /obj/effect/spawner/random/xenoqueenspawner = 0.1
+ /obj/effect/spawner/lootdrop/xenoqueenspawner = 0.1
)
-/obj/effect/spawner/random/xenoqueenspawner
+/obj/effect/spawner/lootdrop/xenoqueenspawner
name = "xenomorph queen spawner"
loot = list(
/mob/living/simple_animal/hostile/alien/queen = 0.2, //regular queen mob isn't actually that strong
/mob/living/simple_animal/hostile/alien/queen/large = 0.8
)
-/obj/effect/spawner/random/hivebotspawner
+/obj/effect/spawner/lootdrop/hivebotspawner
name = "Hivebot spawner"
loot = list(
@@ -42,7 +42,7 @@
/mob/living/simple_animal/hostile/hivebot,
)
-/obj/effect/spawner/random/spiderspawner
+/obj/effect/spawner/lootdrop/spiderspawner
name = "Spider spawner"
loot = list(
@@ -51,29 +51,29 @@
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,
)
-/obj/effect/spawner/random/thirtyfive_percent_borerspawner
+/obj/effect/spawner/lootdrop/thirtyfive_percent_borerspawner
name = "35 percent neutered borer spawner"
loot = list(
/mob/living/simple_animal/borer/sterile = 0.35,
- /obj/effect/spawner/random/maintenance = 0.65,
+ /obj/effect/spawner/lootdrop/maintenance = 0.65,
)
-/obj/effect/spawner/random/chicken
+/obj/effect/spawner/lootdrop/chicken
name = "chicken spawner"
loot = list(
/mob/living/simple_animal/chicken
)
-/obj/effect/spawner/random/chicken/jungle
+/obj/effect/spawner/lootdrop/chicken/jungle
name = "jungle chicken spawner"
loot = list(
/mob/living/simple_animal/hostile/retaliate/chicken
)
-/obj/effect/spawner/random/chicken/jungle/flock
+/obj/effect/spawner/lootdrop/chicken/jungle/flock
loot = list(
/mob/living/simple_animal/hostile/retaliate/chicken
)
- spawn_loot_count = 7
- spawn_loot_double = TRUE
+ lootcount = 7
+ lootdoubles = TRUE
diff --git a/code/game/objects/effects/spawners/random.dm/ai_module.dm b/code/game/objects/effects/spawners/random.dm/ai_module.dm
deleted file mode 100644
index 7f5eed59e4a0..000000000000
--- a/code/game/objects/effects/spawners/random.dm/ai_module.dm
+++ /dev/null
@@ -1,41 +0,0 @@
-/obj/effect/spawner/random/aimodule
- name = "AI module spawner"
- desc = "State laws human."
- icon_state = "circuit"
- spawn_loot_double = FALSE
- spawn_loot_count = 3
- spawn_loot_split = TRUE
-
-/obj/effect/spawner/random/aimodule_harmless // These shouldn't allow the AI to start butchering people
- name = "harmless AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/asimov,
- /obj/item/aiModule/core/full/asimovpp,
- /obj/item/aiModule/core/full/hippocratic,
- /obj/item/aiModule/core/full/paladin_devotion,
- /obj/item/aiModule/core/full/paladin
- )
-
-/obj/effect/spawner/random/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
- name = "neutral AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/corp,
- /obj/item/aiModule/core/full/maintain,
- /obj/item/aiModule/core/full/drone,
- /obj/item/aiModule/core/full/peacekeeper,
- /obj/item/aiModule/core/full/reporter,
- /obj/item/aiModule/core/full/robocop,
- /obj/item/aiModule/core/full/liveandletlive,
- /obj/item/aiModule/core/full/hulkamania
- )
-
-/obj/effect/spawner/random/aimodule_harmful // These will get the shuttle called
- name = "harmful AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/antimov,
- /obj/item/aiModule/core/full/balance,
- /obj/item/aiModule/core/full/tyrant,
- /obj/item/aiModule/core/full/thermurderdynamic,
- /obj/item/aiModule/core/full/damaged,
- /obj/item/aiModule/reset/purge
- )
diff --git a/code/game/objects/effects/spawners/random.dm/anomaly.dm b/code/game/objects/effects/spawners/random.dm/anomaly.dm
deleted file mode 100644
index aa8fa472de2c..000000000000
--- a/code/game/objects/effects/spawners/random.dm/anomaly.dm
+++ /dev/null
@@ -1,222 +0,0 @@
-/obj/effect/spawner/random/anomaly
- name = "random anomaly spawner"
- icon_state = "anomaly"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- /obj/effect/anomaly/transfusion/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/safe
- name = "relatively safe anomaly spawner"
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/transfusion/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/dangerous
- name = "relatively dangerous anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/big
- name = "random big anomaly spawner"
- icon_state = "big_anomaly"
- loot = list(
- /obj/effect/anomaly/bluespace/big/planetary,
- /obj/effect/anomaly/flux/big/planetary,
- /obj/effect/anomaly/grav/high/big/planetary,
- /obj/effect/anomaly/pyro/big/planetary
-
- )
-
-//handpicked lists relevant to the planets they're on
-// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though
-
-/obj/effect/spawner/random/anomaly/jungle
- name = "Jungle Anomaly Spawner"
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/jungle/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some*
-
-/obj/effect/spawner/random/anomaly/beach
- name = "Beach anomaly spawner"
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/beach/cave
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/sand
- name = "Sand anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/sand/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/rock
- name = "Rock anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/rock/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/lava
- name = "Lava anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/lava/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/ice
- name = "Ice anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/ice/cave
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/waste
- name = "Waste anomaly spawner"
- loot = list(
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/waste/cave
- loot = list(
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/random/anomaly/storm
- loot = list(
- /obj/effect/anomaly/flux/storm,
- /obj/effect/anomaly/pyro/storm,
- /obj/effect/anomaly/sparkler,
- /obj/effect/anomaly/veins,
- /obj/effect/anomaly/phantom,
- /obj/effect/anomaly/melter,
- )
diff --git a/code/game/objects/effects/spawners/random.dm/bedsheet.dm b/code/game/objects/effects/spawners/random.dm/bedsheet.dm
deleted file mode 100644
index f8a53fffd2c9..000000000000
--- a/code/game/objects/effects/spawners/random.dm/bedsheet.dm
+++ /dev/null
@@ -1,33 +0,0 @@
-/obj/effect/spawner/random/bedsheet
- name = "random dorm bedsheet"
- icon_state = "random_bedsheet"
- loot = list(
- /obj/item/bedsheet,
- /obj/item/bedsheet/blue,
- /obj/item/bedsheet/green,
- /obj/item/bedsheet/grey,
- /obj/item/bedsheet/orange,
- /obj/item/bedsheet/purple,
- /obj/item/bedsheet/red,
- /obj/item/bedsheet/yellow,
- /obj/item/bedsheet/brown,
- /obj/item/bedsheet/black,
- /obj/item/bedsheet/rainbow
- )
-
-/obj/effect/spawner/random/bedsheet/double
- name = "random dorm double bedsheet"
- icon_state = "random_doublesheet"
- loot = list(
- /obj/item/bedsheet/double,
- /obj/item/bedsheet/double/blue,
- /obj/item/bedsheet/double/green,
- /obj/item/bedsheet/double/grey,
- /obj/item/bedsheet/double/orange,
- /obj/item/bedsheet/double/purple,
- /obj/item/bedsheet/double/red,
- /obj/item/bedsheet/double/yellow,
- /obj/item/bedsheet/double/brown,
- /obj/item/bedsheet/double/black,
- /obj/item/bedsheet/double/rainbow
- )
diff --git a/code/game/objects/effects/spawners/random.dm/boards.dm b/code/game/objects/effects/spawners/random.dm/boards.dm
deleted file mode 100644
index 0104d17326d7..000000000000
--- a/code/game/objects/effects/spawners/random.dm/boards.dm
+++ /dev/null
@@ -1,245 +0,0 @@
-// Tech storage circuit board spawners
-
-/obj/effect/spawner/random/techstorage
- name = "generic circuit board spawner"
- icon_state = "circuit"
- spawn_loot_split = TRUE
- spawn_all_loot = TRUE
-
-/obj/effect/spawner/random/techstorage/service
- name = "service circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/arcade/battle,
- /obj/item/circuitboard/computer/arcade/orion_trail,
- /obj/item/circuitboard/machine/autolathe,
- /obj/item/circuitboard/computer/mining,
- /obj/item/circuitboard/machine/ore_redemption,
- /obj/item/circuitboard/machine/vending/mining_equipment,
- /obj/item/circuitboard/machine/microwave,
- /obj/item/circuitboard/machine/chem_dispenser/drinks,
- /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
- /obj/item/circuitboard/computer/slot_machine
- )
-
-/obj/effect/spawner/random/techstorage/rnd
- name = "RnD circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/aifixer,
- /obj/item/circuitboard/machine/rdserver,
- /obj/item/circuitboard/machine/mechfab,
- /obj/item/circuitboard/machine/circuit_imprinter/department,
- /obj/item/circuitboard/computer/teleporter,
- /obj/item/circuitboard/machine/destructive_analyzer,
- /obj/item/circuitboard/computer/rdconsole,
- /obj/item/circuitboard/computer/nanite_chamber_control,
- /obj/item/circuitboard/computer/nanite_cloud_controller,
- /obj/item/circuitboard/machine/nanite_chamber,
- /obj/item/circuitboard/machine/nanite_programmer,
- /obj/item/circuitboard/machine/nanite_program_hub
- )
-
-/obj/effect/spawner/random/techstorage/security
- name = "security circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/secure_data,
- /obj/item/circuitboard/computer/security,
- /obj/item/circuitboard/computer/prisoner
- )
-
-/obj/effect/spawner/random/techstorage/engineering
- name = "engineering circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/atmos_alert,
- /obj/item/circuitboard/computer/stationalert,
- /obj/item/circuitboard/computer/powermonitor
- )
-
-/obj/effect/spawner/random/techstorage/tcomms
- name = "tcomms circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/message_monitor,
- /obj/item/circuitboard/machine/telecomms/broadcaster,
- /obj/item/circuitboard/machine/telecomms/bus,
- /obj/item/circuitboard/machine/telecomms/server,
- /obj/item/circuitboard/machine/telecomms/receiver,
- /obj/item/circuitboard/machine/telecomms/processor,
- /obj/item/circuitboard/machine/announcement_system,
- /obj/item/circuitboard/computer/comm_server,
- /obj/item/circuitboard/computer/comm_monitor
- )
-
-/obj/effect/spawner/random/techstorage/medical
- name = "medical circuit board spawner"
- loot = list(
- /obj/item/circuitboard/machine/chem_dispenser,
- /obj/item/circuitboard/computer/scan_consolenew,
- /obj/item/circuitboard/computer/med_data,
- /obj/item/circuitboard/machine/smoke_machine,
- /obj/item/circuitboard/machine/chem_master,
- /obj/item/circuitboard/machine/dnascanner,
- /obj/item/circuitboard/computer/pandemic
- )
-
-/obj/effect/spawner/random/techstorage/ai_all
- name = "secure AI circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/aiupload,
- /obj/item/circuitboard/computer/borgupload,
- /obj/item/circuitboard/aicore
- )
-
-/obj/effect/spawner/random/techstorage/command
- name = "secure command circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/crew,
- /obj/item/circuitboard/computer/communications,
- /obj/item/circuitboard/computer/card
- )
-
-/obj/effect/spawner/random/techstorage/rnd_secure
- name = "secure RnD circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/mecha_control,
- /obj/item/circuitboard/computer/apc_control,
- /obj/item/circuitboard/computer/robotics
- )
-
-//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason
-/obj/effect/spawner/random/circuit/protolathe
- name = "random departmental protolathe"
- icon_state = "circuit"
- loot = list(
- /obj/item/circuitboard/machine/protolathe/department/cargo,
- /obj/item/circuitboard/machine/protolathe/department/engineering,
- /obj/item/circuitboard/machine/protolathe/department/service,
- /obj/item/circuitboard/machine/protolathe/department/medical,
- /obj/item/circuitboard/machine/protolathe/department/science,
- /obj/item/circuitboard/machine/protolathe/department/security
- )
-
-/obj/effect/spawner/random/circuit/imprinter
- name = "random departmental circuit imprinter"
- icon_state = "circuit"
- loot = list(
- /obj/item/circuitboard/machine/circuit_imprinter/department/cargo,
- /obj/item/circuitboard/machine/circuit_imprinter/department/engi,
- /obj/item/circuitboard/machine/circuit_imprinter/department/civ,
- /obj/item/circuitboard/machine/circuit_imprinter/department/med,
- /obj/item/circuitboard/machine/circuit_imprinter/department/science,
- /obj/item/circuitboard/machine/circuit_imprinter/department/sec
- )
-
-/obj/effect/spawner/random/circuit/techfab
- name = "random departmental techfab"
- icon_state = "circuit"
- loot = list(
- /obj/item/circuitboard/machine/techfab/department/service,
- /obj/item/circuitboard/machine/techfab/department/cargo,
- /obj/item/circuitboard/machine/techfab/department/engineering,
- /obj/item/circuitboard/machine/techfab/department/service,
- /obj/item/circuitboard/machine/techfab/department/medical,
- /obj/item/circuitboard/machine/techfab/department/science,
- /obj/item/circuitboard/machine/techfab/department/security
- )
-
-/obj/effect/spawner/random/rnd
- name = "random RND spawner"
- icon_state = "circuit"
- loot = list(
- /obj/item/storage/box/rndmining,
- /obj/item/storage/box/rndengi,
- /obj/item/storage/box/rndsec,
- /obj/item/storage/box/rndciv,
- /obj/item/storage/box/rndmed
- )
-
-/obj/effect/spawner/random/circuit/machine/common
- loot = list(
- /obj/item/circuitboard/machine/autolathe = 5,
- /obj/item/circuitboard/machine/biogenerator = 5,
- /obj/item/circuitboard/machine/cell_charger = 5,
- /obj/item/circuitboard/machine/chem_heater = 5,
- /obj/item/circuitboard/machine/chem_master = 5,
- /obj/item/circuitboard/machine/clonescanner = 5,
- /obj/item/circuitboard/machine/cryo_tube = 5,
- /obj/item/circuitboard/machine/cyborgrecharger = 5,
- /obj/item/circuitboard/machine/deep_fryer = 5,
- /obj/item/circuitboard/machine/experimentor = 5,
- /obj/item/circuitboard/machine/holopad = 5,
- /obj/item/circuitboard/machine/hydroponics = 5,
- /obj/item/circuitboard/machine/limbgrower = 5,
- /obj/item/circuitboard/machine/ltsrbt = 5,
- /obj/item/circuitboard/machine/mech_recharger = 5,
- /obj/item/circuitboard/machine/mechfab = 5,
- /obj/item/circuitboard/machine/medical_kiosk = 5,
- /obj/item/circuitboard/machine/medipen_refiller = 5,
- /obj/item/circuitboard/machine/microwave = 5,
- /obj/item/circuitboard/machine/ore_redemption = 5,
- /obj/item/circuitboard/machine/ore_silo = 5,
- /obj/item/circuitboard/machine/reagentgrinder = 5,
- /obj/item/circuitboard/machine/recharger = 5,
- /obj/item/circuitboard/machine/seed_extractor = 5,
- /obj/item/circuitboard/machine/selling_pad = 5,
- /obj/item/circuitboard/machine/emitter = 5,
- )
-
-/obj/effect/spawner/random/circuit
- icon_state = "circuit"
-
-/obj/effect/spawner/random/circuit/machine/rare
- loot = list(
- /obj/item/circuitboard/aicore = 5,
- /obj/item/circuitboard/machine/chem_dispenser = 5,
- /obj/item/circuitboard/machine/circuit_imprinter = 5,
- /obj/item/circuitboard/machine/protolathe = 5,
- /obj/item/circuitboard/machine/clonepod/experimental = 5,
- /obj/item/circuitboard/machine/rad_collector = 5,
- /obj/item/circuitboard/machine/launchpad = 5,
- )
-
-/obj/effect/spawner/random/circuit/machine/mech
- loot = list(
- /obj/item/circuitboard/mecha/ripley/main = 100,
- /obj/item/circuitboard/mecha/ripley/peripherals = 100,
- /obj/item/circuitboard/mecha/honker/main = 5,
- /obj/item/circuitboard/mecha/honker/peripherals = 5,
- /obj/item/circuitboard/mecha/odysseus/main = 5,
- /obj/item/circuitboard/mecha/odysseus/peripherals = 5,
- /obj/item/circuitboard/mecha/gygax/main = 1,
- /obj/item/circuitboard/mecha/gygax/peripherals = 1,
- /obj/item/circuitboard/mecha/gygax/targeting = 1,
- /obj/item/circuitboard/mecha/durand/main = 1,
- /obj/item/circuitboard/mecha/durand/peripherals = 1,
- /obj/item/circuitboard/mecha/durand/targeting = 1,
- )
-
-//COMPUTER
-/obj/effect/spawner/random/circuit/computer/common
- loot = list(
- /obj/item/circuitboard/computer/aifixer = 5,
- /obj/item/circuitboard/computer/arcade/amputation = 5,
- /obj/item/circuitboard/computer/arcade/battle = 5,
- /obj/item/circuitboard/computer/arcade/orion_trail = 5,
- /obj/item/circuitboard/computer/atmos_alert = 5,
- /obj/item/circuitboard/computer/card = 5,
- /obj/item/circuitboard/computer/cloning = 5,
- /obj/item/circuitboard/computer/communications = 5,
- /obj/item/circuitboard/computer/launchpad_console = 5,
- /obj/item/circuitboard/computer/mech_bay_power_console = 5,
- /obj/item/circuitboard/computer/pandemic = 5,
- /obj/item/circuitboard/computer/powermonitor/secret = 5,
- /obj/item/circuitboard/computer/prototype_cloning = 5,
- /obj/item/circuitboard/computer/stationalert = 5,
- /obj/item/circuitboard/computer/teleporter = 5,
- /obj/item/circuitboard/computer/operating = 5,
- /obj/item/circuitboard/computer/crew = 5,
- /obj/item/circuitboard/computer/scan_consolenew = 5,
- )
-
-/obj/effect/spawner/random/circuit/computer/rare
- loot = list(
- /obj/item/circuitboard/computer/cargo = 5,
- /obj/item/circuitboard/computer/communications = 5,
- /obj/item/circuitboard/computer/shuttle/helm = 5,
- /obj/item/circuitboard/computer/med_data = 5,
- )
diff --git a/code/game/objects/effects/spawners/random.dm/bureaucracy.dm b/code/game/objects/effects/spawners/random.dm/bureaucracy.dm
deleted file mode 100644
index b55c9dc7b364..000000000000
--- a/code/game/objects/effects/spawners/random.dm/bureaucracy.dm
+++ /dev/null
@@ -1,68 +0,0 @@
-/obj/effect/spawner/random/bureaucracy
- name = "bureaucracy loot spawner"
- desc = "For the exotic art of paper shuffling."
-
-/obj/effect/spawner/random/bureaucracy/pen
- name = "pen spawner"
- icon_state = "pen"
- loot = list(
- /obj/item/pen = 30,
- /obj/item/pen/blue = 5,
- /obj/item/pen/red = 5,
- /obj/item/flashlight/pen = 5,
- /obj/item/pen/fourcolor = 2,
- /obj/item/pen/fountain = 1,
- )
-
-/obj/effect/spawner/random/bureaucracy/stamp
- name = "stamp spawner"
- icon_state = "stamp"
- loot = list(
- /obj/item/stamp = 3,
- /obj/item/stamp/denied = 1,
- )
-
-/obj/effect/spawner/random/bureaucracy/crayon
- name = "crayon spawner"
- icon_state = "crayon"
- loot = list(
- /obj/item/toy/crayon/red,
- /obj/item/toy/crayon/orange,
- /obj/item/toy/crayon/yellow,
- /obj/item/toy/crayon/green,
- /obj/item/toy/crayon/blue,
- /obj/item/toy/crayon/purple,
- /obj/item/toy/crayon/black,
- /obj/item/toy/crayon/white,
- )
-
-/obj/effect/spawner/random/bureaucracy/paper
- name = "paper spawner"
- icon_state = "paper"
- loot = list(
- /obj/item/paper = 20,
- /obj/item/paper/crumpled = 2,
- /obj/item/paper/crumpled/bloody = 2,
- /obj/item/paper/crumpled/muddy = 2,
- /obj/item/paper/construction = 1,
- /obj/item/paper/carbon = 1,
- )
-
-/obj/effect/spawner/random/bureaucracy/briefcase
- name = "briefcase spawner"
- icon_state = "briefcase"
- loot = list(
- /obj/item/storage/briefcase = 3,
- /obj/item/storage/briefcase/lawyer = 1,
- )
-
-/obj/effect/spawner/random/bureaucracy/folder
- name = "folder spawner"
- icon_state = "folder"
- loot = list(
- /obj/item/folder/blue,
- /obj/item/folder/red,
- /obj/item/folder/yellow,
- /obj/item/folder/white,
- /obj/item/folder,
- )
diff --git a/code/game/objects/effects/spawners/random.dm/clothing.dm b/code/game/objects/effects/spawners/random.dm/clothing.dm
deleted file mode 100644
index e5137f9e5078..000000000000
--- a/code/game/objects/effects/spawners/random.dm/clothing.dm
+++ /dev/null
@@ -1,67 +0,0 @@
-/obj/effect/spawner/random/clothing
- name = "clothing loot spawner"
- desc = "Time to look pretty."
- icon_state = "suit"
-
-/obj/effect/spawner/random/clothing/gloves
- name = "random gloves"
- desc = "These gloves are supposed to be a random color..."
- icon_state = "gloves"
- loot = list(
- /obj/item/clothing/gloves/color/orange,
- /obj/item/clothing/gloves/color/red,
- /obj/item/clothing/gloves/color/blue,
- /obj/item/clothing/gloves/color/purple,
- /obj/item/clothing/gloves/color/green,
- /obj/item/clothing/gloves/color/grey,
- /obj/item/clothing/gloves/color/light_brown,
- /obj/item/clothing/gloves/color/brown,
- /obj/item/clothing/gloves/color/white,
- /obj/item/clothing/gloves/color/rainbow
- )
-
-/obj/effect/spawner/random/clothing/costume
- name = "random costume spawner"
- icon_state = "costume"
- loot_subtype_path = /obj/effect/spawner/costume
- loot = list()
-
-/obj/effect/spawner/random/clothing/beret_or_rabbitears
- name = "beret or rabbit ears spawner"
- loot = list(
- /obj/item/clothing/head/beret
- )
-
-/obj/effect/spawner/random/clothing/bowler_or_that
- name = "bowler or top hat spawner"
- loot = list(
- /obj/item/clothing/head/that
- )
-
-/obj/effect/spawner/random/clothing/kittyears_or_rabbitears
- name = "kitty ears or rabbit ears spawner"
- loot = list(
- /obj/item/clothing/head/kitty
- )
-
-/obj/effect/spawner/random/clothing/pirate_or_bandana
- name = "pirate hat or bandana spawner"
- loot = list(
- /obj/item/clothing/head/pirate,
- /obj/item/clothing/head/bandana
- )
-
-/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask
- name = "25% cyborg mask spawner"
- spawn_loot_chance = 25
- loot = list(/obj/item/clothing/mask/gas/cyborg)
-
-/obj/effect/spawner/random/clothing/mafia_outfit
- name = "mafia outfit spawner"
- icon_state = "costume"
- loot = list(
- /obj/effect/spawner/costume/mafia = 20,
- /obj/effect/spawner/costume/mafia/white = 5,
- /obj/effect/spawner/costume/mafia/checkered = 2,
- /obj/effect/spawner/costume/mafia/beige = 5
- )
diff --git a/code/game/objects/effects/spawners/random.dm/decoration.dm b/code/game/objects/effects/spawners/random.dm/decoration.dm
deleted file mode 100644
index 7af7af7fe85b..000000000000
--- a/code/game/objects/effects/spawners/random.dm/decoration.dm
+++ /dev/null
@@ -1,118 +0,0 @@
-/obj/effect/spawner/random/decoration
- name = "decoration loot spawner"
- desc = "Time for some bling bling."
- icon_state = "lamp"
-
-/obj/effect/spawner/random/decoration/material
- name = "decoration material spawner"
- icon_state = "tile"
- loot = list(
- /obj/item/stack/sheet/sandblock{amount = 30} = 25,
- /obj/item/stack/sheet/mineral/wood{amount = 30} = 25,
- /obj/item/stack/tile/noslip{amount = 20} = 10,
- /obj/item/stack/sheet/plastic{amount = 30} = 10,
- /obj/item/stack/tile/pod{amount = 20} = 4,
- /obj/item/stack/tile/pod/light{amount = 20} = 3,
- /obj/item/stack/tile/pod/dark{amount = 20} = 3,
- )
-
-/obj/effect/spawner/random/decoration/carpet
- name = "carpet spawner"
- icon_state = "carpet"
- loot = list(
- /obj/item/stack/tile/carpet{amount = 30} = 35,
- /obj/item/stack/tile/carpet/black{amount = 30} = 20,
- )
-
-/obj/effect/spawner/random/decoration/ornament
- name = "ornament spawner"
- icon_state = "lamp"
- loot = list(
- /obj/item/flashlight/lamp = 35,
- /obj/item/flashlight/lamp/green = 35,
- /obj/item/flashlight/lantern = 10,
- /obj/item/flashlight/lamp/bananalamp = 5,
- )
-/obj/effect/spawner/random/decoration/glowstick
- name = "random colored glowstick"
- icon_state = "glowstick"
- loot_type_path = /obj/item/flashlight/glowstick
- loot = list()
-
-/obj/effect/spawner/random/decoration/glowstick/on
- name = "random colored glowstick (on)"
- icon_state = "glowstick"
-
-/obj/effect/spawner/random/decoration/glowstick/on/make_item(spawn_loc, type_path_to_make)
- . = ..()
-
- var/obj/item/flashlight/glowstick = .
-
- glowstick.set_light_on(TRUE)
-
-/obj/effect/spawner/random/decoration/paint
- name = "paint spawner"
- icon_state = "paint"
- loot_subtype_path = /obj/item/paint
- loot = list()
-
-/obj/effect/spawner/random/decoration/flower
- name = "random grown flower spawner"
- icon_state = "flower"
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/poppy,
- /obj/item/reagent_containers/food/snacks/grown/harebell,
- /obj/item/reagent_containers/food/snacks/grown/trumpet,
- )
-
-/obj/effect/spawner/random/flora
- name = "random flora spawner"
- loot = list(
- /obj/structure/flora/tree/chapel,
- /obj/structure/flora/tree/pine,
- /obj/structure/flora/tree/jungle/small,
- /obj/structure/flora/tree/jungle,
- /obj/structure/flora/ash/puce,
- /obj/structure/flora/ash/fireblossom,
- /obj/structure/flora/ash/fern,
- /obj/structure/flora/ash/tall_shroom,
- /obj/structure/flora/ash/stem_shroom,
- /obj/structure/flora/ash/space/voidmelon,
- /obj/structure/flora/ash/leaf_shroom,
- /obj/structure/flora/junglebush/large,
- /obj/structure/flora/junglebush/b,
- /obj/structure/flora/junglebush/c,
- /obj/structure/flora/ausbushes/fernybush,
- /obj/structure/flora/ausbushes/genericbush,
- /obj/structure/flora/ausbushes/grassybush,
- /obj/structure/flora/ausbushes/leafybush,
- /obj/structure/flora/ausbushes/palebush,
- /obj/structure/flora/ausbushes/pointybush,
- /obj/structure/flora/ausbushes/reedbush,
- /obj/structure/flora/ausbushes/stalkybush,
- /obj/structure/flora/ausbushes/sunnybush,
- /obj/structure/flora/bush,
- /obj/structure/flora/grass/jungle,
- /obj/structure/flora/junglebush,
- /obj/structure/flora/junglebush/b,
- /obj/structure/flora/junglebush/c,
- /obj/structure/flora/ash,
- /obj/structure/flora/ash/cacti,
- /obj/structure/flora/ash/cap_shroom,
- /obj/structure/flora/ash/chilly,
- /obj/structure/flora/tree/palm
- )
- spawn_loot_count = 1
-
-/obj/effect/spawner/random/flower
- name = "random flower spawner"
- icon_state = "flower"
- loot = list(
- /obj/structure/flora/ausbushes/brflowers,
- /obj/structure/flora/ausbushes/ywflowers,
- /obj/structure/flora/ausbushes/ppflowers,
- /obj/structure/flora/ausbushes/fullgrass,
- /obj/structure/flora/ausbushes/sparsegrass
- )
- spawn_loot_count = 1
-
diff --git a/code/game/objects/effects/spawners/random.dm/engineering.dm b/code/game/objects/effects/spawners/random.dm/engineering.dm
deleted file mode 100644
index 81f264039feb..000000000000
--- a/code/game/objects/effects/spawners/random.dm/engineering.dm
+++ /dev/null
@@ -1,138 +0,0 @@
-/obj/effect/spawner/random/engineering
- name = "engineering loot spawner"
- desc = "All engineering related spawners go here"
- icon_state = "toolbox"
-
-/obj/effect/spawner/random/engineering/tool
- loot = list(
- /obj/effect/spawner/random/engineering/tool/common = 120,
- /obj/effect/spawner/random/engineering/tool/sydnie = 20,
- /obj/effect/spawner/random/engineering/tool/adv = 5,
- )
-
-/obj/effect/spawner/random/engineering/tool/common
- loot = list(
- /obj/item/wrench/crescent = 1,
- /obj/item/screwdriver = 1,
- /obj/item/weldingtool = 1,
- /obj/item/crowbar = 1,
- /obj/item/wirecutters = 1,
- /obj/item/multitool = 1,
- )
-
-/obj/effect/spawner/random/engineering/tool/sydnie
- loot = list(
- /obj/item/wrench/syndie = 1,
- /obj/item/screwdriver/nuke = 1,
- /obj/item/weldingtool/largetank = 1,
- /obj/item/crowbar/syndie = 1,
- /obj/item/wirecutters/syndie = 1,
- /obj/item/multitool/syndie = 1,
- )
-
-/obj/effect/spawner/random/engineering/tool/adv
- loot = list(
- /obj/item/screwdriver/power = 1,
- /obj/item/weldingtool/experimental = 1,
- /obj/item/crowbar/power = 1,
- )
-
-/obj/effect/spawner/random/stockparts
- name = "random good stock parts"
- spawn_loot_count = 6
- loot = list(
- /obj/item/stock_parts/capacitor/adv,
- /obj/item/stock_parts/capacitor/quadratic,
- /obj/item/stock_parts/capacitor/super,
- /obj/item/stock_parts/cell/hyper,
- /obj/item/stock_parts/cell/super,
- /obj/item/stock_parts/cell/bluespace,
- /obj/item/stock_parts/matter_bin/bluespace,
- /obj/item/stock_parts/matter_bin/super,
- /obj/item/stock_parts/matter_bin/adv,
- /obj/item/stock_parts/micro_laser/ultra,
- /obj/item/stock_parts/micro_laser/quadultra,
- /obj/item/stock_parts/micro_laser/high,
- /obj/item/stock_parts/scanning_module/triphasic,
- /obj/item/stock_parts/scanning_module/phasic,
- /obj/item/stock_parts/scanning_module/adv,
- /obj/item/reagent_containers/glass/beaker/bluespace,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/stock_parts/manipulator/nano,
- /obj/item/stock_parts/manipulator/pico,
- /obj/item/stock_parts/manipulator/femto
- )
-
-/obj/effect/spawner/random/materials
- name = "random bulk materials"
- spawn_loot_count = 2
- loot = list(
- /obj/item/stack/sheet/plastic/fifty,
- /obj/item/stack/sheet/bluespace_crystal/twenty,
- /obj/item/stack/sheet/cardboard/fifty,
- /obj/item/stack/sheet/glass/fifty,
- /obj/item/stack/sheet/metal/fifty,
- /obj/item/stack/sheet/plasteel/twenty,
- /obj/item/stack/sheet/mineral/plasma/fifty,
- /obj/item/stack/sheet/mineral/silver/fifty,
- /obj/item/stack/sheet/mineral/titanium/fifty,
- /obj/item/stack/sheet/mineral/uranium/fifty,
- /obj/item/stack/sheet/mineral/wood/fifty,
- /obj/item/stack/sheet/mineral/diamond/twenty,
- /obj/item/stack/sheet/mineral/gold/fifty,
- /obj/item/stack/cable_coil/red,
- /obj/item/stack/rods/fifty
- )
-
-/obj/effect/spawner/random/stockparts
- name = "random good stock parts"
- spawn_loot_count = 5
- loot = list(
- /obj/item/stock_parts/capacitor/adv,
- /obj/item/stock_parts/capacitor/quadratic,
- /obj/item/stock_parts/capacitor/super,
- /obj/item/stock_parts/cell/hyper,
- /obj/item/stock_parts/cell/super,
- /obj/item/stock_parts/cell/bluespace,
- /obj/item/stock_parts/matter_bin/bluespace,
- /obj/item/stock_parts/matter_bin/super,
- /obj/item/stock_parts/matter_bin/adv,
- /obj/item/stock_parts/micro_laser/ultra,
- /obj/item/stock_parts/micro_laser/quadultra,
- /obj/item/stock_parts/micro_laser/high,
- /obj/item/stock_parts/scanning_module/triphasic,
- /obj/item/stock_parts/scanning_module/phasic,
- /obj/item/stock_parts/scanning_module/adv,
- /obj/item/reagent_containers/glass/beaker/bluespace,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/stock_parts/manipulator/nano,
- /obj/item/stock_parts/manipulator/pico,
- /obj/item/stock_parts/manipulator/femto
- )
-
-/obj/effect/spawner/random/materials
- name = "random materials"
- spawn_loot_count = 3
- loot = list(
- /obj/item/stack/sheet/plastic/fifty,
- /obj/item/stack/sheet/plastic/five,
- /obj/item/stack/sheet/bluespace_crystal/twenty,
- /obj/item/stack/sheet/bluespace_crystal/five,
- /obj/item/stack/sheet/cardboard/fifty,
- /obj/item/stack/sheet/glass/fifty,
- /obj/item/stack/sheet/metal/fifty,
- /obj/item/stack/sheet/metal/twenty,
- /obj/item/stack/sheet/plasteel/twenty,
- /obj/item/stack/sheet/mineral/plasma/fifty,
- /obj/item/stack/sheet/mineral/plasma/twenty,
- /obj/item/stack/sheet/mineral/silver/fifty,
- /obj/item/stack/sheet/mineral/titanium/twenty,
- /obj/item/stack/sheet/mineral/uranium/twenty,
- /obj/item/stack/sheet/mineral/wood/fifty,
- /obj/item/stack/sheet/mineral/diamond/twenty,
- /obj/item/stack/sheet/mineral/gold/fifty,
- /obj/item/stack/cable_coil/red,
- /obj/item/stack/rods/fifty
- )
diff --git a/code/game/objects/effects/spawners/random.dm/entertainment.dm b/code/game/objects/effects/spawners/random.dm/entertainment.dm
deleted file mode 100644
index 8e51ddf384c0..000000000000
--- a/code/game/objects/effects/spawners/random.dm/entertainment.dm
+++ /dev/null
@@ -1,282 +0,0 @@
-/obj/effect/spawner/random/entertainment
- name = "entertainment loot spawner"
- desc = "It's time to paaaaaarty!"
-
-/obj/effect/spawner/random/entertainment/arcade
- name = "spawn random arcade machine"
- desc = "Automagically transforms into a random arcade machine. If you see this while in a shift, please create a bug report."
- icon_state = "arcade"
- loot = list(
- /obj/machinery/computer/arcade/orion_trail = 49,
- /obj/machinery/computer/arcade/battle = 49,
- /obj/machinery/computer/arcade/amputation = 2,
- )
-
-/obj/effect/spawner/random/entertainment/musical_instrument
- name = "musical instrument spawner"
- icon_state = "eguitar"
- loot = list(
- /obj/item/instrument/violin = 5,
- /obj/item/instrument/banjo = 5,
- /obj/item/instrument/guitar = 5,
- /obj/item/instrument/eguitar = 5,
- /obj/item/instrument/glockenspiel = 5,
- /obj/item/instrument/accordion = 5,
- /obj/item/instrument/trumpet = 5,
- /obj/item/instrument/saxophone = 5,
- /obj/item/instrument/trombone = 5,
- /obj/item/instrument/recorder = 5,
- /obj/item/instrument/harmonica = 5,
- /obj/item/instrument/bikehorn = 2,
- /obj/item/instrument/violin/golden = 2,
- )
-
-/obj/effect/spawner/random/entertainment/gambling
- name = "gambling valuables spawner"
- icon_state = "dice"
- loot = list(
- /obj/item/clothing/head/trapper = 3,
- /obj/effect/spawner/random/entertainment/coin = 3,
- /obj/effect/spawner/random/entertainment/money = 3,
- /obj/item/dice/d6 = 3,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 1,
- /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
- )
-
-/obj/effect/spawner/random/entertainment/coin
- name = "coin spawner"
- icon_state = "coin"
- loot = list(
- /obj/item/coin/iron = 5,
- /obj/item/coin/plastic = 5,
- /obj/item/coin/silver = 4,
- /obj/item/coin/plasma = 4,
- /obj/item/coin/uranium = 3,
- /obj/item/coin/titanium = 3,
- /obj/item/coin/diamond = 2,
- /obj/item/coin/twoheaded = 1,
- /obj/item/coin/antagtoken = 1,
- )
-
-/obj/effect/spawner/random/entertainment/money_small
- name = "small money spawner"
- icon_state = "cash"
- spawn_loot_count = 3
- spawn_loot_split = TRUE
- loot = list(
- /obj/item/spacecash/bundle/c1 = 5,
- /obj/item/spacecash/bundle/c10 = 3,
- /obj/item/spacecash/bundle/c20 = 2,
- )
-
-/obj/effect/spawner/random/entertainment/money
- name = "money spawner"
- icon_state = "cash"
- spawn_loot_count = 3
- spawn_loot_split = TRUE
- loot = list(
- /obj/item/spacecash/bundle/c1 = 10,
- /obj/item/spacecash/bundle/c10 = 5,
- /obj/item/spacecash/bundle/c20 = 3,
- /obj/item/spacecash/bundle/c50 = 2,
- /obj/item/spacecash/bundle/c100 = 1,
- )
-
-/obj/effect/spawner/random/entertainment/money_medium
- name = "money spawner"
- icon_state = "cash"
- loot = list(
- /obj/item/spacecash/bundle/c100 = 25,
- /obj/item/spacecash/bundle/c200 = 15,
- /obj/item/spacecash/bundle/c50 = 10,
- /obj/item/spacecash/bundle/c500 = 5,
- /obj/item/spacecash/bundle/c1000 = 1,
- )
-
-/obj/effect/spawner/random/entertainment/money_large
- name = "large money spawner"
- icon_state = "cash"
- spawn_loot_count = 5
- spawn_loot_split = TRUE
- loot = list(
- /obj/item/spacecash/bundle/c1 = 100,
- /obj/item/spacecash/bundle/c10 = 80,
- /obj/item/spacecash/bundle/c20 = 60,
- /obj/item/spacecash/bundle/c50 = 40,
- /obj/item/spacecash/bundle/c100 = 30,
- /obj/item/spacecash/bundle/c200 = 20,
- /obj/item/spacecash/bundle/c500 = 10,
- /obj/item/spacecash/bundle/c1000 = 5,
- /obj/item/spacecash/bundle/c10000 = 1,
- )
-
-/obj/effect/spawner/random/entertainment/drugs
- name = "recreational drugs spawner"
- icon_state = "pill"
- loot = list(
- /obj/item/reagent_containers/food/drinks/bottle/hooch = 50,
- /obj/item/clothing/mask/cigarette/rollie/cannabis = 15,
- /obj/item/reagent_containers/syringe = 15,
- /obj/item/cigbutt/roach = 15,
- /obj/item/clothing/mask/cigarette/rollie/mindbreaker = 5,
- )
-
-/obj/effect/spawner/random/entertainment/dice
- name = "dice spawner"
- icon_state = "dice_bag"
- loot = list(
- /obj/item/dice/d4,
- /obj/item/dice/d6,
- /obj/item/dice/d8,
- /obj/item/dice/d10,
- /obj/item/dice/d12,
- /obj/item/dice/d20,
- )
-
-/obj/effect/spawner/random/entertainment/cigarette_pack
- name = "cigarette pack spawner"
- icon_state = "cigarettes"
- loot = list(
- /obj/item/storage/fancy/cigarettes = 3,
- /obj/item/storage/fancy/cigarettes/dromedaryco = 3,
- /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
- /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
- /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1,
- /obj/item/storage/fancy/cigarettes/cigpack_midori = 1,
- /obj/item/storage/fancy/cigarettes/cigpack_candy = 1,
- )
-
-/obj/effect/spawner/random/entertainment/cigarette
- name = "cigarette spawner"
- icon_state = "cigarettes"
- loot = list(
- /obj/item/clothing/mask/cigarette/space_cigarette = 3,
- /obj/item/clothing/mask/cigarette/rollie/cannabis = 3,
- /obj/item/clothing/mask/cigarette/rollie/nicotine = 3,
- /obj/item/clothing/mask/cigarette/dromedary = 2,
- /obj/item/clothing/mask/cigarette/uplift = 2,
- /obj/item/clothing/mask/cigarette/robust = 2,
- /obj/item/clothing/mask/cigarette/carp = 1,
- /obj/item/clothing/mask/cigarette/robustgold = 1,
- )
-
-/obj/effect/spawner/random/entertainment/cigar
- name = "cigar spawner"
- icon_state = "cigarettes"
- loot = list(
- /obj/item/clothing/mask/cigarette/cigar = 3,
- /obj/item/clothing/mask/cigarette/cigar/havana = 2,
- /obj/item/clothing/mask/cigarette/cigar/cohiba = 1,
- )
-
-/obj/effect/spawner/random/entertainment/wallet_lighter
- name = "lighter wallet spawner"
- icon_state = "lighter"
- loot = list( // these fit inside a wallet
- /obj/item/match = 10,
- /obj/item/lighter/greyscale = 10,
- /obj/item/lighter = 1,
- )
-
-/obj/effect/spawner/random/entertainment/lighter
- name = "lighter spawner"
- icon_state = "lighter"
- loot = list(
- /obj/item/storage/box/matches = 10,
- /obj/item/lighter/greyscale = 10,
- /obj/item/lighter = 1,
- )
-
-/obj/effect/spawner/random/entertainment/wallet_storage
- name = "wallet contents spawner"
- icon_state = "wallet"
- spawn_loot_count = 1
- loot = list( // random photos would go here. IF I HAD ONE. :'(
- /obj/item/lipstick/random,
- /obj/effect/spawner/random/food_or_drink/seed,
- /obj/effect/spawner/random/medical/minor_healing,
- /obj/effect/spawner/random/entertainment/coin,
- /obj/effect/spawner/random/entertainment/dice,
- /obj/effect/spawner/random/entertainment/cigarette,
- /obj/effect/spawner/random/entertainment/wallet_lighter,
- /obj/effect/spawner/random/bureaucracy/paper,
- /obj/effect/spawner/random/bureaucracy/crayon,
- /obj/effect/spawner/random/bureaucracy/pen,
- /obj/effect/spawner/random/bureaucracy/stamp,
- )
-
-/obj/effect/spawner/random/entertainment/deck
- name = "deck spawner"
- icon_state = "deck"
- loot = list(
- /obj/item/toy/cards/deck = 5,
- /obj/item/toy/cards/deck/kotahi = 2,
- /obj/item/toy/cards/deck/tarot = 1,
- )
-
-/obj/effect/spawner/random/entertainment/toy_figure
- name = "toy figure spawner"
- icon_state = "toy"
- loot_subtype_path = /obj/item/toy/figure
- loot = list()
-
-/obj/effect/spawner/random/entertainment/toy
- name = "toy spawner"
- icon_state = "toy"
- loot = list()
-
-/obj/effect/spawner/random/entertainment/toy/Initialize(mapload)
- loot += GLOB.arcade_prize_pool
- return ..()
-
-/obj/effect/spawner/random/entertainment/plushie
- name = "plushie spawner"
- icon_state = "plushie"
- loot = list (
- /obj/item/toy/plush/beeplushie,
- /obj/item/toy/plush/blahaj,
- /obj/item/toy/plush/carpplushie,
- /obj/item/toy/plush/flushed,
- /obj/item/toy/plush/kari,
- /obj/item/toy/plush/lizardplushie,
- /obj/item/toy/plush/mora,
- /obj/item/toy/plush/realgoat,
- /obj/item/toy/plush/rilena,
- /obj/item/toy/plush/sharai,
- /obj/item/toy/plush/slimeplushie,
- /obj/item/toy/plush/snakeplushie,
- /obj/item/toy/plush/spider,
- /obj/item/toy/plush/tali,
- /obj/item/toy/plush/xader,
- /obj/effect/spawner/random/entertainment/plushie/moth // fair chances
- )
-
-/obj/effect/spawner/random/entertainment/plushie/moth
- loot = list (
- /obj/item/toy/plush/moth,
- /obj/item/toy/plush/moth/monarch,
- /obj/item/toy/plush/moth/luna,
- /obj/item/toy/plush/moth/atlas,
- /obj/item/toy/plush/moth/redish,
- /obj/item/toy/plush/moth/royal,
- /obj/item/toy/plush/moth/gothic,
- /obj/item/toy/plush/moth/lovers,
- /obj/item/toy/plush/moth/whitefly,
- /obj/item/toy/plush/moth/punished,
- /obj/item/toy/plush/moth/firewatch,
- /obj/item/toy/plush/moth/deadhead,
- /obj/item/toy/plush/moth/poison,
- /obj/item/toy/plush/moth/ragged,
- /obj/item/toy/plush/moth/snow,
- /obj/item/toy/plush/moth/moonfly
- )
-
-/obj/effect/spawner/random/entertainment/colorful_grenades
- name = "colorful/glitter grenades spawner"
- loot = list(
- /obj/item/grenade/chem_grenade/glitter/pink,
- /obj/item/grenade/chem_grenade/glitter/blue,
- /obj/item/grenade/chem_grenade/glitter/white,
- /obj/item/grenade/chem_grenade/colorful
- )
diff --git a/code/game/objects/effects/spawners/random.dm/exotic.dm b/code/game/objects/effects/spawners/random.dm/exotic.dm
deleted file mode 100644
index 9d55fa9b69ff..000000000000
--- a/code/game/objects/effects/spawners/random.dm/exotic.dm
+++ /dev/null
@@ -1,69 +0,0 @@
-/obj/effect/spawner/random/exotic
- name = "exotic spawner"
- desc = "Super duper rare stuff."
- icon_state = "showcase"
-
-/obj/effect/spawner/random/exotic/ripley
- name = "25% exosuit 75% wreckage ripley spawner"
- icon_state = "ripley"
- loot = list(
- /obj/mecha/working/ripley/mining = 1,
- /obj/structure/mecha_wreckage/ripley = 5
- )
-
-/obj/effect/spawner/random/exotic/prison_contraband
- name = "prison contraband loot spawner"
- icon_state = "prisoner"
- loot = list(
- /obj/item/clothing/mask/cigarette/space_cigarette = 4,
- /obj/item/clothing/mask/cigarette/robust = 2,
- /obj/item/clothing/mask/cigarette/carp = 3,
- /obj/item/clothing/mask/cigarette/uplift = 2,
- /obj/item/clothing/mask/cigarette/dromedary = 3,
- /obj/item/clothing/mask/cigarette/robustgold = 1,
- /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/fancy/cigarettes = 3,
- /obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
- /obj/item/toy/crayon/spraycan = 2,
- /obj/item/crowbar = 1,
- /obj/item/assembly/flash/handheld = 1,
- /obj/item/restraints/handcuffs/cable/zipties = 1,
- /obj/item/restraints/handcuffs = 1,
- /obj/item/radio = 1,
- /obj/item/lighter = 3,
- /obj/item/storage/box/matches = 3,
- /obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
- /obj/item/reagent_containers/syringe/contraband/krokodil = 1,
- /obj/item/reagent_containers/syringe/contraband/crank = 1,
- /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
- /obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
- /obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
- /obj/item/reagent_containers/syringe/contraband/morphine = 1,
- /obj/item/storage/pill_bottle/happy = 1,
- /obj/item/storage/pill_bottle/lsd = 1,
- /obj/item/storage/pill_bottle/psicodine = 1,
- /obj/item/reagent_containers/food/drinks/beer = 4,
- /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
- /obj/item/paper/fluff/jobs/prisoner/letter = 1,
- /obj/item/grenade/smokebomb = 1,
- /obj/item/flashlight/seclite = 1,
- /obj/item/melee/knife/shiv = 4,
- /obj/item/melee/knife/shiv/carrot = 1,
- /obj/item/melee/knife/kitchen = 1,
- /obj/item/storage/wallet/random = 1,
- /obj/item/pda = 1
- )
-
-/obj/effect/spawner/random/exotic/armory
- name = "generic armory spawner"
- spawn_loot_split = TRUE
- spawn_loot_count = 3
- spawn_loot_split_pixel_offsets = 4
-
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol/ringneck = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/gun/ballistic/revolver/mateba
- )
-
diff --git a/code/game/objects/effects/spawners/random.dm/food_or_drink.dm b/code/game/objects/effects/spawners/random.dm/food_or_drink.dm
deleted file mode 100644
index 300f94260ee1..000000000000
--- a/code/game/objects/effects/spawners/random.dm/food_or_drink.dm
+++ /dev/null
@@ -1,284 +0,0 @@
-/obj/effect/spawner/random/food_or_drink
- name = "food or drink loot spawner"
- desc = "Nom nom nom"
- icon_state = "soup"
-
-/obj/effect/spawner/random/food_or_drink/donkpockets
- name = "donk pocket box spawner"
- icon_state = "donkpocket"
- loot = list(
- /obj/item/storage/box/donkpockets/donkpocketspicy = 1,
- /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1,
- /obj/item/storage/box/donkpockets/donkpocketpizza = 1,
- /obj/item/storage/box/donkpockets/donkpocketberry = 1,
- /obj/item/storage/box/donkpockets/donkpockethonk = 1,
- )
-
-/obj/effect/spawner/random/food_or_drink/ration
- name = "ration spawner"
- icon_state = "pizzabox"
- loot = list (
- /obj/item/storage/ration/vegan_chili = 5,
- /obj/item/storage/ration/shredded_beef = 5,
- /obj/item/storage/ration/pork_spaghetti = 5,
- /obj/item/storage/ration/fried_fish = 5,
- /obj/item/storage/ration/beef_strips = 5,
- /obj/item/storage/ration/chili_macaroni = 5,
- /obj/item/storage/ration/chicken_wings_hot_sauce = 5,
- /obj/item/storage/ration/fish_stew = 5,
- /obj/item/storage/ration/lemon_pepper_chicken = 5,
- /obj/item/storage/ration/sausage_peppers_onions = 5,
- /obj/item/storage/ration/pork_dumplings_chili_sauce = 5,
- /obj/item/storage/ration/battered_fish_sticks = 5,
- /obj/item/storage/ration/assorted_salted_offal = 5,
- /obj/item/storage/ration/maple_pork_sausage_patty = 5,
- /obj/item/storage/ration/pepper_jack_beef_patty = 5,
- /obj/item/storage/ration/beef_goulash = 5,
- /obj/item/storage/ration/pepperoni_pizza_slice = 5,
- /obj/item/storage/ration/blackened_calamari = 5,
- /obj/item/storage/ration/elbow_macaroni = 5,
- /obj/item/storage/ration/cheese_pizza_slice = 5,
- /obj/item/storage/ration/crayons = 2 // :)
- )
-
-/obj/effect/spawner/random/food_or_drink/donut
- name = "random donut" //donut :)
- icon_state = "pizzabox"
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/meat = 1,
- /obj/item/reagent_containers/food/snacks/donut/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/trumpet = 1,
- /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/chaos = 1,
- )
-
-/obj/effect/spawner/random/food_or_drink/donut/jelly
- name = "random jelly donut"
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1,
- )
-
-/obj/effect/spawner/random/food_or_drink/donut/slimejelly
- name = "random slimejelly donut"
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1,
- )
-
-/obj/effect/spawner/random/food_or_drink/three_course_meal
- name = "three course meal spawner"
- spawn_loot_count = 3
- spawn_loot_double = FALSE
- var/soups = list(
- /obj/item/reagent_containers/food/snacks/soup/beet,
- /obj/item/reagent_containers/food/snacks/soup/sweetpotato,
- /obj/item/reagent_containers/food/snacks/soup/stew,
- /obj/item/reagent_containers/food/snacks/soup/hotchili,
- /obj/item/reagent_containers/food/snacks/soup/nettle,
- /obj/item/reagent_containers/food/snacks/soup/meatball)
- var/salads = list(
- /obj/item/reagent_containers/food/snacks/salad/herbsalad,
- /obj/item/reagent_containers/food/snacks/salad/validsalad,
- /obj/item/reagent_containers/food/snacks/salad/fruit,
- /obj/item/reagent_containers/food/snacks/salad/jungle,
- /obj/item/reagent_containers/food/snacks/salad/aesirsalad)
- var/mains = list(
- /obj/item/reagent_containers/food/snacks/bearsteak,
- /obj/item/reagent_containers/food/snacks/enchiladas,
- /obj/item/reagent_containers/food/snacks/stewedsoymeat,
- /obj/item/reagent_containers/food/snacks/burger/bigbite,
- /obj/item/reagent_containers/food/snacks/burger/superbite,
- /obj/item/reagent_containers/food/snacks/burger/fivealarm)
-
-/obj/effect/spawner/random/food_or_drink/three_course_meal/Initialize(mapload)
- loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
- . = ..()
-
-/obj/effect/spawner/random/food_or_drink/garden
- name = "lush garden seeder"
- spawn_loot_count = 3
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1,
- /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2,
- /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1,
- /obj/item/reagent_containers/food/snacks/grown/trumpet = 1,
- /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1,
- /obj/item/seeds/random = 1,
- /obj/item/grown/log/bamboo = 2,
- /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5,
- /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2,
- /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2,
- /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2,
- /obj/item/reagent_containers/food/snacks/grown/moonflower = 2,
- /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2,
- /obj/item/reagent_containers/food/snacks/grown/pineapple = 2,
- /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2,
- /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2,
- /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2,
- /obj/item/reagent_containers/food/snacks/grown/tea = 2,
- /obj/item/reagent_containers/food/snacks/grown/tobacco = 2,
- /obj/item/reagent_containers/food/snacks/grown/watermelon = 4,
- /obj/item/grown/sunflower = 4,
- /obj/item/reagent_containers/food/snacks/grown/banana = 4,
- /obj/item/reagent_containers/food/snacks/grown/apple = 4,
- /obj/item/reagent_containers/food/snacks/grown/berries = 5,
- /obj/item/reagent_containers/food/snacks/grown/cherries = 4,
- /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4,
- /obj/item/reagent_containers/food/snacks/grown/garlic = 4,
- /obj/item/reagent_containers/food/snacks/grown/grapes = 4,
- /obj/item/reagent_containers/food/snacks/grown/grass = 5,
- /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4,
- /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4,
- /obj/item/reagent_containers/food/snacks/grown/wheat = 4,
- /obj/item/reagent_containers/food/snacks/grown/parsnip = 4,
- /obj/item/reagent_containers/food/snacks/grown/peas = 4,
- /obj/item/reagent_containers/food/snacks/grown/rice = 4,
- /obj/item/reagent_containers/food/snacks/grown/soybeans = 4,
- /obj/item/reagent_containers/food/snacks/grown/tomato = 4,
- /obj/item/reagent_containers/food/snacks/grown/cabbage = 4,
- /obj/item/reagent_containers/food/snacks/grown/onion = 4,
- /obj/item/reagent_containers/food/snacks/grown/carrot = 4)
-
-/obj/effect/spawner/random/food_or_drink/garden/arid
- name = "arid garden seeder"
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1,
- /obj/item/reagent_containers/food/snacks/grown/nettle = 1,
- /obj/item/grown/cotton/durathread = 1,
- /obj/item/seeds/random = 1,
- /obj/item/reagent_containers/food/snacks/grown/redbeet = 1,
- /obj/item/reagent_containers/food/snacks/grown/aloe = 2,
- /obj/item/grown/cotton = 2,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2,
- /obj/item/reagent_containers/food/snacks/grown/chili = 2,
- /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5,
- /obj/item/reagent_containers/food/snacks/grown/potato = 4,
- /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4,
- /obj/item/reagent_containers/food/snacks/grown/corn = 4
- )
-
-/obj/effect/spawner/random/food_or_drink/garden/cold
- name = "frigid garden seeder"
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1,
- /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1,
- /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1,
- /obj/item/seeds/random = 1,
- /obj/item/reagent_containers/food/snacks/grown/poppy = 2,
- /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
- /obj/item/reagent_containers/food/snacks/grown/oat = 4,
- /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4,
- /obj/item/reagent_containers/food/snacks/grown/grass = 4,
- /obj/item/reagent_containers/food/snacks/grown/harebell = 5,
- /obj/item/seeds/starthistle = 5
- )
-
-/obj/effect/spawner/random/food_or_drink/garden/sick
- name = "sickly garden seeder"
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1,
- /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1,
- /obj/item/seeds/replicapod = 1,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
- /obj/item/seeds/tower/steel = 2,
- /obj/item/reagent_containers/food/snacks/grown/cannabis = 2,
- /obj/item/seeds/random = 2,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2,
- /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4,
- /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4
- )
-
-/obj/effect/spawner/random/food_or_drink/garden/seaweed
- name = "seaweed patch seeder"
- loot = list(
- /obj/item/reagent_containers/food/snacks/grown/seaweed
- )
-
-/obj/effect/spawner/random/food_or_drink/seed
- name = "GO FORTH AND CULTIVATE"
- icon_state = "seed"//sneed
- loot = list(
- /obj/item/seeds/aloe,
- /obj/item/seeds/ambrosia,
- /obj/item/seeds/apple,
- /obj/item/seeds/cotton,
- /obj/item/seeds/banana,
- /obj/item/seeds/berry,
- /obj/item/seeds/cabbage,
- /obj/item/seeds/carrot,
- /obj/item/seeds/cherry,
- /obj/item/seeds/chanter,
- /obj/item/seeds/chili,
- /obj/item/seeds/cocoapod,
- /obj/item/seeds/coffee,
- /obj/item/seeds/corn,
- /obj/item/seeds/eggplant,
- /obj/item/seeds/garlic,
- /obj/item/seeds/grape,
- /obj/item/seeds/grass,
- /obj/item/seeds/lemon,
- /obj/item/seeds/lime,
- /obj/item/seeds/onion,
- /obj/item/seeds/orange,
- /obj/item/seeds/peas,
- /obj/item/seeds/pineapple,
- /obj/item/seeds/potato,
- /obj/item/seeds/poppy,
- /obj/item/seeds/pumpkin,
- /obj/item/seeds/wheat/rice,
- /obj/item/seeds/soya,
- /obj/item/seeds/sugarcane,
- /obj/item/seeds/sunflower,
- /obj/item/seeds/tea,
- /obj/item/seeds/tobacco,
- /obj/item/seeds/tomato,
- /obj/item/seeds/tower,
- /obj/item/seeds/watermelon,
- /obj/item/seeds/wheat,
- /obj/item/seeds/whitebeet,
- /obj/item/seeds/amanita,
- /obj/item/seeds/glowshroom,
- /obj/item/seeds/liberty,
- /obj/item/seeds/nettle,
- /obj/item/seeds/plump,
- /obj/item/seeds/reishi,
- /obj/item/seeds/cannabis,
- /obj/item/seeds/starthistle,
- /obj/item/seeds/cherry/bomb,
- /obj/item/seeds/berry/glow,
- /obj/item/seeds/sunflower/moonflower
- )
diff --git a/code/game/objects/effects/spawners/random.dm/maintenance.dm b/code/game/objects/effects/spawners/random.dm/maintenance.dm
deleted file mode 100644
index 53a61e0f877d..000000000000
--- a/code/game/objects/effects/spawners/random.dm/maintenance.dm
+++ /dev/null
@@ -1,57 +0,0 @@
-/obj/effect/spawner/random/maintenance
- name = "maintenance loot spawner"
- desc = "Come on Lady Luck, spawn me a pair of sunglasses."
- icon_state = "loot"
- // see code/_globalvars/lists/maintenance_loot.dm for loot table
-
-/obj/effect/spawner/random/maintenance/Initialize(mapload)
- loot = GLOB.maintenance_loot
- . = ..()
-
-/obj/effect/spawner/random/maintenance/skew_loot_weights(list/loot_list, exponent)
- ///We only need to skew the weights once, since it's a global list used by all maint spawners.
- var/static/already_done = FALSE
- if(loot_list == GLOB.maintenance_loot && already_done)
- return
- already_done = TRUE
- return ..()
-
-/obj/effect/spawner/random/maintenance/spawn_loot(lootcount_override)
- if(isnull(lootcount_override))
- lootcount_override = spawn_loot_count
- . = ..()
-
- /* Fucks everything. Investigate further
- // In addition, closets that are closed will have the maintenance loot inserted inside.
- for(var/obj/structure/closet/closet in get_turf(src))
- if(!closet.opened)
- closet.take_contents()
- */
-
-/obj/effect/spawner/random/maintenance/two
- name = "2 x maintenance loot spawner"
- spawn_loot_count = 2
-
-/obj/effect/spawner/random/maintenance/three
- name = "3 x maintenance loot spawner"
- spawn_loot_count = 3
-
-/obj/effect/spawner/random/maintenance/four
- name = "4 x maintenance loot spawner"
- spawn_loot_count = 4
-
-/obj/effect/spawner/random/maintenance/five
- name = "5 x maintenance loot spawner"
- spawn_loot_count = 5
-
-/obj/effect/spawner/random/maintenance/six
- name = "6 x maintenance loot spawner"
- spawn_loot_count = 6
-
-/obj/effect/spawner/random/maintenance/seven
- name = "7 x maintenance loot spawner"
- spawn_loot_count = 7
-
-/obj/effect/spawner/random/maintenance/eight
- name = "8 x maintenance loot spawner"
- spawn_loot_count = 8
diff --git a/code/game/objects/effects/spawners/random.dm/medical.dm b/code/game/objects/effects/spawners/random.dm/medical.dm
deleted file mode 100644
index a0d5a6db53b9..000000000000
--- a/code/game/objects/effects/spawners/random.dm/medical.dm
+++ /dev/null
@@ -1,145 +0,0 @@
-/obj/effect/spawner/random/medical
- name = "medical loot spawner"
- desc = "Doc, gimmie something good."
-
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- icon_state = "gauze"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- )
-
-/obj/effect/spawner/random/medical/organs
- name = "ayylien organ spawner"
- loot = list(
- /obj/item/organ/heart/gland/electric = 3,
- /obj/item/organ/heart/gland/trauma = 4,
- /obj/item/organ/heart/gland/egg = 7,
- /obj/item/organ/heart/gland/chem = 5,
- /obj/item/organ/heart/gland/mindshock = 5,
- /obj/item/organ/heart/gland/plasma = 7,
- /obj/item/organ/heart/gland/transform = 5,
- /obj/item/organ/heart/gland/slime = 4,
- /obj/item/organ/heart/gland/spiderman = 5,
- /obj/item/organ/heart/gland/ventcrawling = 1,
- /obj/item/organ/body_egg/alien_embryo = 1,
- /obj/item/organ/regenerative_core = 2)
- spawn_loot_count = 3
-
-/obj/effect/spawner/random/medical/memeorgans
- name = "meme organ spawner"
- loot = list(
- /obj/item/organ/ears/penguin,
- /obj/item/organ/ears/cat,
- /obj/item/organ/eyes/compound,
- /obj/item/organ/eyes/snail,
- /obj/item/organ/tongue/bone,
- /obj/item/organ/tongue/fly,
- /obj/item/organ/tongue/snail,
- /obj/item/organ/tongue/lizard,
- /obj/item/organ/tongue/alien,
- /obj/item/organ/tongue/ethereal,
- /obj/item/organ/tongue/robot,
- /obj/item/organ/tongue/zombie,
- /obj/item/organ/appendix,
- /obj/item/organ/liver/fly,
- /obj/item/organ/lungs/plasmaman,
- /obj/item/organ/tail/cat,
- /obj/item/organ/tail/lizard
- )
- spawn_loot_count = 5
-
-/obj/effect/spawner/random/medical/surgery_tool/common
- name = "Surgery tool spawner"
- icon_state = "scapel"
- loot = list(
- /obj/item/scalpel,
- /obj/item/hemostat,
- /obj/item/retractor,
- /obj/item/circular_saw,
- /obj/item/surgicaldrill,
- /obj/item/cautery,
- )
-
-/obj/effect/spawner/random/medical/surgery_tool/adv
- loot = list(
- /obj/item/scalpel/advanced,
- /obj/item/retractor/advanced,
- /obj/item/surgicaldrill/advanced,
- )
-
-/obj/effect/spawner/random/medical/surgery_tool
- loot = list(
- /obj/effect/spawner/random/medical/surgery_tool/common = 120,
- /obj/effect/spawner/random/medical/surgery_tool/adv = 10,
- )
-
-/obj/effect/spawner/random/medical/medkit
- name = "medkit spawner"
- icon_state = "medkit"
- loot = list(
- /obj/item/storage/firstaid/regular = 10,
- /obj/item/storage/firstaid/o2 = 10,
- /obj/item/storage/firstaid/fire = 10,
- /obj/item/storage/firstaid/brute = 10,
- /obj/item/storage/firstaid/toxin = 10,
- /obj/item/storage/firstaid/advanced = 1,
- )
-
-/obj/effect/spawner/random/medical/patient_stretcher
- name = "patient stretcher spawner"
- icon_state = "rollerbed"
- loot = list(
- /obj/structure/bed/roller,
- /obj/vehicle/ridden/wheelchair,
- )
-
-/obj/effect/spawner/random/medical/supplies
- name = "medical supplies spawner"
- icon_state = "box_small"
- loot = list(
- /obj/item/storage/box/hug,
- /obj/item/storage/box/pillbottles,
- /obj/item/storage/box/bodybags,
- /obj/item/storage/box/rxglasses,
- /obj/item/storage/box/beakers,
- /obj/item/storage/box/gloves,
- /obj/item/storage/box/masks,
- /obj/item/storage/box/syringes,
- )
-
-/obj/effect/spawner/random/medical/beaker
- loot = list(
- /obj/item/reagent_containers/glass/beaker = 300,
- /obj/item/reagent_containers/glass/beaker/large = 200,
- /obj/item/reagent_containers/glass/beaker/plastic = 50,
- /obj/item/reagent_containers/glass/beaker/meta = 10,
- /obj/item/reagent_containers/glass/beaker/noreact = 5,
- /obj/item/reagent_containers/glass/beaker/bluespace = 1,
- )
-
-/obj/effect/spawner/random/medical/prosthetic
- loot = list(
- /obj/item/bodypart/l_arm/robot/surplus = 1,
- /obj/item/bodypart/r_arm/robot/surplus = 1,
- /obj/item/bodypart/leg/left/robot/surplus = 1,
- /obj/item/bodypart/leg/right/robot/surplus = 1,
- )
-
-/obj/effect/spawner/random/medical/chem_jug
- loot = list(
- /obj/item/reagent_containers/glass/chem_jug/carbon,
- /obj/item/reagent_containers/glass/chem_jug/oxygen,
- /obj/item/reagent_containers/glass/chem_jug/nitrogen,
- /obj/item/reagent_containers/glass/chem_jug/hydrogen,
- /obj/item/reagent_containers/glass/chem_jug/radium,
- /obj/item/reagent_containers/glass/chem_jug/aluminium,
- /obj/item/reagent_containers/glass/chem_jug/chlorine,
- /obj/item/reagent_containers/glass/chem_jug/copper,
- /obj/item/reagent_containers/glass/chem_jug/bromine,
- /obj/item/reagent_containers/glass/chem_jug/iodine,
- /obj/item/reagent_containers/glass/chem_jug/potassium,
- /obj/item/reagent_containers/glass/chem_jug/sulfur
- )
diff --git a/code/game/objects/effects/spawners/random.dm/random.dm b/code/game/objects/effects/spawners/random.dm/random.dm
deleted file mode 100644
index 0e6606f3b9ee..000000000000
--- a/code/game/objects/effects/spawners/random.dm/random.dm
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * Base class for all random spawners.
- */
-/obj/effect/spawner/random
- icon = 'icons/effects/mapping/random_spawners.dmi'
- icon_state = "loot"
- layer = OBJ_LAYER
- /// Stops persistent lootdrop spawns from being shoved into lockers
- anchored = TRUE
- /// A list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
- var/list/loot
- /// The subtypes AND type to combine with the loot list
- var/loot_type_path
- /// The subtypes (this excludes the provided path) to combine with the loot list
- var/loot_subtype_path
- /// How many items will be spawned
- var/spawn_loot_count = 1
- /// If the same item can be spawned twice
- var/spawn_loot_double = TRUE
- /// Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
- var/spawn_loot_split = FALSE
- /// The pixel x/y divider offsets for spawn_loot_split (spaced 1 pixel apart by default)
- var/spawn_loot_split_pixel_offsets = 2
- /// Whether the spawner should spawn all the loot in the list
- var/spawn_all_loot = FALSE
- /// The chance for the spawner to create loot (ignores spawn_loot_count)
- var/spawn_loot_chance = 100
- /// Determines how big of a range (in tiles) we should scatter things in.
- var/spawn_scatter_radius = 0
- /// Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)
- var/spawn_random_offset = FALSE
- /// Whether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason.
- var/remove_if_cant_spawn = TRUE
-
-/obj/effect/spawner/random/Initialize(mapload)
- . = ..()
- spawn_loot()
-
-///If the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.
-/obj/effect/spawner/random/proc/spawn_loot(lootcount_override)
- if(!prob(spawn_loot_chance))
- return
-
- var/list/spawn_locations = get_spawn_locations(spawn_scatter_radius)
- var/spawn_loot_count = isnull(lootcount_override) ? src.spawn_loot_count : lootcount_override
-
- if(spawn_all_loot)
- spawn_loot_count = INFINITY
- spawn_loot_double = FALSE
-
- if(loot_type_path)
- loot += typesof(loot_type_path)
-
- if(loot_subtype_path)
- loot += subtypesof(loot_subtype_path)
-
- if(CONFIG_GET(number/random_loot_weight_modifier) != 1)
- skew_loot_weights(loot, CONFIG_GET(number/random_loot_weight_modifier))
-
- if(loot?.len)
- var/loot_spawned = 0
- var/pixel_divider = FLOOR(16 / spawn_loot_split_pixel_offsets, 1) // 16 pixels offsets is max that should be allowed in any direction
- while((spawn_loot_count-loot_spawned) && loot.len)
- var/lootspawn = pick_weight_recursive(loot)
- if(!can_spawn(lootspawn))
- if(remove_if_cant_spawn)
- loot.Remove(lootspawn)
- continue
- if(!spawn_loot_double)
- loot.Remove(lootspawn)
- if(lootspawn && (spawn_scatter_radius == 0 || spawn_locations.len))
- var/turf/spawn_loc = loc
- if(spawn_scatter_radius > 0)
- spawn_loc = pick_n_take(spawn_locations)
-
- var/atom/movable/spawned_loot = make_item(spawn_loc, lootspawn)
- spawned_loot.setDir(dir)
-
- if (!spawn_loot_split && !spawn_random_offset)
- if (pixel_x != 0)
- spawned_loot.pixel_x = pixel_x
- if (pixel_y != 0)
- spawned_loot.pixel_y = pixel_y
- else if (spawn_random_offset)
- spawned_loot.pixel_x = rand(-16, 16)
- spawned_loot.pixel_y = rand(-16, 16)
- else if (spawn_loot_split)
- if (loot_spawned)
- var/column = FLOOR(loot_spawned / pixel_divider, 1)
- spawned_loot.pixel_x = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) + (column * spawn_loot_split_pixel_offsets)
- spawned_loot.pixel_y = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider)
- loot_spawned++
-
-///Levels out the weights of loot if lower than 1, or makes rarer spawns even more rare.
-/obj/effect/spawner/random/proc/skew_loot_weights(list/loot_list, exponent)
- ///This helps keeping the modified weights more or less correct, since pick_weight doesn't appreciate decimals.
- var/precision = 1
- if(exponent < 1)
- precision = round((1 - exponent) * 10) + 1
- for(var/loot_type in loot_list)
- if(islist(loot_type))
- skew_loot_weights(loot_type, exponent)
- var/loot_weight = loot_list[loot_type]
- if(loot_weight <= 1)
- if(exponent < 1)
- loot_list[loot_type] = precision
- continue
- loot_list[loot_type] = round(loot_weight ** exponent * precision, 1)
-
-/**
- * Makes the actual item related to our spawner.
- *
- * spawn_loc - where are we spawning it?
- * type_path_to_make - what are we spawning?
- **/
-/obj/effect/spawner/random/proc/make_item(spawn_loc, type_path_to_make)
- return new type_path_to_make(spawn_loc)
-
-///If the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available that are in view and have an unblocked line to them.
-/obj/effect/spawner/random/proc/get_spawn_locations(radius)
- var/list/scatter_locations = list()
-
- if(!radius)
- return scatter_locations
-
- for(var/turf/turf_in_view in view(radius, get_turf(src)))
- if(isclosedturf(turf_in_view))
- continue
- if(!has_unblocked_line(turf_in_view))
- continue
-
- scatter_locations += turf_in_view
-
- return scatter_locations
-
-/obj/effect/spawner/random/proc/has_unblocked_line(destination)
- for(var/turf/potential_blockage as anything in get_line(get_turf(src), destination))
- if(!potential_blockage.is_blocked_turf(exclude_mobs = TRUE))
- continue
- return FALSE
- return TRUE
-
-//finds the probabilities of items spawning from a loot spawner's loot pool
-/obj/item/loot_table_maker
- icon = 'icons/effects/mapping/landmarks_static.dmi'
- icon_state = "random_loot"
- var/spawner_to_test = /obj/effect/spawner/random/maintenance //what lootdrop spawner to use the loot pool of
- var/loot_count = 180 //180 is about how much maint loot spawns per map as of 11/14/2019
- //result outputs
- var/list/spawned_table //list of all items "spawned" and how many
- var/list/stat_table //list of all items "spawned" and their occurrance probability
-
-/obj/item/loot_table_maker/Initialize(mapload)
- . = ..()
- make_table()
-
-/obj/item/loot_table_maker/attack_self(mob/user)
- to_chat(user, "Loot pool re-rolled.")
- make_table()
-
-/obj/item/loot_table_maker/proc/make_table()
- spawned_table = list()
- stat_table = list()
- var/obj/effect/spawner/random/spawner_to_table = new spawner_to_test
- var/lootpool = spawner_to_table.loot
- qdel(spawner_to_table)
- for(var/i in 1 to loot_count)
- var/loot_spawn = pick_weight_recursive(lootpool)
- if(!(loot_spawn in spawned_table))
- spawned_table[loot_spawn] = 1
- else
- spawned_table[loot_spawn] += 1
- stat_table += spawned_table
- for(var/item in stat_table)
- stat_table[item] /= loot_count
diff --git a/code/game/objects/effects/spawners/random.dm/readme.md b/code/game/objects/effects/spawners/random.dm/readme.md
deleted file mode 100644
index 97db867f2de6..000000000000
--- a/code/game/objects/effects/spawners/random.dm/readme.md
+++ /dev/null
@@ -1,425 +0,0 @@
-# Random Spawners
-
-## About
-
-Random spawners are an organized tool primarily for mapping to enhance replayability. The spawners can create objects, effects, and structures with different tweakable settings to get the desired outcome. You can make a spawner determine direction, rarity, number of items to spawn, pixel spacing between items, and even spread it over a large tile radius. This lets you control the atmosphere of a location. You could for instance spawn different piles of trash in maint or spawn decoration items for a room to give it more randomized flavor. The choice is yours!
-
-*(note the audience of this README is directed towards mappers who lack knowledge of coding)*
-
-## Variables
-
-The following variables are defined in `code/game/objects/effects/spawners/random/random.dm` that control how a spawner works.
-
-- `loot` - a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
-- `loot_type_path` - this combines the subtypes AND type list with the loot list
-- `loot_subtype_path` - this combines ONLY the subtypes (excludes the `loot_subtype_path`) with the loot list
-- `spawn_loot_count` - how many items will be spawned
-- `spawn_loot_double` - if the same item can be spawned twice from the loot list
-- `spawn_loot_split` - whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
-- `spawn_all_loot` - whether the spawner should spawn all the loot in the list (ignores `spawn_loot_count`)
-- `spawn_loot_chance` - the chance for the spawner to create loot (ignores `spawn_loot_count`)
-- `spawn_scatter_radius` - determines how big of a range (in tiles) we should scatter things in
-
-These variables are set to the following default values for the base `random.dm` object that all objects inherit from:
-
-```dm
- /// these three loot values are all empty
- var/list/loot
- var/loot_type_path
- var/loot_subtype_path
-
- var/spawn_loot_count = 1 // by default one item will be selected from the loot list
- var/spawn_loot_double = TRUE // by default duplicate items CAN be spawned from the loot list
- var/spawn_loot_split = FALSE // by default items will NOT spread out on the same tile
- var/spawn_all_loot = FALSE // by default the spawner will only spawn the number of items set in spawn_loot_count
- var/spawn_loot_chance = 100 // by default the spawner has a 100% chance to spawn the item(s)
- var/spawn_scatter_radius = 0 // by default the spawner will spawn the items ONLY on the tile it is on
-```
-
-However there are some categories that overwrite these default values so pay attention to the folder or category you group your spawner in. For instance the `obj/effect/spawner/random/techstorage` category overwrites the `spawn_all_loot` and the `spawn_loot_split` variables.
-
-```dm
-// Tech storage circuit board spawners
-/obj/effect/spawner/random/techstorage
- name = "generic circuit board spawner"
- spawn_loot_split = TRUE
- spawn_all_loot = TRUE
-```
-
-This means any spawner you create under the techstorage will also have those variables set to that by default. This can be overridden quite easily just be resetting the variables back to the normal state like so:
-
-```dm
-/obj/effect/spawner/random/techstorage/data_disk
- name = "data disk spawner"
- spawn_all_loot = FALSE // now our loot won't all be spawned
- loot = list(
- /obj/item/disk/data = 49,
- /obj/item/disk/nuclear/fake/obvious = 1,
- )
-```
-
-## Template
-
-All the random spawners follow the same template format to keep things consistent and unison.
-
-```dm
-/obj/effect/spawner/random/INSERT_SPAWNER_GROUP/INSERT_SPAWNER_NAME
- name = "INSERT_SPAWNER_NAME spawner"
- loot = list(
- /obj/item/PATH/INSERT_OBJ_1,
- /obj/item/PATH/INSERT_OBJ_2,
- /obj/item/PATH/INSERT_OBJ_3,
- )
-```
-
-All the capitalized code is the parts where you are supposed to swap out with your objects like so:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- )
-```
-
-Find the path to different objects and add them to the list but try to be consistent with the types of the object and the spawner. For example a medical spawner shouldn't have a emag in the loot list. (use an antag spawner for that instead!)
-
-## Probability
-
-Be aware that the `loot` list uses a *weighted chance* formula to determine probability. So if there are no numbers set in the `loot` list then each object defaults to 1 and has the same probability to be selected. For our above example for the `minor_healing` spawner each medical item has a 1/3 chance to be spawned. But if we rearranged the values to this:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture = 2,
- /obj/item/stack/medical/mesh = 1,
- /obj/item/stack/medical/gauze = 1,
- )
-```
-
-Then now `suture` has a 50% chance of being spawned (2/4), `mesh` has a 25% chance of being spawned (1/4), and `gauze` also has a 25% chance of being spawned (1/4). If we add another item into the mix then we get the following:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture = 2,
- /obj/item/stack/medical/mesh = 1,
- /obj/item/stack/medical/gauze = 1,
- /obj/item/reagent_containers/syringe = 1,
- )
-```
-
-Suture is 40% (2/5), Mesh is 20% (1/5), Gauze is 20% (1/5), and Syringe is 20% (1/5). A weighted list has the advantage of not needing to update every item in the list when adding a new item. If the list was based on a straight percent values, then each new item would require to manually go and edit ALL the items in the list. For big lists that would become very tedious. This is why we use weighted lists to determine probability!
-
-## Style
-
-Here are some simple guidelines that you should stick to when making a new spawner:
-
-### If ALL the items have the same chance, we should not set a weighted value to the item
-
-Do not put `/obj/item/ = 1` unless other items have different spawn chances
-
-Good:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture = 2,
- /obj/item/stack/medical/mesh = 1,
- /obj/item/stack/medical/gauze = 1,
- /obj/item/reagent_containers/syringe = 1,
- )
-```
-
-Also Good:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- /obj/item/reagent_containers/syringe,
- )
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture = 1,
- /obj/item/stack/medical/mesh = 1,
- /obj/item/stack/medical/gauze = 1,
- /obj/item/reagent_containers/syringe = 1,
- )
-```
-
-
-### Sort the list from highest probability to lowest
-
-Sort from top to bottom. The rarest items for your spawner should be at the bottom of the list.
-
-Good:
-
-```dm
-/obj/effect/spawner/random/exotic/armory
- name = "armory loot spawner"
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/grenade/clusterbuster/teargas = 2,
- /obj/item/grenade/clusterbuster = 2,
- /obj/item/gun/ballistic/automatic/pistol/deagle = 1,
- /obj/item/gun/ballistic/revolver/mateba = 1,
- )
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/exotic/armory
- name = "armory loot spawner"
- loot = list(
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/gun/ballistic/automatic/pistol = 8,
- /obj/item/gun/ballistic/revolver/mateba = 1,
- /obj/item/grenade/clusterbuster/teargas = 2,
- /obj/item/gun/ballistic/automatic/pistol/deagle = 1,
- /obj/item/grenade/clusterbuster = 2,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- )
-```
-
-### Always put the `loot` list at the bottom of your spawner
-
-This is just to keep things organized.
-
-Good:
-
-```dm
-/obj/effect/spawner/random/food_or_drink/donkpockets
- name = "donk pocket box spawner"
- spawn_loot_double = FALSE
- loot = list(
- /obj/item/storage/box/donkpockets/donkpocketspicy,
- /obj/item/storage/box/donkpockets/donkpocketteriyaki,
- /obj/item/storage/box/donkpockets/donkpocketpizza,
- /obj/item/storage/box/donkpockets/donkpocketberry,
- /obj/item/storage/box/donkpockets/donkpockethonk,
- )
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/food_or_drink/donkpockets
- name = "donk pocket box spawner"
- loot = list(
- /obj/item/storage/box/donkpockets/donkpocketspicy,
- /obj/item/storage/box/donkpockets/donkpocketteriyaki,
- /obj/item/storage/box/donkpockets/donkpocketpizza,
- /obj/item/storage/box/donkpockets/donkpocketberry,
- /obj/item/storage/box/donkpockets/donkpockethonk,
- )
- spawn_loot_double = FALSE
-```
-
-### Always put a comma at the last item in the `loot` list
-
-This will make it easier for people to add items to your spawner later without getting frustrating code errors.
-
-Good:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- )
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze // if someone adds an item to the list later it will cause an error
- )
-```
-
-### Keep the same tab formatting for the `loot` list (unless there is only one item)
-
-Again, this is just good code organization. If there is only one item, then encase that item in `loot = list(item)`
-
-Good:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- )
-```
-
-Also Good:
-
-```dm
-/obj/effect/spawner/random/structure/crate_abandoned
- icon = 'icons/effects/landmarks_static.dmi'
- icon_state = "loot_site"
- spawn_loot_chance = 20
- loot = list(/obj/structure/closet/crate/secure/loot)
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(
- /obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,
- )
-```
-
-Also Bad:
-
-```dm
-/obj/effect/spawner/random/medical/minor_healing
- name = "minor healing spawner"
- loot = list(/obj/item/stack/medical/suture,
- /obj/item/stack/medical/mesh,
- /obj/item/stack/medical/gauze,)
-```
-
-### Try to keep the total combined weight of your `loot` list to sane values (Aim for 5, 10, 20, 50, or 100)
-
-This makes the math probability easier for people to calculate. (this is recommended, but not always possible)
-
-Good:
-
-```dm
-/obj/effect/spawner/random/trash/cigbutt
- name = "cigarette butt spawner"
- loot = list(
- /obj/item/cigbutt = 65,
- /obj/item/cigbutt/roach = 20,
- /obj/item/cigbutt/cigarbutt = 15,
- )
-```
-
-Also Good:
-
-```dm
-/obj/effect/spawner/random/trash/botanical_waste
- name = "botanical waste spawner"
- loot = list(
- /obj/item/grown/bananapeel = 6,
- /obj/item/grown/corncob = 3,
- /obj/item/food/grown/bungopit = 1,
- )
-```
-
-Bad:
-
-```dm
-/obj/effect/spawner/random/entertainment/money_large
- name = "large money spawner"
- loot = list(
- /obj/item/stack/spacecash/c1 = 521,
- /obj/item/stack/spacecash/c10 = 378,
- /obj/item/stack/spacecash/c20 = 212,
- /obj/item/stack/spacecash/c50 = 205,
- /obj/item/stack/spacecash/c100 = 71,
- /obj/item/stack/spacecash/c200 = 60,
- /obj/item/stack/spacecash/c500 = 57,
- /obj/item/stack/spacecash/c1000 = 41,
- /obj/item/stack/spacecash/c10000 = 12,
- )
-```
-
-### Do not put empty items in the loot list
-
-Instead use the `spawn_loot_chance` var to control the chance for the spawner to spawn nothing.
-
-Good:
-
-```dm
-/obj/effect/spawner/random/structure/crate_abandoned
- name = "locked crate spawner"
- spawn_loot_chance = 20
- loot = list(/obj/structure/closet/crate/secure/loot)
-```
-
-
-Bad:
-
-```dm
-/obj/effect/spawner/lootdrop/crate_spawner
- name = "lootcrate spawner"
- loot = list(
- "" = 80
- /obj/structure/closet/crate/secure/loot = 20,
- )
-```
-
-### Avoid making a spawner that is a duplicate
-
-We don't want copy-cat spawners that are almost identical. Instead merge spawners together if possible.
-
-Good:
-
-```dm
-/obj/effect/spawner/random/exotic/armory
- name = "armory loot spawner"
- icon_state = "pistol"
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/grenade/clusterbuster/teargas = 2,
- /obj/item/grenade/clusterbuster = 2,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/gun/ballistic/revolver/mateba,
- )
-```
-
-
-Bad:
-
-```dm
-/obj/effect/spawner/lootdrop/armory_contraband
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/gun/ballistic/revolver/mateba
- )
-
-/obj/effect/spawner/lootdrop/armory_contraband/metastation
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/gun/ballistic/revolver/mateba
- )
-
-```
diff --git a/code/game/objects/effects/spawners/random.dm/salvaging.dm b/code/game/objects/effects/spawners/random.dm/salvaging.dm
deleted file mode 100644
index 66543e3ef47a..000000000000
--- a/code/game/objects/effects/spawners/random.dm/salvaging.dm
+++ /dev/null
@@ -1,207 +0,0 @@
-//GENERIC
-/obj/effect/spawner/random/salvage_capacitor
- icon_state = "matter_bin"
- loot = list(
- /obj/item/stock_parts/capacitor = 120,
- /obj/item/stock_parts/capacitor/adv = 20,
- /obj/item/stock_parts/capacitor/super = 5,
- )
-
-/obj/effect/spawner/random/salvage_scanning
- icon_state = "matter_bin"
- loot = list(
- /obj/item/stock_parts/scanning_module = 120,
- /obj/item/stock_parts/scanning_module/adv = 20,
- /obj/item/stock_parts/scanning_module/phasic = 5,
- )
-
-/obj/effect/spawner/random/salvage_manipulator
- icon_state = "matter_bin"
- loot = list(
- /obj/item/stock_parts/manipulator = 120,
- /obj/item/stock_parts/manipulator/nano = 20,
- /obj/item/stock_parts/manipulator/pico = 5,
- )
-
-/obj/effect/spawner/random/salvage_matter_bin
- icon_state = "matter_bin"
- loot = list(
- /obj/item/stock_parts/matter_bin = 120,
- /obj/item/stock_parts/matter_bin/adv = 20,
- /obj/item/stock_parts/matter_bin/super = 5,
- )
-
-/obj/effect/spawner/random/salvage_laser
- icon_state = "matter_bin"
- loot = list(
- /obj/item/stock_parts/micro_laser = 120,
- /obj/item/stock_parts/micro_laser/high = 20,
- /obj/item/stock_parts/micro_laser/ultra = 5,
- )
-
-//PROTOLATHE
-
-/obj/effect/spawner/random/random_gun_protolathe_lootdrop
- icon_state = "laser_gun"
- loot = list(
- /obj/item/gun/energy/lasercannon = 1,
- /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 1,
- /obj/item/gun/energy/temperature/security = 1,
- )
-
-/obj/effect/spawner/random/random_ammo_protolathe_lootdrop
- icon_state = "rubbershot"
- loot = list(
- /obj/item/stock_parts/cell/gun/upgraded = 5,
- /obj/item/ammo_box/magazine/smgm9mm = 7,
- )
-
-//DESTRUCTIVE ANAL //i'm killing you
-/obj/effect/spawner/random/destructive_anal_loot //what do people usually put in these things anayways
- loot = list(
- /obj/item/storage/toolbox/syndicate/empty = 650,
- /obj/item/gun/ballistic/automatic/pistol/ringneck = 500,
- /obj/item/camera_bug = 500,
- /obj/item/clothing/gloves/combat = 200,
- /obj/item/clothing/head/chameleon = 200,
- /obj/item/pen/sleepy = 200,
- /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 100,
- /obj/item/grenade/c4 = 100,
-
- /obj/item/wrench/syndie = 30,
- /obj/item/screwdriver/nuke = 30,
- /obj/item/crowbar/syndie = 30,
- /obj/item/wirecutters/syndie = 30,
- /obj/item/multitool/syndie = 30,
- )
-
-/obj/effect/spawner/random/salvage_machine
- name = "salvageable machine spawner"
- icon_state = "arcade"
- loot = list(
- /obj/structure/salvageable/protolathe,
- /obj/structure/salvageable/circuit_imprinter,
- /obj/structure/salvageable/server,
- /obj/structure/salvageable/machine,
- /obj/structure/salvageable/autolathe,
- /obj/structure/salvageable/computer,
- /obj/structure/salvageable/destructive_analyzer
- )
-
-/obj/effect/spawner/random/salvage
- name = "salvage mats spawner"
- icon_state = "rods"
- loot = list(
- /obj/item/stack/ore/salvage/scrapmetal,
- /obj/item/stack/ore/salvage/scrapgold,
- /obj/item/stack/ore/salvage/scrapplasma,
- /obj/item/stack/ore/salvage/scrapsilver,
- /obj/item/stack/ore/salvage/scraptitanium,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapuranium
- )
-
-/obj/effect/spawner/random/salvage/half
- name = "50% salvage spawner"
- spawn_loot_chance = 50
- loot = list(
- /obj/effect/spawner/random/maintenance,
- /obj/effect/spawner/random/salvage_machine,
- /obj/effect/spawner/random/exotic/ripley,
- /obj/structure/closet/crate/secure/loot,
- )
-
-/obj/effect/spawner/random/salvage/metal
- loot = list(
- /obj/item/stack/ore/salvage/scrapmetal
- )
-
-/obj/effect/spawner/random/salvage/metal/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/random/salvage/gold
- loot = list(
- /obj/item/stack/ore/salvage/scrapgold
- )
-
-/obj/effect/spawner/random/salvage/gold/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/random/salvage/plasma
- loot = list(
- /obj/item/stack/ore/salvage/scrapplasma
- )
-/obj/effect/spawner/random/salvage/plasma/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-
-/obj/effect/spawner/random/salvage/silver
- loot = list(
- /obj/item/stack/ore/salvage/scrapsilver
- )
-/obj/effect/spawner/random/salvage/silver/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-
-/obj/effect/spawner/random/salvage/titanium
- loot = list(
- /obj/item/stack/ore/salvage/scraptitanium
- )
-/obj/effect/spawner/random/salvage/titanium/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/random/salvage/bluespace
- loot = list(
- /obj/item/stack/ore/salvage/scrapbluespace
- )
-/obj/effect/spawner/random/salvage/bluespace/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/random/salvage/uranium
- loot = list(
- /obj/item/stack/ore/salvage/scrapuranium
- )
-/obj/effect/spawner/random/salvage/uranium/Initialize()
- spawn_loot_count = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
diff --git a/code/game/objects/effects/spawners/random.dm/structure.dm b/code/game/objects/effects/spawners/random.dm/structure.dm
deleted file mode 100644
index 0264b3d76a9e..000000000000
--- a/code/game/objects/effects/spawners/random.dm/structure.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-
-/obj/effect/spawner/random/structure
- name = "structure spawner"
- desc = "Now you see me, now you don't..."
- icon_state = "girder"
-
-/obj/effect/spawner/random/structure/crate_abandoned
- name = "locked crate spawner"
- icon_state = "crate_secure"
- spawn_loot_chance = 20
- loot = list(/obj/structure/closet/crate/secure/loot)
-
-/obj/effect/spawner/random/structure/girder
- name = "girder spawner"
- icon_state = "girder"
- spawn_loot_chance = 90
- loot = list( // 80% chance normal girder, 10% chance of displaced, 10% chance of nothing
- /obj/structure/girder = 8,
- /obj/structure/girder/displaced = 1,
- )
-
-/obj/effect/spawner/random/structure/grille
- name = "grille spawner"
- icon_state = "grille"
- spawn_loot_chance = 90
- loot = list( // 80% chance normal grille, 10% chance of broken, 10% chance of nothing
- /obj/structure/grille = 8,
- /obj/structure/grille/broken = 1,
- )
-
-/obj/effect/spawner/random/structure/furniture_parts
- name = "furniture parts spawner"
- icon_state = "table_parts"
- loot = list(
- /obj/structure/table_frame,
- /obj/structure/table_frame/wood,
- /obj/item/rack_parts,
- )
-
-/obj/effect/spawner/random/structure/table_or_rack
- name = "table or rack spawner"
- icon_state = "rack_parts"
- loot = list(
- /obj/effect/spawner/random/structure/table,
- /obj/structure/rack,
- )
-
-/obj/effect/spawner/random/structure/table
- name = "table spawner"
- icon_state = "table"
- loot = list(
- /obj/structure/table = 40,
- /obj/structure/table/wood = 30,
- /obj/structure/table/glass = 20,
- /obj/structure/table/reinforced = 5,
- /obj/structure/table/wood/poker = 5,
- )
-
-/obj/effect/spawner/random/structure/closet_empty
- name = "empty closet spawner"
- icon_state = "locker"
- loot = list(
- /obj/structure/closet = 850,
- /obj/structure/closet/cabinet = 150,
- /obj/structure/closet/acloset = 1,
- )
-
-/obj/effect/spawner/random/structure/closet_empty/crate
- name = "empty crate spawner"
- icon_state = "crate"
- loot = list(
- /obj/structure/closet/crate = 20,
- /obj/structure/closet/crate/wooden = 1,
- /obj/structure/closet/crate/internals = 1,
- /obj/structure/closet/crate/medical = 1,
- /obj/structure/closet/crate/freezer = 1,
- /obj/structure/closet/crate/radiation = 1,
- /obj/structure/closet/crate/hydroponics = 1,
- /obj/structure/closet/crate/engineering = 1,
- /obj/structure/closet/crate/engineering/electrical = 1,
- /obj/structure/closet/crate/science = 1,
- )
-
-/obj/effect/spawner/random/structure/barricade
- name = "barricade spawner"
- icon_state = "barricade"
- spawn_loot_chance = 80
- loot = list(
- /obj/structure/barricade/wooden,
- /obj/structure/barricade/wooden/crude,
- )
diff --git a/code/game/objects/effects/spawners/random.dm/trash.dm b/code/game/objects/effects/spawners/random.dm/trash.dm
deleted file mode 100644
index 3c15e77106a3..000000000000
--- a/code/game/objects/effects/spawners/random.dm/trash.dm
+++ /dev/null
@@ -1,282 +0,0 @@
-/obj/effect/spawner/random/trash
- name = "trash spawner"
- desc = "Ewwwwwww gross."
- icon_state = "trash"
-
-/obj/effect/spawner/random/trash/garbage
- name = "garbage spawner"
- loot = list(
- /obj/effect/spawner/random/trash/food_packaging = 20,
- /obj/item/trash/can = 15,
- /obj/item/shard = 10,
- /obj/effect/spawner/random/trash/cigbutt = 10,
- /obj/effect/spawner/random/trash/botanical_waste = 5,
- /obj/item/broken_bottle = 5,
- /obj/item/light/tube/broken = 5,
- /obj/item/light/bulb/broken = 5,
- /obj/item/assembly/mousetrap/armed = 5,
- /obj/item/stack/cable_coil = 5,
- /obj/item/trash/candle = 1,
- /obj/item/reagent_containers/glass/rag = 1,
- /obj/item/popsicle_stick = 1,
- /obj/item/reagent_containers/syringe = 1,
- /obj/item/shard/plasma = 1,
- )
-
-/obj/effect/spawner/random/trash/deluxe_garbage
- name = "fancy deluxe garbage spawner"
- loot = list(
- /obj/effect/spawner/random/trash/garbage = 25,
- /obj/effect/spawner/random/trash/food_packaging = 10,
- /obj/effect/spawner/random/entertainment/money = 10,
- /obj/effect/spawner/random/trash/crushed_can = 10,
- /obj/item/shard/plasma = 5,
- /obj/item/reagent_containers/pill/floorpill = 5,
- /obj/effect/spawner/random/trash/soap = 3,
- /obj/item/broken_bottle = 3,
- /obj/effect/spawner/random/engineering/tool/common = 1,
- /mob/living/simple_animal/mouse = 1,
- /obj/item/reagent_containers/glass/rag = 1,
- /obj/effect/spawner/random/entertainment/drugs= 1,
- /obj/item/reagent_containers/syringe = 1,
- /obj/effect/spawner/random/entertainment/cigar = 1,
- /obj/item/stack/ore/gold = 1,
- )
-
-/obj/effect/spawner/random/trash/cigbutt
- name = "cigarette butt spawner"
- loot = list(
- /obj/item/cigbutt = 25,
- /obj/item/cigbutt/roach = 25,
- /obj/effect/decal/cleanable/ash = 25,
- /obj/item/cigbutt/cigarbutt = 15,
- )
-
-/obj/effect/spawner/random/trash/food_packaging
- name = "empty food packaging spawner"
- icon_state = "chips"
- loot = list(
- /obj/item/trash/raisins = 2,
- /obj/item/trash/cheesie = 2,
- /obj/item/trash/candy = 2,
- /obj/item/trash/chips = 2,
- /obj/item/trash/sosjerky = 2,
- /obj/item/trash/pistachios = 2,
- /obj/item/trash/boritos = 1,
- /obj/item/trash/can/food/beans = 1,
- /obj/item/trash/can/food/peaches = 1,
- /obj/item/trash/popcorn = 1,
- /obj/item/trash/energybar = 1,
- /obj/item/trash/can/food/peaches/maint = 1,
- /obj/item/trash/semki = 1,
- /obj/item/trash/syndi_cakes = 1,
- /obj/item/trash/tray = 1,
- )
-
-/obj/effect/spawner/random/trash/botanical_waste
- name = "botanical waste spawner"
- icon_state = "peel"
- loot = list(
- /obj/item/grown/bananapeel = 6,
- /obj/item/grown/corncob = 3,
- )
-
-/obj/effect/spawner/random/trash/grille_or_waste
- name = "grille or waste spawner"
- icon_state = "grille"
- loot = list(
- /obj/structure/grille = 5,
- /obj/effect/spawner/random/trash/food_packaging = 3,
- /obj/effect/spawner/random/trash/cigbutt = 1,
- /obj/item/reagent_containers/food/snacks/deadmouse = 1,
- )
-
-/obj/effect/spawner/random/trash/decal
- icon_state = "vomit"
- loot = list(
- /obj/effect/decal/cleanable/greenglow/filled = 30,
- /obj/effect/decal/cleanable/greenglow/ecto = 1,
- /obj/effect/decal/cleanable/glass = 30,
- /obj/effect/decal/cleanable/glass/plasma = 30,
- /obj/effect/decal/cleanable/glass/strange = 30,
- /obj/effect/decal/cleanable/molten_object = 30,
- /obj/effect/decal/cleanable/molten_object/large = 30,
- /obj/effect/decal/cleanable/oil = 30,
- /obj/effect/decal/cleanable/oil/slippery = 1, // :)
- /obj/effect/decal/cleanable/plastic = 30,
- /obj/effect/decal/cleanable/ash = 30,
- /obj/effect/decal/cleanable/ash/large = 30,
- )
-
-/obj/effect/spawner/random/trash/mess
- name = "gross decal spawner"
- icon_state = "vomit"
- loot = list(
- /obj/effect/decal/cleanable/dirt = 6,
- /obj/effect/decal/cleanable/garbage = 3,
- /obj/effect/decal/cleanable/vomit/old = 3,
- /obj/effect/decal/cleanable/blood/gibs/old = 3,
- /obj/effect/decal/cleanable/insectguts = 1,
- /obj/effect/decal/cleanable/greenglow/ecto = 1,
- /obj/effect/decal/cleanable/wrapping = 1,
- /obj/effect/decal/cleanable/plastic = 1,
- /obj/effect/decal/cleanable/glass = 1,
- )
-
-/obj/effect/spawner/random/trash/grime
- name = "trash and grime spawner"
- spawn_loot_count = 5
- spawn_scatter_radius = 2
- loot = list( // This spawner will scatter garbage around a dirty site.
- /obj/effect/spawner/random/trash/garbage = 6,
- /mob/living/simple_animal/hostile/cockroach = 5,
- /obj/effect/decal/cleanable/garbage = 4,
- /obj/effect/decal/cleanable/vomit/old = 3,
- /obj/effect/spawner/random/trash/cigbutt = 2,
- )
-
-/obj/effect/spawner/random/trash/moisture
- name = "water hazard spawner"
- icon_state = "caution"
- spawn_loot_count = 2
- spawn_scatter_radius = 1
- loot = list( // This spawner will scatter water related items around a moist site.
- /obj/item/clothing/head/cone = 7,
- /obj/item/clothing/suit/caution = 3,
- /mob/living/simple_animal/hostile/retaliate/frog = 2,
- /obj/item/reagent_containers/glass/rag = 2,
- /obj/item/reagent_containers/glass/bucket = 2,
- /obj/effect/decal/cleanable/blood/old = 2,
- )
-
-/obj/effect/spawner/random/trash/graffiti
- name = "random graffiti spawner"
- icon_state = "rune"
- loot = list(/obj/effect/decal/cleanable/crayon)
- var/graffiti_icons = list(
- "rune1", "rune2", "rune3", "rune4", "rune5", "rune6",
- "amyjon", "face", "matt", "revolution", "engie", "guy",
- "end", "dwarf", "uboa", "body", "cyka", "star",
- "prolizard", "antilizard", "danger", "firedanger", "electricdanger",
- "biohazard", "radiation", "safe", "evac", "space", "med", "trade", "shop",
- "food", "peace", "like", "skull", "nay", "heart", "credit",
- "smallbrush", "brush", "largebrush", "splatter", "snake", "stickman",
- "carp", "ghost", "clown", "taser", "disk", "fireaxe", "toolbox",
- "corgi", "cat", "toilet", "blueprint", "beepsky", "scroll", "bottle",
- "shotgun", "arrow", "line", "thinline", "shortline", "body", "chevron",
- "footprint", "clawprint", "pawprint",
- )
- // This sets the color of the graffiti (used for mapedits)
- color = COLOR_WHITE
- /// Whether the graffiti will spawn with a random color (used for mapedits)
- var/random_color = TRUE
- /// Whether the graffiti will spawn with this spawner's icon_state instead of a random one (used for mapedits)
- var/random_icon = TRUE
-
-/obj/effect/spawner/random/trash/graffiti/make_item(spawn_loc, type_path_to_make)
- var/obj/effect/decal/cleanable/crayon/graffiti_decal = ..()
- if(istype(graffiti_decal))
- color = random_color && "#[random_short_color()]" || color
- icon_state = random_icon && pick(graffiti_icons) || icon_state
-
- graffiti_decal.add_atom_colour(color, FIXED_COLOUR_PRIORITY)
- graffiti_decal.icon_state = icon_state
-
- return graffiti_decal
-
-/obj/effect/spawner/random/trash/mopbucket
- name = "mop bucket spawner"
- icon_state = "mopbucket"
- spawn_loot_count = 2
- spawn_loot_double = FALSE
- loot = list(
- /obj/item/mop = 5,
- /obj/item/clothing/suit/caution = 3,
- /obj/item/reagent_containers/glass/bucket = 1,
- /obj/item/reagent_containers/glass/bucket/wooden = 1,
- )
-
-/obj/effect/spawner/random/trash/caution_sign
- name = "caution sign spawner"
- icon_state = "caution"
- loot = list(
- /obj/item/clothing/suit/caution = 40,
- /obj/structure/holosign/wetsign = 5,
- /obj/structure/holosign/barrier = 3,
- /obj/structure/holosign/barrier/wetsign = 2,
- )
-
-/obj/effect/spawner/random/trash/bucket
- name = "bucket spawner"
- icon_state = "caution"
- loot = list(
- /obj/item/reagent_containers/glass/bucket,
- /obj/item/reagent_containers/glass/bucket/wooden,
- )
-
-/obj/effect/spawner/random/trash/soap
- name = "soap spawner"
- icon_state = "soap"
- loot = list(
- /obj/item/soap = 25,
- /obj/item/bikehorn/rubberducky = 20,
- /obj/item/soap/homemade = 20,
- /obj/item/soap/deluxe = 15,
- /obj/item/soap/nanotrasen = 10,
- )
-
-/obj/effect/spawner/random/trash/box
- name = "box spawner"
- icon_state = "box"
- loot = list(
- /obj/structure/closet/cardboard = 9,
- /obj/structure/closet/cardboard/metal = 1,
- )
-
-/obj/effect/spawner/random/trash/bin
- name = "trashbin spawner"
- icon_state = "trash_bin"
- loot = list(
- /obj/structure/closet/crate/bin = 10,
- /obj/structure/closet/crate/trashcart = 3,
- /obj/effect/spawner/random/trash/box = 3,
- /obj/structure/closet/crate/trashcart/laundry = 1,
- )
-
-
-/obj/effect/spawner/random/trash/janitor_supplies
- name = "janitor supplies spawner"
- icon_state = "box_small"
- loot = list(
- /obj/item/storage/box/mousetraps,
- /obj/item/storage/box/lights/tubes,
- /obj/item/storage/box/lights/mixed,
- /obj/item/storage/box/lights/bulbs,
- )
-
-/obj/effect/spawner/random/trash/crushed_can
- name = "crushed can spawner"
- icon_state = "crushed_can"
- loot = list(/obj/item/trash/can)
- /// Whether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits)
- var/soda_icons = list(
- "energy_drink", "monkey_energy", "thirteen_loko", "space_mountain_wind", "dr_gibb", "starkist",
- "sodawater", "tonic", "cola", "purple_can", "ice_tea_can",
- "sol_dry", "wellcheers", "space beer", "ebisu", "shimauma", "moonlabor",
- "space_up", "lemon_lime", "shamblers", "shamblerseldritch", "air", "laughter",
- "volt_energy", "melon_soda",
- )
-
-/obj/effect/spawner/random/trash/crushed_can/make_item(spawn_loc, type_path_to_make)
- var/obj/item/trash/can/crushed_can = .. ()
- if(istype(crushed_can))
- crushed_can.icon_state = pick(soda_icons)
- return crushed_can
-
-/obj/effect/spawner/random/trash/ghetto_containers
- name = "ghetto container spawner"
- loot = list(
- /obj/item/reagent_containers/glass/bucket = 5,
- /obj/item/reagent_containers/glass/bottle = 5,
- /obj/item/reagent_containers/glass/mortar = 2,
- )
diff --git a/code/game/objects/effects/spawners/random.dm/vending.dm b/code/game/objects/effects/spawners/random.dm/vending.dm
deleted file mode 100644
index 595746e14e19..000000000000
--- a/code/game/objects/effects/spawners/random.dm/vending.dm
+++ /dev/null
@@ -1,17 +0,0 @@
-/obj/effect/spawner/random/vending
- name = "machinery spawner"
- desc = "Randomized electronics for extra fun."
-
-/obj/effect/spawner/random/vending/snack
- name = "spawn random snack vending machine"
- desc = "Automagically transforms into a random snack vendor. If you see this while in a shift, please create a bug report."
- icon_state = "snack"
- loot_type_path = /obj/machinery/vending/snack
- loot = list()
-
-/obj/effect/spawner/random/vending/cola
- name = "spawn random cola vending machine"
- desc = "Automagically transforms into a random cola vendor. If you see this while in a shift, please create a bug report."
- icon_state = "cola"
- loot_type_path = /obj/machinery/vending/cola
- loot = list()
diff --git a/code/game/objects/effects/spawners/random.dm/waste_planet.dm b/code/game/objects/effects/spawners/random.dm/waste_planet.dm
deleted file mode 100644
index 46ad61a754a6..000000000000
--- a/code/game/objects/effects/spawners/random.dm/waste_planet.dm
+++ /dev/null
@@ -1,101 +0,0 @@
-/obj/effect/spawner/random/waste/grille_or_trash
- icon_state = "grille"
- name = "wasteplanet loot spawner"
- loot = list(
- /obj/structure/grille/broken = 5,
- /obj/structure/grille = 5,
- /obj/item/cigbutt = 1,
- /obj/item/trash/cheesie = 1,
- /obj/item/trash/candy = 1,
- /obj/item/trash/chips = 1,
- /obj/item/reagent_containers/food/snacks/deadmouse = 1,
- /obj/item/trash/pistachios = 1,
- /obj/item/trash/plate = 1,
- /obj/item/trash/popcorn = 1,
- /obj/item/trash/raisins = 1,
- /obj/item/trash/sosjerky = 1,
- /obj/item/trash/syndi_cakes = 1
- )
-
-/obj/effect/spawner/random/waste/mechwreck
- icon_state = "ripley"
- name = "wasteplanet exosuit wreckage"
- loot = list(
- /obj/structure/mecha_wreckage/ripley = 15,
- /obj/structure/mecha_wreckage/ripley/firefighter = 9,
- /obj/structure/mecha_wreckage/ripley/mkii = 9,
- /obj/structure/mecha_wreckage/ripley/clip = 9
- )
-
-/obj/effect/spawner/random/waste/mechwreck/rare
- loot = list(
- /obj/structure/mecha_wreckage/durand = 12.5,
- /obj/structure/mecha_wreckage/durand/clip = 12.5,
- /obj/structure/mecha_wreckage/odysseus = 25,
- /obj/structure/mecha_wreckage/gygax = 25
- )
-
-/obj/effect/spawner/random/waste/radiation
- loot = list(
- /obj/structure/radioactive = 6,
- /obj/structure/radioactive/stack = 6,
- /obj/structure/radioactive/waste = 6
- )
-
-/obj/effect/spawner/random/waste/radiation/more_rads
- loot = list(
- /obj/structure/radioactive = 3,
- /obj/structure/radioactive/stack = 12,
- /obj/structure/radioactive/waste = 12
- )
-
-/obj/effect/spawner/random/waste/atmos_can
- loot = list(
- /obj/machinery/portable_atmospherics/canister/toxins = 3,
- /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
- /obj/machinery/portable_atmospherics/canister/nitrogen = 3,
- /obj/machinery/portable_atmospherics/canister/oxygen = 3,
- /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1,
- /obj/machinery/portable_atmospherics/canister/water_vapor = 1
- )
-
-/obj/effect/spawner/random/waste/atmos_can/rare
- loot = list(
- /obj/machinery/portable_atmospherics/canister/tritium = 3,
- /obj/machinery/portable_atmospherics/canister/pluoxium = 3
- )
-
-/obj/effect/spawner/random/waste/salvageable
- loot = list(
- /obj/structure/salvageable/machine = 20,
- /obj/structure/salvageable/autolathe = 15,
- /obj/structure/salvageable/computer = 10,
- /obj/structure/salvageable/protolathe = 10,
- /obj/structure/salvageable/circuit_imprinter = 8,
- /obj/structure/salvageable/destructive_analyzer = 8,
- /obj/structure/salvageable/server = 8
- )
-
-/obj/effect/spawner/random/waste/girder
- loot = list(
- /obj/structure/girder,
- /obj/structure/girder/displaced,
- /obj/structure/girder/reinforced
- )
-/obj/effect/spawner/random/waste/hivebot
- loot = list(
- /obj/effect/spawner/random/salvage/metal,
- /obj/effect/spawner/random/salvage/metal,
- /obj/effect/spawner/random/salvage/metal,
- /obj/effect/spawner/random/salvage/gold,
- /obj/effect/spawner/random/salvage/plasma,
- /obj/effect/spawner/random/salvage/silver,
- /obj/effect/spawner/random/salvage/titanium,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapuranium
- )
- spawn_loot_count = 2
-
-/obj/effect/spawner/random/waste/hivebot/beacon
- spawn_loot_count = 6
diff --git a/code/game/objects/effects/spawners/spawner.dm b/code/game/objects/effects/spawners/spawner.dm
deleted file mode 100644
index d8091c6cfc65..000000000000
--- a/code/game/objects/effects/spawners/spawner.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-/obj/effect/spawner
- name = "object spawner"
-
-// Brief explanation:
-// Rather then setting up and then deleting spawners, we block all atomlike setup
-// and do the absolute bare minimum
-// This is with the intent of optimizing mapload
-/obj/effect/spawner/Initialize(mapload)
- SHOULD_CALL_PARENT(FALSE)
- if(flags_1 & INITIALIZED_1)
- stack_trace("Warning: [src]([type]) initialized multiple times!")
- flags_1 |= INITIALIZED_1
-
- return INITIALIZE_HINT_QDEL
-
-/obj/effect/spawner/Destroy(force)
- SHOULD_CALL_PARENT(FALSE)
- moveToNullspace()
- return QDEL_HINT_QUEUE
-
-/// Override to define loot blacklist behavior
-/obj/effect/spawner/proc/can_spawn(atom/loot)
- return TRUE
diff --git a/code/game/objects/effects/spawners/traps.dm b/code/game/objects/effects/spawners/traps.dm
new file mode 100644
index 000000000000..0409d9944b9b
--- /dev/null
+++ b/code/game/objects/effects/spawners/traps.dm
@@ -0,0 +1,9 @@
+/obj/effect/spawner/trap
+ name = "random trap"
+ icon = 'icons/obj/hand_of_god_structures.dmi'
+ icon_state = "trap_rand"
+
+/obj/effect/spawner/trap/Initialize(mapload)
+ . = ..()
+ var/new_type = pick(subtypesof(/obj/structure/trap) - typesof(/obj/structure/trap/ctf))
+ new new_type(get_turf(src))
diff --git a/code/game/objects/effects/spawners/vaultspawner.dm b/code/game/objects/effects/spawners/vaultspawner.dm
new file mode 100644
index 000000000000..9bdf0a673ed9
--- /dev/null
+++ b/code/game/objects/effects/spawners/vaultspawner.dm
@@ -0,0 +1,28 @@
+/obj/effect/vaultspawner
+ var/maxX = 6
+ var/maxY = 6
+ var/minX = 2
+ var/minY = 2
+
+/obj/effect/vaultspawner/New(turf/location,lX = minX,uX = maxX,lY = minY,uY = maxY,type = null)
+ if(!type)
+ type = pick("sandstone","rock","alien")
+
+ var/lowBoundX = location.x
+ var/lowBoundY = location.y
+
+ var/hiBoundX = location.x + rand(lX,uX)
+ var/hiBoundY = location.y + rand(lY,uY)
+
+ var/z = location.z
+
+ for(var/i = lowBoundX,i<=hiBoundX,i++)
+ for(var/j = lowBoundY,j<=hiBoundY,j++)
+ var/turf/T = locate(i,j,z)
+ if(i == lowBoundX || i == hiBoundX || j == lowBoundY || j == hiBoundY)
+ T.PlaceOnTop(/turf/closed/wall/vault)
+ else
+ T.PlaceOnTop(/turf/open/floor/vault)
+ T.icon_state = "[type]vault"
+
+ qdel(src)
diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm
new file mode 100644
index 000000000000..1eb4fd0dda94
--- /dev/null
+++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm
@@ -0,0 +1,18 @@
+/obj/effect/spawner/xeno_egg_delivery
+ name = "xeno egg delivery"
+ icon = 'icons/mob/alien.dmi'
+ icon_state = "egg_growing"
+ var/announcement_time = 1200
+
+/obj/effect/spawner/xeno_egg_delivery/Initialize(mapload)
+ . = ..()
+ var/turf/T = get_turf(src)
+
+ new /obj/structure/alien/egg(T)
+ new /obj/effect/temp_visual/gravpush(T)
+ playsound(T, 'sound/items/party_horn.ogg', 50, TRUE, -1)
+
+ message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
+ log_game("An alien egg has been delivered to [AREACOORD(T)]")
+ var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
+ SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time))
diff --git a/code/game/objects/items/chromosome.dm b/code/game/objects/items/chromosome.dm
index c6ee7f174aab..3acf3cfe5cb3 100644
--- a/code/game/objects/items/chromosome.dm
+++ b/code/game/objects/items/chromosome.dm
@@ -48,7 +48,7 @@
if(!initial(CM.weight))
break
chromosomes[A] = initial(CM.weight)
- return pick_weight(chromosomes)
+ return pickweight(chromosomes)
/obj/item/chromosome/stabilizer
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 0606e999b1ce..26b23c509838 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -564,6 +564,15 @@
name = "pink glowstick"
color = LIGHT_COLOR_PINK
+/obj/effect/spawner/lootdrop/glowstick
+ name = "random colored glowstick"
+ icon = 'icons/obj/lighting.dmi'
+ icon_state = "random_glowstick"
+
+/obj/effect/spawner/lootdrop/glowstick/Initialize()
+ loot = typesof(/obj/item/flashlight/glowstick)
+ . = ..()
+
/obj/item/flashlight/spotlight //invisible lighting source
name = "disco light"
desc = "Groovy..."
diff --git a/code/game/objects/items/devices/mines.dm b/code/game/objects/items/devices/mines.dm
index 4f2169350d79..ee391d578c03 100644
--- a/code/game/objects/items/devices/mines.dm
+++ b/code/game/objects/items/devices/mines.dm
@@ -841,10 +841,10 @@ LIVE_MINE_HELPER(pressure/sound)
// spawners (random mines, minefields, non-guaranteed mine)
//
-/obj/effect/spawner/random/mine
+/obj/effect/spawner/lootdrop/mine
name = "live mine spawner (random)"
- spawn_loot_count = 1
- spawn_loot_split = TRUE
+ lootcount = 1
+ fan_out_items = TRUE
loot = list(
/obj/item/mine/pressure/explosive/live = 10,
/obj/item/mine/pressure/explosive/shrapnel/live = 3,
@@ -864,7 +864,7 @@ LIVE_MINE_HELPER(pressure/sound)
/obj/effect/spawner/minefield/random
name = "random minefield spawner"
- minetype = /obj/effect/spawner/random/mine
+ minetype = /obj/effect/spawner/lootdrop/mine
/obj/effect/spawner/minefield/manhack
name = "manhack field spawner"
diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm
index 247ca439c8bd..915011b81b11 100644
--- a/code/game/objects/items/grenades/ghettobomb.dm
+++ b/code/game/objects/items/grenades/ghettobomb.dm
@@ -25,7 +25,7 @@
add_overlay("improvised_grenade_filled")
add_overlay("improvised_grenade_wired")
times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value]
- det_time = text2num(pick_weight(times))
+ det_time = text2num(pickweight(times))
if(det_time < 0) //checking for 'duds'
range = 1
det_time = rand(30,80)
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index dd00d3abd1fd..4b16ee60942d 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -863,3 +863,43 @@
var/mutable_appearance/base_overlay_among = mutable_appearance(icon, "plushie_among_visor")
base_overlay_among.appearance_flags = RESET_COLOR
add_overlay(base_overlay_among)
+
+/obj/effect/spawner/lootdrop/plushie
+ loot = list (
+ /obj/item/toy/plush/beeplushie,
+ /obj/item/toy/plush/blahaj,
+ /obj/item/toy/plush/carpplushie,
+ /obj/item/toy/plush/flushed,
+ /obj/item/toy/plush/kari,
+ /obj/item/toy/plush/lizardplushie,
+ /obj/item/toy/plush/mora,
+ /obj/item/toy/plush/realgoat,
+ /obj/item/toy/plush/rilena,
+ /obj/item/toy/plush/sharai,
+ /obj/item/toy/plush/slimeplushie,
+ /obj/item/toy/plush/snakeplushie,
+ /obj/item/toy/plush/spider,
+ /obj/item/toy/plush/tali,
+ /obj/item/toy/plush/xader,
+ /obj/effect/spawner/lootdrop/plushie/moth // fair chances
+ )
+
+/obj/effect/spawner/lootdrop/plushie/moth
+ loot = list (
+ /obj/item/toy/plush/moth,
+ /obj/item/toy/plush/moth/monarch,
+ /obj/item/toy/plush/moth/luna,
+ /obj/item/toy/plush/moth/atlas,
+ /obj/item/toy/plush/moth/redish,
+ /obj/item/toy/plush/moth/royal,
+ /obj/item/toy/plush/moth/gothic,
+ /obj/item/toy/plush/moth/lovers,
+ /obj/item/toy/plush/moth/whitefly,
+ /obj/item/toy/plush/moth/punished,
+ /obj/item/toy/plush/moth/firewatch,
+ /obj/item/toy/plush/moth/deadhead,
+ /obj/item/toy/plush/moth/poison,
+ /obj/item/toy/plush/moth/ragged,
+ /obj/item/toy/plush/moth/snow,
+ /obj/item/toy/plush/moth/moonfly
+ )
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 5a1bdaabe340..e8b619b0d712 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -2,7 +2,7 @@
/obj/item/storage/box/syndicate
/obj/item/storage/box/syndicate/bundle_A/PopulateContents()
- switch (pick_weight(list("recon" = 2, "bloodyspai" = 3, "stealth" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "sniper" = 1, "metaops" = 1)))
+ switch (pickweight(list("recon" = 2, "bloodyspai" = 3, "stealth" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "sniper" = 1, "metaops" = 1)))
if("recon")
new /obj/item/clothing/glasses/thermal/xray(src) // ~8 tc?
new /obj/item/storage/briefcase/launchpad(src) //6 tc
@@ -117,7 +117,7 @@
new /obj/item/card/emag(src) // 6 tc
/obj/item/storage/box/syndicate/bundle_B/PopulateContents()
- switch (pick_weight(list( "bond" = 2, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = 2, "mad_scientist" = 2, "mr_freeze" = 2, "made_man"= 1)))
+ switch (pickweight(list( "bond" = 2, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = 2, "mad_scientist" = 2, "mr_freeze" = 2, "made_man"= 1)))
if("bond")
new /obj/item/gun/ballistic/automatic/pistol/ringneck(src)
new /obj/item/attachment/silencer(src)
@@ -181,7 +181,7 @@
new /obj/item/melee/transforming/energy/sword/saber/blue(src) //see see it fits the theme bc its blue and ice is blue
if("made_man")
- new /obj/effect/spawner/random/clothing/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family
+ new /obj/effect/spawner/lootdrop/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family
new /obj/item/gun/ballistic/automatic/smg/firestorm/pan(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding
new /obj/item/melee/knife/switchblade(src) // 3 TC? It's nice, but it's really a stealth/oh fuck I'm out of ammo weapon
new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) // 5 TC, free molotov assemblies
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 220e0e605828..81e6ea9d54ec 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1392,7 +1392,7 @@
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
icon_state = "shell[rand(1,3)]"
- color = pick_weight(possible_colors)
+ color = pickweight(possible_colors)
setDir(pick(GLOB.cardinals))
/obj/item/toy/brokenradio
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 5b140a5b2428..8ee8d8214f80 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -383,7 +383,7 @@ LINEN BINS
/obj/item/bedsheet/dorms/Initialize()
..()
- var/type = pick_weight(list("Colors" = 80, "Special" = 20))
+ var/type = pickweight(list("Colors" = 80, "Special" = 20))
switch(type)
if("Colors")
type = pick(list(/obj/item/bedsheet,
@@ -408,7 +408,7 @@ LINEN BINS
/obj/item/bedsheet/dorms/double/Initialize()
..()
- var/type = pick_weight(list("Colors" = 80, "Special" = 20))
+ var/type = pickweight(list("Colors" = 80, "Special" = 20))
switch(type)
if("Colors")
type = pick(list(/obj/item/bedsheet/double,
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index a69a279bad77..cfea37148e55 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -14,6 +14,7 @@
desc = "It looks alien!"
icon_state = "alien"
+
/obj/structure/closet/gimmick
name = "administrative supply closet"
desc = "It's a storage unit for things that have no right being here."
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index fa4fe485015d..7b800d7ab097 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -29,7 +29,7 @@
if (prob(40))
new /obj/item/storage/toolbox/emergency(src)
- switch (pick_weight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 4, "delete" = 1)))
+ switch (pickweight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 4, "delete" = 1)))
if ("small")
new /obj/item/tank/internals/emergency_oxygen(src)
new /obj/item/tank/internals/emergency_oxygen(src)
diff --git a/code/game/objects/structures/geyser.dm b/code/game/objects/structures/geyser.dm
index d5c7dbeef362..af536d2e8c1c 100644
--- a/code/game/objects/structures/geyser.dm
+++ b/code/game/objects/structures/geyser.dm
@@ -45,7 +45,7 @@
/obj/structure/geyser/random/Initialize()
. = ..()
- reagent_id = pick_weight(options)
+ reagent_id = pickweight(options)
/obj/item/plunger
name = "plunger"
diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm
index ccb76bd81c4a..a3b3b2b5763f 100644
--- a/code/game/objects/structures/salvaging.dm
+++ b/code/game/objects/structures/salvaging.dm
@@ -56,16 +56,16 @@
/obj/item/stack/ore/salvage/scrapgold/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/random/salvage_capacitor = 50,
- /obj/effect/spawner/random/salvage_capacitor = 50,
- /obj/effect/spawner/random/salvage_scanning = 50,
- /obj/effect/spawner/random/salvage_scanning = 50,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_manipulator = 40,
- /obj/effect/spawner/random/salvage_manipulator = 40,
- /obj/effect/spawner/random/salvage_laser = 40,
- /obj/effect/spawner/random/salvage_laser = 40,
+ /obj/effect/spawner/lootdrop/salvage_capacitor = 50,
+ /obj/effect/spawner/lootdrop/salvage_capacitor = 50,
+ /obj/effect/spawner/lootdrop/salvage_scanning = 50,
+ /obj/effect/spawner/lootdrop/salvage_scanning = 50,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 40,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 40,
+ /obj/effect/spawner/lootdrop/salvage_laser = 40,
+ /obj/effect/spawner/lootdrop/salvage_laser = 40,
)
/obj/structure/salvageable/computer
@@ -79,7 +79,7 @@
/obj/item/stack/ore/salvage/scrapgold/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/random/salvage_capacitor = 60,
+ /obj/effect/spawner/lootdrop/salvage_capacitor = 60,
/obj/item/computer_hardware/battery = 40,
/obj/item/computer_hardware/battery = 40,
@@ -91,8 +91,8 @@
/obj/item/computer_hardware/card_slot = 40,
/obj/item/computer_hardware/network_card/advanced = 20,
- /obj/effect/spawner/random/circuit/computer/common = 50,
- /obj/effect/spawner/random/circuit/computer/rare = 5,
+ /obj/effect/spawner/lootdrop/random_computer_circuit_common = 50,
+ /obj/effect/spawner/lootdrop/random_computer_circuit_rare = 5,
/obj/item/research_notes/loot/tiny = 10,
)
@@ -106,10 +106,11 @@
/obj/item/stack/ore/salvage/scraptitanium/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_manipulator = 30,
+
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
/obj/item/circuitboard/machine/autolathe = 35,
@@ -133,17 +134,17 @@
/obj/item/stack/ore/salvage/scrapplasma/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_manipulator = 30,
- /obj/effect/spawner/random/salvage_manipulator = 30,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
- /obj/effect/spawner/random/engineering/tool = 45,
- /obj/effect/spawner/random/medical/surgery_tool = 55,
- /obj/effect/spawner/random/medical/beaker = 45,
- /obj/effect/spawner/random/medical/prosthetic = 25,
- /obj/effect/spawner/random/random_gun_protolathe_lootdrop = 5, //:flushed:
- /obj/effect/spawner/random/random_ammo_protolathe_lootdrop = 5,
+ /obj/effect/spawner/lootdrop/tool_engie_proto = 45,
+ /obj/effect/spawner/lootdrop/tool_surgery_proto = 55,
+ /obj/effect/spawner/lootdrop/beaker_loot_spawner = 45,
+ /obj/effect/spawner/lootdrop/random_prosthetic = 25,
+ /obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop = 5, //:flushed:
+ /obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop = 5,
/obj/item/storage/part_replacer = 20,
/obj/item/storage/part_replacer/bluespace = 1,
@@ -171,13 +172,13 @@
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
/obj/item/stack/ore/salvage/scrapbluespace = 60,
- /obj/effect/spawner/random/salvage_matter_bin = 40,
- /obj/effect/spawner/random/salvage_manipulator = 30,
+ /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
/obj/item/stack/circuit_stack = 50, //this might be the only way in the game to get a poly circuit, and the only way for many ships to get essensial electronics. huh.
- /obj/effect/spawner/random/circuit/machine/mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered.
- /obj/effect/spawner/random/circuit/machine/common = 50, //well.... "common"
- /obj/effect/spawner/random/circuit/machine/rare = 5,
+ /obj/effect/spawner/lootdrop/random_machine_circuit_mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered.
+ /obj/effect/spawner/lootdrop/random_machine_circuit_common = 50, //well.... "common"
+ /obj/effect/spawner/lootdrop/random_machine_circuit_rare = 5,
/obj/item/stack/sheet/metal/five = 15, //same as above but more geared towards stuff used by circuit imprinter
/obj/item/stack/sheet/glass/five = 15,
@@ -198,12 +199,12 @@
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
/obj/item/stack/ore/salvage/scrapplasma = 60,
- /obj/effect/spawner/random/salvage_scanning = 40,
- /obj/effect/spawner/random/salvage_laser = 30,
- /obj/effect/spawner/random/salvage_manipulator = 30,
+ /obj/effect/spawner/lootdrop/salvage_scanning = 40,
+ /obj/effect/spawner/lootdrop/salvage_laser = 30,
+ /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
/obj/item/storage/toolbox/syndicate/empty = 80,
- /obj/effect/spawner/random/destructive_anal_loot = 65,
+ /obj/effect/spawner/lootdrop/destructive_anal_loot = 65,
/obj/item/stack/sheet/metal/five = 15, //same as above but more geared towards stuff used by circuit imprinter
/obj/item/stack/sheet/glass/five = 15,
@@ -341,11 +342,11 @@
color = "#808080"
salvageable_parts = list(
- /obj/effect/spawner/random/food_or_drink/seed = 80,
- /obj/effect/spawner/random/food_or_drink/seed = 80,
- /obj/effect/spawner/random/food_or_drink/seed = 80,
- /obj/effect/spawner/random/food_or_drink/seed = 80,
- /obj/effect/spawner/random/food_or_drink/seed = 80,
+ /obj/effect/spawner/lootdrop/seeded = 80,
+ /obj/effect/spawner/lootdrop/seeded = 80,
+ /obj/effect/spawner/lootdrop/seeded = 80,
+ /obj/effect/spawner/lootdrop/seeded = 80,
+ /obj/effect/spawner/lootdrop/seeded = 80,
/obj/item/seeds/random = 80,
/obj/item/seeds/random = 40,
/obj/item/seeds/random = 40,
@@ -469,3 +470,236 @@
/obj/item/stack/ore/salvage/scrapbluespace/five
amount = 5
+
+//loot spawners as shown above
+
+//GENERIC
+/obj/effect/spawner/lootdrop/salvage_capacitor
+ loot = list(
+ /obj/item/stock_parts/capacitor = 120,
+ /obj/item/stock_parts/capacitor/adv = 20,
+ /obj/item/stock_parts/capacitor/super = 5,
+ )
+
+/obj/effect/spawner/lootdrop/salvage_scanning
+ loot = list(
+ /obj/item/stock_parts/scanning_module = 120,
+ /obj/item/stock_parts/scanning_module/adv = 20,
+ /obj/item/stock_parts/scanning_module/phasic = 5,
+ )
+
+/obj/effect/spawner/lootdrop/salvage_manipulator
+ loot = list(
+ /obj/item/stock_parts/manipulator = 120,
+ /obj/item/stock_parts/manipulator/nano = 20,
+ /obj/item/stock_parts/manipulator/pico = 5,
+ )
+
+/obj/effect/spawner/lootdrop/salvage_matter_bin
+ loot = list(
+ /obj/item/stock_parts/matter_bin = 120,
+ /obj/item/stock_parts/matter_bin/adv = 20,
+ /obj/item/stock_parts/matter_bin/super = 5,
+ )
+
+/obj/effect/spawner/lootdrop/salvage_laser
+ loot = list(
+ /obj/item/stock_parts/micro_laser = 120,
+ /obj/item/stock_parts/micro_laser/high = 20,
+ /obj/item/stock_parts/micro_laser/ultra = 5,
+ )
+
+//PROTOLATHE
+/obj/effect/spawner/lootdrop/tool_engie_proto
+ loot = list(
+ /obj/effect/spawner/lootdrop/tool_engie_common = 120,
+ /obj/effect/spawner/lootdrop/tool_engie_sydnie = 20,
+ /obj/effect/spawner/lootdrop/tool_engie_adv = 5,
+ )
+
+/obj/effect/spawner/lootdrop/tool_engie_common
+ loot = list(
+ /obj/item/wrench/crescent = 1,
+ /obj/item/screwdriver = 1,
+ /obj/item/weldingtool = 1,
+ /obj/item/crowbar = 1,
+ /obj/item/wirecutters = 1,
+ /obj/item/multitool = 1,
+ )
+
+/obj/effect/spawner/lootdrop/tool_engie_sydnie
+ loot = list(
+ /obj/item/wrench/syndie = 1,
+ /obj/item/screwdriver/nuke = 1,
+ /obj/item/weldingtool/largetank = 1,
+ /obj/item/crowbar/syndie = 1,
+ /obj/item/wirecutters/syndie = 1,
+ /obj/item/multitool/syndie = 1,
+ )
+
+/obj/effect/spawner/lootdrop/tool_engie_adv
+ loot = list(
+ /obj/item/screwdriver/power = 1,
+ /obj/item/weldingtool/experimental = 1,
+ /obj/item/crowbar/power = 1,
+ )
+
+/obj/effect/spawner/lootdrop/tool_surgery_proto
+ loot = list(
+ /obj/effect/spawner/lootdrop/tool_surgery_common = 120,
+ /obj/effect/spawner/lootdrop/tool_surgery_adv = 10,
+ )
+
+/obj/effect/spawner/lootdrop/tool_surgery_common
+ loot = list(
+ /obj/item/scalpel = 1,
+ /obj/item/hemostat = 1,
+ /obj/item/cautery = 1,
+ /obj/item/retractor = 1,
+ /obj/item/circular_saw = 1,
+ /obj/item/surgicaldrill = 1,
+ )
+
+/obj/effect/spawner/lootdrop/tool_surgery_adv
+ loot = list(
+ /obj/item/scalpel/advanced = 1,
+ /obj/item/retractor/advanced = 1,
+ /obj/item/surgicaldrill/advanced = 1,
+ )
+
+/obj/effect/spawner/lootdrop/beaker_loot_spawner
+ loot = list(
+ /obj/item/reagent_containers/glass/beaker = 300,
+ /obj/item/reagent_containers/glass/beaker/large = 200,
+ /obj/item/reagent_containers/glass/beaker/plastic = 50,
+ /obj/item/reagent_containers/glass/beaker/meta = 10,
+ /obj/item/reagent_containers/glass/beaker/noreact = 5,
+ /obj/item/reagent_containers/glass/beaker/bluespace = 1,
+ )
+/obj/effect/spawner/lootdrop/random_prosthetic
+ loot = list(
+ /obj/item/bodypart/l_arm/robot/surplus = 1,
+ /obj/item/bodypart/r_arm/robot/surplus = 1,
+ /obj/item/bodypart/leg/left/robot/surplus = 1,
+ /obj/item/bodypart/leg/right/robot/surplus = 1,
+ )
+/obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop
+ loot = list(
+ /obj/item/gun/energy/lasercannon = 1,
+ /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 1,
+ /obj/item/gun/energy/temperature/security = 1,
+ )
+/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop
+ loot = list(
+ /obj/item/stock_parts/cell/gun/upgraded = 5,
+ /obj/item/ammo_box/magazine/smgm9mm = 7,
+ )
+
+//CIRCUIT IMPRINTER
+/obj/effect/spawner/lootdrop/random_machine_circuit_common
+ loot = list(
+ /obj/item/circuitboard/machine/autolathe = 5,
+ /obj/item/circuitboard/machine/biogenerator = 5,
+ /obj/item/circuitboard/machine/cell_charger = 5,
+ /obj/item/circuitboard/machine/chem_heater = 5,
+ /obj/item/circuitboard/machine/chem_master = 5,
+ /obj/item/circuitboard/machine/clonescanner = 5,
+ /obj/item/circuitboard/machine/cryo_tube = 5,
+ /obj/item/circuitboard/machine/cyborgrecharger = 5,
+ /obj/item/circuitboard/machine/deep_fryer = 5,
+ /obj/item/circuitboard/machine/experimentor = 5,
+ /obj/item/circuitboard/machine/holopad = 5,
+ /obj/item/circuitboard/machine/hydroponics = 5,
+ /obj/item/circuitboard/machine/limbgrower = 5,
+ /obj/item/circuitboard/machine/ltsrbt = 5,
+ /obj/item/circuitboard/machine/mech_recharger = 5,
+ /obj/item/circuitboard/machine/mechfab = 5,
+ /obj/item/circuitboard/machine/medical_kiosk = 5,
+ /obj/item/circuitboard/machine/medipen_refiller = 5,
+ /obj/item/circuitboard/machine/microwave = 5,
+ /obj/item/circuitboard/machine/ore_redemption = 5,
+ /obj/item/circuitboard/machine/ore_silo = 5,
+ /obj/item/circuitboard/machine/reagentgrinder = 5,
+ /obj/item/circuitboard/machine/recharger = 5,
+ /obj/item/circuitboard/machine/seed_extractor = 5,
+ /obj/item/circuitboard/machine/selling_pad = 5,
+ /obj/item/circuitboard/machine/emitter = 5,
+ )
+
+/obj/effect/spawner/lootdrop/random_machine_circuit_rare
+ loot = list(
+ /obj/item/circuitboard/aicore = 5,
+ /obj/item/circuitboard/machine/chem_dispenser = 5,
+ /obj/item/circuitboard/machine/circuit_imprinter = 5,
+ /obj/item/circuitboard/machine/protolathe = 5,
+ /obj/item/circuitboard/machine/clonepod/experimental = 5,
+ /obj/item/circuitboard/machine/rad_collector = 5,
+ /obj/item/circuitboard/machine/launchpad = 5,
+ )
+
+/obj/effect/spawner/lootdrop/random_machine_circuit_mech
+ loot = list(
+ /obj/item/circuitboard/mecha/ripley/main = 100,
+ /obj/item/circuitboard/mecha/ripley/peripherals = 100,
+ /obj/item/circuitboard/mecha/honker/main = 5,
+ /obj/item/circuitboard/mecha/honker/peripherals = 5,
+ /obj/item/circuitboard/mecha/odysseus/main = 5,
+ /obj/item/circuitboard/mecha/odysseus/peripherals = 5,
+ /obj/item/circuitboard/mecha/gygax/main = 1,
+ /obj/item/circuitboard/mecha/gygax/peripherals = 1,
+ /obj/item/circuitboard/mecha/gygax/targeting = 1,
+ /obj/item/circuitboard/mecha/durand/main = 1,
+ /obj/item/circuitboard/mecha/durand/peripherals = 1,
+ /obj/item/circuitboard/mecha/durand/targeting = 1,
+ )
+
+//COMPUTER
+/obj/effect/spawner/lootdrop/random_computer_circuit_common
+ loot = list(
+ /obj/item/circuitboard/computer/aifixer = 5,
+ /obj/item/circuitboard/computer/arcade/amputation = 5,
+ /obj/item/circuitboard/computer/arcade/battle = 5,
+ /obj/item/circuitboard/computer/arcade/orion_trail = 5,
+ /obj/item/circuitboard/computer/atmos_alert = 5,
+ /obj/item/circuitboard/computer/card = 5,
+ /obj/item/circuitboard/computer/cloning = 5,
+ /obj/item/circuitboard/computer/communications = 5,
+ /obj/item/circuitboard/computer/launchpad_console = 5,
+ /obj/item/circuitboard/computer/mech_bay_power_console = 5,
+ /obj/item/circuitboard/computer/pandemic = 5,
+ /obj/item/circuitboard/computer/powermonitor/secret = 5,
+ /obj/item/circuitboard/computer/prototype_cloning = 5,
+ /obj/item/circuitboard/computer/stationalert = 5,
+ /obj/item/circuitboard/computer/teleporter = 5,
+ /obj/item/circuitboard/computer/operating = 5,
+ /obj/item/circuitboard/computer/crew = 5,
+ /obj/item/circuitboard/computer/scan_consolenew = 5,
+ )
+
+/obj/effect/spawner/lootdrop/random_computer_circuit_rare
+ loot = list(
+ /obj/item/circuitboard/computer/cargo = 5,
+ /obj/item/circuitboard/computer/communications = 5,
+ /obj/item/circuitboard/computer/shuttle/helm = 5,
+ /obj/item/circuitboard/computer/med_data = 5,
+ )
+
+//DESTRUCTIVE ANAL //i'm killing you
+/obj/effect/spawner/lootdrop/destructive_anal_loot //what do people usually put in these things anayways
+ loot = list(
+ /obj/item/storage/toolbox/syndicate/empty = 650,
+ /obj/item/gun/ballistic/automatic/pistol/ringneck = 500,
+ /obj/item/camera_bug = 500,
+ /obj/item/clothing/gloves/combat = 200,
+ /obj/item/clothing/head/chameleon = 200,
+ /obj/item/pen/sleepy = 200,
+ /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 100,
+
+ /obj/item/grenade/c4 = 100,
+
+ /obj/item/wrench/syndie = 30,
+ /obj/item/screwdriver/nuke = 30,
+ /obj/item/crowbar/syndie = 30,
+ /obj/item/wirecutters/syndie = 30,
+ /obj/item/multitool/syndie = 30,
+ )
diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm
index 7b8d68b7b2f9..dfdc7797e7f5 100644
--- a/code/game/turfs/closed/minerals.dm
+++ b/code/game/turfs/closed/minerals.dm
@@ -197,7 +197,7 @@
. = ..()
if (prob(mineralChance))
- var/path = pick_weight(mineralSpawnChanceList)
+ var/path = pickweight(mineralSpawnChanceList)
if(ispath(path, /turf))
var/turf/T = ChangeTurf(path,null,CHANGETURF_IGNORE_AIR)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 68a2f4675bdb..333b8b828022 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -854,7 +854,7 @@
switch(ruin_force)
if("Random")
- //Can't use pick_weight as it might be from "everything"
+ //Can't use pickweight as it might be from "everything"
ruin_target = select_from[pick(select_from)]
else
var/selected_ruin = tgui_input_list(usr, "Which ruin?", "Spawn Ruin", select_from, 60 SECONDS)
diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
index 93905c9d6aed..5980993958b0 100644
--- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
+++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
@@ -48,7 +48,7 @@
changelings[C] = (CHANGELING_PHEROMONE_MAX_DISTANCE ** 2) - (distance ** 2)
if(changelings.len)
- scan_target = pick_weight(changelings) //Point at a 'random' changeling, biasing heavily towards closer ones.
+ scan_target = pickweight(changelings) //Point at a 'random' changeling, biasing heavily towards closer ones.
else
scan_target = null
diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm
index 3b51ebb583d8..a29d48657446 100644
--- a/code/modules/awaymissions/away_props.dm
+++ b/code/modules/awaymissions/away_props.dm
@@ -1,7 +1,7 @@
/obj/effect/oneway
name = "one way effect"
desc = "Only lets things in from it's dir."
- icon = 'icons/effects/mapping/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping_helpers.dmi'
icon_state = "field_dir"
invisibility = INVISIBILITY_MAXIMUM
anchored = TRUE
@@ -14,7 +14,7 @@
/obj/effect/wind
name = "wind effect"
desc = "Creates pressure effect in it's direction. Use sparingly."
- icon = 'icons/effects/mapping/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping_helpers.dmi'
icon_state = "field_dir"
invisibility = INVISIBILITY_MAXIMUM
var/strength = 30
@@ -32,7 +32,7 @@
/obj/effect/path_blocker
name = "magic barrier"
desc = "You shall not pass."
- icon = 'icons/effects/mapping/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping_helpers.dmi'
icon_state = "blocker" //todo make this actually look fine when visible
anchored = TRUE
var/list/blocked_types = list()
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 4fb7ceac4527..26361b99cfc6 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -6,7 +6,7 @@
name = "Mob Spawner"
density = TRUE
anchored = TRUE
- icon = 'icons/effects/mapping/mapping_helpers.dmi' // These aren't *really* mapping helpers but it fits the most with it's common usage (to help place corpses in maps)
+ icon = 'icons/effects/mapping_helpers.dmi' // These aren't *really* mapping helpers but it fits the most with it's common usage (to help place corpses in maps)
icon_state = "mobspawner" // So it shows up in the map editor
var/mob_type = null
var/mob_name = ""
@@ -138,7 +138,6 @@
// Base version - place these on maps/templates.
/obj/effect/mob_spawn/human
mob_type = /mob/living/carbon/human
- icon_state = "corpsehuman"
//Human specific stuff.
var/mob_species = null //Set to make them a mutant race such as lizard or skeleton. Uses the datum typepath instead of the ID.
var/datum/outfit/outfit = /datum/outfit //If this is a path, it will be instanced in Initialize()
@@ -327,10 +326,12 @@
/obj/effect/mob_spawn/human/corpse/cargo_tech
name = "Cargo Tech"
outfit = /datum/outfit/job/cargo_tech
+ icon_state = "corpsecargotech"
/obj/effect/mob_spawn/human/cook
name = "Cook"
outfit = /datum/outfit/job/cook
+ icon_state = "corpsecook"
/obj/effect/mob_spawn/human/cook/husked
husk = TRUE
@@ -338,6 +339,8 @@
/obj/effect/mob_spawn/human/doctor
name = "Doctor"
outfit = /datum/outfit/job/doctor
+ icon_state = "corpsedoctor"
+
/obj/effect/mob_spawn/human/doctor/alive
death = FALSE
@@ -360,18 +363,22 @@
/obj/effect/mob_spawn/human/engineer
name = "Engineer"
outfit = /datum/outfit/job/engineer
+ icon_state = "corpseengineer"
/obj/effect/mob_spawn/human/clown
name = "Clown"
outfit = /datum/outfit/job/clown
+ icon_state = "corpseclown"
/obj/effect/mob_spawn/human/scientist
name = "Scientist"
outfit = /datum/outfit/job/scientist
+ icon_state = "corpsescientist"
/obj/effect/mob_spawn/human/miner
name = "Shaft Miner"
outfit = /datum/outfit/job/miner
+ icon_state = "corpseminer"
/obj/effect/mob_spawn/human/plasmaman
mob_species = /datum/species/plasmaman
@@ -398,6 +405,7 @@
/obj/effect/mob_spawn/human/bartender
name = "Space Bartender"
+ icon_state = "corpsebartender"
id_job = "Bartender"
id_access_list = list(ACCESS_BAR)
outfit = /datum/outfit/spacebartender
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index 210a5cec7a47..a240bf9f8404 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -453,6 +453,83 @@
SAY AAAAAAAAAAAAAAAA FUCK THAT
DELAY 15;"}
+//lootspawners//--
+
+/obj/effect/spawner/lootdrop/snowdin
+ name = "why are you using this dummy"
+ lootdoubles = 0
+ lootcount = 1
+ loot = list(/obj/item/bikehorn = 100)
+
+/obj/effect/spawner/lootdrop/snowdin/dungeonlite
+ name = "dungeon lite"
+ loot = list(/obj/item/melee/classic_baton = 11,
+ /obj/item/melee/classic_baton/telescopic = 12,
+ /obj/item/book/granter/spell/smoke = 10,
+ /obj/item/book/granter/spell/blind = 10,
+ /obj/item/storage/firstaid/regular = 45,
+ /obj/item/storage/firstaid/toxin = 35,
+ /obj/item/storage/firstaid/brute = 27,
+ /obj/item/storage/firstaid/fire = 27,
+ /obj/item/storage/toolbox/syndicate = 12,
+ /obj/item/grenade/c4 = 7,
+ /obj/item/grenade/clusterbuster/smoke = 15,
+ /obj/item/clothing/under/chameleon = 13,
+ /obj/item/clothing/shoes/chameleon/noslip = 10,
+ /obj/item/borg/upgrade/ddrill = 3,
+ /obj/item/borg/upgrade/soh = 3)
+
+/obj/effect/spawner/lootdrop/snowdin/dungeonmid
+ name = "dungeon mid"
+ loot = list(/obj/item/defibrillator/compact = 6,
+ /obj/item/storage/firstaid/tactical = 35,
+ /obj/item/shield/energy = 6,
+ /obj/item/shield/riot/tele = 12,
+ /obj/item/dnainjector/lasereyesmut = 7,
+ /obj/item/pneumatic_cannon = 15,
+ /obj/item/melee/transforming/energy/sword = 7,
+ /obj/item/book/granter/spell/knock = 15,
+ /obj/item/book/granter/spell/summonitem = 20,
+ /obj/item/book/granter/spell/forcewall = 17,
+ /obj/item/storage/backpack/holding = 12,
+ /obj/item/grenade/spawnergrenade/manhacks = 6,
+ /obj/item/grenade/spawnergrenade/spesscarp = 7,
+ /obj/item/grenade/clusterbuster/inferno = 3,
+ /obj/item/stack/sheet/mineral/diamond{amount = 15} = 10,
+ /obj/item/stack/sheet/mineral/uranium{amount = 15} = 10,
+ /obj/item/stack/sheet/mineral/plasma{amount = 15} = 10,
+ /obj/item/stack/sheet/mineral/gold{amount = 15} = 10,
+ /obj/item/book/granter/spell/barnyard = 4,
+ /obj/item/pickaxe/drill/diamonddrill = 6,
+ /obj/item/borg/upgrade/disablercooler = 7)
+
+
+/obj/effect/spawner/lootdrop/snowdin/dungeonheavy
+ name = "dungeon heavy"
+ loot = list(/obj/item/melee/axe/fire = 25,
+ /obj/item/organ/brain/alien = 17,
+ /obj/item/dualsaber = 15,
+ /obj/item/organ/heart/demon = 7,
+ /obj/item/gun/ballistic/automatic/smg/cobra = 16,
+ /obj/item/uplink/old = 2,
+ /obj/item/book/granter/spell/charge = 12,
+ /obj/item/grenade/clusterbuster/spawner_manhacks = 15,
+ /obj/item/book/granter/spell/fireball = 10,
+ /obj/item/pickaxe/drill/jackhammer = 30,
+ /obj/item/borg/upgrade/syndicate = 13,
+ /obj/item/borg/upgrade/selfrepair = 17)
+
+/obj/effect/spawner/lootdrop/snowdin/dungeonmisc
+ name = "dungeon misc"
+ lootdoubles = 2
+ lootcount = 1
+
+ loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10,
+ /obj/item/toy/snowball = 15,
+ /obj/item/shovel = 10,
+ /obj/item/melee/spear = 8,
+ )
+
//special items//--
/obj/structure/barricade/wooden/snowed
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
index 65a72290bf07..2d9f3af83c06 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
@@ -4,7 +4,7 @@
/datum/blackmarket_item/consumable/donk_pocket_box
name = "Box of Donk Pockets"
desc = "A well packaged box containing the favourite snack of every spacefarer."
- item = /obj/effect/spawner/random/food_or_drink/donkpockets
+ item = /obj/effect/spawner/lootdrop/donkpockets
stock_min = 2
stock_max = 5
@@ -186,7 +186,7 @@
/datum/blackmarket_item/consumable/ration
name = "Ration Pack"
desc = "PGF military surplus rations. What's in them? Who knows. Surprise is the spice of life after all."
- item = /obj/effect/spawner/random/food_or_drink/ration
+ item = /obj/effect/spawner/lootdrop/ration
price_min = 150
price_max = 300
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index a7bcbb2fe7d4..cab2ac8563af 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -73,7 +73,7 @@
var/the_toy
for(var/i in 1 to 5)
if(prob(50))
- the_toy = pick_weight(GLOB.arcade_prize_pool)
+ the_toy = pickweight(GLOB.arcade_prize_pool)
else
the_toy = pick(subtypesof(/obj/item/toy/plush))
new the_toy(C)
@@ -103,7 +103,7 @@
/datum/supply_pack/costumes_toys/mafia/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 4)
- new /obj/effect/spawner/random/clothing/mafia_outfit(C)
+ new /obj/effect/spawner/lootdrop/mafia_outfit(C)
new /obj/item/virgin_mary(C)
if(prob(30)) //Not all mafioso have mustaches, some people also find this item annoying.
new /obj/item/clothing/mask/fakemoustache/italian(C)
diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm
index 13402cce51b3..364c53ec9eb5 100644
--- a/code/modules/cargo/packs/food.dm
+++ b/code/modules/cargo/packs/food.dm
@@ -47,12 +47,12 @@
name = "Ration Crate"
desc = "6 standerd issue rations."
cost = 500
- contains = list(/obj/effect/spawner/random/food_or_drink/ration,
- /obj/effect/spawner/random/food_or_drink/ration,
- /obj/effect/spawner/random/food_or_drink/ration,
- /obj/effect/spawner/random/food_or_drink/ration,
- /obj/effect/spawner/random/food_or_drink/ration,
- /obj/effect/spawner/random/food_or_drink/ration)
+ contains = list(/obj/effect/spawner/lootdrop/ration,
+ /obj/effect/spawner/lootdrop/ration,
+ /obj/effect/spawner/lootdrop/ration,
+ /obj/effect/spawner/lootdrop/ration,
+ /obj/effect/spawner/lootdrop/ration,
+ /obj/effect/spawner/lootdrop/ration)
crate_name = "ration crate"
crate_type = /obj/structure/closet/crate
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index db9e2814b2c0..0447f62aab9e 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -259,6 +259,24 @@
item_state = "lgloves"
custom_price = 200
+/obj/effect/spawner/lootdrop/gloves
+ name = "random gloves"
+ desc = "These gloves are supposed to be a random color..."
+ icon = 'icons/obj/clothing/gloves.dmi'
+ icon_state = "random_gloves"
+ loot = list(
+ /obj/item/clothing/gloves/color/orange = 1,
+ /obj/item/clothing/gloves/color/red = 1,
+ /obj/item/clothing/gloves/color/blue = 1,
+ /obj/item/clothing/gloves/color/purple = 1,
+ /obj/item/clothing/gloves/color/green = 1,
+ /obj/item/clothing/gloves/color/grey = 1,
+ /obj/item/clothing/gloves/color/light_brown = 1,
+ /obj/item/clothing/gloves/color/brown = 1,
+ /obj/item/clothing/gloves/color/white = 1,
+ /obj/item/clothing/gloves/color/rainbow = 1,
+ )
+
/obj/item/clothing/gloves/maid
name = "maid arm covers"
desc = "Cylindrical looking tubes that go over your arm, weird."
diff --git a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
index 8f1e0663ee31..f5e4ddcdf55b 100644
--- a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
+++ b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
@@ -47,26 +47,26 @@
return
if(prob(90))
- head = pick_weight(list(
+ head = pickweight(list(
/obj/item/clothing/head/beret/sec/frontier = 10,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier = 5,
/obj/item/reagent_containers/glass/bucket = 1))
if(prob(60))
- suit = pick_weight(list(
+ suit = pickweight(list(
/obj/item/clothing/suit/armor/vest = 5,
/obj/item/clothing/suit/armor/vest/bulletproof/frontier = 5,
/obj/item/clothing/suit/armor/vest/scrap = 1))
if(prob(50))
- mask = pick_weight(list(
+ mask = pickweight(list(
/obj/item/clothing/mask/gas/frontiersmen = 12,
/obj/item/clothing/mask/gas/sechailer/balaclava = 10,
/obj/item/clothing/mask/breath = 7,
/obj/item/clothing/mask/whistle/trench = 3))
if(prob(90))
- back = pick_weight(list(
+ back = pickweight(list(
/obj/item/storage/backpack = 20,
/obj/item/storage/backpack/satchel = 20,
/obj/item/storage/backpack/messenger = 20,
@@ -76,7 +76,7 @@
))
if(prob(90))
- shoes = pick_weight(list(
+ shoes = pickweight(list(
/obj/item/clothing/shoes/jackboots = 10,
/obj/item/clothing/shoes/sneakers = 5,
))
@@ -136,7 +136,7 @@
/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/presawn,
/obj/item/gun/energy/e_gun/mini))
if("Melee")
- r_hand = pick_weight(list(
+ r_hand = pickweight(list(
/obj/item/melee/knife/survival = 15,
/obj/item/melee/baseball_bat = 10,
/obj/item/roastingstick = 2,
diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm
index 3c68b18d50f9..f7324e3c57dd 100644
--- a/code/modules/events/brain_trauma.dm
+++ b/code/modules/events/brain_trauma.dm
@@ -27,7 +27,7 @@
15;TRAUMA_RESILIENCE_LOBOTOMY,
5;TRAUMA_RESILIENCE_MAGIC)
- var/trauma_type = pick_weight(list(
+ var/trauma_type = pickweight(list(
BRAIN_TRAUMA_MILD = 60,
BRAIN_TRAUMA_SEVERE = 30,
BRAIN_TRAUMA_SPECIAL = 10
diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm
index 73e3b721c067..35d8c4b141e1 100644
--- a/code/modules/events/heart_attack.dm
+++ b/code/modules/events/heart_attack.dm
@@ -18,7 +18,7 @@
heart_attack_contestants[victim] = 1
if(LAZYLEN(heart_attack_contestants))
- var/mob/living/carbon/human/winner = pick_weight(heart_attack_contestants)
+ var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants)
var/datum/disease/D = new /datum/disease/heart_failure()
winner.ForceContractDisease(D, FALSE, TRUE)
announce_to_ghosts(winner)
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index 1fbb017b7dd4..43e60c3137c3 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -42,7 +42,7 @@
/obj/effect/spawner/xmastree
name = "christmas tree spawner"
- icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x2"
layer = FLY_LAYER
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 40b979a89577..4f2c3cd1343a 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -386,6 +386,6 @@
if(initial(fish.available_in_random_cases) || !case_fish_only)
chance_table[fish] = initial(fish.random_case_rarity)
probability_table[argkey] = chance_table
- return pick_weight(probability_table[argkey])
+ return pickweight(probability_table[argkey])
diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm
index db051d69175e..136a650148cd 100644
--- a/code/modules/fishing/sources/_fish_source.dm
+++ b/code/modules/fishing/sources/_fish_source.dm
@@ -79,7 +79,7 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations())
/// In case you want more complex rules for specific spots
/datum/fish_source/proc/roll_reward(obj/item/fishing_rod/rod, mob/fisherman)
- return pick_weight(get_modified_fish_table(rod,fisherman))
+ return pickweight(get_modified_fish_table(rod,fisherman))
/// Gives out the reward if possible
/datum/fish_source/proc/dispense_reward(reward_path, mob/fisherman)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 30b768e702b0..29ff8ead2f62 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(world.time < next_hallucination)
return
- var/halpick = pick_weight(GLOB.hallucination_list)
+ var/halpick = pickweight(GLOB.hallucination_list)
new halpick(src, FALSE)
next_hallucination = world.time + rand(100, 600)
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index bfc9179c4893..b5c4c2c42b85 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -341,13 +341,13 @@
/obj/item/pizzabox/infinite/proc/attune_pizza(mob/living/carbon/human/noms) //tonight on "proc names I never thought I'd type"
if(!pizza_preferences[noms.ckey])
- pizza_preferences[noms.ckey] = pick_weight(pizza_types)
+ pizza_preferences[noms.ckey] = pickweight(pizza_types)
if(noms.has_quirk(/datum/quirk/pineapple_liker))
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/pineapple
else if(noms.has_quirk(/datum/quirk/pineapple_hater))
var/list/pineapple_pizza_liker = pizza_types.Copy()
pineapple_pizza_liker -= /obj/item/reagent_containers/food/snacks/pizza/pineapple
- pizza_preferences[noms.ckey] = pick_weight(pineapple_pizza_liker)
+ pizza_preferences[noms.ckey] = pickweight(pineapple_pizza_liker)
else if(noms.mind && noms.mind.assigned_role == "Botanist")
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/dank
diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm
index 52b5f7659305..47e545c33663 100644
--- a/code/modules/mapping/mapping_helpers.dm
+++ b/code/modules/mapping/mapping_helpers.dm
@@ -4,7 +4,7 @@
/obj/effect/baseturf_helper //Set the baseturfs of every turf in the /area/ it is placed.
name = "baseturf editor"
- icon = 'icons/effects/mapping/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping_helpers.dmi'
icon_state = ""
var/list/baseturf_to_replace
@@ -89,9 +89,8 @@
/obj/effect/mapping_helpers
- icon = 'icons/effects/mapping/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping_helpers.dmi'
icon_state = ""
- invisibility = INVISIBILITY_OBSERVER
var/late = FALSE
/obj/effect/mapping_helpers/Initialize()
@@ -273,6 +272,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/ianbirthday
name = "Ian's Bday Helper"
late = TRUE
+ icon_state = "iansbdayhelper"
var/balloon_clusters = 2
/obj/effect/mapping_helpers/ianbirthday/LateInitialize()
@@ -331,6 +331,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/ianbirthday/admin//so admins may birthday any room
name = "generic birthday setup"
+ icon_state = "bdayhelper"
/obj/effect/mapping_helpers/ianbirthday/admin/LateInitialize()
birthday()
@@ -340,6 +341,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/iannewyear
name = "Ian's New Years Helper"
late = TRUE
+ icon_state = "iansnewyrshelper"
/obj/effect/mapping_helpers/iannewyear/LateInitialize()
if(SSevents.holidays && SSevents.holidays[NEW_YEAR])
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index bf4ad80647ef..bf6fb15c9332 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -508,7 +508,7 @@
icon_state = "garden"
harvested_name = "lush garden"
harvested_desc = "In the soil and shade, something softly grew. It seems some industrious scavenger already passed by."
- harvest = /obj/effect/spawner/random/food_or_drink/garden
+ harvest = /obj/effect/spawner/lootdrop/garden
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You discover something nestled away in the growing bough."
@@ -527,7 +527,7 @@
icon_state = "gardenarid"
harvested_name = "sandy garden"
harvested_desc = "Beneath a bluff of soft silicate, a sheltered grove slumbered. Some desert wanderer seems to have picked it clean."
- harvest = /obj/effect/spawner/random/food_or_drink/garden/arid
+ harvest = /obj/effect/spawner/lootdrop/garden/arid
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You brush sand away from a verdant prize, nestled in the leaves."
@@ -540,7 +540,7 @@
icon_state = "gardencold"
harvested_name = "chilly garden"
harvested_desc = "A delicate layer of frost covers hardy brush. Someone came with the blizzard, and left with any prize this might contain."
- harvest = /obj/effect/spawner/random/food_or_drink/garden/cold
+ harvest = /obj/effect/spawner/lootdrop/garden/cold
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You unearth a snow-covered treat."
@@ -553,7 +553,7 @@
icon_state = "gardensick"
harvested_name = "sickly garden"
harvested_desc = "Polluted water wells up from the cracked earth, where it once fed a patch of something curious. Now only wilted leaves remain."
- harvest = /obj/effect/spawner/random/food_or_drink/garden/sick
+ harvest = /obj/effect/spawner/lootdrop/garden/sick
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You pry something odd from the poisoned soil."
@@ -567,13 +567,124 @@
icon_state = "seaweed"
harvested_name = "seaweed patch"
harvested_desc = "A patch of seaweed, floating on the surface of the water. It seems someone has already searched through this"
- harvest = /obj/effect/spawner/random/food_or_drink/garden/seaweed
+ harvest = /obj/effect/spawner/lootdrop/garden/seaweed
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You discover some edible weeds within the patch."
harvest_message_med = "You discover some edible weeds within the patch."
harvest_message_high = "You discover some edible weeds within the patch."
+/obj/effect/spawner/lootdrop/garden
+ name = "lush garden seeder"
+ lootcount = 3
+ var/list/plant = list(
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1,
+ /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1,
+ /obj/item/reagent_containers/food/snacks/grown/trumpet = 1,
+ /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/grown/log/bamboo = 2,
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2,
+ /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2,
+ /obj/item/reagent_containers/food/snacks/grown/moonflower = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2,
+ /obj/item/reagent_containers/food/snacks/grown/pineapple = 2,
+ /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2,
+ /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2,
+ /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tea = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tobacco = 2,
+ /obj/item/reagent_containers/food/snacks/grown/watermelon = 4,
+ /obj/item/grown/sunflower = 4,
+ /obj/item/reagent_containers/food/snacks/grown/banana = 4,
+ /obj/item/reagent_containers/food/snacks/grown/apple = 4,
+ /obj/item/reagent_containers/food/snacks/grown/berries = 5,
+ /obj/item/reagent_containers/food/snacks/grown/cherries = 4,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4,
+ /obj/item/reagent_containers/food/snacks/grown/garlic = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grapes = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grass = 5,
+ /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4,
+ /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4,
+ /obj/item/reagent_containers/food/snacks/grown/wheat = 4,
+ /obj/item/reagent_containers/food/snacks/grown/parsnip = 4,
+ /obj/item/reagent_containers/food/snacks/grown/peas = 4,
+ /obj/item/reagent_containers/food/snacks/grown/rice = 4,
+ /obj/item/reagent_containers/food/snacks/grown/soybeans = 4,
+ /obj/item/reagent_containers/food/snacks/grown/tomato = 4,
+ /obj/item/reagent_containers/food/snacks/grown/cabbage = 4,
+ /obj/item/reagent_containers/food/snacks/grown/onion = 4,
+ /obj/item/reagent_containers/food/snacks/grown/carrot = 4)
+
+/obj/effect/spawner/lootdrop/garden/Initialize(mapload)
+ loot = plant
+ . = ..()
+
+/obj/effect/spawner/lootdrop/garden/arid
+ name = "arid garden seeder"
+ plant = list(
+ /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1,
+ /obj/item/reagent_containers/food/snacks/grown/nettle = 1,
+ /obj/item/grown/cotton/durathread = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/reagent_containers/food/snacks/grown/redbeet = 1,
+ /obj/item/reagent_containers/food/snacks/grown/aloe = 2,
+ /obj/item/grown/cotton = 2,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2,
+ /obj/item/reagent_containers/food/snacks/grown/chili = 2,
+ /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5,
+ /obj/item/reagent_containers/food/snacks/grown/potato = 4,
+ /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4,
+ /obj/item/reagent_containers/food/snacks/grown/corn = 4)
+
+/obj/effect/spawner/lootdrop/garden/cold
+ name = "frigid garden seeder"
+ plant = list(
+ /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1,
+ /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1,
+ /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/reagent_containers/food/snacks/grown/poppy = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
+ /obj/item/reagent_containers/food/snacks/grown/oat = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grass = 4,
+ /obj/item/reagent_containers/food/snacks/grown/harebell = 5,
+ /obj/item/seeds/starthistle = 5)
+
+/obj/effect/spawner/lootdrop/garden/sick
+ name = "sickly garden seeder"
+ plant = list(
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1,
+ /obj/item/seeds/replicapod = 1,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
+ /obj/item/seeds/tower/steel = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis = 2,
+ /obj/item/seeds/random = 2,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4,
+ /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4)
+
+/obj/effect/spawner/lootdrop/garden/seaweed
+ name = "seaweed patch seeder"
+ plant = list(
+ /obj/item/reagent_containers/food/snacks/grown/seaweed = 1
+ )
+
/obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth //careful eating from random jungle bushes
seed = /obj/item/seeds/berry/poison
name = "bunch of berries"
diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm
index fa497b44a323..16f6afa8da0c 100644
--- a/code/modules/mining/ore_veins.dm
+++ b/code/modules/mining/ore_veins.dm
@@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(ore_veins)
else
ore_type_amount = 1
for(var/ore_count in 1 to ore_type_amount)
- var/picked = pick_weight(ore_list)
+ var/picked = pickweight(ore_list)
vein_contents.Add(picked)
ore_list.Remove(picked)
GLOB.ore_veins += src
diff --git a/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
index 038aae0900de..58e48850c2b8 100644
--- a/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
@@ -35,14 +35,14 @@
minimum_distance = 1
icon_state = "mining_drone_offense"
faction = list("mining", "turret")
- loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/random/minebot)
+ loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/lootdrop/minebot)
projectiletype = /obj/projectile/kinetic/miner/weak
/obj/projectile/kinetic/miner/weak
damage = 15
-/obj/effect/spawner/random/minebot
+/obj/effect/spawner/lootdrop/minebot
loot = list(/obj/item/borg/upgrade/modkit/minebot_passthrough = 15,
/obj/item/borg/upgrade/modkit/chassis_mod = 15,
/obj/item/borg/upgrade/modkit/tracer = 15,
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 6dcff82cb7c4..b98da0a899fc 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -69,7 +69,7 @@
/mob/living/simple_animal/hostile/hivebot/death(gibbed)
do_sparks(3, TRUE, src)
- new /obj/effect/spawner/random/waste/hivebot(loc)
+ new /obj/effect/spawner/lootdrop/waste/hivebot(loc)
..(TRUE)
/mob/living/simple_animal/hostile/hivebot/range
diff --git a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
index 772c277a0e8d..8cfeeff0695a 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
@@ -80,7 +80,7 @@
var/survivor_type //room for alternatives inside the fuckoff grade init.
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity.
- mob_species = pick_weight(list(
+ mob_species = pickweight(list(
/datum/species/human = 50,
/datum/species/lizard = 20,
/datum/species/ipc = 10,
@@ -92,7 +92,7 @@
//to-do: learn how to make mobsprites for other survivors
//gloves are a tossup
- gloves = pick_weight(list(
+ gloves = pickweight(list(
/obj/item/clothing/gloves/color/black = 60,
/obj/item/clothing/gloves/explorer = 30,
/obj/item/clothing/gloves/explorer/old = 10
@@ -100,7 +100,7 @@
)
//bags are semi-random.
- back = pick_weight(list(
+ back = pickweight(list(
/obj/item/storage/backpack = 20,
/obj/item/storage/backpack/explorer = 20,
/obj/item/storage/backpack/satchel = 20,
@@ -112,7 +112,7 @@
//as are bag contents
backpack_contents = list()
if(prob(70))
- backpack_contents += pick_weight(list( //these could stand to be expanded, right now they're just mildly modified miner ones, and I don't know how to plus that up.
+ backpack_contents += pickweight(list( //these could stand to be expanded, right now they're just mildly modified miner ones, and I don't know how to plus that up.
/obj/item/soap = 10,
/obj/item/stack/marker_beacon/ten = 15,
/obj/item/mining_scanner = 5,
@@ -128,7 +128,7 @@
)
)
if(prob(70))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/stack/sheet/animalhide/goliath_hide = 20,
/obj/item/stack/marker_beacon/ten = 10,
/obj/item/mining_scanner = 20,
@@ -140,7 +140,7 @@
)
)
if(prob(70))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/stack/sheet/animalhide/goliath_hide = 5,
/obj/item/stack/marker_beacon/ten = 5,
/obj/item/mining_scanner = 5,
@@ -154,7 +154,7 @@
)
)
if (prob(15)) //mayhaps a medkit
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/storage/firstaid/regular = 50,
/obj/item/storage/firstaid/brute = 15,
/obj/item/storage/firstaid/medical = 15,
@@ -167,7 +167,7 @@
backpack_contents += /obj/item/reagent_containers/hypospray/medipen/survival
//masks
- mask = pick_weight(list(
+ mask = pickweight(list(
/obj/item/clothing/mask/gas = 40,
/obj/item/clothing/mask/gas/explorer = 20,
/obj/item/clothing/mask/gas/explorer/old = 20,
@@ -177,7 +177,7 @@
//the eyes are the window into the soul.
if(prob(70))
- glasses = pick_weight(list(
+ glasses = pickweight(list(
/obj/item/clothing/glasses/heat = 20,
/obj/item/clothing/glasses/cold = 20,
/obj/item/clothing/glasses/meson = 40,
@@ -189,7 +189,7 @@
if(prob(1)) //oh my god they can't hear the sandstorm coming they've got airpods in
ears = /obj/item/instrument/piano_synth/headphones/spacepods
else
- ears = pick_weight(list(
+ ears = pickweight(list(
/obj/item/radio/headset = 50,
/obj/item/radio/headset/alt = 50
)
@@ -198,7 +198,7 @@
switch(survivor_type)
if("survivor")
//uniforms are random to show varied backgrounds, but similar goal
- uniform = pick_weight(list(
+ uniform = pickweight(list(
/obj/item/clothing/under/color/random = 65,
/obj/item/clothing/under/rank/cargo/miner/lavaland = 10,
/obj/item/clothing/under/rank/prisoner = 10,
@@ -207,7 +207,7 @@
)
)
//storage is semi-randomized, giving some variety
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/storage/belt/fannypack = 40,
/obj/item/storage/belt/mining = 20,
/obj/item/storage/belt/mining/alt = 15,
@@ -223,7 +223,7 @@
r_pocket = /obj/item/spacecash/bundle/smallrand
if("hunter")
- uniform = pick_weight(list(
+ uniform = pickweight(list(
/obj/item/clothing/under/color/random = 50,
/obj/item/clothing/under/rank/cargo/miner/lavaland = 25,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
@@ -231,7 +231,7 @@
/obj/item/clothing/under/utility = 5
)
)
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/storage/belt/mining = 30,
/obj/item/storage/belt/fannypack = 20,
/obj/item/storage/belt/mining/alt = 15,
@@ -251,7 +251,7 @@
visible_message(span_warning("The hunter's weapon shatters as they impact the ground!"))
if("gunslinger")
- uniform = pick_weight(list(
+ uniform = pickweight(list(
/obj/item/clothing/under/rank/cargo/miner/lavaland = 35,
/obj/item/clothing/under/color/random = 25,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
@@ -260,7 +260,7 @@
/obj/item/clothing/under/syndicate/combat = 5
)
)
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/storage/belt/mining = 30,
/obj/item/storage/belt/bandolier = 30,
/obj/item/storage/belt/military = 20,
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
index 7e3e217ecebd..2bae8ea2a5dc 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
@@ -463,7 +463,7 @@
H.transform = H.transform.Scale(0.8, 1)//somehow dwarf squashing is borked when not roundstart. I hate WS code
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize() //in an ideal world, these would generate, the legion would overlay over the corpse, and we'd get cool sprites
- mob_species = pick_weight(list(
+ mob_species = pickweight(list(
/datum/species/human = 50,
/datum/species/lizard = 20,
/datum/species/ipc = 10,
@@ -472,7 +472,7 @@
/datum/species/spider = 5
)
)
- var/type = pick_weight(list(
+ var/type = pickweight(list(
"Miner" = 40,
"Assistant" = 10,
"Engineer" = 5,
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
index 86476b21b3f4..15626099bff9 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
@@ -1,6 +1,6 @@
/datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
- uniform = pick_weight(list(
+ uniform = pickweight(list(
/obj/item/clothing/under/utility = 5,
/obj/item/clothing/under/utility/skirt = 5,
/obj/item/clothing/under/color/black = 1,
@@ -21,7 +21,7 @@
/obj/item/clothing/under/syndicate/tacticool = 1,
)
)
- suit = pick_weight(list(
+ suit = pickweight(list(
/obj/item/clothing/suit/hooded/wintercoat = 1,
/obj/item/clothing/suit/jacket = 1,
/obj/item/clothing/suit/jacket/leather = 1,
@@ -33,7 +33,7 @@
/obj/item/clothing/suit/toggle/hazard = 1,
)
)
- back = pick_weight(list(
+ back = pickweight(list(
/obj/item/storage/backpack = 1,
/obj/item/storage/backpack/satchel = 1,
/obj/item/storage/backpack/duffelbag = 1,
@@ -42,7 +42,7 @@
)
)
if (prob(10))
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/gun/ballistic/automatic/pistol/candor = 2,
/obj/item/gun/ballistic/automatic/pistol/commander = 1,
/obj/item/gun/ballistic/automatic/pistol/ringneck = 1,
@@ -51,13 +51,13 @@
)
)
if(prob(50))
- gloves = pick_weight(list(
+ gloves = pickweight(list(
/obj/item/clothing/gloves/color/black = 1,
/obj/item/clothing/gloves/fingerless = 1,
/obj/item/clothing/gloves/color/white = 1,
)
)
- shoes = pick_weight(list(
+ shoes = pickweight(list(
/obj/item/clothing/shoes/laceup = 1,
/obj/item/clothing/shoes/sandal = 1,
/obj/item/clothing/shoes/winterboots = 1,
@@ -69,7 +69,7 @@
)
)
if(prob(50))
- head = pick_weight(list(
+ head = pickweight(list(
/obj/item/clothing/head/beret = 3,
/obj/item/clothing/head/beret/grey = 3,
/obj/item/clothing/head/flatcap = 3,
@@ -83,7 +83,7 @@
)
)
if(prob(50))
- mask = pick_weight(list(
+ mask = pickweight(list(
/obj/item/clothing/mask/balaclava = 1,
/obj/item/clothing/mask/bandana/red = 1,
/obj/item/clothing/mask/gas = 3,
@@ -91,7 +91,7 @@
)
)
if(prob(25))
- neck = pick_weight(list(
+ neck = pickweight(list(
/obj/item/clothing/neck/scarf/red = 1,
/obj/item/clothing/neck/scarf/green = 1,
/obj/item/clothing/neck/scarf/darkblue = 1,
@@ -103,7 +103,7 @@
)
ears = pick(/obj/item/radio/headset, /obj/item/radio/headset/alt)
if(prob(50))
- glasses = pick_weight(list(
+ glasses = pickweight(list(
/obj/item/clothing/glasses/regular = 1,
/obj/item/clothing/glasses/regular/circle = 1,
/obj/item/clothing/glasses/regular/jamjar = 1,
@@ -121,7 +121,7 @@
l_pocket = pick(/obj/item/radio, /obj/item/flashlight)
id = /obj/item/card/id
backpack_contents = list()
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/dice/d20 = 1,
/obj/item/lipstick = 1,
/obj/item/clothing/mask/vape = 1,
@@ -151,14 +151,14 @@
/datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()
if(prob(75))
- uniform = pick_weight(list(
+ uniform = pickweight(list(
/obj/item/clothing/under/rank/cargo/miner/lavaland = 5,
/obj/item/clothing/under/rank/cargo/miner = 4,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 1,
)
)
if(prob(25))
- suit = pick_weight(list(
+ suit = pickweight(list(
/obj/item/clothing/suit/hooded/explorer = 18,
/obj/item/clothing/suit/hooded/explorer/old = 1,
/obj/item/clothing/suit/hooded/cloak/goliath = 1
@@ -167,13 +167,13 @@
if(prob(75))
back = /obj/item/storage/backpack/explorer
if(prob(75))
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/storage/belt/mining = 2,
/obj/item/storage/belt/mining/alt = 2
)
)
else if(prob(75))
- belt = pick_weight(list(
+ belt = pickweight(list(
/obj/item/pickaxe = 16,
/obj/item/pickaxe/mini = 8,
/obj/item/pickaxe/silver = 4,
@@ -183,7 +183,7 @@
)
)
if(prob(75))
- gloves = pick_weight(list(
+ gloves = pickweight(list(
/obj/item/clothing/gloves/color/black = 9,
/obj/item/clothing/gloves/explorer/old = 1
)
@@ -191,7 +191,7 @@
if(prob(75))
shoes = /obj/item/clothing/shoes/workboots/mining
if(prob(75))
- mask = pick_weight(list(
+ mask = pickweight(list(
/obj/item/clothing/mask/gas/explorer = 9,
/obj/item/clothing/mask/gas/explorer/old = 1
)
@@ -199,7 +199,7 @@
if(prob(50))
glasses = /obj/item/clothing/glasses/meson
if(prob(50))
- r_pocket = pick_weight(list(
+ r_pocket = pickweight(list(
/obj/item/stack/marker_beacon = 20,
/obj/item/spacecash/bundle/smallrand = 7,
/obj/item/reagent_containers/hypospray/medipen/survival = 2,
@@ -207,7 +207,7 @@
)
)
if(prob(25))
- l_pocket = pick_weight(list(
+ l_pocket = pickweight(list(
/obj/item/spacecash/bundle/smallrand = 5,
/obj/item/reagent_containers/hypospray/medipen/survival = 2,
/obj/item/borg/upgrade/modkit/cooldown = 1
@@ -216,7 +216,7 @@
if(prob(75))
for(var/count in 1 to 3)
if(prob(70))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/borg/upgrade/modkit/damage = 1,
/obj/item/borg/upgrade/modkit/trigger_guard = 1,
/obj/item/soap/nanotrasen = 1,
@@ -236,7 +236,7 @@
)
if(prob(30))
backpack_contents += list(
- /obj/item/reagent_containers/hypospray/medipen/survival = pick_weight(list(
+ /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list(
1 = 3,
2 = 2,
3 = 1
@@ -245,7 +245,7 @@
)
else if (prob(75))
backpack_contents = list()
- back = pick_weight(list(
+ back = pickweight(list(
/obj/item/kinetic_crusher = 9,
/obj/item/kinetic_crusher/old = 1
)
@@ -276,7 +276,7 @@
back = /obj/item/melee/axe/fire
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/stack/tape/industrial/electrical = 1,
/obj/item/electronics/apc = 1,
/obj/item/multitool = 1,
@@ -305,7 +305,7 @@
else if (prob(75))
back = /obj/item/defibrillator/loaded
if(prob(75))
- belt = pick_weight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1))
+ belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1))
if(prob(75))
gloves = pick(/obj/item/clothing/gloves/color/white, /obj/item/clothing/gloves/color/latex/nitrile)
if(prob(75))
@@ -320,7 +320,7 @@
glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription)
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/reagent_containers/pill/patch/styptic = 5,
/obj/item/reagent_containers/pill/patch/silver_sulf = 5,
/obj/item/storage/firstaid/medical = 3,
@@ -365,7 +365,7 @@
neck = /obj/item/clothing/neck/tie/horrible
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/research_notes/loot/tiny = 3,
/obj/item/research_notes/loot/small = 3,
/obj/item/reagent_scanner = 3,
@@ -408,7 +408,7 @@
ears = /obj/item/radio/headset/headset_cargo
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/spacecash/bundle/smallrand = 5,
/obj/item/ammo_box/magazine/illestren_a850r = 5,
/obj/item/ammo_box/magazine/zip_ammo_9mm = 5,
@@ -456,7 +456,7 @@
suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot)
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pick_weight(list(
+ backpack_contents += pickweight(list(
/obj/item/restraints/handcuffs = 8,
/obj/item/assembly/flash/handheld = 5,
/obj/item/storage/box/evidence = 6,
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index e90d00a38a42..f6dff0f23bb8 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -479,7 +479,7 @@
return //we never mate when not alone, so just abort early
if(alone && partner && children < 3)
- var/childspawn = pick_weight(childtype)
+ var/childspawn = pickweight(childtype)
var/turf/target = get_turf(loc)
if(target)
return new childspawn(target)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index e8d5f5c508c6..bfad583d057c 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -77,7 +77,7 @@
if(prob(probability))
zone = check_zone(zone)
else
- zone = pick_weight(list(BODY_ZONE_HEAD = 1, BODY_ZONE_CHEST = 1, BODY_ZONE_L_ARM = 4, BODY_ZONE_R_ARM = 4, BODY_ZONE_L_LEG = 4, BODY_ZONE_R_LEG = 4))
+ zone = pickweight(list(BODY_ZONE_HEAD = 1, BODY_ZONE_CHEST = 1, BODY_ZONE_L_ARM = 4, BODY_ZONE_R_ARM = 4, BODY_ZONE_L_LEG = 4, BODY_ZONE_R_LEG = 4))
return zone
///Would this zone be above the neck
diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm
index 2b36075d2225..630ed6f6f3c7 100644
--- a/code/modules/mob_spawner/hivebot.dm
+++ b/code/modules/mob_spawner/hivebot.dm
@@ -42,7 +42,7 @@
smoke.set_up(2, loc)
smoke.start()
new /obj/effect/particle_effect/sparks(loc)
- new /obj/effect/spawner/random/waste/hivebot/beacon(loc)
+ new /obj/effect/spawner/lootdrop/waste/hivebot/beacon(loc)
/obj/effect/light_emitter/hivespawner
set_luminosity = 4
diff --git a/code/modules/mob_spawner/spawner_componet.dm b/code/modules/mob_spawner/spawner_componet.dm
index 637423f0b1e0..8a904a5504c4 100644
--- a/code/modules/mob_spawner/spawner_componet.dm
+++ b/code/modules/mob_spawner/spawner_componet.dm
@@ -114,7 +114,7 @@
spot = pick(peel)
else
spot = pick(circleviewturfs(origin, spawn_distance_max))
- var/chosen_mob_type = pick_weight(mob_types)
+ var/chosen_mob_type = pickweight(mob_types)
var/mob/living/simple_animal/L = new chosen_mob_type(spot)
L.flags_1 |= (P.flags_1 & ADMIN_SPAWNED_1)
spawned_mobs += L
diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm
index ad7d5007ca6d..1ca28df922aa 100644
--- a/code/modules/overmap/objects/dynamic_datum.dm
+++ b/code/modules/overmap/objects/dynamic_datum.dm
@@ -128,7 +128,7 @@
probabilities = list()
for(var/datum/planet_type/planet_type as anything in subtypesof(/datum/planet_type))
probabilities[initial(planet_type.planet)] = initial(planet_type.weight)
- planet = SSmapping.planet_types[force_encounter ? force_encounter : pick_weight_allow_zero(probabilities)]
+ planet = SSmapping.planet_types[force_encounter ? force_encounter : pickweightAllowZero(probabilities)]
if(planet.planet !=DYNAMIC_WORLD_ASTEROID && planet.planet != DYNAMIC_WORLD_SPACERUIN) //these aren't real planets
@@ -192,7 +192,7 @@
log_shuttle("[src] [REF(src)] LEVEL_INIT")
// use the ruin type in template if it exists, or pick from ruin list if IT exists; otherwise null
- var/selected_ruin = template || (ruin_type ? pick_weight_allow_zero(SSmapping.ruin_types_probabilities[ruin_type]) : null)
+ var/selected_ruin = template || (ruin_type ? pickweightAllowZero(SSmapping.ruin_types_probabilities[ruin_type]) : null)
var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(src, selected_ruin)
if(!length(dynamic_encounter_values))
return FALSE
diff --git a/code/modules/overmap/objects/event_datum.dm b/code/modules/overmap/objects/event_datum.dm
index 19604ce53375..9381e8cae6d5 100644
--- a/code/modules/overmap/objects/event_datum.dm
+++ b/code/modules/overmap/objects/event_datum.dm
@@ -323,7 +323,7 @@
/datum/overmap/event/anomaly/affect_ship(datum/overmap/ship/controlled/S)
var/area/source_area = pick(S.shuttle_port.shuttle_areas)
var/source_object = pick(source_area.contents)
- new /obj/effect/spawner/random/anomaly/storm(get_turf(source_object))
+ new /obj/effect/spawner/lootdrop/anomaly/storm(get_turf(source_object))
for(var/mob/M as anything in GLOB.player_list)
if(S.shuttle_port.is_in_shuttle_bounds(M))
M.playsound_local(S.shuttle_port, 'sound/effects/bamf.ogg', 100)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 35adab3cd4a3..b6fe4370d9c5 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1517,9 +1517,9 @@
var/turf/open/floor/F = T
playsound(T, 'sound/effects/bubbles.ogg', 50)
F.PlaceOnTop(/turf/open/floor/grass, flags = CHANGETURF_INHERIT_AIR)
- new /obj/effect/spawner/random/flower(T)
+ new /obj/effect/spawner/lootdrop/flower(T)
if(prob(75))
- new /obj/effect/spawner/random/flora(T)
+ new /obj/effect/spawner/lootdrop/flora(T)
..()
/datum/reagent/genesis/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index 2cc0134cf8f6..c33b2c4558d3 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -199,7 +199,7 @@
id = "rngplant"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass= 2000)
- build_path = /obj/effect/spawner/random/food_or_drink/seed
+ build_path = /obj/effect/spawner/lootdrop/seeded
category = list("initial","LIFESEED_2.0")
/datum/design/genesis
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 62cd6f6bf8ef..64e5a0921b2b 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -200,7 +200,7 @@
use_power(750)
if(dotype != FAIL)
var/list/nodes = techweb_item_boost_check(process)
- var/picked = pick_weight(nodes) //This should work.
+ var/picked = pickweight(nodes) //This should work.
if(linked_console)
linked_console.stored_research.boost_with_path(SSresearch.techweb_node_by_id(picked), process.type)
updateUsrDialog()
@@ -292,7 +292,7 @@
else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
var/savedName = "[exp_on]"
ejectItem(TRUE)
- var/newPath = text2path(pick_weight(valid_items))
+ var/newPath = text2path(pickweight(valid_items))
loaded_item = new newPath(src)
visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!")
investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR)
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 5b6e6239f6a7..1a5ad3d0d35f 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -5,9 +5,9 @@
//NORTH default dir
/obj/docking_port
- invisibility = INVISIBILITY_OBSERVER
- icon = 'icons/effects/mapping/docking_ports.dmi'
- icon_state = "static"
+ invisibility = INVISIBILITY_ABSTRACT
+ icon = 'icons/obj/device.dmi'
+ icon_state = "pinonfar"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | LANDING_PROOF | HYPERSPACE_PROOF
anchored = TRUE
@@ -272,7 +272,7 @@
/obj/docking_port/mobile
name = "shuttle"
- icon_state = "mobile"
+ icon_state = "pinonclose"
var/area_type = SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE
diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm
index 8592b02f2dae..a3fa70ce6209 100644
--- a/code/modules/vending/cola.dm
+++ b/code/modules/vending/cola.dm
@@ -31,6 +31,17 @@
machine_name = "RobustMore Softdrinks"
icon_state = "refill_cola"
+/obj/machinery/vending/cola/random
+ name = "\improper Random Drinkies"
+ icon_state = "random_cola"
+ desc = "Uh oh!"
+
+/obj/machinery/vending/cola/random/Initialize()
+ ..()
+ var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
+ new T(loc)
+ return INITIALIZE_HINT_QDEL
+
/obj/machinery/vending/cola/blue
icon_state = "Cola_Machine"
light_mask = "cola-light-mask"
diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm
index 7d5e13a5e5c0..cb9b6b1b9d95 100644
--- a/code/modules/vending/snack.dm
+++ b/code/modules/vending/snack.dm
@@ -26,6 +26,17 @@
/obj/item/vending_refill/snack
machine_name = "RobustMore DrinkFoods LLC"
+/obj/machinery/vending/snack/random
+ name = "\improper Random Snackies"
+ icon_state = "random_snack"
+ desc = "Uh oh!"
+
+/obj/machinery/vending/snack/random/Initialize()
+ ..()
+ var/T = pick(subtypesof(/obj/machinery/vending/snack) - /obj/machinery/vending/snack/random)
+ new T(loc)
+ return INITIALIZE_HINT_QDEL
+
/obj/machinery/vending/snack/blue
icon_state = "snackblue"
diff --git a/config/game_options.txt b/config/game_options.txt
index 005649a1480c..135123b845ad 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -593,8 +593,3 @@ BLUESPACE_JUMP_WAIT 12000
## If admins are allowed to use the authentication server as a regular server for testing
AUTH_ADMIN_TESTING
-
-# A config that skews with the random spawners weights
-# If the value is lower than 1, it'll tend to even out the odds
-# If higher than 1, it'll lean toward common spawns even more.
-RANDOM_LOOT_WEIGHT_MODIFIER 1
diff --git a/html/changelogs/archive/2019-03.yml b/html/changelogs/archive/2019-03.yml
index af4cd2063ffc..b5fd83b8ae4c 100644
--- a/html/changelogs/archive/2019-03.yml
+++ b/html/changelogs/archive/2019-03.yml
@@ -430,7 +430,7 @@
- bugfix: Rolling a 17 on the d20 of fate no longer gives you an empty box.
Basilman:
- bugfix: fixed runtime from selectin missing bodypart due to ran_zone
- - code_imp: changed how ran_zone selects a zone from a switch to pick_weight
+ - code_imp: changed how ran_zone selects a zone from a switch to pickweight
Kierany9:
- bugfix: Added a 15 second grace period after death to prevent people from avoiding
a hivemind host's Reclaim by succumbing.
diff --git a/icons/effects/landmarks_static.dmi b/icons/effects/landmarks_static.dmi
new file mode 100644
index 000000000000..05301f14a831
Binary files /dev/null and b/icons/effects/landmarks_static.dmi differ
diff --git a/icons/effects/mapping/docking_ports.dmi b/icons/effects/mapping/docking_ports.dmi
deleted file mode 100644
index 96909d7bd0f3..000000000000
Binary files a/icons/effects/mapping/docking_ports.dmi and /dev/null differ
diff --git a/icons/effects/mapping/landmarks_static.dmi b/icons/effects/mapping/landmarks_static.dmi
deleted file mode 100644
index 3e51e3f9a6e5..000000000000
Binary files a/icons/effects/mapping/landmarks_static.dmi and /dev/null differ
diff --git a/icons/effects/mapping/mapping_helpers.dmi b/icons/effects/mapping/mapping_helpers.dmi
deleted file mode 100644
index 430ac86c6db5..000000000000
Binary files a/icons/effects/mapping/mapping_helpers.dmi and /dev/null differ
diff --git a/icons/effects/mapping/random_spawners.dmi b/icons/effects/mapping/random_spawners.dmi
deleted file mode 100644
index d6e06fb140d0..000000000000
Binary files a/icons/effects/mapping/random_spawners.dmi and /dev/null differ
diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi
new file mode 100644
index 000000000000..50e88be487b0
Binary files /dev/null and b/icons/effects/mapping_helpers.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index ad875e652365..ba27bd4c8166 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 45e0a73c898a..ae86489bb340 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/shiptest.dme b/shiptest.dme
index 802166bd74c4..b2df9baaaf70 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -1134,28 +1134,12 @@
#include "code\game\objects\effects\spawners\bombspawner.dm"
#include "code\game\objects\effects\spawners\bundle.dm"
#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\lootdrop.dm"
#include "code\game\objects\effects\spawners\mobspawner.dm"
-#include "code\game\objects\effects\spawners\spawner.dm"
#include "code\game\objects\effects\spawners\structure.dm"
-#include "code\game\objects\effects\spawners\random.dm\ai_module.dm"
-#include "code\game\objects\effects\spawners\random.dm\anomaly.dm"
-#include "code\game\objects\effects\spawners\random.dm\bedsheet.dm"
-#include "code\game\objects\effects\spawners\random.dm\boards.dm"
-#include "code\game\objects\effects\spawners\random.dm\bureaucracy.dm"
-#include "code\game\objects\effects\spawners\random.dm\clothing.dm"
-#include "code\game\objects\effects\spawners\random.dm\decoration.dm"
-#include "code\game\objects\effects\spawners\random.dm\engineering.dm"
-#include "code\game\objects\effects\spawners\random.dm\entertainment.dm"
-#include "code\game\objects\effects\spawners\random.dm\exotic.dm"
-#include "code\game\objects\effects\spawners\random.dm\food_or_drink.dm"
-#include "code\game\objects\effects\spawners\random.dm\maintenance.dm"
-#include "code\game\objects\effects\spawners\random.dm\medical.dm"
-#include "code\game\objects\effects\spawners\random.dm\random.dm"
-#include "code\game\objects\effects\spawners\random.dm\salvaging.dm"
-#include "code\game\objects\effects\spawners\random.dm\structure.dm"
-#include "code\game\objects\effects\spawners\random.dm\trash.dm"
-#include "code\game\objects\effects\spawners\random.dm\vending.dm"
-#include "code\game\objects\effects\spawners\random.dm\waste_planet.dm"
+#include "code\game\objects\effects\spawners\traps.dm"
+#include "code\game\objects\effects\spawners\vaultspawner.dm"
+#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm"
#include "code\game\objects\effects\temporary_visuals\cult.dm"
#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm"
#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm"
diff --git a/tools/UpdatePaths/Scripts/17256_NEWFOOD_cakebreadnoodle.txt b/tools/UpdatePaths/Scripts/17256_NEWFOOD_cakebreadnoodle.txt
new file mode 100644
index 000000000000..b8cec913eef2
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/17256_NEWFOOD_cakebreadnoodle.txt
@@ -0,0 +1,22 @@
+/obj/item/food/bread : /obj/item/food/bread/plain{@OLD}
+/obj/item/food/bread/@SUBTYPES : /obj/item/food/bread/@SUBTYPES{@OLD}
+/obj/item/food/breadslice : /obj/item/food/breadslice/plain{@OLD}
+/obj/item/food/breadslice/@SUBTYPES : /obj/item/food/breadslice/@SUBTYPES{@OLD}
+/obj/item/food/cake : /obj/item/food/cake/plain{@OLD}
+/obj/item/food/cake/@SUBTYPES : /obj/item/food/cake/@SUBTYPES{@OLD}
+/obj/item/food/cakeslice : /obj/item/food/cakeslice/plain{@OLD}
+/obj/item/food/cakeslice/@SUBTYPES : /obj/item/food/cakeslice/@SUBTYPES{@OLD}
+
+/obj/item/reagent_containers/food/snacks/cherrycupcake/blue : /obj/item/reagent_containers/food/snacks/cherrycupcake/blue{@OLD}
+
+/obj/item/food/spaghetti : /obj/item/food/spaghetti/raw{@OLD}
+/obj/item/food/spaghetti/@SUBTYPES : /obj/item/food/spaghetti/@SUBTYPES{@OLD}
+
+/obj/item/food/garlicbread : /obj/item/food/garlicbread{@OLD}
+/obj/item/food/butterbiscuit : /obj/item/food/butterbiscuit{@OLD}
+/obj/item/food/butterdog : /obj/item/food/butterdog{@OLD}
+
+/obj/item/food/baguette : /obj/item/food/baguette{@OLD}
+/obj/item/food/baguette/@SUBTYPES : /obj/item/food/baguette/@SUBTYPES{@OLD}
+
+/obj/item/food/deepfryholder : /obj/item/food/deepfryholder{@OLD}
diff --git a/tools/UpdatePaths/Scripts/55614_replacemonkeys.txt b/tools/UpdatePaths/Scripts/55614_replacemonkeys.txt
new file mode 100644
index 000000000000..5057faffbb33
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/55614_replacemonkeys.txt
@@ -0,0 +1,5 @@
+#comment This replaces the monkeys pre-species refactor to the monkeys post-species refactor https://github.com/tgstation/tgstation/pull/55614
+
+/mob/living/carbon/monkey : /mob/living/carbon/human/species/monkey
+/mob/living/carbon/monkey/angry : /mob/living/carbon/human/species/monkey/angry
+/mob/living/carbon/monkey/punpun : /mob/living/carbon/human/species/monkey/punpun
diff --git a/tools/UpdatePaths/Scripts/55658_apc_pixel_offsets.txt b/tools/UpdatePaths/Scripts/55658_apc_pixel_offsets.txt
new file mode 100644
index 000000000000..30b5ba2d5d92
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/55658_apc_pixel_offsets.txt
@@ -0,0 +1,4 @@
+/obj/machinery/power/apc/@SUBTYPES{dir = 1} : @OLD{@OLD; pixel_y = 23}
+/obj/machinery/power/apc/@SUBTYPES{dir = 2} : @OLD{@OLD; pixel_y = -23}
+/obj/machinery/power/apc/@SUBTYPES{dir = 4} : @OLD{@OLD; pixel_x = 24}
+/obj/machinery/power/apc/@SUBTYPES{dir = 8} : @OLD{@OLD; pixel_x = -25}
diff --git a/tools/UpdatePaths/Scripts/55658_cornersfix.txt b/tools/UpdatePaths/Scripts/55658_cornersfix.txt
new file mode 100644
index 000000000000..d9ff8a20232b
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/55658_cornersfix.txt
@@ -0,0 +1,30 @@
+/obj/effect/turf_decal/stripes/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/stripes/corner {dir=2} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/stripes/corner {dir=4} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=1}
+/obj/effect/turf_decal/stripes/corner {dir=8} : /obj/effect/turf_decal/stripes/corner {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/corner {@OLD}
+/obj/effect/turf_decal/stripes/red/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/stripes/red/corner {dir=2} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/stripes/red/corner {dir=4} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=1}
+/obj/effect/turf_decal/stripes/red/corner {dir=8} : /obj/effect/turf_decal/stripes/red/corner {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/red/corner {@OLD}
+/obj/effect/turf_decal/stripes/white/corner {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/stripes/white/corner {dir=2} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/stripes/white/corner {dir=4} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=1}
+/obj/effect/turf_decal/stripes/white/corner {dir=8} : /obj/effect/turf_decal/stripes/white/corner {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/stripes/white/corner {@OLD}
+/obj/effect/turf_decal/box/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/box/corners {dir=2} : /obj/effect/turf_decal/box/corners {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/box/corners {dir=4} : /obj/effect/turf_decal/box/corners {@OLD;dir=1}
+/obj/effect/turf_decal/box/corners {dir=8} : /obj/effect/turf_decal/box/corners {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/corners {@OLD}
+/obj/effect/turf_decal/box/red/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/box/red/corners {dir=2} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/box/red/corners {dir=4} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=1}
+/obj/effect/turf_decal/box/red/corners {dir=8} : /obj/effect/turf_decal/box/red/corners {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/red/corners {@OLD}
+/obj/effect/turf_decal/box/white/corners {dir=1} : /obj/item/bear_armor {@OLD;dir=8}
+/obj/effect/turf_decal/box/white/corners {dir=2} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=@SKIP}
+/obj/effect/turf_decal/box/white/corners {dir=4} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=1}
+/obj/effect/turf_decal/box/white/corners {dir=8} : /obj/effect/turf_decal/box/white/corners {@OLD;dir=4}
+/obj/item/bear_armor {dir=8} : /obj/effect/turf_decal/box/white/corners {@OLD}
\ No newline at end of file
diff --git a/tools/UpdatePaths/Scripts/56644_turfs2decals.txt b/tools/UpdatePaths/Scripts/56644_turfs2decals.txt
new file mode 100644
index 000000000000..fa330ce089eb
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/56644_turfs2decals.txt
@@ -0,0 +1,467 @@
+/turf/open/floor/circuit/killroom : /turf/open/floor/circuit/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/airless/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/iron/airless {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/airless/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/iron/airless {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=1} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/arrival {dir=@UNSET} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=2} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=4} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=5} : /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/cafeteria {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=6} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival {dir=8} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/arrival {dir=9} : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/arrival {dir=10} : /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/cafeteria {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival/corner {dir=1} : /turf/open/floor/iron/white/corner {@OLD}
+/turf/open/floor/plasteel/arrival/corner {dir=@UNSET} : /turf/open/floor/iron/white/corner {@OLD}
+/turf/open/floor/plasteel/arrival/corner {dir=2} : /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival/corner {dir=4} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/arrival/corner {dir=8} : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/asteroid : /obj/effect/turf_decal/sand , /turf/open/floor/iron
+/turf/open/floor/plasteel/bar : /obj/effect/turf_decal/tile/bar , /obj/effect/turf_decal/tile/bar {dir=1} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/barber : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/cafeteria {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/blueyellow/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brown/telecomms/mainframe {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/brownold/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/caution {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=2} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/checker {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=6} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/caution {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/corner {@OLD;dir=1}
+/turf/open/floor/plasteel/caution {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/checker {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution/corner {dir=1} : /turf/open/floor/iron/dark/corner {@OLD}
+/turf/open/floor/plasteel/caution/corner {dir=@UNSET} : /turf/open/floor/iron/dark/corner {@OLD}
+/turf/open/floor/plasteel/caution/corner {dir=2} : /turf/open/floor/iron/dark/corner {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution/corner {dir=4} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/caution/corner {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/cmo : /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/dark/telecomms/mainframe : /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/dark/telecomms/server : /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/dark/telecomms/server/walkway : /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=1} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=@UNSET} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=2} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=4} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=5} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=6} : /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=8} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=9} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown {dir=4} , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/side {dir=10} : /obj/effect/turf_decal/tile/brown {dir=1} , /obj/effect/turf_decal/tile/brown , /obj/effect/turf_decal/tile/brown {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkbrown/corner : /obj/effect/turf_decal/tile/brown {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkgreen/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkpurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkred/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/darkyellow/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=1} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/iron/escape {dir=@UNSET} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=2} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=4} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=5} : /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/cafeteria {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=6} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape {dir=8} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/iron/escape {dir=9} : /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white/corner {@OLD;dir=1}
+/turf/open/floor/iron/escape {dir=10} : /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/cafeteria {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape/corner {dir=1} : /turf/open/floor/iron/white/corner {@OLD}
+/turf/open/floor/iron/escape/corner {dir=@UNSET} : /turf/open/floor/iron/white/corner {@OLD}
+/turf/open/floor/iron/escape/corner {dir=2} : /turf/open/floor/iron/white/corner {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape/corner {dir=4} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/iron/escape/corner {dir=8} : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/green/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/greenyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/hydrofloor : /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/neutral/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/orange/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/purple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/red/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/redside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redblue/blueside {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redgreen/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/redyellow/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/airless : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark/airless {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/snowdin : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark/snowdin {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/telecomms : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/telecomms/mainframe : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/killroom : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=1} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=@UNSET} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=2} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=4} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=5} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=6} : /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=8} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=9} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral {dir=4} , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/side {dir=10} : /obj/effect/turf_decal/tile/neutral {dir=1} , /obj/effect/turf_decal/tile/neutral , /obj/effect/turf_decal/tile/neutral {dir=8} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/vault/corner : /obj/effect/turf_decal/tile/neutral {dir=@OLD} , /turf/open/floor/iron/dark {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/corner : /obj/effect/turf_decal/tile/blue {dir=@OLD} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue {dir=4} , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteblue/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/blue {dir=1} , /obj/effect/turf_decal/tile/blue , /obj/effect/turf_decal/tile/blue {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=1} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=@UNSET} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=2} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=4} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=5} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=6} : /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=8} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=9} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green {dir=4} , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/side {dir=10} : /obj/effect/turf_decal/tile/green {dir=1} , /obj/effect/turf_decal/tile/green , /obj/effect/turf_decal/tile/green {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitegreen/corner : /obj/effect/turf_decal/tile/green {dir=@OLD} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/corner : /obj/effect/turf_decal/tile/purple {dir=@OLD} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=1} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=@UNSET} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=2} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=4} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=5} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=6} : /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=8} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=9} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple {dir=4} , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitepurple/side/telecomms {dir=10} : /obj/effect/turf_decal/tile/purple {dir=1} , /obj/effect/turf_decal/tile/purple , /obj/effect/turf_decal/tile/purple {dir=8} , /turf/open/floor/iron/white/telecomms {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=1} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=@UNSET} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=2} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=4} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=5} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=6} : /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=8} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=9} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red {dir=4} , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/side {dir=10} : /obj/effect/turf_decal/tile/red {dir=1} , /obj/effect/turf_decal/tile/red , /obj/effect/turf_decal/tile/red {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whitered/corner : /obj/effect/turf_decal/tile/red {dir=@OLD} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/whiteyellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron/white {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=1} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=@UNSET} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=2} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=4} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=5} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=6} : /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=8} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=9} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow {dir=4} , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/side {dir=10} : /obj/effect/turf_decal/tile/yellow {dir=1} , /obj/effect/turf_decal/tile/yellow , /obj/effect/turf_decal/tile/yellow {dir=8} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plasteel/yellow/corner : /obj/effect/turf_decal/tile/yellow {dir=@OLD} , /turf/open/floor/iron {@OLD;dir=@SKIP}
+/turf/open/floor/plating/airless/astplate : /obj/effect/turf_decal/sand/plating , /turf/open/floor/plating/airless {@OLD;dir=@SKIP}
+/turf/open/floor/plating/astplate : /obj/effect/turf_decal/sand/plating , /turf/open/floor/plating {@OLD;dir=@SKIP}
\ No newline at end of file
diff --git a/tools/UpdatePaths/Scripts/59820_replaceplasteelturf.txt b/tools/UpdatePaths/Scripts/59820_replaceplasteelturf.txt
new file mode 100644
index 000000000000..1f3db958ca5f
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/59820_replaceplasteelturf.txt
@@ -0,0 +1,50 @@
+/turf/open/floor/plasteel : /turf/open/floor/iron {@OLD}
+/turf/open/floor/plasteel/airless : /turf/open/floor/iron/airless {@OLD}
+/turf/open/floor/plasteel/airless/cafeteria : /turf/open/floor/iron/cafeteria/airless {@OLD}
+/turf/open/floor/plasteel/airless/dark : /turf/open/floor/iron/dark/airless {@OLD}
+/turf/open/floor/plasteel/airless/showroomfloor : /turf/open/floor/iron/showroomfloor/airless {@OLD}
+/turf/open/floor/plasteel/airless/solarpanel : /turf/open/floor/iron/solarpanel/airless {@OLD}
+/turf/open/floor/plasteel/airless/white : /turf/open/floor/iron/white/airless {@OLD}
+/turf/open/floor/plasteel/airless/white/corner : /turf/open/floor/iron/white/corner/airless {@OLD}
+/turf/open/floor/plasteel/airless/white/side : /turf/open/floor/iron/white/side/airless {@OLD}
+/turf/open/floor/plasteel/bluespace : /turf/open/floor/iron/bluespace {@OLD}
+/turf/open/floor/plasteel/cafeteria : /turf/open/floor/iron/cafeteria {@OLD}
+/turf/open/floor/plasteel/chapel : /turf/open/floor/iron/chapel {@OLD}
+/turf/open/floor/plasteel/checker : /turf/open/floor/iron/checker {@OLD}
+/turf/open/floor/plasteel/cult : /turf/open/floor/cult {@OLD}
+/turf/open/floor/plasteel/cult/airless : /turf/open/floor/cult/airless {@OLD}
+/turf/open/floor/plasteel/dark : /turf/open/floor/iron/dark {@OLD}
+/turf/open/floor/plasteel/dark/airless : /turf/open/floor/iron/dark/airless {@OLD}
+/turf/open/floor/plasteel/dark/corner : /turf/open/floor/iron/dark/corner {@OLD}
+/turf/open/floor/plasteel/dark/side : /turf/open/floor/iron/dark/side {@OLD}
+/turf/open/floor/plasteel/dark/snowdin : /turf/open/floor/iron/dark/snowdin {@OLD}
+/turf/open/floor/plasteel/dark/telecomms : /turf/open/floor/iron/dark/telecomms {@OLD}
+/turf/open/floor/plasteel/elevatorshaft : /turf/open/floor/plating/elevatorshaft {@OLD}
+/turf/open/floor/plasteel/freezer : /turf/open/floor/iron/freezer {@OLD}
+/turf/open/floor/plasteel/freezer/airless : /turf/open/floor/iron/freezer/airless {@OLD}
+/turf/open/floor/plasteel/goonplaque : /turf/open/floor/iron/goonplaque {@OLD}
+/turf/open/floor/plasteel/grimy : /turf/open/floor/iron/grimy {@OLD}
+/turf/open/floor/plasteel/icemoon : /turf/open/floor/iron/icemoon {@OLD}
+/turf/open/floor/plasteel/kitchen_coldroom : /turf/open/floor/iron/kitchen_coldroom {@OLD}
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor : /turf/open/floor/iron/kitchen_coldroom/freezerfloor {@OLD}
+/turf/open/floor/plasteel/recharge_floor : /turf/open/floor/iron/recharge_floor {@OLD}
+/turf/open/floor/plasteel/recharge_floor/asteroid : /turf/open/floor/iron/recharge_floor/asteroid {@OLD}
+/turf/open/floor/plasteel/rockvault : /turf/open/floor/vault/rock {@OLD}
+/turf/open/floor/plasteel/rockvault/alien : /turf/open/floor/vault/alien {@OLD}
+/turf/open/floor/plasteel/rockvault/sandstone : /turf/open/floor/vault/sandstone {@OLD}
+/turf/open/floor/plasteel/sepia : /turf/open/floor/iron/sepia {@OLD}
+/turf/open/floor/plasteel/showroomfloor : /turf/open/floor/iron/showroomfloor {@OLD}
+/turf/open/floor/plasteel/solarpanel : /turf/open/floor/iron/solarpanel {@OLD}
+/turf/open/floor/plasteel/stairs : /turf/open/floor/iron/stairs {@OLD}
+/turf/open/floor/plasteel/stairs/left : /turf/open/floor/iron/stairs/left {@OLD}
+/turf/open/floor/plasteel/stairs/medium : /turf/open/floor/iron/stairs/medium {@OLD}
+/turf/open/floor/plasteel/stairs/old : /turf/open/floor/iron/stairs/old {@OLD}
+/turf/open/floor/plasteel/stairs/right : /turf/open/floor/iron/stairs/right {@OLD}
+/turf/open/floor/plasteel/telecomms : /turf/open/floor/iron/telecomms {@OLD}
+/turf/open/floor/plasteel/vaporwave : /turf/open/floor/iron/vaporwave {@OLD}
+/turf/open/floor/plasteel/white : /turf/open/floor/iron/white {@OLD}
+/turf/open/floor/plasteel/white/corner : /turf/open/floor/iron/white/corner {@OLD}
+/turf/open/floor/plasteel/white/side : /turf/open/floor/iron/white/side {@OLD}
+/turf/open/floor/plasteel/white/telecomms : /turf/open/floor/iron/white/telecomms {@OLD}
+/turf/open/floor/plasteel/yellowsiding : /turf/open/floor/iron/yellowsiding, /obj/effect/turf_decal/siding/yellow {@OLD}
+/turf/open/floor/plasteel/yellowsiding/corner : /turf/open/floor/iron/yellowsiding/corner, /obj/effect/turf_decal/siding/yellow/corner {@OLD}
diff --git a/tools/UpdatePaths/Scripts/3526_replace_spawners.txt b/tools/UpdatePaths/Scripts/60522_replace_spawners.txt
similarity index 62%
rename from tools/UpdatePaths/Scripts/3526_replace_spawners.txt
rename to tools/UpdatePaths/Scripts/60522_replace_spawners.txt
index 831d337edeb6..9c7a34bd396c 100644
--- a/tools/UpdatePaths/Scripts/3526_replace_spawners.txt
+++ b/tools/UpdatePaths/Scripts/60522_replace_spawners.txt
@@ -1,67 +1,83 @@
#comment This replaces the effect/spawner paths to the new refactored paths https://github.com/tgstation/tgstation/pull/60522
-
/obj/effect/loot_site_spawner : /obj/effect/spawner/random/structure/crate
-/obj/effect/spawner/lootdrop/aimodule_harmful : /obj/effect/spawner/random/aimodule/harmful
+/obj/effect/spawner/lootdrop/costume : /obj/effect/spawner/random/clothing/costume
+/obj/effect/spawner/lootdrop/mafia_outfit : /obj/effect/spawner/random/clothing/mafia_outfit
+/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask : /obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask
+/obj/effect/spawner/lootdrop/minor/pirate_or_bandana : /obj/effect/spawner/random/clothing/pirate_or_bandana
+/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears : /obj/effect/spawner/random/clothing/kittyears_or_rabbitears
+/obj/effect/spawner/lootdrop/minor/bowler_or_that : /obj/effect/spawner/random/clothing/bowler_or_that
+/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears : /obj/effect/spawner/random/clothing/beret_or_rabbitears
+/obj/effect/spawner/bundle/hobo_squat : /obj/effect/spawner/random/trash/hobo_squat
+/obj/effect/spawner/bundle/moisture_trap : /obj/effect/spawner/random/trash/moisture_trap
+/obj/effect/spawner/lootdrop/maint_drugs : /obj/effect/spawner/random/entertainment/drugs
+/obj/effect/spawner/lootdrop/grille_or_trash : /obj/effect/spawner/random/trash/grille_or_waste
+/obj/effect/spawner/lootdrop/botanical_waste : /obj/effect/spawner/random/trash/botanical_waste
+/obj/effect/spawner/lootdrop/food_packaging : /obj/effect/spawner/random/trash/food_packaging
+/obj/effect/spawner/lootdrop/cigbutt : /obj/effect/spawner/random/trash/cigbutt
+/obj/effect/spawner/lootdrop/garbage_spawner : /obj/effect/spawner/random/trash/garbage
+/obj/effect/spawner/lootdrop/gambling : /obj/effect/spawner/random/entertainment/gambling
+/obj/effect/spawner/lootdrop/wallet_loot : /obj/effect/spawner/random/entertainment/wallet_storage
+/obj/effect/spawner/lootdrop/organ_spawner : /obj/effect/spawner/random/medical/organs
+/obj/effect/spawner/lootdrop/memeorgans : /obj/effect/spawner/random/medical/memeorgans
+/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner : /obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner
+/obj/effect/spawner/lootdrop/three_course_meal : /obj/effect/spawner/random/food_or_drink/three_course_meal
+/obj/effect/spawner/lootdrop/refreshing_beverage : /obj/effect/spawner/random/food_or_drink/refreshing_beverage
+/obj/effect/spawner/lootdrop/donkpockets : /obj/effect/spawner/random/food_or_drink/donkpockets
+/obj/effect/spawner/lootdrop/space/rareseed : /obj/effect/spawner/random/food_or_drink/seed_rare
+/obj/effect/spawner/lootdrop/space/cashmoney : /obj/effect/spawner/random/entertainment/money_large
+/obj/effect/spawner/lootdrop/space/fancytool/raremedicalonly : /obj/effect/spawner/random/medical/surgery_tool_alien
+/obj/effect/spawner/lootdrop/space/fancytool/advmedicalonly : /obj/effect/spawner/random/medical/surgery_tool_advanced
+/obj/effect/spawner/lootdrop/space/fancytool/engineonly : /obj/effect/spawner/random/engineering/tool_advanced
+/obj/effect/spawner/lootdrop/space/material : /obj/effect/spawner/random/engineering/material_rare
+/obj/effect/spawner/lootdrop/decorative_material : /obj/effect/spawner/random/decoration/material
+/obj/effect/spawner/lootdrop/maintenance_carpet : /obj/effect/spawner/random/decoration/carpet
+/obj/effect/spawner/lootdrop/decorations_spawner : /obj/effect/spawner/random/decoration/generic
/obj/effect/spawner/lootdrop/aimodule_harmless : /obj/effect/spawner/random/aimodule/harmless
/obj/effect/spawner/lootdrop/aimodule_neutral : /obj/effect/spawner/random/aimodule/neutral
+/obj/effect/spawner/lootdrop/aimodule_harmful : /obj/effect/spawner/random/aimodule/harmful
+/obj/effect/spawner/lootdrop/techstorage/service : /obj/effect/spawner/random/techstorage/service_all
+/obj/effect/spawner/lootdrop/techstorage/rnd : /obj/effect/spawner/random/techstorage/rnd_all
+/obj/effect/spawner/lootdrop/techstorage/security : /obj/effect/spawner/random/techstorage/security_all
+/obj/effect/spawner/lootdrop/techstorage/engineering : /obj/effect/spawner/random/techstorage/engineering_all
+/obj/effect/spawner/lootdrop/techstorage/tcomms : /obj/effect/spawner/random/techstorage/tcomms_all
+/obj/effect/spawner/lootdrop/techstorage/medical : /obj/effect/spawner/random/techstorage/medical_all
+/obj/effect/spawner/lootdrop/techstorage/ai : /obj/effect/spawner/random/techstorage/ai_all
+/obj/effect/spawner/lootdrop/techstorage/command : /obj/effect/spawner/random/techstorage/command_all
+/obj/effect/spawner/lootdrop/techstorage/rnd_secure : /obj/effect/spawner/random/techstorage/rnd_secure_all
+/obj/effect/spawner/lootdrop/prison_contraband : /obj/effect/spawner/random/contraband/prison
+/obj/effect/spawner/lootdrop/armory_contraband : /obj/effect/spawner/random/contraband/armory
+/obj/effect/spawner/lootdrop/armory_contraband/metastation : /obj/effect/spawner/random/contraband/armory
+/obj/effect/spawner/lootdrop/armory_contraband/donutstation : /obj/effect/spawner/random/contraband/armory
+/obj/effect/spawner/lootdrop/gross_decal_spawner : /obj/effect/spawner/random/trash/mess
+/obj/effect/spawner/scatter/grime : /obj/effect/spawner/random/trash/grime
+/obj/effect/spawner/scatter/moisture : /obj/effect/spawner/random/trash/moisture
+/obj/effect/spawner/lootdrop/space/fancytech : /obj/effect/spawner/random/exotic/technology
+/obj/effect/spawner/lootdrop/space/languagebook : /obj/effect/spawner/random/exotic/languagebook
+/obj/effect/spawner/lootdrop/space/syndiecosmetic : /obj/effect/spawner/random/exotic/syndie
+/obj/effect/spawner/lootdrop/space/fancytool : /obj/effect/spawner/random/exotic/tool
+/obj/effect/spawner/randomarcade : /obj/effect/spawner/random/entertainment/arcade
+/obj/effect/spawner/randomsnackvend : /obj/effect/spawner/random/vending/snackvend
+/obj/effect/spawner/randomcolavend : /obj/effect/spawner/random/vending/colavend
/obj/effect/spawner/lootdrop/arcade_boards : /obj/effect/spawner/random/techstorage/arcade_boards
-/obj/effect/spawner/lootdrop/armory_contraband : /obj/effect/spawner/random/exotic/armory
-/obj/effect/spawner/lootdrop/armory_contraband/donutstation : /obj/effect/spawner/random/exotic/armory
-/obj/effect/spawner/lootdrop/armory_contraband/metastation : /obj/effect/spawner/random/exotic/armory
-/obj/effect/spawner/lootdrop/botanical_waste : /obj/effect/spawner/random/trash/decal/botanical_waste
-/obj/effect/spawner/lootdrop/cigbutt : /obj/effect/spawner/random/trash/decal/cigbutt
-/obj/effect/spawner/lootdrop/costume : /obj/effect/spawner/random/clothing/costume
/obj/effect/spawner/lootdrop/crate_spawner : /obj/effect/spawner/random/structure/crate_abandoned
-/obj/effect/spawner/lootdrop/decorations_spawner : /obj/effect/spawner/random/decoration/generic
-/obj/effect/spawner/lootdrop/decorative_material : /obj/effect/spawner/random/decoration/material
-/obj/effect/spawner/lootdrop/donkpockets : /obj/effect/spawner/random/food_or_drink/donkpockets
-/obj/effect/spawner/lootdrop/donut : /obj/effect/spawner/random/food_or_drink/donut
-/obj/effect/spawner/lootdrop/food_packaging : /obj/effect/spawner/random/trash/decal/food_packaging
-/obj/effect/spawner/lootdrop/gambling : /obj/effect/spawner/random/entertainment/gambling
-/obj/effect/spawner/lootdrop/garbage_spawner : /obj/effect/spawner/random/trash/decal/garbage
-/obj/effect/spawner/lootdrop/garden/seaweed : /obj/effect/spawner/random/food_or_drink/garden/seaweed
-/obj/effect/spawner/lootdrop/gloves : /obj/effect/spawner/random/clothing/gloves
-/obj/effect/spawner/lootdrop/glowstick : /obj/effect/spawner/random/decoration/glowstick
-/obj/effect/spawner/lootdrop/grille_or_trash : /obj/effect/spawner/random/trash/grille_or_waste
-/obj/effect/spawner/lootdrop/gross_decal_spawner : /obj/effect/spawner/random/trash/decal/mess
-/obj/effect/spawner/lootdrop/lizardboots : /obj/effect/spawner/random/clothing/lizardboots
-/obj/effect/spawner/lootdrop/mafia_outfit : /obj/effect/spawner/random/clothing/mafia_outfit
-/obj/effect/spawner/lootdrop/maint_drugs : /obj/effect/spawner/random/entertainment/drugs
/obj/effect/spawner/lootdrop/maintenance : /obj/effect/spawner/random/maintenance
-/obj/effect/spawner/lootdrop/maintenance_carpet : /obj/effect/spawner/random/decoration/carpet
-/obj/effect/spawner/lootdrop/maintenance/eight : /obj/effect/spawner/random/maintenance/eight
-/obj/effect/spawner/lootdrop/maintenance/five : /obj/effect/spawner/random/maintenance/five
+/obj/effect/spawner/lootdrop/maintenance/two : /obj/effect/spawner/random/maintenance/two
+/obj/effect/spawner/lootdrop/maintenance/three : /obj/effect/spawner/random/maintenance/three
/obj/effect/spawner/lootdrop/maintenance/four : /obj/effect/spawner/random/maintenance/four
-/obj/effect/spawner/lootdrop/maintenance/seven : /obj/effect/spawner/random/maintenance/seven
+/obj/effect/spawner/lootdrop/maintenance/five : /obj/effect/spawner/random/maintenance/five
/obj/effect/spawner/lootdrop/maintenance/six : /obj/effect/spawner/random/maintenance/six
-/obj/effect/spawner/lootdrop/maintenance/three : /obj/effect/spawner/random/maintenance/three
-/obj/effect/spawner/lootdrop/maintenance/two : /obj/effect/spawner/random/maintenance/two
-/obj/effect/spawner/lootdrop/memeorgans : /obj/effect/spawner/random/medical/memeorgans
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears : /obj/effect/spawner/random/clothing/beret_or_rabbitears
-/obj/effect/spawner/lootdrop/minor/bowler_or_that : /obj/effect/spawner/random/clothing/bowler_or_that
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears : /obj/effect/spawner/random/clothing/kittyears_or_rabbitears
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana : /obj/effect/spawner/random/clothing/pirate_or_bandana
-/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask : /obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask
-/obj/effect/spawner/lootdrop/organ_spawner : /obj/effect/spawner/random/medical/organs
-/obj/effect/spawner/lootdrop/prison_contraband : /obj/effect/spawner/random/exotic/prison_contraband
-/obj/effect/spawner/lootdrop/ration : /obj/effect/spawner/random/food_or_drink/ration
-/obj/effect/spawner/lootdrop/techstorage/ai : /obj/effect/spawner/random/techstorage/ai_all
-/obj/effect/spawner/lootdrop/techstorage/command : /obj/effect/spawner/random/techstorage/command
-/obj/effect/spawner/lootdrop/techstorage/engineering : /obj/effect/spawner/random/techstorage/engineering
-/obj/effect/spawner/lootdrop/techstorage/medical : /obj/effect/spawner/random/techstorage/medical
-/obj/effect/spawner/lootdrop/techstorage/rnd : /obj/effect/spawner/random/techstorage/rnd
-/obj/effect/spawner/lootdrop/techstorage/rnd_secure : /obj/effect/spawner/random/techstorage/rnd_secure
-/obj/effect/spawner/lootdrop/techstorage/security : /obj/effect/spawner/random/techstorage/security
-/obj/effect/spawner/lootdrop/techstorage/service : /obj/effect/spawner/random/techstorage/service
-/obj/effect/spawner/lootdrop/techstorage/tcomms : /obj/effect/spawner/random/techstorage/tcomms
-/obj/effect/spawner/lootdrop/three_course_meal : /obj/effect/spawner/random/food_or_drink/three_course_meal
-/obj/effect/spawner/lootdrop/wallet_loot : /obj/effect/spawner/random/entertainment/wallet_storage
-/obj/effect/spawner/lootdrop/waste/trash : /obj/effect/spawner/random/trash/decal
+/obj/effect/spawner/lootdrop/maintenance/seven : /obj/effect/spawner/random/maintenance/seven
+/obj/effect/spawner/lootdrop/maintenance/eight : /obj/effect/spawner/random/maintenance/eight
+/obj/effect/spawner/lootdrop/gloves : /obj/effect/spawner/random/clothing/gloves
+/obj/effect/spawner/lootdrop/glowstick : /obj/effect/spawner/random/decoration/glowstick
+/obj/effect/spawner/lootdrop/lizardboots : /obj/effect/spawner/random/clothing/lizardboots
+/obj/effect/spawner/lootdrop/pizzaparty : /obj/effect/spawner/random/food_or_drink/pizzaparty
+/obj/effect/spawner/lootdrop/snowdin/dungeonlite : /obj/effect/spawner/random/exotic/antag_gear_weak
+/obj/effect/spawner/lootdrop/snowdin/dungeonmid : /obj/effect/spawner/random/exotic/antag_gear
+/obj/effect/spawner/lootdrop/snowdin/dungeonheavy : /obj/effect/spawner/random/exotic/antag_gear_strong
+/obj/effect/spawner/lootdrop/snowdin/dungeonmisc : /obj/effect/spawner/random/exotic/snow_gear
+/obj/effect/spawner/lootdrop/seed_vault : /obj/effect/spawner/random/food_or_drink/seed_vault
/obj/effect/spawner/lootdrop/whiteship_cere_ripley : /obj/effect/spawner/random/exotic/ripley
-/obj/effect/spawner/randomarcade : /obj/effect/spawner/random/entertainment/arcade
-/obj/machinery/vending/cola/random : /obj/effect/spawner/random/vending/cola
-/obj/machinery/vending/snack/random : /obj/effect/spawner/random/vending/snack
-/obj/item/bedsheet/dorms : /obj/effect/spawner/random/bedsheet
-/obj/item/bedsheet/dorms/double : /obj/effect/spawner/random/bedsheet/double
-/obj/item/bedsheet/random : /obj/effect/spawner/random/bedsheet
+
+
diff --git a/tools/UpdatePaths/Scripts/60619_toxins_to_plasma.txt b/tools/UpdatePaths/Scripts/60619_toxins_to_plasma.txt
new file mode 100644
index 000000000000..bb1b4bb2935d
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/60619_toxins_to_plasma.txt
@@ -0,0 +1,38 @@
+/obj/machinery/airlock_sensor/incinerator_toxmix : /obj/machinery/airlock_sensor/incinerator_ordmix
+/obj/machinery/button/door/incinerator_vent_toxmix : /obj/machinery/button/door/incinerator_vent_ordmix
+/obj/machinery/button/ignition/incinerator/toxmix : /obj/machinery/button/ignition/incinerator/ordmix
+/obj/machinery/camera/preset/toxins : /obj/machinery/camera/preset/ordnance
+/obj/machinery/air_sensor/atmos/toxins_mixing_tank : /obj/machinery/air_sensor/atmos/ordnance_mixing_tank
+/obj/machinery/computer/atmos_control/toxinsmix : /obj/machinery/computer/atmos_control/ordnancemix
+/obj/machinery/computer/security/telescreen/toxins : /obj/machinery/computer/security/telescreen/ordnance
+/obj/machinery/computer/pod/old/mass_driver_controller/toxinsdriver : /obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver
+/obj/machinery/computer/pod/old/mass_driver_controller/toxinsdriver/longrange : /obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver/longrange
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior : /obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior : /obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior
+/obj/machinery/door/poddoor/incinerator_toxmix : /obj/machinery/door/poddoor/incinerator_ordmix
+/obj/machinery/door/poddoor/massdriver_toxins : /obj/machinery/door/poddoor/massdriver_ordnance
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix : /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_ordmix
+/obj/machinery/igniter/incinerator_toxmix : /obj/machinery/igniter/incinerator_ordmix
+/obj/machinery/sparker/toxmix : /obj/machinery/sparker/ordmix
+/obj/machinery/mass_driver/toxins : /obj/machinery/mass_driver/ordnance
+/obj/item/circuitboard/computer/atmos_control/toxinsmix : /obj/item/circuitboard/computer/atmos_control/ordnancemix
+/obj/item/circuitboard/computer/atmos_control/tank/toxin_tank : /obj/item/circuitboard/computer/atmos_control/tank/plasma_tank
+/obj/machinery/computer/atmos_control/tank/toxin_tank : /obj/machinery/computer/atmos_control/tank/plasma_tank
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix : /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input : /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/ordnance_mixing_input
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output : /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/ordnance_mixing_output
+
+/obj/machinery/portable_atmospherics/canister/toxins : /obj/machinery/portable_atmospherics/canister/plasma
+/obj/machinery/air_sensor/atmos/toxin_tank : /obj/machinery/air_sensor/atmos/plasma_tank
+/obj/machinery/computer/atmos_control/tank/toxin_tank : /obj/machinery/computer/atmos_control/tank/plasma_tank
+/obj/machinery/atmospherics/components/tank/toxins : /obj/machinery/atmospherics/components/tank/plasma
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input : /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/plasma_input
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output : /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/plasma_output
+/obj/machinery/atmospherics/miner/toxins : /obj/machinery/atmospherics/miner/plasma
+
+/obj/item/storage/backpack/satchel/tox : /obj/item/storage/backpack/satchel/science
+/obj/item/cartridge/signal/toxins : /obj/item/cartridge/signal/ordnance
+/obj/item/pda/toxins : /obj/item/pda/science
+/obj/item/book/manual/wiki/toxins : /obj/item/book/manual/wiki/ordnance
+/obj/item/storage/backpack/duffelbag/toxins : /obj/item/storage/backpack/duffelbag/science
+/obj/item/paper/fluff/jobs/toxins/chemical_info : /obj/item/paper/fluff/jobs/ordnance/chemical_info
diff --git a/tools/UpdatePaths/Scripts/61694_reinforcedwindows.txt b/tools/UpdatePaths/Scripts/61694_reinforcedwindows.txt
new file mode 100644
index 000000000000..c084b6bf87b1
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/61694_reinforcedwindows.txt
@@ -0,0 +1,35 @@
+#This replaces the window/shuttle and window/plasma/reinforced with the refactors from https://github.com/tgstation/tgstation/pull/61694#pullrequestreview-763648844
+
+/obj/structure/window/plasma/reinforced : /obj/structure/window/reinforced/plasma
+/obj/structure/window/plasma/reinforced/fulltile : /obj/structure/window/reinforced/plasma/fulltile
+/obj/structure/window/plasma/reinforced/unanchored : /obj/structure/window/reinforced/plasma/unanchored
+/obj/structure/window/plasma/reinforced/fulltile/unanchored : /obj/structure/window/reinforced/plasma/fulltile/unanchored
+/obj/structure/window/plasma/reinforced/plastitanium : /obj/structure/window/reinforced/plasma/plastitanium
+/obj/structure/window/plasma/reinforced/plastitanium/unanchored : /obj/structure/window/reinforced/plasma/plastitanium/unanchored
+
+/obj/structure/window/shuttle : /obj/structure/window/reinforced/shuttle
+/obj/structure/window/shuttle/unanchored : /obj/structure/window/reinforced/shuttle/unanchored
+/obj/structure/window/shuttle/tinted : /obj/structure/window/reinforced/shuttle/tinted
+/obj/structure/window/shuttle/survival_pod : /obj/structure/window/reinforced/shuttle/survival_pod
+
+/obj/structure/window/shuttle/survival_pod/spawner/east : /obj/structure/window/reinforced/shuttle/survival_pod/spawner/east
+/obj/structure/window/shuttle/survival_pod/spawner/west : /obj/structure/window/reinforced/shuttle/survival_pod/spawner/west
+/obj/structure/window/shuttle/survival_pod/spawner/north : /obj/structure/window/reinforced/shuttle/survival_pod/spawner/north
+
+/obj/structure/window/plasma/reinforced/spawner/north : /obj/structure/window/reinforced/plasma/spawner/north
+/obj/structure/window/plasma/reinforced/spawner/east : /obj/structure/window/reinforced/plasma/spawner/east
+/obj/structure/window/plasma/reinforced/spawner/west : /obj/structure/window/reinforced/plasma/spawner/west
+/obj/effect/spawner/structure/window/shuttle : /obj/effect/spawner/structure/window/reinforced/shuttle
+
+/obj/effect/spawner/structure/window/hollow/plasma/reinforced : /obj/effect/spawner/structure/window/hollow/reinforced/plasma
+/obj/effect/spawner/structure/window/hollow/plasma/reinforced/end : /obj/effect/spawner/structure/window/hollow/reinforced/plasma/end
+/obj/effect/spawner/structure/window/hollow/plasma/reinforced/middle : /obj/effect/spawner/structure/window/hollow/reinforced/plasma/middle
+/obj/effect/spawner/structure/window/hollow/plasma/reinforced/directional : /obj/effect/spawner/structure/window/hollow/reinforced/plasma/directional
+/obj/effect/spawner/structure/window/plasma/reinforced : /obj/effect/spawner/structure/window/reinforced/plasma/reinforced
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium : /obj/effect/spawner/structure/window/reinforced/plasma/plastitanium
+
+
+/obj/structure/window/plasma/reinforced/spawner/east : /obj/structure/window/reinforced/plasma/spawner/east
+/obj/structure/window/plasma/reinforced/spawner/west : /obj/structure/window/reinforced/plasma/spawner/west
+/obj/structure/window/plasma/reinforced/spawner/north : /obj/structure/window/reinforced/plasma/spawner/north
+
diff --git a/tools/UpdatePaths/Scripts/62601_wallitems_f2w.txt b/tools/UpdatePaths/Scripts/62601_wallitems_f2w.txt
new file mode 100644
index 000000000000..4caa3432dc8b
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/62601_wallitems_f2w.txt
@@ -0,0 +1,94 @@
+/obj/machinery/camera {dir=@UNSET} : /obj/machinery/camera/directional/north {@OLD}
+/obj/machinery/camera {dir=1} : /obj/machinery/camera/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/camera {dir=2} : /obj/machinery/camera/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/camera {dir=4} : /obj/machinery/camera/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/camera {dir=8} : /obj/machinery/camera/directional/east {@OLD;dir=@SKIP}
+/obj/machinery/camera/autoname {dir=@UNSET} : /obj/machinery/camera/directional/north {@OLD}
+/obj/machinery/camera/autoname {dir=1} : /obj/machinery/camera/autoname/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/camera/autoname {dir=2} : /obj/machinery/camera/autoname/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/camera/autoname {dir=4} : /obj/machinery/camera/autoname/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/camera/autoname {dir=8} : /obj/machinery/camera/autoname/directional/east {@OLD;dir=@SKIP}
+/obj/machinery/camera/emp_proof {dir=@UNSET} : /obj/machinery/camera/directional/north {@OLD}
+/obj/machinery/camera/emp_proof {dir=1} : /obj/machinery/camera/emp_proof/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/camera/emp_proof {dir=2} : /obj/machinery/camera/directional/emp_proof/north {@OLD;dir=@SKIP}
+/obj/machinery/camera/emp_proof {dir=4} : /obj/machinery/camera/directional/emp_proof/west {@OLD;dir=@SKIP}
+/obj/machinery/camera/emp_proof {dir=8} : /obj/machinery/camera/directional/emp_proof/east {@OLD;dir=@SKIP}
+/obj/machinery/camera/motion {dir=@UNSET} : /obj/machinery/camera/directional/north {@OLD}
+/obj/machinery/camera/motion {dir=1} : /obj/machinery/camera/motion/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/camera/motion {dir=2} : /obj/machinery/camera/motion/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/camera/motion {dir=4} : /obj/machinery/camera/motion/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/camera/motion {dir=8} : /obj/machinery/camera/motion/directional/east {@OLD;dir=@SKIP}
+/obj/machinery/camera/xray {dir=@UNSET} : /obj/machinery/camera/directional/north {@OLD}
+/obj/machinery/camera/xray {dir=1} : /obj/machinery/camera/xray/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/camera/xray {dir=2} : /obj/machinery/camera/xray/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/camera/xray {dir=4} : /obj/machinery/camera/xray/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/camera/xray {dir=8} : /obj/machinery/camera/xray/directional/east {@OLD;dir=@SKIP}
+/obj/machinery/airalarm {dir=@UNSET} : /obj/machinery/airalarm/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/airalarm {dir=1} : /obj/machinery/airalarm/directional/south {@OLD;dir=@SKIP}
+/obj/machinery/airalarm {dir=2} : /obj/machinery/airalarm/directional/north {@OLD;dir=@SKIP}
+/obj/machinery/airalarm {dir=4} : /obj/machinery/airalarm/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/airalarm {dir=8} : /obj/machinery/airalarm/directional/east {@OLD;dir=@SKIP}
+/obj/machinery/airalarm/syndicate {dir=@UNSET} : /obj/machinery/airalarm/syndicate {@OLD;dir=1}
+/obj/machinery/airalarm/syndicate {dir=1} : /obj/machinery/airalarm/syndicate {@OLD;dir=2}
+/obj/machinery/airalarm/syndicate {dir=2} : /obj/machinery/airalarm/syndicate {@OLD;dir=1}
+/obj/machinery/airalarm/syndicate {dir=4} : /obj/machinery/airalarm/syndicate {@OLD;dir=8}
+/obj/machinery/airalarm/syndicate {dir=8} : /obj/machinery/airalarm/syndicate {@OLD;dir=4}
+/obj/machinery/airalarm/all_access {dir=@UNSET} : /obj/machinery/airalarm/all_access {@OLD;dir=1}
+/obj/machinery/airalarm/all_access {dir=1} : /obj/machinery/airalarm/all_access {@OLD;dir=2}
+/obj/machinery/airalarm/all_access {dir=2} : /obj/machinery/airalarm/all_access {@OLD;dir=1}
+/obj/machinery/airalarm/all_access {dir=4} : /obj/machinery/airalarm/all_access {@OLD;dir=8}
+/obj/machinery/airalarm/all_access {dir=8} : /obj/machinery/airalarm/all_access {@OLD;dir=4}
+/obj/machinery/airalarm/away {dir=@UNSET} : /obj/machinery/airalarm/away {@OLD;dir=1}
+/obj/machinery/airalarm/away {dir=1} : /obj/machinery/airalarm/away {@OLD;dir=2}
+/obj/machinery/airalarm/away {dir=2} : /obj/machinery/airalarm/away {@OLD;dir=1}
+/obj/machinery/airalarm/away {dir=4} : /obj/machinery/airalarm/away {@OLD;dir=8}
+/obj/machinery/airalarm/away {dir=8} : /obj/machinery/airalarm/away {@OLD;dir=4}
+/obj/machinery/airalarm/engine {dir=@UNSET} : /obj/machinery/airalarm/engine {@OLD;dir=1}
+/obj/machinery/airalarm/engine {dir=1} : /obj/machinery/airalarm/engine {@OLD;dir=2}
+/obj/machinery/airalarm/engine {dir=2} : /obj/machinery/airalarm/engine {@OLD;dir=1}
+/obj/machinery/airalarm/engine {dir=4} : /obj/machinery/airalarm/engine {@OLD;dir=8}
+/obj/machinery/airalarm/engine {dir=8} : /obj/machinery/airalarm/engine {@OLD;dir=4}
+/obj/machinery/airalarm/unlocked {dir=@UNSET} : /obj/machinery/airalarm/unlocked {@OLD;dir=1}
+/obj/machinery/airalarm/unlocked {dir=1} : /obj/machinery/airalarm/unlocked {@OLD;dir=2}
+/obj/machinery/airalarm/unlocked {dir=2} : /obj/machinery/airalarm/unlocked {@OLD;dir=1}
+/obj/machinery/airalarm/unlocked {dir=4} : /obj/machinery/airalarm/unlocked {@OLD;dir=8}
+/obj/machinery/airalarm/unlocked {dir=8} : /obj/machinery/airalarm/unlocked {@OLD;dir=4}
+/obj/machinery/airalarm/server {dir=@UNSET} : /obj/machinery/airalarm/server {@OLD;dir=1}
+/obj/machinery/airalarm/server {dir=1} : /obj/machinery/airalarm/server {@OLD;dir=2}
+/obj/machinery/airalarm/server {dir=2} : /obj/machinery/airalarm/server {@OLD;dir=1}
+/obj/machinery/airalarm/server {dir=4} : /obj/machinery/airalarm/server {@OLD;dir=8}
+/obj/machinery/airalarm/server {dir=8} : /obj/machinery/airalarm/server {@OLD;dir=4}
+/obj/machinery/airalarm/mixingchamber {dir=@UNSET} : /obj/machinery/airalarm/mixingchamber {@OLD;dir=1}
+/obj/machinery/airalarm/mixingchamber {dir=1} : /obj/machinery/airalarm/mixingchamber {@OLD;dir=2}
+/obj/machinery/airalarm/mixingchamber {dir=2} : /obj/machinery/airalarm/mixingchamber {@OLD;dir=1}
+/obj/machinery/airalarm/mixingchamber {dir=4} : /obj/machinery/airalarm/mixingchamber {@OLD;dir=8}
+/obj/machinery/airalarm/mixingchamber {dir=8} : /obj/machinery/airalarm/mixingchamber {@OLD;dir=4}
+/obj/machinery/airalarm/kitchen_cold_room {dir=@UNSET} : /obj/machinery/airalarm/kitchen_cold_room {@OLD;dir=1}
+/obj/machinery/airalarm/kitchen_cold_room {dir=1} : /obj/machinery/airalarm/kitchen_cold_room {@OLD;dir=2}
+/obj/machinery/airalarm/kitchen_cold_room {dir=2} : /obj/machinery/airalarm/kitchen_cold_room {@OLD;dir=1}
+/obj/machinery/airalarm/kitchen_cold_room {dir=4} : /obj/machinery/airalarm/kitchen_cold_room {@OLD;dir=8}
+/obj/machinery/airalarm/kitchen_cold_room {dir=8} : /obj/machinery/airalarm/kitchen_cold_room {@OLD;dir=4}
+/obj/structure/chair/stool {dir=1} : /obj/structure/chair/stool/directional/north {@OLD;dir=@SKIP}
+/obj/structure/chair/stool {dir=2} : /obj/structure/chair/stool/directional/south {@OLD;dir=@SKIP}
+/obj/structure/chair/stool {dir=4} : /obj/structure/chair/stool/directional/east {@OLD;dir=@SKIP}
+/obj/structure/chair/stool {dir=8} : /obj/structure/chair/stool/directional/west {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/directional/south : /obj/structure/chair/stool/directional/north {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/directional/north : /obj/structure/chair/stool/directional/south {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/directional/west : /obj/structure/chair/stool/directional/east {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/directional/east : /obj/structure/chair/stool/directional/west {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar {dir=1} : /obj/structure/chair/stool/bar/directional/north {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar {dir=2} : /obj/structure/chair/stool/bar/directional/south {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar {dir=4} : /obj/structure/chair/stool/bar/directional/east {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar {dir=8} : /obj/structure/chair/stool/bar/directional/west {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar/directional/south : /obj/structure/chair/stool/bar/directional/north {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar/directional/north : /obj/structure/chair/stool/bar/directional/south {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar/directional/west : /obj/structure/chair/stool/bar/directional/east {@OLD;dir=@SKIP}
+/obj/structure/chair/stool/bar/directional/east : /obj/structure/chair/stool/bar/directional/west {@OLD;dir=@SKIP}
+/obj/machinery/power/apc/auto_name/north : /obj/machinery/power/apc/auto_name/directional/north {@OLD;dir=@SKIP;pixel_y=@SKIP}
+/obj/machinery/power/apc/auto_name/south : /obj/machinery/power/apc/auto_name/directional/south {@OLD;dir=@SKIP;pixel_y=@SKIP}
+/obj/machinery/power/apc/auto_name/east : /obj/machinery/power/apc/auto_name/directional/east {@OLD;dir=@SKIP;pixel_x=@SKIP}
+/obj/machinery/power/apc/auto_name/west : /obj/machinery/power/apc/auto_name/directional/west {@OLD;dir=@SKIP;pixel_y=@SKIP}
+/obj/machinery/bluespace_vendor/north : /obj/machinery/bluespace_vendor/directional/north {@OLD}
+/obj/machinery/bluespace_vendor/south : /obj/machinery/bluespace_vendor/directional/south {@OLD}
+/obj/machinery/bluespace_vendor/east : /obj/machinery/bluespace_vendor/directional/east {@OLD}
+/obj/machinery/bluespace_vendor/west : /obj/machinery/bluespace_vendor/directional/west {@OLD}
diff --git a/tools/UpdatePaths/Scripts/62789_camera_diag_f2w.txt b/tools/UpdatePaths/Scripts/62789_camera_diag_f2w.txt
new file mode 100644
index 000000000000..f8a9a51e92b7
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/62789_camera_diag_f2w.txt
@@ -0,0 +1,5 @@
+/obj/machinery/camera/@SUBTYPES {dir=5;conversion_done=@UNSET} : @OLD {@OLD;dir=10;conversion_done=1}
+/obj/machinery/camera/@SUBTYPES {dir=10;conversion_done=@UNSET} : @OLD {@OLD;dir=5;conversion_done=1}
+/obj/machinery/camera/@SUBTYPES {dir=6;conversion_done=@UNSET} : @OLD {@OLD;dir=9;conversion_done=1}
+/obj/machinery/camera/@SUBTYPES {dir=9;conversion_done=@UNSET} : @OLD {@OLD;dir=6;conversion_done=1}
+/obj/machinery/camera/@SUBTYPES {conversion_done=1} : @OLD {@OLD;conversion_done=@SKIP}
diff --git a/tools/UpdatePaths/Scripts/65236_clothingunderrepath.txt b/tools/UpdatePaths/Scripts/65236_clothingunderrepath.txt
new file mode 100644
index 000000000000..e82dfce3d241
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65236_clothingunderrepath.txt
@@ -0,0 +1,196 @@
+/obj/item/clothing/under/rank/vice : /obj/item/clothing/under/misc/vice_officer
+/obj/item/clothing/under/durathread : /obj/item/cloning/under/misc/durathread
+/obj/item/clothing/under/burial : /obj/item/clothing/under/misc/burial
+/obj/item/clothing/under/overalls : /obj/item/clothing/under/misc/overalls
+/obj/item/clothing/under/assistantformal : /obj/item/clothing/under/misc/assistantformal
+/obj/item/clothing/under/pj/red : /obj/item/clothing/under/misc/pj
+/obj/item/clothing/under/pj/blue : /obj/item/clothing/under/misc/pj/blue
+/obj/item/clothing/under/patriotsuit : /obj/item/clothing/under/misc/patriotsuit
+/obj/item/clothing/under/rank/mailman : /obj/item/clothing/under/misc/mailman
+/obj/item/clothing/under/rank/psyche : /obj/item/clothing/under/misc/psyche
+/obj/item/clothing/under/acj : /obj/item/clothing/under/misc/adminsuit
+
+/obj/item/clothing/under/scratch : /obj/item/clothing/under/suit/white_on_white
+/obj/item/clothing/under/scratch/skirt : /obj/item/clothing/under/suit/white/skirt
+/obj/item/clothing/under/sl_suit : /obj/item/clothing/under/suit/sl
+/obj/item/clothing/under/waiter : /obj/item/clothing/under/suit/waiter
+/obj/item/clothing/under/suit_jacket : /obj/item/clothing/under/suit/black
+/obj/item/clothing/under/suit_jacket/female : /obj/item/clothing/under/suit/black/skirt
+/obj/item/clothing/under/suit_jacket/really_black : /obj/item/clothing/under/suit/black_really
+/obj/item/clothing/under/suit_jacket/green : /obj/item/clothing/under/suit/green
+/obj/item/clothing/under/suit_jacket/red : /obj/item/clothing/under/suit/red
+/obj/item/clothing/under/suit_jacket/charcoal : /obj/item/clothing/under/suit/charcoal
+/obj/item/clothing/under/suit_jacket/navy : /obj/item/clothing/under/suit/navy
+/obj/item/clothing/under/suit_jacket/burgundy : /obj/item/clothing/under/suit/burgundy
+/obj/item/clothing/under/suit_jacket/checkered : /obj/item/clothing/under/suit/checkered
+/obj/item/clothing/under/suit_jacket/tan : /obj/item/clothing/under/suit/tan
+/obj/item/clothing/under/suit_jacket/white : /obj/item/clothing/under/suit/white
+
+/obj/item/clothing/under/skirt/black : /obj/item/clothing/under/dress/skirt
+/obj/item/clothing/under/skirt/blue : /obj/item/clothing/under/dress/skirt/blue
+/obj/item/clothing/under/skirt/red : /obj/item/clothing/under/dress/skirt/red
+/obj/item/clothing/under/skirt/purple : /obj/item/clothing/under/dress/skirt/purple
+/obj/item/clothing/under/sundress : /obj/item/clothing/under/dress/sundress
+/obj/item/clothing/under/blacktango : /obj/item/clothing/under/dress/blacktango
+/obj/item/clothing/under/stripeddress : /obj/item/clothing/under/dress/striped
+/obj/item/clothing/under/sailordress : /obj/item/clothing/under/dress/sailor
+/obj/item/clothing/under/redeveninggown : /obj/item/clothing/under/dress/redeveninggown
+/obj/item/clothing/under/plaid_skirt : /obj/item/clothing/under/dress/skirt/plaid
+/obj/item/clothing/under/plaid_skirt/blue : /obj/item/clothing/under/dress/skirt/plaid/blue
+/obj/item/clothing/under/plaid_skirt/purple : /obj/item/clothing/under/dress/skirt/plaid/purple
+/obj/item/clothing/under/plaid_skirt/green : /obj/item/clothing/under/dress/skirt/plaid/green
+
+/obj/item/clothing/under/roman : /obj/item/clothing/under/costume/roman
+/obj/item/clothing/under/jabroni : /obj/item/clothing/under/costume/jabroni
+/obj/item/clothing/under/owl : /obj/item/clothing/under/costume/owl
+/obj/item/clothing/under/griffin : /obj/item/clothing/under/costume/griffin
+/obj/item/clothing/under/schoolgirl : /obj/item/clothing/under/costume/schoolgirl
+/obj/item/clothing/under/schoolgirl/red : /obj/item/clothing/under/costume/schoolgirl/red
+/obj/item/clothing/under/schoolgirl/green : /obj/item/clothing/under/costume/schoolgirl/green
+/obj/item/clothing/under/schoolgirl/orange : /obj/item/clothing/under/costume/schoolgirl/orange
+/obj/item/clothing/under/pirate : /obj/item/clothing/under/costume/pirate
+/obj/item/clothing/under/soviet : /obj/item/clothing/under/costume/soviet
+/obj/item/clothing/under/redcoat : /obj/item/clothing/under/costume/redcoat
+/obj/item/clothing/under/kilt : /obj/item/clothing/under/costume/kilt
+/obj/item/clothing/under/kilt/highlander : /obj/item/clothing/under/costume/kilt/highlander
+/obj/item/clothing/under/gladiator : /obj/item/clothing/under/costume/gladiator
+/obj/item/clothing/under/gladiator/ash_walker : /obj/item/clothing/under/costume/gladiator/ash_walker
+/obj/item/clothing/under/maid : /obj/item/clothing/under/costume/maid
+/obj/item/clothing/under/singery : /obj/item/clothing/under/costume/singer/yellow
+/obj/item/clothing/under/singerb : /obj/item/clothing/under/costume/singer/blue
+/obj/item/clothing/under/geisha : /obj/item/clothing/under/costume/geisha
+/obj/item/clothing/under/villain : /obj/item/clothing/under/costume/villain
+/obj/item/clothing/under/sailor : /obj/item/clothing/under/costume/sailor
+/obj/item/clothing/under/rank/security/navyblue/russian : /obj/item/clothing/under/costume/russian_officer
+/obj/item/clothing/under/mummy : /obj/item/clothing/under/costume/mummy
+/obj/item/clothing/under/scarecrow : /obj/item/clothing/under/costume/scarecrow
+/obj/item/clothing/under/draculass : /obj/item/clothing/under/costume/draculass
+/obj/item/clothing/under/drfreeze : /obj/item/clothing/under/costume/drfreeze
+/obj/item/clothing/under/lobster : /obj/item/clothing/under/costume/lobster
+/obj/item/clothing/under/skeleton : /obj/item/clothing/under/costume/skeleton
+/obj/item/clothing/under/mech_suit : /obj/item/clothing/under/costume/mech_suit
+/obj/item/clothing/under/mech_suit/white : /obj/item/clothing/under/costume/mech_suit/white
+/obj/item/clothing/under/mech_suit/blue : /obj/item/clothing/under/costume/mech_suit/blue
+/obj/item/clothing/under/gondola : /obj/item/clothing/under/costume/gondola
+
+/obj/item/clothing/under/rank/bartender : /obj/item/clothing/under/rank/civilian/bartender
+/obj/item/clothing/under/rank/bartender/purple : /obj/item/clothing/under/rank/civilian/bartender/purple
+/obj/item/clothing/under/rank/bartender/skirt : /obj/item/clothing/under/rank/civilian/bartender/skirt
+/obj/item/clothing/under/rank/chaplain : /obj/item/clothing/under/rank/civilian/chaplain
+/obj/item/clothing/under/rank/chaplain/skirt : /obj/item/clothing/under/rank/civilian/chaplain/skirt
+/obj/item/clothing/under/rank/chef : /obj/item/clothing/under/rank/civilian/chef
+/obj/item/clothing/under/rank/chef/skirt : /obj/item/clothing/under/rank/civilian/chef/skirt
+/obj/item/clothing/under/rank/curator : /obj/item/clothing/under/rank/civilian/curator
+/obj/item/clothing/under/rank/curator/skirt: /obj/item/clothing/under/rank/civilian/curator/skirt
+/obj/item/clothing/under/rank/curator/treasure_hunter : /obj/item/clothing/under/rank/civilian/curator/treasure_hunter
+/obj/item/clothing/under/space : /obj/item/clothing/under/rank/civilian/curator/nasa
+/obj/item/clothing/under/rank/hydroponics : /obj/item/clothing/under/rank/civilian/hydroponics
+/obj/item/clothing/under/rank/hydroponics/skirt : /obj/item/clothing/under/rank/civilian/hydroponics/skirt
+/obj/item/clothing/under/rank/janitor : /obj/item/clothing/under/rank/civilian/janitor
+/obj/item/clothing/under/rank/janitor/skirt : /obj/item/clothing/under/rank/civilian/janitor/skirt
+/obj/item/clothing/under/janimaid : /obj/item/clothing/under/rank/civilian/janitor/maid
+/obj/item/clothing/under/rank/mime : /obj/item/clothing/under/rank/civilian/mime
+/obj/item/clothing/under/rank/mime/skirt : /obj/item/clothing/under/rank/civilian/mime/skirt
+/obj/item/clothing/under/sexymime : /obj/item/clothing/under/rank/civilian/mime/sexy
+/obj/item/clothing/under/rank/clown : /obj/item/clothing/under/rank/civilian/clown
+/obj/item/clothing/under/rank/blueclown : /obj/item/clothing/under/rank/civilian/clown/blue
+/obj/item/clothing/under/rank/greenclown : /obj/item/clothing/under/rank/civilian/clown/green
+/obj/item/clothing/under/rank/yellowclown : /obj/item/clothing/under/rank/civilian/clown/yellow
+/obj/item/clothing/under/rank/purpleclown : /obj/item/clothing/under/rank/civilian/clown/purple
+/obj/item/clothing/under/rank/orangeclown : /obj/item/clothing/under/rank/civilian/clown/orange
+/obj/item/clothing/under/rank/rainbowclown : /obj/item/clothing/under/rank/civilian/clown/rainbow
+/obj/item/clothing/under/jester : /obj/item/clothing/under/rank/civilian/clown/jester
+/obj/item/clothing/under/jester/alt : /obj/item/clothing/under/rank/civilian/clown/jester/alt
+/obj/item/clothing/under/rank/clown/sexy : /obj/item/clothing/under/rank/civilian/clown/sexy
+/obj/item/clothing/under/lawyer : /obj/item/clothing/under/rank/civilian/lawyer
+/obj/item/clothing/under/lawyer/black : /obj/item/clothing/under/rank/civilian/lawyer/black
+/obj/item/clothing/under/lawyer/black/skirt : /obj/item/clothing/under/rank/civilian/lawyer/black/skirt
+/obj/item/clothing/under/lawyer/female : /obj/item/clothing/under/rank/civilian/lawyer/beige
+/obj/item/clothing/under/lawyer/female/skirt : /obj/item/clothing/under/rank/civilian/lawyer/beige/skirt
+/obj/item/clothing/under/lawyer/red : /obj/item/clothing/under/rank/civilian/lawyer/red
+/obj/item/clothing/under/lawyer/red/skirt : /obj/item/clothing/under/rank/civilian/lawyer/red/skirt
+/obj/item/clothing/under/lawyer/blue : /obj/item/clothing/under/rank/civilian/lawyer/blue
+/obj/item/clothing/under/lawyer/blue/skirt : /obj/item/clothing/under/rank/civilian/lawyer/blue/skirt
+/obj/item/clothing/under/lawyer/bluesuit : /obj/item/clothing/under/rank/civilian/lawyer/bluesuit
+/obj/item/clothing/under/lawyer/bluesuit/skirt : /obj/item/clothing/under/rank/civilian/lawyer/bluesuit/skirt
+/obj/item/clothing/under/lawyer/purpsuit : /obj/item/clothing/under/rank/civilian/lawyer/purpsuit
+/obj/item/clothing/under/lawyer/purpsuit/skirt : /obj/item/clothing/under/rank/civilian/lawyer/purpsuit/skirt
+/obj/item/clothing/under/lawyer/blacksuit : /obj/item/clothing/under/suit/black
+/obj/item/clothing/under/lawyer/blacksuit/skirt : /obj/item/clothing/under/suit/black/skirt
+/obj/item/clothing/under/lawyer/really_black : /obj/item/clothing/under/suit/black_really
+/obj/item/clothing/under/lawyer/really_black/skirt : /obj/item/clothing/under/suit/black_really/skirt
+/obj/item/clothing/under/rank/head_of_personnel : /obj/item/clothing/under/rank/civilian/head_of_personnel
+/obj/item/clothing/under/rank/head_of_personnel/skirt : /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt
+/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit : /obj/item/clothing/under/rank/civilian/head_of_personnel/suit
+/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt : /obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt
+
+/obj/item/clothing/under/rank/cargo : /obj/item/clothing/under/rank/cargo/qm
+/obj/item/clothing/under/rank/cargo/skirt : /obj/item/clothing/under/rank/cargo/qm/skirt
+/obj/item/clothing/under/rank/cargotech : /obj/item/clothing/under/rank/cargo/tech
+/obj/item/clothing/under/rank/cargotech/skirt : /obj/item/clothing/under/rank/cargo/tech/skirt
+/obj/item/clothing/under/rank/miner : /obj/item/clothing/under/rank/cargo/miner
+/obj/item/clothing/under/rank/miner/lavaland : /obj/item/clothing/under/rank/cargo/miner/lavaland
+
+/obj/item/clothing/under/rank/research_director : /obj/item/clothing/under/rank/rnd/research_director
+/obj/item/clothing/under/rank/research_director/skirt : /obj/item/clothing/under/rank/rnd/research_director/skirt
+/obj/item/clothing/under/rank/research_director/alt : /obj/item/clothing/under/rank/rnd/research_director/alt
+/obj/item/clothing/under/rank/research_director/alt/skirt : /obj/item/clothing/under/rank/rnd/research_director/alt/skirt
+/obj/item/clothing/under/rank/research_director/turtleneck : /obj/item/clothing/under/rank/rnd/research_director/turtleneck
+/obj/item/clothing/under/rank/research_director/turtleneck/skirt : /obj/item/clothing/under/rank/rnd/research_director/turtleneck/skirt
+/obj/item/clothing/under/rank/scientist : /obj/item/clothing/under/rank/rnd/scientist
+/obj/item/clothing/under/rank/scientist/skirt : /obj/item/clothing/under/rank/rnd/scientist/skirt
+/obj/item/clothing/under/rank/roboticist : /obj/item/clothing/under/rank/rnd/roboticist
+/obj/item/clothing/under/rank/roboticist/skirt : /obj/item/clothing/under/rank/rnd/roboticist/skirt
+
+/obj/item/clothing/under/rank/chief_medical_officer : /obj/item/clothing/under/rank/medical/chief_medical_officer
+/obj/item/clothing/under/rank/chief_medical_officer/skirt : /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
+/obj/item/clothing/under/rank/medical/doctor/blue : /obj/item/clothing/under/rank/medical/scrubs/blue
+/obj/item/clothing/under/rank/medical/doctor/blue : /obj/item/clothing/under/rank/medical/scrubs/green
+/obj/item/clothing/under/rank/medical/doctor/blue : /obj/item/clothing/under/rank/medical/scrubs/purple
+/obj/item/clothing/under/rank/geneticist : /obj/item/clothing/under/rank/rnd/geneticist
+/obj/item/clothing/under/rank/geneticist/skirt : /obj/item/clothing/under/rank/rnd/geneticist/skirt
+/obj/item/clothing/under/rank/virologist : /obj/item/clothing/under/rank/medical/virologist
+/obj/item/clothing/under/rank/virologist/skirt : /obj/item/clothing/under/rank/medical/virologist/skirt
+/obj/item/clothing/under/rank/chemist : /obj/item/clothing/under/rank/medical/chemist
+/obj/item/clothing/under/rank/chemist/skirt : /obj/item/clothing/under/rank/medical/chemist/skirt
+
+/obj/item/clothing/under/rank/chief_engineer : /obj/item/clothing/under/rank/engineering/chief_engineer
+/obj/item/clothing/under/rank/chief_engineer/skirt : /obj/item/clothing/under/rank/engineering/chief_engineer/skirt
+/obj/item/clothing/under/rank/atmospheric_technician : /obj/item/clothing/under/rank/engineering/atmospheric_technician
+/obj/item/clothing/under/rank/atmospheric_technician/skirt : /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt
+/obj/item/clothing/under/rank/engineer : /obj/item/clothing/under/rank/engineering/engineer
+/obj/item/clothing/under/rank/engineer/hazard : /obj/item/clothing/under/rank/engineering/engineer/hazard
+/obj/item/clothing/under/rank/engineer/skirt : /obj/item/clothing/under/rank/engineering/engineer/skirt
+
+/obj/item/clothing/under/rank/centcom_officer : /obj/item/clothing/under/rank/centcom/officer
+/obj/item/clothing/under/rank/centcom_commander : /obj/item/clothing/under/rank/centcom/commander
+
+/obj/item/clothing/under/gimmick/rank/captain/suit : /obj/item/clothing/under/rank/captain/suit
+/obj/item/clothing/under/gimmick/rank/captain/suit/skirt : /obj/item/clothing/under/rank/captain/suit/skirt
+/obj/item/clothing/under/captainparade : /obj/item/clothing/under/rank/captain/parade
+
+/obj/item/clothing/under/rank/security : /obj/item/clothing/under/rank/security/officer
+/obj/item/clothing/under/rank/security/grey : /obj/item/clothing/under/rank/security/officer/grey
+/obj/item/clothing/under/rank/security/skirt : /obj/item/clothing/under/rank/security/officer/skirt
+/obj/item/clothing/under/rank/security/blueshirt : /obj/item/clothing/under/rank/security/officer/blueshirt
+/obj/item/clothing/under/rank/security/navyblue : /obj/item/clothing/under/rank/security/officer/formal
+/obj/item/clothing/under/rank/warden : /obj/item/clothing/under/rank/security/warden
+/obj/item/clothing/under/rank/warden/grey : /obj/item/clothing/under/rank/security/warden/grey
+/obj/item/clothing/under/rank/warden/skirt : /obj/item/clothing/under/rank/security/warden/skirt
+/obj/item/clothing/under/rank/warden/navyblue : /obj/item/clothing/under/rank/security/warden/formal
+/obj/item/clothing/under/rank/det : /obj/item/clothing/under/rank/security/detective
+/obj/item/clothing/under/rank/det/skirt : /obj/item/clothing/under/rank/security/detective/skirt
+/obj/item/clothing/under/rank/det/grey : /obj/item/clothing/under/rank/security/detective/noir
+/obj/item/clothing/under/rank/det/grey/skirt : /obj/item/clothing/under/rank/security/detective/noir/skirt
+/obj/item/clothing/under/rank/security/detective/grey : /obj/item/clothing/under/rank/security/detective/noir
+/obj/item/clothing/under/rank/security/detective/grey/skirt : /obj/item/clothing/under/rank/security/detective/noir/skirt
+/obj/item/clothing/under/rank/head_of_security : /obj/item/clothing/under/rank/security/head_of_security
+/obj/item/clothing/under/rank/head_of_security/skirt : /obj/item/clothing/under/rank/security/head_of_security/skirt
+/obj/item/clothing/under/rank/head_of_security/grey : /obj/item/clothing/under/rank/security/head_of_security/grey
+/obj/item/clothing/under/rank/head_of_security/alt : /obj/item/clothing/under/rank/security/head_of_security/alt
+/obj/item/clothing/under/rank/head_of_security/alt/skirt : /obj/item/clothing/under/rank/security/head_of_security/alt/skirt
+/obj/item/clothing/under/rank/head_of_security/navyblue : /obj/item/clothing/under/rank/security/head_of_security/formal
+/obj/item/clothing/under/hosparademale : /obj/item/clothing/under/rank/security/head_of_security/parade
+/obj/item/clothing/under/hosparadefem : /obj/item/clothing/under/rank/security/head_of_security/parade/female
+/obj/item/clothing/under/rank/security/spacepol : /obj/item/clothing/under/rank/security/officer/spacepol
+
diff --git a/tools/UpdatePaths/Scripts/65326_lib_computers.txt b/tools/UpdatePaths/Scripts/65326_lib_computers.txt
new file mode 100644
index 000000000000..bb16088a909f
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65326_lib_computers.txt
@@ -0,0 +1 @@
+/obj/machinery/computer/bookmanagement : /obj/machinery/computer/libraryconsole/bookmanagement
diff --git a/tools/UpdatePaths/Scripts/65504_floor_repathing.txt b/tools/UpdatePaths/Scripts/65504_floor_repathing.txt
new file mode 100644
index 000000000000..6af8bd10fa9a
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65504_floor_repathing.txt
@@ -0,0 +1,53 @@
+/turf/open/floor/plating/dirt : /turf/open/misc/dirt{@OLD}
+/turf/open/floor/plating/dirt/dark : /turf/open/misc/dirt/dark{@OLD}
+/turf/open/floor/plating/dirt/jungle : /turf/open/misc/dirt/jungle{@OLD}
+/turf/open/floor/plating/dirt/jungle/dark : /turf/open/misc/dirt/jungle/dark{@OLD}
+/turf/open/floor/plating/dirt/jungle/wasteland : /turf/open/misc/dirt/jungle/wasteland{@OLD}
+
+/turf/open/floor/plating/ashplanet : /turf/open/misc/ashplanet{@OLD}
+/turf/open/floor/plating/ashplanet/ash : /turf/open/misc/ashplanet/ash{@OLD}
+/turf/open/floor/plating/ashplanet/rocky : /turf/open/misc/ashplanet/rocky{@OLD}
+/turf/open/floor/plating/ashplanet/wateryrock : /turf/open/misc/ashplanet/wateryrock{@OLD}
+
+/turf/open/floor/plating/grass : /turf/open/misc/grass{@OLD}
+/turf/open/floor/plating/grass/jungle : /turf/open/misc/grass/jungle{@OLD}
+/turf/open/floor/plating/grass/lavaland : /turf/open/misc/grass/lavaland{@OLD}
+
+/turf/open/floor/plating/sandy_dirt : /turf/open/misc/sandy_dirt{@OLD}
+
+/turf/open/floor/plating/ironsand : /turf/open/misc/ironsand{@OLD}
+
+/turf/open/floor/plating/ice : /turf/open/misc/ice{@OLD}
+/turf/open/floor/plating/ice/smooth : /turf/open/misc/ice/smooth{@OLD}
+/turf/open/floor/plating/ice/icemoon : /turf/misc/ice/icemoon{@OLD}
+/turf/open/floor/plating/ice/icemoon/no_planet_atmos : /turf/open/misc/ice/icemoon/no_planet_atmos{@OLD}
+
+/turf/open/floor/plating/beach : /turf/open/misc/beach{@OLD}
+/turf/open/floor/plating/beach/sand : /turf/open/misc/beach/sand{@OLD}
+/turf/open/floor/plating/beach/coastline_t : /turf/open/misc/beach/coastline_t{@OLD}
+/turf/open/floor/plating/beach/coastline_t/sandwater_inner : /turf/open/misc/beach/coastline_t/sandwater_inner{@OLD}
+/turf/open/floor/plating/beach/coastline_b : /turf/open/misc/beach/coastline_b{@OLD}
+/turf/open/floor/plating/beach/water : /turf/open/water/beach{@OLD}
+
+/turf/open/floor/grass/snow : /turf/open/misc/snow{@OLD}
+/turf/open/floor/grass/snow/safe : /turf/open/floor/fake_snow{@OLD}
+/turf/open/floor/grass/snow/basalt : /turf/open/misc/basalt{@OLD}
+/turf/open/floor/grass/snow/basalt/safe : /turf/open/floor/fakebasalt{@OLD}
+
+/turf/open/floor/plating/asteroid : /turf/open/misc/asteroid{@OLD}
+/turf/open/floor/plating/asteroid/dug : /turf/open/misc/asteroid/dug{@OLD}
+/turf/open/floor/plating/asteroid/basalt : /turf/open/misc/asteroid/basalt{@OLD}
+/turf/open/floor/plating/asteroid/basalt/lava : /turf/open/misc/asteroid/basalt/lava{@OLD}
+/turf/open/floor/plating/asteroid/basalt/airless : /turf/open/misc/asteroid/basalt/airless{@OLD}
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface : /turf/open/misc/asteroid/basalt/lava_land_surface{@OLD}
+/turf/open/floor/plating/asteroid/lowpressure : /turf/open/misc/asteroid/lowpressure{@OLD}
+/turf/open/floor/plating/asteroid/airless : /turf/open/misc/asteroid/airless{@OLD}
+/turf/open/floor/plating/asteroid/snow : /turf/open/misc/asteroid/snow{@OLD}
+/turf/open/floor/plating/asteroid/snow/icemoon : /turf/open/misc/asteroid/snow/icemoon{@OLD}
+/turf/open/floor/plating/asteroid/snow/ice : /turf/open/misc/asteroid/snow/ice{@OLD}
+/turf/open/floor/plating/asteroid/snow/ice/icemoon : /turf/open/misc/asteroid/snow/ice/icemoon{@OLD}
+/turf/open/floor/plating/asteroid/snow/airless : /turf/open/misc/asteroid/snow/airless{@OLD}
+/turf/open/floor/plating/asteroid/snow/temperatre : /turf/open/misc/asteroid/snow/temperatre{@OLD}
+/turf/open/floor/plating/asteroid/snow/atmosphere : /turf/open/misc/asteroid/snow/atmosphere{@OLD}
+/turf/open/floor/plating/asteroid/snow/standard_air : /turf/open/misc/asteroid/snow/standard_air{@OLD}
+/turf/open/floor/plating/asteroid/basalt/wasteland : /turf/open/misc/asteroid/basalt/wasteland{@OLD}
diff --git a/tools/UpdatePaths/Scripts/65656_windoor_replacement.txt b/tools/UpdatePaths/Scripts/65656_windoor_replacement.txt
new file mode 100644
index 000000000000..ba67c1e0d985
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65656_windoor_replacement.txt
@@ -0,0 +1,39 @@
+/obj/machinery/door/window/northleft : /obj/machinery/door/window/left/directional/north {@OLD}
+/obj/machinery/door/window/eastleft : /obj/machinery/door/window/left/directional/east {@OLD}
+/obj/machinery/door/window/westleft : /obj/machinery/door/window/left/directional/west {@OLD}
+/obj/machinery/door/window/southleft : /obj/machinery/door/window/left/directional/south {@OLD}
+
+/obj/machinery/door/window/northright : /obj/machinery/door/window/right/directional/north {@OLD}
+/obj/machinery/door/window/eastright : /obj/machinery/door/window/right/directional/east {@OLD}
+/obj/machinery/door/window/westright : /obj/machinery/door/window/right/directional/west {@OLD}
+/obj/machinery/door/window/southright : /obj/machinery/door/window/right/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/northleft : /obj/machinery/door/window/brigdoor/left/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/eastleft : /obj/machinery/door/window/brigdoor/left/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/westleft : /obj/machinery/door/window/brigdoor/left/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/southleft : /obj/machinery/door/window/brigdoor/left/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/northright : /obj/machinery/door/window/brigdoor/right/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/eastright : /obj/machinery/door/window/brigdoor/right/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/westright : /obj/machinery/door/window/brigdoor/right/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/southright : /obj/machinery/door/window/brigdoor/right/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/security/cell/northleft : /obj/machinery/door/window/brigdoor/security/cell/left/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/eastleft : /obj/machinery/door/window/brigdoor/security/cell/left/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/westleft : /obj/machinery/door/window/brigdoor/security/cell/left/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/southleft : /obj/machinery/door/window/brigdoor/security/cell/left/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/security/cell/northright : /obj/machinery/door/window/brigdoor/security/cell/right/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/eastright : /obj/machinery/door/window/brigdoor/security/cell/right/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/westright : /obj/machinery/door/window/brigdoor/security/cell/right/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/security/cell/southright : /obj/machinery/door/window/brigdoor/security/cell/right/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/security/holding/northleft : /obj/machinery/door/window/brigdoor/security/holding/left/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/eastleft : /obj/machinery/door/window/brigdoor/security/holding/left/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/westleft : /obj/machinery/door/window/brigdoor/security/holding/left/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/southleft : /obj/machinery/door/window/brigdoor/security/holding/left/directional/south {@OLD}
+
+/obj/machinery/door/window/brigdoor/security/holding/northright : /obj/machinery/door/window/brigdoor/security/holding/right/directional/north {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/eastright : /obj/machinery/door/window/brigdoor/security/holding/right/directional/east {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/westright : /obj/machinery/door/window/brigdoor/security/holding/right/directional/west {@OLD}
+/obj/machinery/door/window/brigdoor/security/holding/southright : /obj/machinery/door/window/brigdoor/security/holding/right/directional/south {@OLD}
diff --git a/tools/UpdatePaths/Scripts/65755_pdas_to_tabs.txt b/tools/UpdatePaths/Scripts/65755_pdas_to_tabs.txt
new file mode 100644
index 000000000000..1248b8fbcc9d
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65755_pdas_to_tabs.txt
@@ -0,0 +1,56 @@
+#comment This replaces PDA and cart paths with the new modular tablet role paths.
+
+/obj/item/cartridge : /obj/item/computer_hardware/hard_drive/role
+/obj/item/cartridge/engineering : /obj/item/computer_hardware/hard_drive/role/engineering
+/obj/item/cartridge/atmos : /obj/item/computer_hardware/hard_drive/role/atmos
+/obj/item/cartridge/medical : /obj/item/computer_hardware/hard_drive/role/medical
+/obj/item/cartridge/chemistry : /obj/item/computer_hardware/hard_drive/role/chemistry
+/obj/item/cartridge/security : /obj/item/computer_hardware/hard_drive/role/security
+/obj/item/cartridge/detective : /obj/item/computer_hardware/hard_drive/role/detective
+/obj/item/cartridge/lawyer : /obj/item/computer_hardware/hard_drive/role/lawyer
+/obj/item/cartridge/curator : /obj/item/computer_hardware/hard_drive/role/curator
+/obj/item/cartridge/roboticist : /obj/item/computer_hardware/hard_drive/role/roboticist
+/obj/item/cartridge/signal : /obj/item/computer_hardware/hard_drive/role/signal
+/obj/item/cartridge/signal/ordnance : /obj/item/computer_hardware/hard_drive/role/signal/ordnance
+/obj/item/cartridge/quartermaster : /obj/item/computer_hardware/hard_drive/role/quartermaster
+/obj/item/cartridge/head : /obj/item/computer_hardware/hard_drive/role/head
+/obj/item/cartridge/hop : /obj/item/computer_hardware/hard_drive/role/hop
+/obj/item/cartridge/hos : /obj/item/computer_hardware/hard_drive/role/hos
+/obj/item/cartridge/ce : /obj/item/computer_hardware/hard_drive/role/ce
+/obj/item/cartridge/cmo : /obj/item/computer_hardware/hard_drive/role/cmo
+/obj/item/cartridge/rd : /obj/item/computer_hardware/hard_drive/role/rd
+/obj/item/cartridge/captain : /obj/item/computer_hardware/hard_drive/role/captain
+
+/obj/item/pda : /obj/item/modular_computer/tablet/pda
+/obj/item/pda/medical : /obj/item/modular_computer/tablet/pda/medical
+/obj/item/pda/viro : /obj/item/modular_computer/tablet/pda/viro
+/obj/item/pda/engineering : /obj/item/modular_computer/tablet/pda/engineering
+/obj/item/pda/security : /obj/item/modular_computer/tablet/pda/security
+/obj/item/pda/detective : /obj/item/modular_computer/tablet/pda/detective
+/obj/item/pda/warden : /obj/item/modular_computer/tablet/pda/warden
+/obj/item/pda/janitor : /obj/item/modular_computer/tablet/pda/janitor
+/obj/item/pda/science : /obj/item/modular_computer/tablet/pda/science
+/obj/item/pda/heads : /obj/item/modular_computer/tablet/pda/heads
+/obj/item/pda/hop : /obj/item/modular_computer/tablet/pda/hop
+/obj/item/pda/hos : /obj/item/modular_computer/tablet/pda/hos
+/obj/item/pda/ce : /obj/item/modular_computer/tablet/pda/ce
+/obj/item/pda/cmo : /obj/item/modular_computer/tablet/pda/cmo
+/obj/item/pda/rd : /obj/item/modular_computer/tablet/pda/rd
+/obj/item/pda/captain : /obj/item/modular_computer/tablet/pda/captain
+/obj/item/pda/cargo : /obj/item/modular_computer/tablet/pda/cargo
+/obj/item/pda/quartermaster : /obj/item/modular_computer/tablet/pda/quartermaster
+/obj/item/pda/shaftminer : /obj/item/modular_computer/tablet/pda/shaftminer
+/obj/item/pda/chaplain : /obj/item/modular_computer/tablet/pda/chaplain
+/obj/item/pda/lawyer : /obj/item/modular_computer/tablet/pda/lawyer
+/obj/item/pda/botanist : /obj/item/modular_computer/tablet/pda/botanist
+/obj/item/pda/roboticist : /obj/item/modular_computer/tablet/pda/roboticist
+/obj/item/pda/cook : /obj/item/modular_computer/tablet/pda/cook
+/obj/item/pda/bar : /obj/item/modular_computer/tablet/pda/bar
+/obj/item/pda/atmos : /obj/item/modular_computer/tablet/pda/atmos
+/obj/item/pda/chemist : /obj/item/modular_computer/tablet/pda/chemist
+/obj/item/pda/geneticist : /obj/item/modular_computer/tablet/pda/geneticist
+/obj/item/pda/clown : /obj/item/modular_computer/tablet/pda/clown
+/obj/item/pda/mime : /obj/item/modular_computer/tablet/pda/mime
+/obj/item/pda/curator : /obj/item/modular_computer/tablet/pda/curator
+/obj/item/pda/syndicate : /obj/item/modular_computer/tablet/pda/syndicate
+/obj/item/pda/clear : /obj/item/modular_computer/tablet/pda/clear
diff --git a/tools/UpdatePaths/Scripts/65906_replace_wayfinding_beacons.txt b/tools/UpdatePaths/Scripts/65906_replace_wayfinding_beacons.txt
new file mode 100644
index 000000000000..65ea94da7fd7
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/65906_replace_wayfinding_beacons.txt
@@ -0,0 +1 @@
+/obj/effect/landmark/navigate_destination : /obj/machinery/navbeacon/wayfinding {@OLD}
\ No newline at end of file
diff --git a/tools/UpdatePaths/Scripts/66210_replace_tiered_canisters.txt b/tools/UpdatePaths/Scripts/66210_replace_tiered_canisters.txt
new file mode 100644
index 000000000000..7b5192b5d095
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66210_replace_tiered_canisters.txt
@@ -0,0 +1,9 @@
+#comment replaces /obj/machinery/portable_atmospherics/canister/tier_# with /obj/machinery/portable_atmospherics/canister
+#comment replaces /obj/structure/canister_frame/machine/frame_tier_0 with /obj/structure/canister_frame/machine/unfinished_frame
+#comment replaces /obj/structure/canister_frame/machine/frame_tier_1 with /obj/structure/canister_frame/machine/finished_frame
+
+/obj/machinery/portable_atmospherics/canister/tier_1 : /obj/machinery/portable_atmospherics/canister
+/obj/machinery/portable_atmospherics/canister/tier_2 : /obj/machinery/portable_atmospherics/canister
+/obj/machinery/portable_atmospherics/canister/tier_3 : /obj/machinery/portable_atmospherics/canister
+/obj/structure/canister_frame/machine/frame_tier_0 : /obj/structure/canister_frame/machine/unfinished_canister_frame
+/obj/structure/canister_frame/machine/frame_tier_1 : /obj/structure/canister_frame/machine/finished_canister_frame
\ No newline at end of file
diff --git a/tools/UpdatePaths/Scripts/66406_turf_updates.txt b/tools/UpdatePaths/Scripts/66406_turf_updates.txt
new file mode 100644
index 000000000000..d1bda1a21b73
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66406_turf_updates.txt
@@ -0,0 +1,344 @@
+#comment This updates primarily station paths to new ones
+
+/area/maintenance : /area/station/maintenance
+/area/maintenance/department/chapel : /area/station/maintenance/department/chapel
+/area/maintenance/department/chapel/monastery : /area/station/maintenance/department/chapel/monastery
+/area/maintenance/department/crew_quarters/bar : /area/station/maintenance/department/crew_quarters/bar
+/area/maintenance/department/crew_quarters/dorms : /area/station/maintenance/department/crew_quarters/dorms
+/area/maintenance/department/eva : /area/station/maintenance/department/eva
+/area/maintenance/department/electrical : /area/station/maintenance/department/electrical
+/area/maintenance/department/engine/atmos : /area/station/maintenance/department/engine/atmos
+/area/maintenance/department/security : /area/station/maintenance/department/security
+/area/maintenance/department/security/upper : /area/station/maintenance/department/security/upper
+/area/maintenance/department/security/brig : /area/station/maintenance/department/security/brig
+/area/maintenance/department/medical : /area/station/maintenance/department/medical
+/area/maintenance/department/medical/central : /area/station/maintenance/department/medical/central
+/area/maintenance/department/medical/morgue : /area/station/maintenance/department/medical/morgue
+/area/maintenance/department/science : /area/station/maintenance/department/science
+/area/maintenance/department/science/central : /area/station/maintenance/department/science/central
+/area/maintenance/department/cargo : /area/station/maintenance/department/cargo
+/area/maintenance/department/bridge : /area/station/maintenance/department/bridge
+/area/maintenance/department/engine : /area/station/maintenance/department/engine
+/area/maintenance/department/science/xenobiology : /area/station/maintenance/department/science/xenobiology
+
+/area/maintenance/aft : /area/station/maintenance/aft
+/area/maintenance/aft/upper : /area/station/maintenance/aft/upper
+/area/maintenance/aft/greater : /area/station/maintenance/aft/greater
+/area/maintenance/aft/lesser : /area/station/maintenance/aft/lesser
+/area/maintenance/central : /area/station/maintenance/central
+/area/maintenance/central/greater : /area/station/maintenance/central/greater
+/area/maintenance/central/lesser : /area/station/maintenance/central/lesser
+/area/maintenance/fore : /area/station/maintenance/fore
+/area/maintenance/fore/upper : /area/station/maintenance/fore/upper
+/area/maintenance/fore/greater : /area/station/maintenance/fore/greater
+/area/maintenance/fore/lesser : /area/station/maintenance/fore/lesser
+/area/maintenance/starboard : /area/station/maintenance/starboard
+/area/maintenance/starboard/upper : /area/station/maintenance/starboard/upper
+/area/maintenance/starboard/central : /area/station/maintenance/starboard/central
+/area/maintenance/starboard/greater : /area/station/maintenance/starboard/greater
+/area/maintenance/starboard/lesser : /area/station/maintenance/starboard/lesser
+/area/maintenance/starboard/aft : /area/station/maintenance/starboard/aft
+/area/maintenance/starboard/fore : /area/station/maintenance/starboard/fore
+/area/maintenance/port : /area/station/maintenance/port
+/area/maintenance/port/central : /area/station/maintenance/port/central
+/area/maintenance/port/greater : /area/station/maintenance/port/greater
+/area/maintenance/port/lesser : /area/station/maintenance/port/lesser
+/area/maintenance/port/aft : /area/station/maintenance/port/aft
+/area/maintenance/port/fore : /area/station/maintenance/port/fore
+/area/maintenance/tram : /area/station/maintenance/tram
+/area/maintenance/tram/left : /area/station/maintenance/tram/left
+/area/maintenance/tram/mid : /area/station/maintenance/tram/mid
+/area/maintenance/tram/right : /area/station/maintenance/tram/right
+
+/area/maintenance/disposal : /area/station/maintenance/disposal
+/area/maintenance/disposal/incinerator : /area/station/maintenance/disposal/incinerator
+/area/maintenance/space_hut : /area/station/maintenance/space_hut
+/area/maintenance/space_hut/cabin : /area/station/maintenance/space_hut/cabin
+/area/maintenance/space_hut/plasmaman : /area/station/maintenance/space_hut/plasmaman
+/area/maintenance/space_hut/observatory : /area/station/maintenance/space_hut/observatory
+
+/area/maintenance/radshelter : /area/station/maintenance/radshelter
+/area/maintenance/radshelter/medical : /area/station/maintenance/radshelter/medical
+/area/maintenance/radshelter/sec : /area/station/maintenance/radshelter/sec
+/area/maintenance/radshelter/service : /area/station/maintenance/radshelter/service
+/area/maintenance/radshelter/civil : /area/station/maintenance/radshelter/civil
+/area/maintenance/radshelter/sci : /area/station/maintenance/radshelter/sci
+/area/maintenance/radshelter/cargo : /area/station/maintenance/radshelter/cargo
+
+/area/hallway : /area/station/hallway
+/area/hallway/primary : /area/station/hallway/primary
+/area/hallway/primary/aft : /area/station/hallway/primary/aft
+/area/hallway/primary/fore : /area/station/hallway/primary/fore
+/area/hallway/primary/starboard : /area/station/hallway/primary/starboard
+/area/hallway/primary/port : /area/station/hallway/primary/port
+/area/hallway/primary/central : /area/station/hallway/primary/central
+/area/hallway/primary/central/fore : /area/station/hallway/primary/central/fore
+/area/hallway/primary/central/aft : /area/station/hallway/primary/central/aft
+/area/hallway/primary/upper : /area/station/hallway/primary/upper
+/area/hallway/primary/tram : /area/station/hallway/primary/tram
+/area/hallway/primary/tram/left : /area/station/hallway/primary/tram/left
+/area/hallway/primary/tram/center : /area/station/hallway/primary/tram/center
+/area/hallway/primary/tram/right : /area/station/hallway/primary/tram/right
+/area/hallway/secondary/command : /area/station/hallway/secondary/command
+/area/hallway/secondary/construction : /area/station/hallway/secondary/construction
+/area/hallway/secondary/construction/engineering : /area/station/hallway/secondary/construction/engineering
+/area/hallway/secondary/exit : /area/station/hallway/secondary/exit
+/area/hallway/secondary/exit/departure_lounge : /area/station/hallway/secondary/exit/departure_lounge
+/area/hallway/secondary/entry : /area/station/hallway/secondary/entry
+/area/hallway/secondary/service : /area/station/hallway/secondary/service
+
+/area/command : /area/station/command
+/area/command/bridge : /area/station/command/bridge
+/area/command/meeting_room : /area/station/command/meeting_room
+/area/command/meeting_room/council : /area/station/command/meeting_room/council
+/area/command/corporate_showroom : /area/station/command/corporate_showroom
+/area/command/heads_quarters : /area/station/command/heads_quarters
+/area/command/heads_quarters/captain : /area/station/command/heads_quarters/captain
+/area/command/heads_quarters/captain/private : /area/station/command/heads_quarters/captain/private
+/area/command/heads_quarters/ce : /area/station/command/heads_quarters/ce
+/area/command/heads_quarters/cmo : /area/station/command/heads_quarters/cmo
+/area/command/heads_quarters/hop : /area/station/command/heads_quarters/hop
+/area/command/heads_quarters/hos : /area/station/command/heads_quarters/hos
+/area/command/heads_quarters/rd : /area/station/command/heads_quarters/rd
+
+/area/command/teleporter : /area/station/command/teleporter
+/area/command/gateway : /area/station/command/gateway
+
+/area/commons : /area/station/commons
+/area/commons/dorms : /area/station/commons/dorms
+/area/commons/dorms/barracks : /area/station/commons/dorms/barracks
+/area/commons/dorms/barracks/male : /area/station/commons/dorms/barracks/male
+/area/commons/dorms/barracks/female : /area/station/commons/dorms/barracks/female
+/area/commons/dorms/laundry : /area/station/commons/dorms/laundry
+/area/commons/toilet : /area/station/commons/toilet
+/area/commons/toilet/auxiliary : /area/station/commons/toilet/auxiliary
+/area/commons/toilet/locker : /area/station/commons/toilet/locker
+/area/commons/toilet/restrooms : /area/station/commons/toilet/restrooms
+/area/commons/locker : /area/station/commons/locker
+/area/commons/lounge : /area/station/commons/lounge
+/area/commons/fitness : /area/station/commons/fitness
+/area/commons/fitness/locker_room : /area/station/commons/fitness/locker_room
+/area/commons/fitness/locker_room/male : /area/station/commons/fitness/locker_room/male
+/area/commons/fitness/locker_room/female : /area/station/commons/fitness/locker_room/female
+/area/commons/fitness/recreation : /area/station/commons/fitness/recreation
+/area/commons/fitness/recreation/entertainment : /area/station/commons/fitness/recreation/entertainment
+
+/area/commons/vacant_room : /area/station/commons/vacant_room
+/area/commons/vacant_room/office : /area/station/commons/vacant_room/office
+/area/commons/vacant_room/commissary : /area/station/commons/vacant_room/commissary
+
+/area/commons/storage : /area/station/commons/storage
+/area/commons/storage/tools : /area/station/commons/storage/tools
+/area/commons/storage/primary : /area/station/commons/storage/primary
+/area/commons/storage/art : /area/station/commons/storage/art
+/area/commons/storage/emergency/starboard : /area/station/commons/storage/emergency/starboard
+/area/commons/storage/emergency/port : /area/station/commons/storage/emergency/port
+/area/commons/storage/mining : /area/station/commons/storage/mining
+
+/area/service : /area/station/service
+/area/service/cafeteria : /area/station/service/cafeteria
+/area/service/kitchen : /area/station/service/kitchen
+/area/service/kitchen/coldroom : /area/station/service/kitchen/coldroom
+/area/service/kitchen/diner : /area/station/service/kitchen/diner
+/area/service/kitchen/abandoned : /area/station/service/kitchen/abandoned
+/area/service/bar : /area/station/service/bar
+/area/service/bar/Initialize(mapload) : /area/station/service/bar/Initialize(mapload)
+/area/service/bar/atrium : /area/station/service/bar/atrium
+/area/service/electronic_marketing_den : /area/station/service/electronic_marketing_den
+/area/service/abandoned_gambling_den : /area/station/service/abandoned_gambling_den
+/area/service/abandoned_gambling_den/gaming : /area/station/service/abandoned_gambling_den/gaming
+/area/service/theater : /area/station/service/theater
+/area/service/theater/abandoned : /area/station/service/theater/abandoned
+/area/service/library : /area/station/service/library
+/area/service/library/lounge : /area/station/service/library/lounge
+/area/service/library/artgallery : /area/station/service/library/artgallery
+/area/service/library/private : /area/station/service/library/private
+/area/service/library/upper : /area/station/service/library/upper
+/area/service/library/printer : /area/station/service/library/printer
+/area/service/library/abandoned : /area/station/service/library/abandoned
+/area/service/chapel : /area/station/service/chapel
+/area/service/chapel/monastery : /area/station/service/chapel/monastery
+/area/service/chapel/office : /area/station/service/chapel/office
+/area/service/chapel/asteroid : /area/station/service/chapel/asteroid
+/area/service/chapel/asteroid/monastery : /area/station/service/chapel/asteroid/monastery
+/area/service/chapel/dock : /area/station/service/chapel/dock
+/area/service/chapel/storage : /area/station/service/chapel/storage
+/area/service/chapel/funeral : /area/station/service/chapel/funeral
+/area/service/lawoffice : /area/station/service/lawoffice
+/area/service/janitor : /area/station/service/janitor
+/area/service/hydroponics : /area/station/service/hydroponics
+/area/service/hydroponics/upper : /area/station/service/hydroponics/upper
+/area/service/hydroponics/garden : /area/station/service/hydroponics/garden
+/area/service/hydroponics/garden/abandoned : /area/station/service/hydroponics/garden/abandoned
+/area/service/hydroponics/garden/monastery : /area/station/service/hydroponics/garden/monastery
+
+/area/engineering : /area/station/engineering
+/area/engineering/engine_smes : /area/station/engineering/engine_smes
+/area/engineering/main : /area/station/engineering/main
+/area/engineering/hallway : /area/station/engineering/hallway
+/area/engineering/atmos : /area/station/engineering/atmos
+/area/engineering/atmos/upper : /area/station/engineering/atmos/upper
+/area/engineering/atmos/project : /area/station/engineering/atmos/project
+/area/engineering/atmos/pumproom : /area/station/engineering/atmos/pumproom
+/area/engineering/atmos/mix : /area/station/engineering/atmos/mix
+/area/engineering/atmos/storage : /area/station/engineering/atmos/storage
+/area/engineering/atmos/storage/gas : /area/station/engineering/atmos/storage/gas
+/area/engineering/atmos/office : /area/station/engineering/atmos/office
+/area/engineering/atmos/hfr_room : /area/station/engineering/atmos/hfr_room
+/area/engineering/atmospherics_engine : /area/station/engineering/atmospherics_engine
+/area/engineering/lobby : /area/station/engineering/lobby
+/area/engineering/supermatter : /area/station/engineering/supermatter
+/area/engineering/supermatter/room : /area/station/engineering/supermatter/room
+/area/engineering/break_room : /area/station/engineering/break_room
+/area/engineering/gravity_generator : /area/station/engineering/gravity_generator
+/area/engineering/storage : /area/station/engineering/storage
+/area/engineering/storage_shared : /area/station/engineering/storage_shared
+/area/engineering/transit_tube : /area/station/engineering/transit_tube
+/area/engineering/storage/tech : /area/station/engineering/storage/tech
+/area/engineering/storage/tcomms : /area/station/engineering/storage/tcomms
+
+/area/construction : /area/construction
+/area/construction/mining/aux_base : /area/construction/mining/aux_base
+/area/construction/storage_wing : /area/construction/storage_wing
+
+/area/solars : /area/station/solars
+/area/solars/fore : /area/station/solars/fore
+/area/solars/aft : /area/station/solars/aft
+/area/solars/aux/port : /area/station/solars/aux/port
+/area/solars/aux/starboard : /area/station/solars/aux/starboard
+/area/solars/starboard : /area/station/solars/starboard
+/area/solars/starboard/aft : /area/station/solars/starboard/aft
+/area/solars/starboard/fore : /area/station/solars/starboard/fore
+/area/solars/port : /area/station/solars/port
+/area/solars/port/aft : /area/station/solars/port/aft
+/area/solars/port/fore : /area/station/solars/port/fore
+/area/solars/aisat : /area/station/solars/aisat
+
+/area/maintenance/solars : /area/station/maintenance/solars
+/area/maintenance/solars/port : /area/station/maintenance/solars/port
+/area/maintenance/solars/port/aft : /area/station/maintenance/solars/port/aft
+/area/maintenance/solars/port/fore : /area/station/maintenance/solars/port/fore
+/area/maintenance/solars/starboard : /area/station/maintenance/solars/starboard
+/area/maintenance/solars/starboard/aft : /area/station/maintenance/solars/starboard/aft
+/area/maintenance/solars/starboard/fore : /area/station/maintenance/solars/starboard/fore
+
+/area/medical : /area/station/medical
+/area/medical/abandoned : /area/station/medical/abandoned
+/area/medical/medbay : /area/station/medical/medbay
+/area/medical/medbay/central : /area/station/medical/medbay/central
+/area/medical/medbay/lobby : /area/station/medical/medbay/lobby
+/area/medical/medbay/aft : /area/station/medical/medbay/aft
+/area/medical/storage : /area/station/medical/storage
+/area/medical/paramedic : /area/station/medical/paramedic
+/area/medical/office : /area/station/medical/office
+/area/medical/break_room : /area/station/medical/break_room
+/area/medical/coldroom : /area/station/medical/coldroom
+/area/medical/patients_rooms : /area/station/medical/patients_rooms
+/area/medical/patients_rooms/room_a : /area/station/medical/patients_rooms/room_a
+/area/medical/patients_rooms/room_b : /area/station/medical/patients_rooms/room_b
+/area/medical/virology : /area/station/medical/virology
+/area/medical/morgue : /area/station/medical/morgue
+/area/medical/chemistry : /area/station/medical/chemistry
+/area/medical/pharmacy : /area/station/medical/pharmacy
+/area/medical/surgery : /area/station/medical/surgery
+/area/medical/surgery/fore : /area/station/medical/surgery/fore
+/area/medical/surgery/aft : /area/station/medical/surgery/aft
+/area/medical/surgery/theatre : /area/station/medical/surgery/theatre
+/area/medical/cryo : /area/station/medical/cryo
+/area/medical/exam_room : /area/station/medical/exam_room
+/area/medical/treatment_center : /area/station/medical/treatment_center
+/area/medical/psychology : /area/station/medical/psychology
+
+/area/security : /area/station/security
+/area/security/office : /area/station/security/office
+/area/security/lockers : /area/station/security/lockers
+/area/security/brig : /area/station/security/brig
+/area/security/holding_cell : /area/station/security/holding_cell
+/area/security/medical : /area/station/security/medical
+/area/security/brig/upper : /area/station/security/brig/upper
+/area/security/courtroom : /area/station/security/courtroom
+/area/security/prison : /area/station/security/prison
+/area/security/prison/toilet : /area/station/security/prison/toilet
+/area/security/prison/safe : /area/station/security/prison/safe
+/area/security/prison/upper : /area/station/security/prison/upper
+/area/security/prison/visit : /area/station/security/prison/visit
+/area/security/prison/rec : /area/station/security/prison/rec
+/area/security/prison/mess : /area/station/security/prison/mess
+/area/security/prison/work : /area/station/security/prison/work
+/area/security/prison/shower : /area/station/security/prison/shower
+/area/security/prison/workout : /area/station/security/prison/workout
+/area/security/prison/garden : /area/station/security/prison/garden
+/area/security/processing : /area/station/security/processing
+/area/security/processing/cremation : /area/station/security/processing/cremation
+/area/security/interrogation : /area/station/security/interrogation
+/area/security/warden : /area/station/security/warden
+/area/security/detectives_office : /area/station/security/detectives_office
+/area/security/detectives_office/private_investigators_office : /area/station/security/detectives_office/private_investigators_office
+/area/security/range : /area/station/security/range
+/area/security/execution : /area/station/security/execution
+/area/security/execution/transfer : /area/station/security/execution/transfer
+/area/security/execution/education : /area/station/security/execution/education
+/area/security/checkpoint : /area/station/security/checkpoint
+/area/security/checkpoint/auxiliary : /area/station/security/checkpoint/auxiliary
+/area/security/checkpoint/escape : /area/station/security/checkpoint/escape
+/area/security/checkpoint/supply : /area/station/security/checkpoint/supply
+/area/security/checkpoint/engineering : /area/station/security/checkpoint/engineering
+/area/security/checkpoint/medical : /area/station/security/checkpoint/medical
+/area/security/checkpoint/science : /area/station/security/checkpoint/science
+/area/security/checkpoint/science/research : /area/station/security/checkpoint/science/research
+/area/security/checkpoint/customs : /area/station/security/checkpoint/customs
+/area/security/checkpoint/customs/auxiliary : /area/station/security/checkpoint/customs/auxiliary
+/area/security/checkpoint/customs/fore : /area/station/security/checkpoint/customs/fore
+/area/security/checkpoint/customs/aft : /area/station/security/checkpoint/customs/aft
+
+/area/cargo : /area/station/cargo
+/area/cargo/sorting : /area/station/cargo/sorting
+/area/cargo/warehouse : /area/station/cargo/warehouse
+/area/cargo/drone_bay : /area/station/cargo/drone_bay
+/area/cargo/warehouse/upper : /area/station/cargo/warehouse/upper
+/area/cargo/office : /area/station/cargo/office
+/area/cargo/storage : /area/station/cargo/storage
+/area/cargo/lobby : /area/station/cargo/lobby
+/area/cargo/qm : /area/station/cargo/qm
+/area/cargo/miningdock : /area/station/cargo/miningdock
+/area/cargo/miningdock/cafeteria : /area/station/cargo/miningdock/cafeteria
+/area/cargo/miningdock/oresilo : /area/station/cargo/miningdock/oresilo
+/area/cargo/miningoffice : /area/station/cargo/miningoffice
+
+/area/science : /area/station/science
+/area/science/lobby : /area/station/science/lobby
+/area/science/lower : /area/station/science/lower
+/area/science/breakroom : /area/station/science/breakroom
+/area/science/lab : /area/station/science/lab
+/area/science/xenobiology : /area/station/science/xenobiology
+/area/science/xenobiology/hallway : /area/station/science/xenobiology/hallway
+/area/science/cytology : /area/station/science/cytology
+/area/science/storage : /area/station/science/storage
+/area/science/test_area : /area/station/science/test_area
+/area/science/mixing : /area/station/science/mixing
+/area/science/mixing/chamber : /area/station/science/mixing/chamber
+/area/science/mixing/hallway : /area/station/science/mixing/hallway
+/area/science/mixing/launch : /area/station/science/mixing/launch
+/area/science/genetics : /area/station/science/genetics
+/area/science/misc_lab : /area/station/science/misc_lab
+/area/science/misc_lab/range : /area/station/science/misc_lab/range
+/area/science/server : /area/station/science/server
+/area/science/explab : /area/station/science/explab
+/area/science/robotics : /area/station/science/robotics
+/area/science/robotics/mechbay : /area/station/science/robotics/mechbay
+/area/science/robotics/lab : /area/station/science/robotics/lab
+/area/science/research : /area/station/science/research
+/area/science/research/abandoned : /area/station/science/research/abandoned
+
+/area/tcommsat : /area/station/tcommsat
+/area/tcommsat/computer : /area/station/tcommsat/computer
+/area/tcommsat/server : /area/station/tcommsat/server
+/area/tcommsat/server/upper : /area/station/tcommsat/server/upper
+
+/area/comms : /area/station/comms
+/area/server : /area/station/server
+
+/area/maintenance/external : /area/station/maintenance/external
+/area/maintenance/external/aft : /area/station/maintenance/external/aft
+/area/maintenance/external/port : /area/station/maintenance/external/port
+/area/maintenance/external/port/bow : /area/station/maintenance/external/port/bow
diff --git a/tools/UpdatePaths/Scripts/66411_thermomachines.txt b/tools/UpdatePaths/Scripts/66411_thermomachines.txt
new file mode 100644
index 000000000000..a53afc0727b2
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66411_thermomachines.txt
@@ -0,0 +1,6 @@
+/obj/machinery/atmospherics/components/binary/thermomachine : /obj/machinery/atmospherics/components/unary/thermomachine{@OLD}
+/obj/machinery/atmospherics/components/binary/thermomachine/freezer : /obj/machinery/atmospherics/components/unary/thermomachine/freezer{@OLD}
+/obj/machinery/atmospherics/components/binary/thermomachine/freezer/on : /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{@OLD}
+/obj/machinery/atmospherics/components/binary/thermomachine/freezer/on/coldroom : /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{@OLD}
+/obj/machinery/atmospherics/components/binary/thermomachine/heater : /obj/machinery/atmospherics/components/unary/thermomachine/heater{@OLD}
+/obj/machinery/atmospherics/components/binary/thermomachine/heater/on : /obj/machinery/atmospherics/components/unary/thermomachine/heater/on{@OLD}
diff --git a/tools/UpdatePaths/Scripts/66505_tablet_cartridges.txt b/tools/UpdatePaths/Scripts/66505_tablet_cartridges.txt
new file mode 100644
index 000000000000..7f60a8f1295f
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66505_tablet_cartridges.txt
@@ -0,0 +1,24 @@
+/obj/item/computer_hardware/hard_drive/role/medical : /obj/item/computer_hardware/hard_drive/portable/medical
+/obj/item/computer_hardware/hard_drive/role/chemistry : /obj/item/computer_hardware/hard_drive/portable/chemistry
+/obj/item/computer_hardware/hard_drive/role/engineering : /obj/item/computer_hardware/hard_drive/portable/engineering
+/obj/item/computer_hardware/hard_drive/role/atmos : /obj/item/computer_hardware/hard_drive/portable/atmos
+/obj/item/computer_hardware/hard_drive/role/signal : /obj/item/computer_hardware/hard_drive/portable/ordnance
+/obj/item/computer_hardware/hard_drive/role/signal/ordnance : /obj/item/computer_hardware/hard_drive/portable/ordnance
+/obj/item/computer_hardware/hard_drive/role/quartermaster : /obj/item/computer_hardware/hard_drive/portable/quartermaster
+/obj/item/computer_hardware/hard_drive/role/rd : /obj/item/computer_hardware/hard_drive/portable/command/rd
+/obj/item/computer_hardware/hard_drive/role/ce : /obj/item/computer_hardware/hard_drive/portable/command/ce
+/obj/item/computer_hardware/hard_drive/role/cmo : /obj/item/computer_hardware/hard_drive/portable/command/cmo
+/obj/item/computer_hardware/hard_drive/role/hos : /obj/item/computer_hardware/hard_drive/portable/command/hos
+/obj/item/computer_hardware/hard_drive/role/hop : /obj/item/computer_hardware/hard_drive/portable/command/hop
+/obj/item/computer_hardware/hard_drive/role/captain : /obj/item/computer_hardware/hard_drive/portable/command/captain
+/obj/item/computer_hardware/hard_drive/role/virus/mime : /obj/item/computer_hardware/hard_drive/portable/virus/mime
+/obj/item/computer_hardware/hard_drive/role/virus/clown : /obj/item/computer_hardware/hard_drive/portable/virus/clown
+/obj/item/computer_hardware/hard_drive/role/virus/deto : /obj/item/computer_hardware/hard_drive/portable/virus/deto
+/obj/item/computer_hardware/hard_drive/role/virus/frame : /obj/item/computer_hardware/hard_drive/portable/virus/frame
+
+/obj/item/computer_hardware/hard_drive/role/lawyer : @DELETE
+/obj/item/computer_hardware/hard_drive/role/detective : @DELETE
+/obj/item/computer_hardware/hard_drive/role/janitor : @DELETE
+/obj/item/computer_hardware/hard_drive/role/curator : @DELETE
+/obj/item/computer_hardware/hard_drive/role/roboticist : @DELETE
+/obj/item/computer_hardware/hard_drive/role/signal : @DELETE
diff --git a/tools/UpdatePaths/Scripts/66754_replace_sign_names.txt b/tools/UpdatePaths/Scripts/66754_replace_sign_names.txt
new file mode 100644
index 000000000000..eed28991fad9
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66754_replace_sign_names.txt
@@ -0,0 +1,17 @@
+/obj/structure/sign/warning/securearea : /obj/structure/sign/warning/secure_area {@OLD}
+/obj/structure/sign/warning/electricshock : /obj/structure/sign/warning/electric_shock {@OLD}
+/obj/structure/sign/warning/nosmoking : /obj/structure/sign/warning/no_smoking {@OLD}
+/obj/structure/sign/warning/nosmoking/circle : /obj/structure/sign/warning/no_smoking/circle {@OLD}
+/obj/structure/sign/warning/yessmoking/circle : /obj/structure/sign/warning/yes_smoking/circle {@OLD}
+/obj/structure/sign/warning/enginesafety : /obj/structure/sign/warning/engine_safety {@OLD}
+/obj/structure/sign/warning/testchamber : /obj/structure/sign/warning/test_chamber {@OLD}
+/obj/structure/sign/warning/firingrange : /obj/structure/sign/warning/firing_range {@OLD}
+/obj/structure/sign/warning/coldtemp : /obj/structure/sign/warning/cold_temp {@OLD}
+/obj/structure/sign/warning/hottemp : /obj/structure/sign/warning/hot_temp {@OLD}
+/obj/structure/sign/warning/gasmask : /obj/structure/sign/warning/gas_mask {@OLD}
+/obj/structure/sign/warning/chemdiamond : /obj/structure/sign/warning/chem_diamond {@OLD}
+/obj/structure/sign/warning/radshelter : /obj/structure/sign/warning/rad_shelter {@OLD}
+
+/obj/structure/sign/departments/examroom : /obj/structure/sign/departments/exam_room {@OLD}
+/obj/structure/sign/departments/mait : /obj/structure/sign/departments/maint {@OLD}
+/obj/structure/sign/departments/mait/alt : /obj/structure/sign/departments/maint/alt {@OLD}
diff --git a/tools/UpdatePaths/Scripts/66860_replace_masks.txt b/tools/UpdatePaths/Scripts/66860_replace_masks.txt
new file mode 100644
index 000000000000..234864a4019b
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/66860_replace_masks.txt
@@ -0,0 +1,16 @@
+#comment This replaces animal mask paths to the new simplified paths see (https://github.com/tgstation/tgstation/pull/66860)
+
+/obj/item/clothing/mask/animal/rat/cursed : /obj/item/clothing/mask/animal/small/rat/cursed
+/obj/item/clothing/mask/animal/rat/fox/cursed : /obj/item/clothing/mask/animal/small/fox/cursed
+/obj/item/clothing/mask/animal/rat/bee/cursed : /obj/item/clothing/mask/animal/small/bee/cursed
+/obj/item/clothing/mask/animal/rat/bear/cursed : /obj/item/clothing/mask/animal/small/bear/cursed
+/obj/item/clothing/mask/animal/rat/bat/cursed : /obj/item/clothing/mask/animal/small/bat/cursed
+/obj/item/clothing/mask/animal/rat/raven/cursed : /obj/item/clothing/mask/animal/small/raven/cursed
+/obj/item/clothing/mask/animal/rat/jackal/cursed : /obj/item/clothing/mask/animal/small/jackal/cursed
+/obj/item/clothing/mask/animal/rat : /obj/item/clothing/mask/animal/small/rat
+/obj/item/clothing/mask/animal/rat/fox : /obj/item/clothing/mask/animal/small/fox
+/obj/item/clothing/mask/animal/rat/bee : /obj/item/clothing/mask/animal/small/bee
+/obj/item/clothing/mask/animal/rat/bear : /obj/item/clothing/mask/animal/small/bear
+/obj/item/clothing/mask/animal/rat/bat : /obj/item/clothing/mask/animal/small/bat
+/obj/item/clothing/mask/animal/rat/raven : /obj/item/clothing/mask/animal/small/raven
+/obj/item/clothing/mask/animal/rat/jackal : /obj/item/clothing/mask/animal/small/jackal
diff --git a/tools/UpdatePaths/Scripts/67083_action_granters.txt b/tools/UpdatePaths/Scripts/67083_action_granters.txt
new file mode 100644
index 000000000000..91609df338ce
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/67083_action_granters.txt
@@ -0,0 +1 @@
+/obj/item/book/granter/spell/@SUBTYPES : /obj/item/book/granter/action/spell/@SUBTYPES {@OLD}
diff --git a/tools/UpdatePaths/Scripts/67107_turf_updates_2.txt b/tools/UpdatePaths/Scripts/67107_turf_updates_2.txt
new file mode 100644
index 000000000000..b5ac4b51b8fd
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/67107_turf_updates_2.txt
@@ -0,0 +1,118 @@
+#comment This is the second turf updates txt. This one only reorganizes the work tree. Use the first one if you're trying to update your area typepaths for stations, then run this.
+
+/area/centcom/control : /area/centcom/central_command_areas/control
+/area/centcom/evacuation : /area/centcom/central_command_areas/evacuation
+/area/centcom/evacuation/ship : /area/centcom/central_command_areas/evacuation/ship
+/area/centcom/fore : /area/centcom/central_command_areas/fore
+/area/centcom/supply : /area/centcom/central_command_areas/supply
+/area/centcom/ferry : /area/centcom/central_command_areas/ferry
+/area/centcom/briefing : /area/centcom/central_command_areas/briefing
+/area/centcom/armory : /area/centcom/central_command_areas/armory
+/area/centcom/admin : /area/centcom/central_command_areas/admin
+/area/centcom/admin/storage : /area/centcom/central_command_areas/admin/storage
+/area/centcom/prison : /area/centcom/central_command_areas/prison
+/area/centcom/prison/cells : /area/centcom/central_command_areas/prison/cells
+/area/centcom/courtroom : /area/centcom/central_command_areas/courtroom
+/area/centcom/holding : /area/centcom/central_command_areas/holding
+/area/centcom/supplypod/supplypod_temp_holding : /area/centcom/central_command_areas/supplypod/supplypod_temp_holding
+/area/centcom/supplypod : /area/centcom/central_command_areas/supplypod
+/area/centcom/supplypod/pod_storage : /area/centcom/central_command_areas/supplypod/pod_storage
+/area/centcom/supplypod/loading : /area/centcom/central_command_areas/supplypod/loading
+/area/centcom/supplypod/loading/one : /area/centcom/central_command_areas/supplypod/loading/one
+/area/centcom/supplypod/loading/two : /area/centcom/central_command_areas/supplypod/loading/two
+/area/centcom/supplypod/loading/three : /area/centcom/central_command_areas/supplypod/loading/three
+/area/centcom/supplypod/loading/four : /area/centcom/central_command_areas/supplypod/loading/four
+/area/centcom/supplypod/loading/ert : /area/centcom/central_command_areas/supplypod/loading/ert
+
+/area/tdome : /area/centcom/tdome
+/area/tdome/arena : /area/centcom/tdome/arena
+/area/tdome/arena_source : /area/centcom/tdome/arena_source
+/area/tdome/tdome1 : /area/centcom/tdome/tdome1
+/area/tdome/tdome2 : /area/centcom/tdome/tdome2
+/area/tdome/administration : /area/centcom/tdome/administration
+/area/tdome/observation : /area/centcom/tdome/observation
+
+/area/wizard_station : /area/centcom/wizard_station
+/area/abductor_ship : /area/centcom/abductor_ship
+/area/syndicate_mothership : /area/centcom/syndicate_mothership
+/area/syndicate_mothership/control : /area/centcom/syndicate_mothership/control
+/area/syndicate_mothership/expansion_bombthreat : /area/centcom/syndicate_mothership/expansion_bombthreat
+/area/syndicate_mothership/expansion_bioterrorism : /area/centcom/syndicate_mothership/expansion_bioterrorism
+/area/syndicate_mothership/expansion_chemicalwarfare : /area/centcom/syndicate_mothership/expansion_chemicalwarfare
+/area/syndicate_mothership/expansion_fridgerummage :/area/centcom/syndicate_mothership/expansion_fridgerummage
+/area/syndicate_mothership/elite_squad : /area/centcom/syndicate_mothership/elite_squad
+
+/area/heretic_sacrifice : /area/centcom/heretic_sacrifice
+/area/heretic_sacrifice/ash : /area/centcom/heretic_sacrifice/ash
+/area/heretic_sacrifice/void : /area/centcom/heretic_sacrifice/void
+/area/heretic_sacrifice/flesh : /area/centcom/heretic_sacrifice/flesh
+/area/heretic_sacrifice/rust : /area/centcom/heretic_sacrifice/rust
+
+/area/ctf : /area/centcom/ctf
+/area/ctf/control_room : /area/centcom/ctf/control_room
+/area/ctf/control_room2 : /area/centcom/ctf/control_room2
+/area/ctf/central : /area/centcom/ctf/central
+/area/ctf/main_hall : /area/centcom/ctf/main_hall
+/area/ctf/main_hall2 : /area/centcom/ctf/main_hall2
+/area/ctf/corridor : /area/centcom/ctf/corridor
+/area/ctf/corridor2: /area/centcom/ctf/corridor2
+/area/ctf/flag_room : /area/centcom/ctf/flag_room
+/area/ctf/flag_room2 : /area/centcom/ctf/flag_room2
+
+/area/start : /area/misc/start
+/area/testroom : /area/misc/testroom
+
+/area/ai_monitored : /area/station/ai_monitored
+/area/ai_monitored/turret_protected : /area/station/ai_monitored/turret_protected
+/area/ai_monitored : /area/station/ai_monitored
+/area/ai_monitored/aisat/exterior : /area/station/ai_monitored/aisat/exterior
+/area/ai_monitored/command/storage/satellite : /area/station/ai_monitored/command/storage/satellite
+/area/ai_monitored/turret_protected : /area/station/ai_monitored/turret_protected
+/area/ai_monitored/turret_protected/ai_upload : /area/station/ai_monitored/turret_protected/ai_upload
+/area/ai_monitored/turret_protected/ai_upload_foyer : /area/station/ai_monitored/turret_protected/ai_upload_foyer
+/area/ai_monitored/turret_protected/ai : /area/station/ai_monitored/turret_protected/ai
+/area/ai_monitored/turret_protected/aisat : /area/station/ai_monitored/turret_protected/aisat
+/area/ai_monitored/turret_protected/aisat/atmos : /area/station/ai_monitored/turret_protected/aisat/atmos
+/area/ai_monitored/turret_protected/aisat/foyer : /area/station/ai_monitored/turret_protected/aisat/foyer
+/area/ai_monitored/turret_protected/aisat/service : /area/station/ai_monitored/turret_protected/aisat/service
+/area/ai_monitored/turret_protected/aisat/hallway : /area/station/ai_monitored/turret_protected/aisat/hallway
+/area/ai_monitored/turret_protected/aisat/maint : /area/station/ai_monitored/turret_protected/aisat/maint
+/area/ai_monitored/turret_protected/aisat_interior : /area/station/ai_monitored/turret_protected/aisat_interior
+/area/ai_monitored/turret_protected/ai_sat_ext_as : /area/station/ai_monitored/turret_protected/ai_sat_ext_as
+/area/ai_monitored/turret_protected/ai_sat_ext_ap : /area/station/ai_monitored/turret_protected/ai_sat_ext_ap
+/area/ai_monitored/command/storage/eva : /area/station/ai_monitored/command/storage/eva
+/area/ai_monitored/command/storage/eva/upper : /area/station/ai_monitored/command/storage/eva/upper
+/area/ai_monitored/command/nuke_storage : /area/station/ai_monitored/command/nuke_storage
+/area/ai_monitored/security/armory : /area/station/ai_monitored/security/armory
+/area/ai_monitored/security/armory/upper : /area/station/ai_monitored/security/armory/upper
+
+/area/tcommsat/oldaisat : /area/ruin/tcommsat_oldaisat
+
+/area/solars/ancientstation/charlie/solars : /area/ruin/solars/ancientstation/charlie/solars
+/area/solars/derelict_starboard : /area/ruin/solars/derelict_starboard
+/area/solars/derelict_aft : /area/ruin/solars/derelict_aft
+
+/area/ai_multicam_room : /area/centcom/ai_multicam_room
+
+/area/cordon : /area/misc/cordon
+
+/area/holodeck : /area/station/holodeck
+/area/holodeck/rec_center : /area/station/holodeck/rec_center
+/area/holodeck/rec_center/offstation_one : /area/station/holodeck/rec_center/offstation_one
+
+/area/asteroid : /area/centcom/asteroid
+/area/asteroid/nearstation : /area/centcom/asteroid/nearstation
+/area/asteroid/nearstation/bomb_site : /area/centcom/asteroid/nearstation/bomb_site
+
+/area/hilbertshotel : /area/misc/hilbertshotel
+/area/hilbertshotelstorage : /area/misc/hilbertshotelstorage
+
+/area/construction : /area/station/construction
+/area/construction/mining/aux_base : /area/station/construction/mining/aux_base
+/area/construction/storage_wing : /area/station/construction/storage_wing
+
+/area/mafia : /area/centcom/mafia
+
+/area/shuttle_arena : /area/shuttle/shuttle_arena
+
+/area/survivalpod : /area/misc/survivalpod
diff --git a/tools/UpdatePaths/Scripts/67324_misc_space_fix.txt b/tools/UpdatePaths/Scripts/67324_misc_space_fix.txt
new file mode 100644
index 000000000000..6ae0987fa478
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/67324_misc_space_fix.txt
@@ -0,0 +1,4 @@
+#comment We fucked up, run this to revert behavior.
+
+/area/misc/space : /area/space
+/area/misc/space/nearstation : /area/space/nearstation
diff --git a/tools/UpdatePaths/Scripts/67512_mail_sorting_to_shipping.txt b/tools/UpdatePaths/Scripts/67512_mail_sorting_to_shipping.txt
new file mode 100644
index 000000000000..7a6699b354b2
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/67512_mail_sorting_to_shipping.txt
@@ -0,0 +1,2 @@
+/obj/effect/mapping_helpers/airlock/access/any/supply/mail_sorting : /obj/effect/mapping_helpers/airlock/access/any/supply/shipping
+/obj effect/mapping_helpers/airlock/access/all/supply/mail_sorting : /obj/effect/mapping_helpers/airlock/access/all/supply/shipping
\ No newline at end of file
diff --git a/tools/UpdatePaths/Scripts/67761_floorvaredits_to_mappinghelpers.txt b/tools/UpdatePaths/Scripts/67761_floorvaredits_to_mappinghelpers.txt
new file mode 100644
index 000000000000..05fed1cadb38
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/67761_floorvaredits_to_mappinghelpers.txt
@@ -0,0 +1,66 @@
+/turf/open/floor/iron/@SUBTYPES{icon_state="damaged1"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="damaged2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="damaged3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="damaged4"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="damaged5"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="floorscorched1"} : /obj/effect/mapping_helpers/burnt_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/iron/@SUBTYPES{icon_state="floorscorched2"} : /obj/effect/mapping_helpers/burnt_floor , /turf/open/floor/iron/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/plating/@SUBTYPES{icon_state="platingdmg1"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/plating/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/plating/@SUBTYPES{icon_state="platingdmg2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/plating/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/plating/@SUBTYPES{icon_state="platingdmg3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/plating/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/plating/@SUBTYPES{icon_state="panelscorched"} : /obj/effect/mapping_helpers/burnt_floor , /turf/open/floor/plating/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken4"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken5"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken6"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood-broken7"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken4"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken5"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken6"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_parquet-broken7"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_tile-broken"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_tile-broken2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_tile-broken3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_large-broken"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_large-broken2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/wood/@SUBTYPES{icon_state="wood_large-broken3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/wood/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="silver_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="gold_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="diamond_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plasma_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="uranium_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="bananium_dam"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam1"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam4"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam5"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam1_old"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam2_old"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam3_old"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam4_old"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="titanium_dam5_old"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plastitanium_dam1"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plastitanium_dam2"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plastitanium_dam3"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plastitanium_dam4"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
+/turf/open/floor/mineral/@SUBTYPES{icon_state="plastitanium_dam5"} : /obj/effect/mapping_helpers/broken_floor , /turf/open/floor/mineral/@SUBTYPES{@OLD;icon_state=@SKIP;broken=@SKIP}
diff --git a/tools/UpdatePaths/Scripts/68004_varedited_signs_to_subtype_directionals.txt b/tools/UpdatePaths/Scripts/68004_varedited_signs_to_subtype_directionals.txt
new file mode 100644
index 000000000000..2c9a3b1d62af
--- /dev/null
+++ b/tools/UpdatePaths/Scripts/68004_varedited_signs_to_subtype_directionals.txt
@@ -0,0 +1,452 @@
+#comment This UpdatePaths File should move every single sign in-game into a directional subtype in order to help with cutting down on the lines in your average DMM file.
+#comment There are the obvious North, South, East, West directionals: but several maps do two pixelshifts in order to get the sign in a corner.
+#comment This UpdatePaths File accounts for this by setting the subtype to either East or West, and then giving the "north" and "south" effect by a pixelshift.
+#comment Somethings are just utterly inescapable, and it's niche enough to the point where I don't see the need to define an entirely new directional subclass, just for "southwest" to be a thing.
+#comment The old functionality of manually pixelshifting a sign will still remain, but this just gives mappers subtle cues as to what I would really like them to do.
+#comment Some people also didn't properly pixel_shift it (using something like 28 instead of 32), but it's not going to be possible to automate auditing all of those because UpdatePaths can't do ranges of numbers. Unfortunate.
+#comment One thing to note is that the @SUBTYPES variable does not work for what I'm trying to accomplish (I tried), so I'm going to be explicit with every subtype in this script. It hurts me more than it hurts you.
+
+#comment Warning Signs!
+
+/obj/structure/sign/warning{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/biohazard{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/biohazard/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/biohazard{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/biohazard/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/biohazard{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/biohazard/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/biohazard{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/biohazard/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/biohazard{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/biohazard/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/biohazard{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/biohazard/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/biohazard{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/biohazard/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/biohazard{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/biohazard/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/bodysposal{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/bodysposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/bodysposal{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/bodysposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/bodysposal{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/bodysposal/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/bodysposal{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/bodysposal/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/bodysposal{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/bodysposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/bodysposal{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/bodysposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/bodysposal{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/bodysposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/bodysposal{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/bodysposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/chem_diamond{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/chem_diamond/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/chem_diamond{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/chem_diamond/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/chem_diamond{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/chem_diamond/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/chem_diamond{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/chem_diamond/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/chem_diamond{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/chem_diamond/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/chem_diamond{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/chem_diamond/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/chem_diamond{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/chem_diamond/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/chem_diamond{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/chem_diamond/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/cold_temp{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/cold_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/cold_temp{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/cold_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/cold_temp{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/cold_temp/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/cold_temp{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/cold_temp/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/cold_temp{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/cold_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/cold_temp{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/cold_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/cold_temp{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/cold_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/cold_temp{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/cold_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/deathsposal{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/deathsposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/deathsposal{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/deathsposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/deathsposal{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/deathsposal/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/deathsposal{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/deathsposal/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/deathsposal{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/deathsposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/deathsposal{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/deathsposal/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/deathsposal{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/deathsposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/deathsposal{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/deathsposal/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/docking{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/docking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/docking{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/docking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/docking{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/docking/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/docking{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/docking/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/docking{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/docking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/docking{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/docking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/docking{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/docking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/docking{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/docking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/electric_shock{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/electric_shock/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/electric_shock{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/electric_shock/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/electric_shock{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/electric_shock/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/electric_shock{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/electric_shock/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/electric_shock{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/electric_shock/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/electric_shock{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/electric_shock/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/electric_shock{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/electric_shock/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/electric_shock{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/electric_shock/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/engine_safety{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/engine_safety/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/engine_safety{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/engine_safety/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/engine_safety{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/engine_safety/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/engine_safety{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/engine_safety/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/engine_safety{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/engine_safety/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/engine_safety{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/engine_safety/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/engine_safety{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/engine_safety/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/engine_safety{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/engine_safety/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/explosives{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/explosives/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/explosives/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/explosives/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/explosives/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/explosives/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/explosives{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/explosives/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/explosives{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/explosives/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/explosives{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/explosives/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/fire{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/fire/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/fire{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/fire/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/fire{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/fire/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/fire{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/fire/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/fire{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/fire/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/fire{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/fire/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/fire{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/fire/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/fire{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/fire/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/firing_range{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/firing_range/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/firing_range{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/firing_range/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/firing_range{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/firing_range/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/firing_range{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/firing_range/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/firing_range{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/firing_range/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/firing_range{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/firing_range/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/firing_range{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/firing_range/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/firing_range{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/firing_range/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/gas_mask{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/gas_mask/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/gas_mask{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/gas_mask/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/gas_mask{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/gas_mask/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/gas_mask{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/gas_mask/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/gas_mask{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/gas_mask/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/gas_mask{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/gas_mask/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/gas_mask{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/gas_mask/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/gas_mask{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/gas_mask/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/hot_temp{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/hot_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/hot_temp{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/hot_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/hot_temp{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/hot_temp/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/hot_temp{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/hot_temp/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/hot_temp{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/hot_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/hot_temp{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/hot_temp/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/hot_temp{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/hot_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/hot_temp{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/hot_temp/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/no_smoking{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/no_smoking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/no_smoking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/no_smoking/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/no_smoking{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/no_smoking/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/no_smoking{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/no_smoking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/no_smoking{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/pods{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/pods/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/pods{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/pods/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/pods{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/pods/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/pods{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/pods/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/pods{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/pods/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/pods{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/pods/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/pods{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/pods/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/pods{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/pods/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/rad_shelter{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/rad_shelter/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/rad_shelter{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/rad_shelter/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/rad_shelter{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/rad_shelter/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/rad_shelter{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/rad_shelter/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/rad_shelter{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/rad_shelter/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/rad_shelter{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/rad_shelter/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/rad_shelter{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/rad_shelter/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/rad_shelter{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/rad_shelter/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/radiation{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/radiation/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/radiation/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/radiation/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/radiation/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/radiation/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/radiation{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/radiation/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/radiation{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/radiation/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/radiation{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/radiation/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/secure_area{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/secure_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/secure_area{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/secure_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/secure_area{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/secure_area/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/secure_area{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/secure_area/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/secure_area{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/secure_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/secure_area{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/secure_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/secure_area{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/secure_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/secure_area{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/secure_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/test_chamber{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/test_chamber/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/test_chamber{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/test_chamber/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/test_chamber{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/test_chamber/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/test_chamber{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/test_chamber/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/test_chamber{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/test_chamber/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/test_chamber{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/test_chamber/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/test_chamber{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/test_chamber/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/test_chamber{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/test_chamber/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/vacuum{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/vacuum/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/vacuum/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/vacuum/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/vacuum/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/vacuum/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/vacuum{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/vacuum/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/vacuum{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/vacuum/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/vacuum{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/vacuum/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/xeno_mining{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/xeno_mining/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/xeno_mining{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/xeno_mining/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/xeno_mining{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/xeno_mining/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/xeno_mining{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/xeno_mining/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/xeno_mining{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/xeno_mining/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/xeno_mining{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/xeno_mining/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/xeno_mining{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/xeno_mining/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/xeno_mining{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/xeno_mining/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/yes_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/yes_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/yes_smoking/circle/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/yes_smoking/circle/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/yes_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/yes_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/yes_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/yes_smoking/circle{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/yes_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/vacuum/external{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/vacuum/external/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum/external{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/vacuum/external/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum/external{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/vacuum/external/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum/external{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/vacuum/external/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/vacuum/external{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/vacuum/external/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/vacuum/external{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/vacuum/external/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/vacuum/external{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/vacuum/external/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/vacuum/external{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/vacuum/external/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/no_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/no_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/no_smoking/circle/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/circle/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/no_smoking/circle/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/no_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/no_smoking/circle{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/no_smoking/circle/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/explosives/alt{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/explosives/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives/alt{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/explosives/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives/alt{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/explosives/alt/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives/alt{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/explosives/alt/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/explosives/alt{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/explosives/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/explosives/alt{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/explosives/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/explosives/alt{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/explosives/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/explosives/alt{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/explosives/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/warning/radiation/rad_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/warning/radiation/rad_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/warning/radiation/rad_area/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/warning/radiation/rad_area/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=32;pixel_y=-32} : /obj/structure/sign/warning/radiation/rad_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=32;pixel_y=32} : /obj/structure/sign/warning/radiation/rad_area/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=-32;pixel_y=32} : /obj/structure/sign/warning/radiation/rad_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/warning/radiation/rad_area{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/warning/radiation/rad_area/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+#comment Departmental Signs!
+
+/obj/structure/sign/departments/botany{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/botany/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/botany{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/botany/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/botany{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/botany/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/botany{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/botany/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/botany{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/botany/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/botany{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/botany/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/botany{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/botany/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/botany{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/botany/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/cargo{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/cargo/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/cargo{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/cargo/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/cargo{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/cargo/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/cargo{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/cargo/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/cargo{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/cargo/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/cargo{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/cargo/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/cargo{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/cargo/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/cargo{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/cargo/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/chemistry{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/chemistry/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/chemistry/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/chemistry/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/chemistry/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/chemistry/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/chemistry{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/chemistry/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/chemistry{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/chemistry/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/chemistry{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/chemistry/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/court{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/court/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/court{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/court/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/court{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/court/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/court{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/court/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/court{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/court/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/court{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/court/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/court{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/court/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/court{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/court/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/custodian{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/custodian/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/custodian{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/custodian/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/custodian{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/custodian/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/custodian{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/custodian/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/custodian{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/custodian/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/custodian{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/custodian/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/custodian{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/custodian/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/custodian{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/custodian/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/drop{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/drop/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/drop{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/drop/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/drop{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/drop/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/drop{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/drop/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/drop{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/drop/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/drop{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/drop/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/drop{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/drop/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/drop{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/drop/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/engineering{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/engineering/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/engineering{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/engineering/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/engineering{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/engineering/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/engineering{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/engineering/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/engineering{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/engineering/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/engineering{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/engineering/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/engineering{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/engineering/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/engineering{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/engineering/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/evac{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/evac/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/evac{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/evac/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/evac{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/evac/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/evac{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/evac/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/evac{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/evac/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/evac{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/evac/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/evac{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/evac/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/evac{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/evac/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/exam_room{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/exam_room/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/exam_room{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/exam_room/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/exam_room{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/exam_room/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/exam_room{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/exam_room/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/exam_room{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/exam_room/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/exam_room{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/exam_room/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/exam_room{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/exam_room/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/exam_room{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/exam_room/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/holy{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/holy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/holy{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/holy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/holy{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/holy/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/holy{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/holy/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/holy{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/holy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/holy{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/holy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/holy{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/holy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/holy{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/holy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/lawyer{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/lawyer/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/lawyer{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/lawyer/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/lawyer{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/lawyer/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/lawyer{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/lawyer/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/lawyer{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/lawyer/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/lawyer{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/lawyer/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/lawyer{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/lawyer/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/lawyer{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/lawyer/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/maint{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/maint/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/maint/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/maint/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/maint/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/maint/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/maint{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/maint/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/maint{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/maint/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/maint{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/maint/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/medbay{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/medbay/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/medbay/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/medbay/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/medbay/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/medbay/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/medbay{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/medbay/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/medbay{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/medbay/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/medbay{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/medbay/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/psychology{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/psychology/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/psychology{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/psychology/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/psychology{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/psychology/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/psychology{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/psychology/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/psychology{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/psychology/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/psychology{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/psychology/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/psychology{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/psychology/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/psychology{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/psychology/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/restroom{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/restroom/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/restroom{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/restroom/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/restroom{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/restroom/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/restroom{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/restroom/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/restroom{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/restroom/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/restroom{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/restroom/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/restroom{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/restroom/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/restroom{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/restroom/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/science{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/science/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/science/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/science/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/science/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/science/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/science{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/science/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/science{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/science/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/science{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/science/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/security{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/security/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/security{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/security/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/security{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/security/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/security{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/security/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/security{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/security/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/security{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/security/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/security{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/security/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/security{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/security/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/xenobio{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/xenobio/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/xenobio{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/xenobio/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/xenobio{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/xenobio/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/xenobio{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/xenobio/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/xenobio{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/xenobio/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/xenobio{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/xenobio/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/xenobio{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/xenobio/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/xenobio{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/xenobio/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/chemistry/pharmacy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/chemistry/pharmacy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/chemistry/pharmacy{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/chemistry/pharmacy/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/maint/alt{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/maint/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint/alt{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/maint/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint/alt{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/maint/alt/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint/alt{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/maint/alt/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/maint/alt{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/maint/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/maint/alt{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/maint/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/maint/alt{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/maint/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/maint/alt{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/maint/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/medbay/alt{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/medbay/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay/alt{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/medbay/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay/alt{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/medbay/alt/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay/alt{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/medbay/alt/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/medbay/alt{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/medbay/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/medbay/alt{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/medbay/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/medbay/alt{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/medbay/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/medbay/alt{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/medbay/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}
+
+/obj/structure/sign/departments/science/alt{pixel_x=32;pixel_y=@UNSET} : /obj/structure/sign/departments/science/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science/alt{pixel_x=-32;pixel_y=@UNSET} : /obj/structure/sign/departments/science/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science/alt{pixel_x=@UNSET;pixel_y=32} : /obj/structure/sign/departments/science/alt/directional/north{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science/alt{pixel_x=@UNSET;pixel_y=-32} : /obj/structure/sign/departments/science/alt/directional/south{@OLD;pixel_x=@SKIP;pixel_y=@SKIP}
+/obj/structure/sign/departments/science/alt{pixel_x=32;pixel_y=-32} : /obj/structure/sign/departments/science/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=-32}
+/obj/structure/sign/departments/science/alt{pixel_x=32;pixel_y=32} : /obj/structure/sign/departments/science/alt/directional/east{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/science/alt{pixel_x=-32;pixel_y=32} : /obj/structure/sign/departments/science/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=32}
+/obj/structure/sign/departments/science/alt{pixel_x=-32;pixel_y=-32} : /obj/structure/sign/departments/science/alt/directional/west{@OLD;pixel_x=@SKIP;pixel_y=-32}