diff --git a/code/global.dm b/code/global.dm
index e95486452e1..fd81f85d977 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -113,6 +113,7 @@ var/datum/engine_eject/engine_eject_control = null
var/host = null
var/aliens_allowed = 1
var/ooc_allowed = 1
+var/dsay_allowed = 1
var/dooc_allowed = 1
var/traitor_scaling = 1
//var/goonsay_allowed = 0
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index a0cda493299..5d274e0fe06 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -614,7 +614,7 @@ var/global/floorIsLava = 0
/datum/admins/proc/toggleooc()
set category = "Server"
- set desc="Toggle dis bitch"
+ set desc="Globally Toggles OOC"
set name="Toggle OOC"
ooc_allowed = !( ooc_allowed )
if (ooc_allowed)
@@ -625,6 +625,20 @@ var/global/floorIsLava = 0
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!
+
+/datum/admins/proc/toggledsay()
+ set category = "Server"
+ set desc="Globally Toggles DSAY"
+ set name="Toggle DSAY"
+ dsay_allowed = !( dsay_allowed )
+ if (dsay_allowed)
+ world << "Deadchat has been globally enabled!"
+ else
+ world << "Deadchat has been globally disabled!"
+ log_admin("[key_name(usr)] toggled deadchat.")
+ message_admins("[key_name_admin(usr)] toggled deadchat.", 1)
+ feedback_add_details("admin_verb","TDSAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc
+
/datum/admins/proc/toggleoocdead()
set category = "Server"
set desc="Toggle dis bitch"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index c2f772697e8..ebd98109ee5 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -51,6 +51,7 @@ var/list/admin_verbs_admin = list(
/client/proc/secrets,
/datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/
/datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/
+ /datum/admins/proc/toggledsay, /*toggles dsay on/off for everyone*/
/client/proc/game_panel, /*game panel, allows to change game-mode etc*/
/client/proc/cmd_admin_say, /*admin-only ooc chat*/
/datum/admins/proc/PlayerNotes,
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index b4c082c399c..a4bc9eb66aa 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -37,6 +37,11 @@
usr << "\red Speech is currently admin-disabled."
return
+ if(!src.client.holder)
+ if(!dsay_allowed)
+ src << "\red Deadchat is globally muted"
+ return
+
if(client && !(client.prefs.toggles & CHAT_DEAD))
usr << "\red You have deadchat muted."
return