diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 7a76a2c9685..ccfbd30e1ba 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -103,8 +103,8 @@ var/global/normal_ooc_colour = "#002eb8"
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
if(!msg) return
- if(!(prefs.toggles & CHAT_OOC))
- src << "\red You have OOC muted."
+ if(!(prefs.toggles & CHAT_LOOC))
+ src << "\red You have LOOC muted."
return
if(!holder)
@@ -127,14 +127,15 @@ var/global/normal_ooc_colour = "#002eb8"
log_ooc("(LOCAL) [mob.name]/[key] : [msg]")
- for(var/mob/M in hearers())
+ var/list/heard = get_mobs_in_view(7, src.mob)
+ for(var/mob/M in heard)
if(!M.client)
continue
var/client/C = M.client
if (C in admins)
continue //they are handled after that
- if(C.prefs.toggles & CHAT_OOC)
+ if(C.prefs.toggles & CHAT_LOOC)
var/display_name = src.key
if(holder)
if(holder.fakekey)
@@ -144,5 +145,8 @@ var/global/normal_ooc_colour = "#002eb8"
display_name = holder.fakekey
C << "LOOC: [display_name]: [msg]"
for(var/client/C in admins)
- if(C.prefs.toggles & CHAT_OOC)
- C << "LOOC: [src.key]: [msg]"
\ No newline at end of file
+ if(C.prefs.toggles & CHAT_LOOC)
+ var/prefix = "(R)LOOC"
+ if (C.mob in heard)
+ prefix = "LOOC"
+ C << "[prefix]: [src.key]: [msg]"
\ No newline at end of file
diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm
index 19df39e3371..e3773f77857 100644
--- a/code/modules/client/preferences_toggles.dm
+++ b/code/modules/client/preferences_toggles.dm
@@ -95,6 +95,17 @@
src << "You will [(prefs.toggles & CHAT_OOC) ? "now" : "no longer"] see messages on the OOC channel."
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/client/verb/listen_looc()
+ set name = "Show/Hide LOOC"
+ set category = "Preferences"
+ set desc = "Toggles seeing Local OutOfCharacter chat"
+ prefs.toggles ^= CHAT_LOOC
+ prefs.save_preferences()
+ src << "You will [(prefs.toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel."
+ feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+
/client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful
set name = "Hear/Silence Ambience"
set category = "Preferences"
diff --git a/code/setup.dm b/code/setup.dm
index f4b8d35e2ff..db51f9993e1 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -624,6 +624,7 @@ var/list/TAGGERLOCATIONS = list("Disposals",
#define CHAT_RADIO 512
#define CHAT_ATTACKLOGS 1024
#define CHAT_DEBUGLOGS 2048
+#define CHAT_LOOC 4096
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS)