diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 33a44e91044..a95e8b41f21 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -251,6 +251,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
ticket_interactions = list()
player_interactions = list()
+ addtimer(CALLBACK(src, .proc/add_to_ping_ss, 2 MINUTES)) //SKYRAT EDIT ADDITION - Ticket Ping | this is not responsible for the notification itself, but only for adding the ticket to the list of those to notify.
if(is_bwoink)
AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]", player_message = "[key_name_admin(usr, include_name = FALSE)] PM'd [LinkedReplyName()]")
message_admins("Ticket [TicketHref("#[id]")] created")
diff --git a/config/skyrat/skyrat_config.txt b/config/skyrat/skyrat_config.txt
index a886fdb0219..ffb4b420460 100644
--- a/config/skyrat/skyrat_config.txt
+++ b/config/skyrat/skyrat_config.txt
@@ -134,3 +134,6 @@ EVENT_FREQUENCY_UPPER 12000
## What is the least amount of time the next event can run?
EVENT_FREQUENCY_LOWER 9000
+
+## Ticket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute.
+TICKET_PING_FREQUENCY 0
diff --git a/modular_skyrat/master_files/code/_globalvars/configuration.dm b/modular_skyrat/master_files/code/_globalvars/configuration.dm
index 704aa68dc43..eb682164be2 100644
--- a/modular_skyrat/master_files/code/_globalvars/configuration.dm
+++ b/modular_skyrat/master_files/code/_globalvars/configuration.dm
@@ -45,3 +45,6 @@ GLOBAL_VAR_INIT(looc_allowed, TRUE)
default = 15 MINUTES
/datum/config_entry/flag/admin_event_uses_chaos
+
+/// Ticket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute.
+/datum/config_entry/number/ticket_ping_frequency
diff --git a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm
index a7894280df4..caa985c95f9 100644
--- a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm
+++ b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm
@@ -503,7 +503,7 @@
SEND_SOUND(staff, sound('sound/effects/adminhelp.ogg'))
window_flash(staff, ignorepref = TRUE)
- addtimer(CALLBACK(src, .proc/add_to_ping_ss), 3 MINUTES)
+ addtimer(CALLBACK(src, .proc/add_to_ping_ss), 2 MINUTES) // this is not responsible for the notification itself, but only for adding the ticket to the list of those to notify.
status = OPFOR_STATUS_AWAITING_APPROVAL
can_edit = FALSE
add_log(user.ckey, "Submitted to the OPFOR subsystem")
@@ -882,7 +882,7 @@
return report.Join("\n")
/datum/opposing_force/proc/add_to_ping_ss()
- if(status != OPFOR_STATUS_APPROVED)
+ if(status == OPFOR_STATUS_APPROVED)
return
ticket_ping = TRUE
diff --git a/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm
index 96e590e91fe..1ae876a9c79 100644
--- a/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm
+++ b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm
@@ -1,10 +1,17 @@
-/// Pings admins every 3 minutes for all open tickets/OPFOR applications
+/// Pings admins every (time chosen in config) for all open tickets/OPFOR applications
SUBSYSTEM_DEF(ticket_ping)
name = "Ticket Ping"
- flags = SS_BACKGROUND | SS_NO_INIT
+ flags = SS_BACKGROUND
runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME
wait = 3 MINUTES
+/datum/controller/subsystem/ticket_ping/Initialize(start_timeofday)
+ . = ..()
+ if(CONFIG_GET(number/ticket_ping_frequency) < 1)
+ flags |= SS_NO_FIRE
+ else
+ wait = CONFIG_GET(number/ticket_ping_frequency)
+
/datum/controller/subsystem/ticket_ping/fire(resumed)
var/valid_ahelps
var/valid_opfors