diff --git a/code/__DEFINES/misc_defines.dm b/code/__DEFINES/misc_defines.dm
index ea0d86fd37c..4dd7f7922d5 100644
--- a/code/__DEFINES/misc_defines.dm
+++ b/code/__DEFINES/misc_defines.dm
@@ -514,6 +514,7 @@
// Runechat symbol types
#define RUNECHAT_SYMBOL_EMOTE 1
+#define RUNECHAT_SYMBOL_LOOC 2
/// Waits at a line of code until X is true
#define UNTIL(X) while(!(X)) sleep(world.tick_lag)
diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm
index e24fd7c7309..4c67ad4d837 100644
--- a/code/datums/chatmessage.dm
+++ b/code/datums/chatmessage.dm
@@ -132,7 +132,11 @@
switch(symbol)
if(RUNECHAT_SYMBOL_EMOTE)
symbol = "* "
- size = size || "small"
+ size ||= "small"
+ if(RUNECHAT_SYMBOL_LOOC)
+ symbol = "\[LOOC] "
+ size ||= "small"
+ output_color = "gray"
else
symbol = null
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 4fafdd9e818..a875f47cf46 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -209,6 +209,10 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00")
log_looc(msg, src)
mob.create_log(LOOC_LOG, msg)
+ if(isliving(mob))
+ for(var/mob/M in viewers(7, mob))
+ if(M.client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT)
+ M.create_chat_message(mob, msg, FALSE, symbol = RUNECHAT_SYMBOL_LOOC)
var/mob/source = mob.get_looc_source()
var/list/heard = get_mobs_in_view(7, source)