diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 0444458841..ac67d16d35 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -260,15 +260,6 @@
viewalerts = 1
src << browse(dat, "window=aialerts&can_close=0")
-/mob/living/silicon/ai/proc/ai_roster()
- var/dat = "
Crew RosterCrew Roster:
"
-
- dat += GLOB.data_core.get_manifest()
- dat += ""
-
- src << browse(dat, "window=airoster")
- onclose(src, "airoster")
-
/mob/living/silicon/ai/proc/ai_call_shuttle()
if(control_disabled)
to_chat(usr, "Wireless control is disabled!")
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5df24406c5..5f7d3ca243 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1298,4 +1298,12 @@
/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_health = 1)
if(istype(cell))
- cell.charge -= amount*5
\ No newline at end of file
+ cell.charge -= amount*5
+
+/mob/living/silicon/robot/verb/viewmanifest()
+ set category = "Robot Commands"
+ set name = "View Crew Manifest"
+
+ if(usr.stat == DEAD)
+ return //won't work if dead
+ ai_roster()
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index b9cee43138..699105ac4c 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -389,6 +389,15 @@
if (aicamera)
return aicamera.selectpicture(user)
+/mob/living/silicon/proc/ai_roster()
+ var/dat = "Crew RosterCrew Roster:
"
+
+ dat += GLOB.data_core.get_manifest()
+ dat += ""
+
+ src << browse(dat, "window=airoster")
+ onclose(src, "airoster")
+
/mob/living/silicon/update_transform()
var/matrix/ntransform = matrix(transform) //aka transform.Copy()
var/changed = 0