diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index bd5cd555a65..a4bab1d38cc 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -1,4 +1,3 @@
-
/client/verb/who()
set name = "Who"
set category = "OOC"
@@ -8,11 +7,38 @@
var/list/Lines = list()
if(holder)
- for(var/client/C in clients)
- var/entry = "\t[C.key]"
- if(C.holder && C.holder.fakekey)
- entry += " (as [C.holder.fakekey])"
- Lines += entry
+ if (check_rights(R_ADMIN,0))//If they have +ADMIN, their ghost can see players IC names and statuses.
+ for(var/client/C in clients)
+ var/entry = "\t[C.key]"
+ if(C.holder && C.holder.fakekey)
+ entry += " (as [C.holder.fakekey])"
+ if (isobserver(src.mob))
+ var/mob/dead/observer/G = src.mob
+ if(!G.started_as_observer)//If you aghost to do this, KorPhaeron will deadmin you in your sleep.
+ log_admin("[key_name(usr)] checked advanced who in-round")
+ entry += " - Playing as [C.mob.real_name]"
+ switch(C.mob.stat)
+ if(UNCONSCIOUS)
+ entry += " - Unconscious"
+ if(DEAD)
+ if(isobserver(C.mob))
+ var/mob/dead/observer/O = C.mob
+ if(O.started_as_observer)
+ entry += " - Observing"
+ else
+ entry += " - DEAD"
+ else
+ entry += " - DEAD"
+ if(is_special_character(C.mob))
+ entry += " - Antagonist"
+ entry += " (?)"
+ Lines += entry
+ else//If they don't have +ADMIN, only show hidden admins
+ for(var/client/C in clients)
+ var/entry = "\t[C.key]"
+ if(C.holder && C.holder.fakekey)
+ entry += " (as [C.holder.fakekey])"
+ Lines += entry
else
for(var/client/C in clients)
if(C.holder && C.holder.fakekey)
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 1320ae695c2..7fdf3adb2d7 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -264,7 +264,11 @@
M_job = "New player"
else if(isobserver(M))
- M_job = "Ghost"
+ var/mob/dead/observer/O = M
+ if(O.started_as_observer)//Did they get BTFO or are they just not trying?
+ M_job = "Observer"
+ else
+ M_job = "Ghost"
var/M_name = html_encode(M.name)
var/M_rname = html_encode(M.real_name)