diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm
index 65ea832c0e0b8..fb02a93e144d8 100644
--- a/code/__HELPERS/priority_announce.dm
+++ b/code/__HELPERS/priority_announce.dm
@@ -1,4 +1,4 @@
-/proc/priority_announce(text, title = "", sound = 'sound/ai/attention.ogg', type, sender_override, auth_id, zlevel) //WS Edit - Make cap's announcement use logged-in name
+/proc/priority_announce(text, title = "", sound = 'sound/ai/attention.ogg', type, sender_override, auth_id, zlevel)
if(!text)
return
@@ -73,3 +73,9 @@
to_chat(M, "[title]
[message]
[from ? "-[from.name] ([from.job])" : null]")
if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
SEND_SOUND(M, S)
+
+/proc/create_distress_beacon(datum/overmap/ship/ship)
+ if(!ship)
+ return
+ var/text = "A distress beacon has been launched by [ship.name], at local sector co-ordinates [ship.x || ship.docked_to.x]/[ship.y || ship.docked_to.y]. No further information available."
+ priority_announce(text, null, 'sound/effects/alert.ogg', sender_override = "Outpost Distress Beacon System", zlevel = 0)
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 9c4f15b9d4605..42193738319e4 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -103,6 +103,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list(
/client/proc/cmd_admin_gib_self,
/client/proc/cmd_change_command_name,
/client/proc/cmd_admin_create_centcom_report,
+ /client/proc/cmd_admin_distress_signal,
/client/proc/drop_bomb,
/client/proc/set_dynex_scale,
/client/proc/drop_dynex_bomb,
@@ -254,6 +255,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
/client/proc/cinematic,
/client/proc/cmd_admin_add_freeform_ai_law,
/client/proc/cmd_admin_create_centcom_report,
+ /client/proc/cmd_admin_distress_signal,
/client/proc/cmd_change_command_name,
/client/proc/object_say,
/client/proc/toggle_random_events,
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index f189fdf6106d3..853d33e1b61b8 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -360,6 +360,21 @@
message_admins("[key_name_admin(src)] has changed Central Command's name to [input]")
log_admin("[key_name(src)] has changed the Central Command name to: [input]")
+/client/proc/cmd_admin_distress_signal()
+ set category = "Event"
+ set name = "Create Distress Signal"
+
+ var/datum/overmap/ship/ship = SSshuttle.get_ship(usr)
+ if(!ship)
+ return
+ var/confirm = alert(src, "Do you want to create a distress signal for [ship.name]", "Distress Signal", "Yes", "Cancel")
+
+ switch(confirm)
+ if("Yes")
+ create_distress_beacon(ship)
+ if("Cancel")
+ return
+
/client/proc/cmd_admin_delete(atom/A as obj|mob|turf in world)
set category = "Debug"
set name = "Delete"