diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 06c63cdd03..d2d0be60f3 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -116,26 +116,31 @@
if(mob.stat != DEAD)
display_name = mob.name
- var/prefix
- var/admin_stuff
for(var/client/target in clients)
if(target.prefs.toggles & CHAT_LOOC)
- admin_stuff = ""
+ var/prefix = ""
+ var/admin_stuff = ""
+ var/send = 0
+
if(target in admins)
- prefix = "(R)"
admin_stuff += "/([key])"
if(target != src)
admin_stuff += "(JMP)"
- if(target.mob in heard)
- prefix = ""
- var/send = 0
- if((target.mob in heard) || (target in admins))
+ if(target.mob in heard)
send = 1
+ if(isAI(target.mob))
+ prefix = "(Core) "
+
else if(isAI(target.mob)) // Special case
var/mob/living/silicon/ai/A = target.mob
- if(A.eyeobj in view(7, source))
+ if(A.eyeobj in hearers(7, source))
send = 1
+ prefix = "(Eye) "
+
+ if(!send && (target in admins))
+ send = 1
+ prefix = "(R)"
if(send)
target << "" + create_text_tag("looc", "LOOC:", target) + " [prefix][display_name][admin_stuff]: [msg]"