diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index 32e0ae23cbb..b85d0037687 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -52,7 +52,8 @@
user_health = M.health
if(user_health <= alarm_health) // Its a health detector, not a death detector
pulse()
- audible_message("[bicon(src)] *beep* *beep*")
+ audible_message("[bicon(src)] *beep* *beep* *beep*")
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10)
toggle_scan()
/obj/item/assembly/health/pickup(mob/user)
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 365ef113f42..f11cccdefc3 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -126,7 +126,8 @@
return FALSE
cooldown = 2
pulse(FALSE)
- audible_message("[bicon(src)] *beep* *beep*", hearing_distance = 3)
+ audible_message("[bicon(src)] *beep* *beep* *beep*", hearing_distance = 3)
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -14)
if(first)
qdel(first)
addtimer(CALLBACK(src, PROC_REF(process_cooldown)), 10)
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 25caaed172c..a9fb8b088f3 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -55,7 +55,8 @@
return FALSE
cooldown = 2
pulse(FALSE)
- visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
+ visible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*")
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10)
addtimer(CALLBACK(src, PROC_REF(process_cooldown)), 10)
/obj/item/assembly/prox_sensor/process()
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 8f6bec48d75..7bc513cd2fc 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -60,7 +60,8 @@ GLOBAL_LIST_EMPTY(remote_signalers)
/obj/item/assembly/signaler/proc/signal_callback()
pulse(1)
- visible_message("[bicon(src)] *beep* *beep*")
+ visible_message("[bicon(src)] *beep* *beep* *beep*")
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10)
// Activation pre-runner, handles cooldown and calls signal(), invoked from ui_act()
/obj/item/assembly/signaler/activate()
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index aa38ddd7a99..de4e4ee85b5 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -44,7 +44,8 @@
cooldown = 2
pulse(FALSE)
if(loc)
- loc.visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
+ loc.visible_message("[bicon(src)] *beep* *beep* *beep*", "*beep* *beep* *beep*")
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10)
addtimer(CALLBACK(src, PROC_REF(process_cooldown)), 10)
/obj/item/assembly/timer/process()
diff --git a/code/modules/clothing/masks/misc_masks.dm b/code/modules/clothing/masks/misc_masks.dm
index df4684a5e5e..b2915e0090c 100644
--- a/code/modules/clothing/masks/misc_masks.dm
+++ b/code/modules/clothing/masks/misc_masks.dm
@@ -154,7 +154,6 @@
return FALSE
/obj/item/clothing/mask/muzzle/safety/shock/proc/process_activation(obj/D, normal = 1, special = 1)
- visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
var/mob/living/L = can_shock(loc)
if(!L)
return
diff --git a/code/modules/food_and_drinks/food/foods/pizza.dm b/code/modules/food_and_drinks/food/foods/pizza.dm
index 40c5b9bf769..09ce56ee91b 100644
--- a/code/modules/food_and_drinks/food/foods/pizza.dm
+++ b/code/modules/food_and_drinks/food/foods/pizza.dm
@@ -543,7 +543,8 @@
open = TRUE
opener = user
- audible_message("[bicon(src)] *beep* *beep*")
+ audible_message("[bicon(src)] *beep* *beep* *beep*")
+ playsound(src, 'sound/machines/triple_beep.ogg', 40, extrarange = -10)
to_chat(user, "That's no pizza! That's a bomb!")
if(HAS_TRAIT(src, TRAIT_CMAGGED))
atom_say("Pizza time!")
diff --git a/sound/Attributions.txt b/sound/Attributions.txt
index d74d0ee9a91..3b80bc78d79 100644
--- a/sound/Attributions.txt
+++ b/sound/Attributions.txt
@@ -3,3 +3,5 @@ items/thermal_drill.ogg was sampled from Builders Drilling.wav under a Sampling
creatures/dog_yelp.ogg is DogYelp.wav. It is under a CC-BY 3.0 license. It has been cropped, EQ'd, and compressed to .ogg. Source (https://freesound.org/people/TobiasKosmos/sounds/163280/)
standard_stamp.ogg is adapted from tom_woysky's "Stamp.wav" https://freesound.org/people/tom_woysky/sounds/348316/
+
+machines/triple_beep.ogg is taken from /tg/station. Source (https://github.com/tgstation/tgstation)
diff --git a/sound/machines/triple_beep.ogg b/sound/machines/triple_beep.ogg
new file mode 100644
index 00000000000..891345e3a09
Binary files /dev/null and b/sound/machines/triple_beep.ogg differ