diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 658d255aa64..f2fbfd5d730 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -100,6 +100,9 @@
var/revival_cloning = 1
var/revival_brain_life = -1
+
+ var/auto_toggle_ooc_during_round = 0
+
//Used for modifying movement speed for mobs.
//Unversal modifiers
var/run_speed = 0
@@ -534,6 +537,8 @@
config.revival_cloning = value
if("revival_brain_life")
config.revival_brain_life = value
+ if("auto_toggle_ooc_during_round")
+ config.auto_toggle_ooc_during_round = 1
if("run_speed")
config.run_speed = value
if("walk_speed")
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 0c9aec27196..ea2cfe38c62 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -219,6 +219,7 @@ var/global/datum/controller/gameticker/ticker
admins_number++
if(admins_number == 0)
send2adminirc("Round has started with no admins online.")
+ auto_toggle_ooc(0) // Turn it off
/* DONE THROUGH PROCESS SCHEDULER
supply_controller.process() //Start the supply shuttle regenerating points -- TLE
@@ -250,6 +251,7 @@ var/global/datum/controller/gameticker/ticker
proc/station_explosion_cinematic(var/station_missed=0, var/override = null)
if( cinematic ) return //already a cinematic in progress!
+ auto_toggle_ooc(1) // Turn it on
//initialise our cinematic screen object
cinematic = new(src)
cinematic.icon = 'icons/effects/station_explosion.dmi'
@@ -400,7 +402,7 @@ var/global/datum/controller/gameticker/ticker
if(!mode.explosion_in_progress && game_finished && (mode_finished || post_game))
current_state = GAME_STATE_FINISHED
-
+ auto_toggle_ooc(1) // Turn it on
spawn
declare_completion()
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 2f8249c8401..1cf5e73bc19 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -75,6 +75,17 @@ var/global/normal_ooc_colour = "#002eb8"
C << "OOC: [src.key]: [msg]"
*/
+/proc/toggle_ooc()
+ ooc_allowed = !( ooc_allowed )
+ if (ooc_allowed)
+ world << "The OOC channel has been globally enabled!"
+ else
+ world << "The OOC channel has been globally disabled!"
+
+/proc/auto_toggle_ooc(var/on)
+ if(config.auto_toggle_ooc_during_round && ooc_allowed != on)
+ toggle_ooc()
+
/client/proc/set_ooc(newColor as color)
set name = "Set Player OOC Colour"
set desc = "Set to yellow for eye burning goodness."
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 9cd97ddcb42..39304707b44 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -629,11 +629,7 @@ var/global/nologevent = 0
set category = "Server"
set desc="Globally Toggles OOC"
set name="Toggle OOC"
- ooc_allowed = !( ooc_allowed )
- if (ooc_allowed)
- world << "The OOC channel has been globally enabled!"
- else
- world << "The OOC channel has been globally disabled!"
+ toggle_ooc()
log_admin("[key_name(usr)] toggled OOC.")
message_admins("[key_name_admin(usr)] toggled OOC.", 1)
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/config/example/game_options.txt b/config/example/game_options.txt
index 3f282e5a6ce..31d2bf1d9c8 100644
--- a/config/example/game_options.txt
+++ b/config/example/game_options.txt
@@ -33,6 +33,9 @@ REVIVAL_CLONING 1
REVIVAL_BRAIN_LIFE -1
+### AUTO TOGGLE OOC DURING ROUND ###
+#Uncomment this if you want OOC to be automatically disabled during the round, it will be enabled during the lobby and after the round end results.
+#AUTO_TOGGLE_OOC_DURING_ROUND
### MOB MOVEMENT ###