diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index 51e0dfa8ab2..bc61c854ab4 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -8,6 +8,7 @@ var/datum/nanomanager/nanomanager = new()
var/datum/event_manager/event_manager = new()
// Announcer intercom, because too much stuff creates an intercom for one message then hard del()s it.
var/global/obj/item/device/radio/intercom/global_announcer = create_global_announcer()
+var/global/obj/item/device/radio/intercom/command/command_announcer = create_command_announcer()
// Load order issues means this can't be new'd until other code runs
// This is probably not the way I should be doing this, but I don't know how to do it right!
proc/create_global_announcer()
@@ -15,6 +16,11 @@ proc/create_global_announcer()
global_announcer = new(null)
return
+proc/create_command_announcer()
+ spawn(0)
+ command_announcer = new(null)
+ return
+
var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \
"big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \
"table","td","th","tr")
diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm
index d4a458f8f78..d723dda9be0 100644
--- a/code/game/gamemodes/blob/blob_report.dm
+++ b/code/game/gamemodes/blob/blob_report.dm
@@ -42,7 +42,7 @@
to_chat(aiPlayer, "Laws Updated: [law]")
print_command_report(intercepttext, interceptname)
- event_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg', from = "[command_name()] Update")
+ command_announcer.autosay("A classified message has been printed out at all communication consoles.");
/datum/station_state
var/floor = 0
diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm
index ba461fafb80..73168025254 100644
--- a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm
+++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm
@@ -8,7 +8,7 @@
swarmer_report += "
Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come \
through."
print_command_report(swarmer_report, "Classified [command_name()] Update")
- event_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg')
+ command_announcer.autosay("A classified message has been printed out at all communication consoles.");
/datum/event/spawn_swarmer/start()
if(find_swarmer())
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 84f95096078..6caae2b84bd 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -578,7 +578,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
print_command_report(input, "[command_name()] Update")
else if("No")
//same thing as the blob stuff - it's not public, so it's classified, dammit
- command_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg', from = "[command_name()] Update")
+ command_announcer.autosay("A classified message has been printed out at all communication consoles.");
print_command_report(input, "Classified [command_name()] Update")
else
return