diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 0c4b6d2a02d..def8384b139 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -20,9 +20,15 @@ if(!is_freq_listening(signal)) return - // send the signal to the hub if possible, or a bus otherwise - if(!relay_information(signal, /obj/machinery/telecomms/hub)) - relay_information(signal, /obj/machinery/telecomms/bus) + // Make a copy of the signal so that other recievers can still recieve this signal + var/datum/signal/subspace/signal_copy = signal.copy() + + // Signal has been recieved, so remove receiving levels. This list will be used later on to determine broadcasting levels. + signal_copy.levels = list() + + // Send the signal to a hub if possible, or a bus otherwise. + if(!relay_information(signal_copy, /obj/machinery/telecomms/hub)) + relay_information(signal_copy, /obj/machinery/telecomms/bus) use_power(idle_power_usage)