diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index 880d4b6e946..f9e6ee9e576 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -94,7 +94,7 @@
var/robot_arm = /obj/item/bodypart/r_arm/robot
var/commissioned = FALSE // Will other (noncommissioned) bots salute this bot?
- var/can_salute = TRUE
+ COOLDOWN_DECLARE(next_salute_check)
var/salute_delay = 60 SECONDS
hud_possible = list(DIAG_STAT_HUD, DIAG_BOT_HUD, DIAG_HUD, DIAG_PATH_HUD = HUD_LIST_LIST) //Diagnostic HUD views
@@ -273,12 +273,11 @@
if(!on || client)
return
- if(!commissioned && can_salute)
- for(var/mob/living/simple_animal/bot/B in get_hearers_in_view(5, get_turf(src)))
- if(B.commissioned)
- visible_message("[src] performs an elaborate salute for [B]!")
- can_salute = FALSE
- addtimer(VARSET_CALLBACK(src, can_salute, TRUE), salute_delay)
+ if(commissioned && COOLDOWN_FINISHED(src, next_salute_check))
+ COOLDOWN_START(src, next_salute_check, salute_delay)
+ for(var/mob/living/simple_animal/bot/B in view(5, src))
+ if(!B.commissioned && B.on)
+ visible_message("[B] performs an elaborate salute for [src]!")
break
switch(mode) //High-priority overrides are processed first. Bots can do nothing else while under direct command.