diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm
index c2461eb2..2281a609 100644
--- a/code/__HELPERS/logging.dm
+++ b/code/__HELPERS/logging.dm
@@ -87,7 +87,7 @@
//SoundScopes extra stuffs
//I'm sending debug messages through here for when an admin log is made at the same time.
//What's the point in making 2 recorded logs for one thing.
-/proc/msg_scopes(var/msg, tell_devs = 0)
+/proc/msg_scopes(var/msg, tell_devs = 0, override = 0)
if(tell_devs)
msg = "DEBUG: [msg]"
else
@@ -96,7 +96,7 @@
for(var/client/C in admins)
if(R_DEV & C.holder.rights)
if(tell_devs)
- if((C.prefs.toggles & CHAT_DEBUGLOGS) && !(R_ADMIN & C.holder.rights))
+ if(((C.prefs.toggles & CHAT_DEBUGLOGS) || (override)) && !(C.holder.rights & R_ADMIN))
C << msg
if(R_ADMIN & C.holder.rights)
if(C.prefs.toggles & CHAT_SCOPES_DEBUG)
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 0af8f65f..10fac8f4 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -39,6 +39,16 @@ var/global/normal_ooc_colour = "#002eb8"
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
return
+ if(holder)
+ if(holder.rights & R_DEV && !(holder.rights & R_ADMIN))
+ if(!ooc_allowed && !ooc_dev_allowed)
+ src << "\red OOC is muted for developers"
+ return
+ if(holder.rights & R_MOD && !(holder.rights & R_ADMIN))
+ if(!ooc_allowed && !ooc_mod_allowed)
+ src << "\red OOC is muted for moderators"
+ return
+
log_ooc("[mob.name]/[key] : [msg]")
var/display_colour = normal_ooc_colour
@@ -132,6 +142,16 @@ var/global/normal_ooc_colour = "#002eb8"
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
return
+ if(holder)
+ if(holder.rights & R_DEV && !(holder.rights & R_ADMIN))
+ if(!looc_allowed && !looc_dev_allowed)
+ src << "\red LOOC is muted for developers"
+ return
+ if(holder.rights & R_MOD && !(holder.rights & R_ADMIN))
+ if(!looc_allowed && !looc_mod_allowed)
+ src << "\red LOOC is muted for moderators"
+ return
+
log_ooc("(LOCAL) [mob.name]/[key] : [msg]")
var/list/heard = get_mobs_in_view(7, src.mob)
diff --git a/code/global.dm b/code/global.dm
index 6e696060..6499f051 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -91,10 +91,21 @@ var/secret_force_mode = "secret" // if this is anything but "secret", the secret
var/datum/engine_eject/engine_eject_control = null
var/host = null
var/aliens_allowed = 0
+
+
var/ooc_allowed = 1
+var/ooc_mod_allowed = 1
+var/ooc_dev_allowed = 1
+
var/looc_allowed = 1
+var/looc_mod_allowed = 1
+var/looc_dev_allowed = 1
+
var/dsay_allowed = 1
var/dooc_allowed = 1
+
+
+
var/traitor_scaling = 1
//var/goonsay_allowed = 0
var/dna_ident = 1
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 68c163bc..dc6aa228 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -740,12 +740,50 @@ var/global/floorIsLava = 0
ooc_allowed = !( ooc_allowed )
if (ooc_allowed)
world << "The OOC channel has been globally enabled!"
+ ooc_dev_allowed = 1
+ ooc_mod_allowed = 1
else
world << "The OOC channel has been globally disabled!"
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!
+/datum/admins/proc/toggledevooc()
+ set category = "Server"
+ set desc="Toggles Developer OOC"
+ set name="Toggle Dev OOC"
+ if(ooc_allowed)
+ usr << "OOC needs to be muted first"
+ return
+ ooc_dev_allowed = !( ooc_dev_allowed )
+ var/looc_status
+ if (ooc_dev_allowed)
+ looc_status = "Enabled"
+ else
+ looc_status = "Disabled"
+ log_admin("[key_name(usr)] [looc_status] Developer OOC.")
+ message_admins("[key_name_admin(usr)] [looc_status] Developer OOC.", 1)
+ msg_scopes("Developer OOC has been [looc_status]",1,1)
+ feedback_add_details("admin_verb","TDOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/datum/admins/proc/togglemodooc()
+ set category = "Server"
+ set desc="Toggles Moderators OOC"
+ set name="Toggle Mod OOC"
+ if(ooc_allowed)
+ usr << "OOC needs to be muted first"
+ return
+ ooc_mod_allowed = !( ooc_mod_allowed )
+ var/looc_status
+ if (ooc_mod_allowed)
+ looc_status = "Enabled"
+ else
+ looc_status = "Disabled"
+ log_admin("[key_name(usr)] toggled Mod OOC.")
+ message_admins("[key_name_admin(usr)] [looc_status] Moderator OOC.", 1)
+ message_mods("Moderator OOC has been [looc_status]")
+ feedback_add_details("admin_verb","TMOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
/datum/admins/proc/togglelooc()
set category = "Server"
set desc="Globally Toggles LOOC"
@@ -753,14 +791,49 @@ var/global/floorIsLava = 0
looc_allowed = !( looc_allowed )
if (looc_allowed)
world << "The LOOC channel has been globally enabled!"
+ looc_dev_allowed = 1
+ looc_mod_allowed = 1
else
world << "The LOOC channel has been globally disabled!"
log_admin("[key_name(usr)] toggled LOOC.")
message_admins("[key_name_admin(usr)] toggled LOOC.", 1)
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+/datum/admins/proc/toggledevlooc()
+ set category = "Server"
+ set desc="Toggles Developer LOOC"
+ set name="Toggle Dev LOOC"
+ if(looc_allowed)
+ usr << "Looc needs to be muted first"
+ return
+ looc_dev_allowed = !( looc_dev_allowed )
+ var/looc_status
+ if (looc_dev_allowed)
+ looc_status = "Enabled"
+ else
+ looc_status = "Disabled"
+ log_admin("[key_name(usr)] [looc_status] Developer LOOC.")
+ message_admins("[key_name_admin(usr)] [looc_status] Developer LOOC.", 1)
+ msg_scopes("Developer LOOC has been [looc_status]",1,1)
+ feedback_add_details("admin_verb","TDLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-
+/datum/admins/proc/togglemodlooc()
+ set category = "Server"
+ set desc="Toggles Moderator LOOC"
+ set name="Toggle Mod LOOC"
+ if(looc_allowed)
+ usr << "Looc needs to be muted first"
+ return
+ looc_mod_allowed = !( looc_mod_allowed )
+ var/looc_status
+ if (looc_mod_allowed)
+ looc_status = "Enabled"
+ else
+ looc_status = "Disabled"
+ log_admin("[key_name(usr)] [looc_status] Moderator LOOC.")
+ message_admins("[key_name_admin(usr)] [looc_status] Moderator LOOC.", 1)
+ message_mods("Moderator LOOC has been [looc_status]")
+ feedback_add_details("admin_verb","TMLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/toggledsay()
set category = "Server"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 230ac0cd..efbecb0a 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -59,7 +59,11 @@ var/list/admin_verbs_admin = list(
/client/proc/secrets,
/client/proc/toggleprayers,
/datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/
+ /datum/admins/proc/toggledevooc,
+ /datum/admins/proc/togglemodooc,
/datum/admins/proc/togglelooc,
+ /datum/admins/proc/togglemodlooc,
+ /datum/admins/proc/toggledevlooc,
/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*/