diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 307ca4641b3..97fc9da5323 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -446,6 +446,8 @@ var/global/list/uneatable = list(
process()
eat()
+ if(!target || prob(5))
+ pickcultist()
move()
if(prob(25))
mezzer()
@@ -470,4 +472,41 @@ var/global/list/uneatable = list(
return
ex_act() //No throwing bombs at it either. --NEO
- return
\ No newline at end of file
+ return
+
+ proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
+ var/list/cultists = list()
+ for(var/datum/mind/cult_nh_mind in ticker.mode.cult)
+ if(!cult_nh_mind.current)
+ continue
+ if(cult_nh_mind.current.stat)
+ continue
+ cultists += cult_nh_mind.current
+ if(cultists.len)
+ acquire(pick(cultists))
+ return
+ //If there was living cultists, it picks one to follow.
+ for(var/mob/living/carbon/human/food in world)
+ if(food.stat)
+ continue
+ cultists += food
+ if(cultists.len)
+ acquire(pick(cultists))
+ return
+ //no living cultists, pick a living human instead.
+ for(var/mob/dead/observer/ghost in world)
+ if(!ghost.client)
+ continue
+ cultists += ghost
+ if(cultists.len)
+ acquire(pick(cultists))
+ return
+ //no living humans, follow a ghost instead.
+
+ proc/acquire(var/mob/food)
+ target << "\blue NAR-SIE HAS LOST INTEREST IN YOU"
+ target = food
+ if(ishuman(target))
+ target << "\red NAR-SIE HUNGERS FOR YOUR SOUL"
+ else
+ target << "\red NAR-SIE HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL"