diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index 9fa8f8fd85c..57a20d82479 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -34,6 +34,7 @@
Shuttles
Move Ferry
+ Toggle Arrivals Ferry
Move Mining Shuttle
Move Labor Shuttle
@@ -219,7 +220,20 @@
if(!SSshuttle.toggleShuttle("ferry","ferry_home","ferry_away"))
message_admins("[key_name_admin(usr)] moved the centcom ferry")
log_admin("[key_name(usr)] moved the centcom ferry")
-
+
+ if("togglearrivals")
+ if(!check_rights(R_ADMIN))
+ return
+ var/obj/docking_port/mobile/arrivals/A = SSshuttle.arrivals
+ if(A)
+ var/new_perma = !A.perma_docked
+ A.perma_docked = new_perma
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","ShA[new_perma ? "s" : "g"]")
+ message_admins("[key_name_admin(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle")
+ log_admin("[key_name(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle")
+ else
+ to_chat(usr, "There is no arrivals shuttle")
if("showailaws")
if(!check_rights(R_ADMIN))
return
diff --git a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm
index c8cd3ee11ad..daca4d2ffea 100644
--- a/code/modules/shuttle/arrivals.dm
+++ b/code/modules/shuttle/arrivals.dm
@@ -19,6 +19,7 @@
var/list/queued_announces //people coming in that we have to announce
var/obj/machinery/requests_console/console
var/force_depart = FALSE
+ var/perma_docked = FALSE //highlander with RESPAWN??? OH GOD!!!
/obj/docking_port/mobile/arrivals/Initialize(mapload)
if(mapload)
@@ -65,6 +66,14 @@
/obj/docking_port/mobile/arrivals/check()
. = ..()
+
+ if(perma_docked)
+ if(mode != SHUTTLE_CALL)
+ sound_played = FALSE
+ mode = SHUTTLE_IDLE
+ else
+ SendToStation()
+ return
if(damaged)
if(!CheckTurfsPressure())
@@ -173,4 +182,13 @@
stoplag()
/obj/docking_port/mobile/arrivals/proc/QueueAnnounce(mob, rank)
- LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, .proc/AnnounceArrival, mob, rank))
+ if(mode != SHUTTLE_CALL)
+ AnnounceArrival(mob, rank)
+ else
+ LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, .proc/AnnounceArrival, mob, rank))
+
+/obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value)
+ switch(var_name)
+ if("perma_docked")
+ feedback_add_details("admin_secrets_fun_used","ShA[var_value ? "s" : "g"]")
+ return ..()