proc
Auto()
while(game==1)
var/auto=rand(1,10)
if(auto==1)
spawn(1)
ReleaseArrow1()
if(auto==2)
spawn(1)
ReleaseArrow2()
if(auto==3)
spawn(1)
ReleaseArrow3()
if(auto==4)
spawn(1)
ReleaseArrow4()
if(auto==5)
spawn(1)
ReleaseArrow5()
if(auto==6)
spawn(1)
ReleaseArrow6()
if(auto==7)
spawn(1)
ReleaseArrow7()
if(auto==8)
spawn(1)
ReleaseArrow8()
if(auto==9)
spawn(1)
ReleaseArrow9()
if(auto==10)
spawn(1)
ReleaseArrow10()
if(playercount<=0)
break
proc
playercheck()
playercount=0
for(var/mob/M as mob in world)
if(M.shot!=1)
playercount+=1
if(playercount<=0)
world << "No more players! Rebooting..."
sleep(100)
world.Reboot()
Problem description:
When Auto() is called, it will freeze and crash Dream Seeker.
Also, those spawn(1) statements aren't doing anything. One usually indents after spawn() statements to obtain a wanted effect. Also, maybe you should consider giving those "ReleaseArrow" procedures to the object that releases them. If not, you can make an argument for ReleaseArrow(), num. Also, look up Boolean Variables. I know there is a very good programming article on BYONDscape, and one that touches boolean variables is called Green Programming, I believe, by Lummox Jr.
You also might want to consider moving the playercount check upwards. I think that would be better, but you probably have a reason for leaving it down there.