diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index 57565aacdef..7b7084491f3 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -21,9 +21,14 @@ /obj/machinery/telecomms/relay/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) // Add our level and send it back - var/turf/T = get_turf(src) - if(can_send(signal) && T) - signal.levels |= T.z + var/turf/relay_turf = get_turf(src) + if(can_send(signal) && relay_turf) + // Relays send signals to all ZTRAIT_STATION z-levels + if(SSmapping.level_trait(relay_turf.z, ZTRAIT_STATION)) + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + signal.levels |= z + else + signal.levels |= relay_turf.z // Checks to see if it can send/receive.