diff --git a/GainStation13/code/machinery/powered_quantum_pad.dm b/GainStation13/code/machinery/powered_quantum_pad.dm
new file mode 100644
index 0000000000..6e51bd6bb6
--- /dev/null
+++ b/GainStation13/code/machinery/powered_quantum_pad.dm
@@ -0,0 +1,7 @@
+/obj/machinery/quantumpad
+ /// Does the quantum pad need power to work?
+ var/needs_power = TRUE
+
+/obj/machinery/quantumpad/always_powered
+ needs_power = FALSE
+
diff --git a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm
index e54640cf08..1542d4d82a 100644
--- a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm
+++ b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm
@@ -3226,6 +3226,23 @@
},
/turf/open/floor/plasteel,
/area/mine/living_quarters)
+"Xd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/quantumpad/always_powered{
+ name = "To xenoarch";
+ map_pad_id = "from_mining";
+ map_pad_link_id = "to_mining"
+ },
+/turf/open/floor/plasteel,
+/area/mine/living_quarters)
"Xo" = (
/obj/machinery/light/small{
dir = 4
@@ -5436,7 +5453,7 @@ Ms
rU
se
EH
-JP
+Xd
Ag
VN
IY
diff --git a/_maps/map_files/Mining/Lavaland_Lower.dmm b/_maps/map_files/Mining/Lavaland_Lower.dmm
index c3eddd9b14..17bbdd748f 100644
--- a/_maps/map_files/Mining/Lavaland_Lower.dmm
+++ b/_maps/map_files/Mining/Lavaland_Lower.dmm
@@ -4742,7 +4742,8 @@
/obj/machinery/quantumpad{
map_pad_id = "xenoarch";
map_pad_link_id = "station";
- mapped_quantum_pads = list("station","xenoarch")
+ mapped_quantum_pads = list("station","xenoarch");
+ name = "To station"
},
/turf/open/floor/plasteel/dark,
/area/xenoarch/gen)
@@ -4758,9 +4759,10 @@
/turf/open/floor/plating,
/area/xenoarch/gen)
"kT" = (
-/obj/structure/ladder/unbreakable{
- height = 1;
- id = "xenoarch"
+/obj/machinery/quantumpad/always_powered{
+ name = "To mining";
+ map_pad_id = "to_mining";
+ map_pad_link_id = "from_mining"
},
/turf/open/floor/plasteel/dark,
/area/xenoarch/gen)
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm
index dda494f2ea..1ae2692da9 100644
--- a/code/game/machinery/quantum_pad.dm
+++ b/code/game/machinery/quantum_pad.dm
@@ -135,11 +135,11 @@
if(!src || QDELETED(src))
teleporting = FALSE
return
- if(machine_stat & NOPOWER)
+ if(needs_power && (machine_stat & NOPOWER)) // GS13 EDIT
to_chat(user, "[src] is unpowered!")
teleporting = FALSE
return
- if(!target_pad || QDELETED(target_pad) || target_pad.machine_stat & NOPOWER)
+ if(!target_pad || QDELETED(target_pad) || (needs_power && (target_pad.machine_stat & NOPOWER))) // GS13 EDIT
to_chat(user, "Linked pad is not responding to ping. Teleport aborted.")
teleporting = FALSE
return
diff --git a/tgstation.dme b/tgstation.dme
index 099eb4b3d8..78c3079e1f 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3948,6 +3948,7 @@
#include "GainStation13\code\machinery\fattening_turret.dm"
#include "GainStation13\code\machinery\feeding_tube.dm"
#include "GainStation13\code\machinery\gym.dm"
+#include "GainStation13\code\machinery\powered_quantum_pad.dm"
#include "GainStation13\code\machinery\supply_teleporter.dm"
#include "GainStation13\code\mechanics\calorite.dm"
#include "GainStation13\code\mechanics\fatness.dm"