diff --git a/Content.Server/DeviceNetwork/Components/DeviceNetworkComponent.cs b/Content.Server/DeviceNetwork/Components/DeviceNetworkComponent.cs
index 3a68fffbcc..186da57e5d 100644
--- a/Content.Server/DeviceNetwork/Components/DeviceNetworkComponent.cs
+++ b/Content.Server/DeviceNetwork/Components/DeviceNetworkComponent.cs
@@ -102,6 +102,13 @@ namespace Content.Server.DeviceNetwork.Components
[DataField("sendBroadcastAttemptEvent")]
public bool SendBroadcastAttemptEvent = false;
+ ///
+ /// Whether this device's address can be saved to device-lists
+ ///
+ [ViewVariables(VVAccess.ReadWrite)]
+ [DataField("savableAddress")]
+ public bool SavableAddress = true;
+
///
/// A list of device-lists that this device is on.
///
diff --git a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs
index 59b58c6933..0dc4f45d9e 100644
--- a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs
+++ b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs
@@ -106,6 +106,13 @@ public sealed class NetworkConfiguratorSystem : SharedNetworkConfiguratorSystem
if (!targetUid.HasValue || !Resolve(targetUid.Value, ref device, false))
return;
+ //This checks if the device is marked as having a savable address,
+ //to avoid adding pdas and whatnot to air alarms. This flag is true
+ //by default, so this will only prevent devices from being added to
+ //network configurator lists if manually set to false in the prototype
+ if (!device.SavableAddress)
+ return;
+
var address = device.Address;
if (string.IsNullOrEmpty(address))
{
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml
index 0329f82b5b..04ce60bed6 100644
--- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml
+++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml
@@ -47,6 +47,7 @@
- type: DeviceNetwork
deviceNetId: Wireless
transmitFrequencyId: SuitSensor
+ savableAddress: false
- type: WirelessNetworkConnection
range: 1200
- type: StationLimitedNetwork
diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
index 371c102eb0..b701bbd8f4 100644
--- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
+++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
@@ -244,6 +244,7 @@
deviceNetId: Wireless
receiveFrequencyId: CyborgControl
transmitFrequencyId: RoboticsConsole
+ savableAddress: false
- type: OnUseTimerTrigger
delay: 10
examinable: false
diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
index 5bf68b6fd6..ac564eac66 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
@@ -67,6 +67,7 @@
deviceNetId: Wireless
receiveFrequencyId: PDA
prefix: device-address-prefix-console
+ savableAddress: false
- type: WirelessNetworkConnection
range: 500
- type: CartridgeLoader