anchor.diff:  			src << alert("[rank] is not available. Please try another.")
   			return 0
   
  +		var/num_old_slots = GetAvailableAlienPlayerSlots()
  +		var/new_slots = num_old_slots
   		if(preferences.species != "Human")
   			if(!is_alien_whitelisted(src, preferences.species) && config.usealienwhitelist)
   				src << alert("You are currently not whitelisted to play [preferences.species].")
   				return 0
  +			else if(num_old_slots < 1)
  +				src << "\red Unable to join game. Too many players have already joined as aliens."
  +				return 0
   
   		job_master.AssignRole(src, rank, 1)
   
  
positive.code: 			return 1
  
  		if(href_list["ready"])
  			if(!ready)
  				ready = 1
  			else
  				ready = 0
  
  		if(href_list["refresh"])
  			src << browse(null, "window=playersetup") //closes the player setup window
  
negative.code: 			data_core.manifest_inject(character)
  			ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc.	//TODO!!!!! ~Carn
  			AnnounceArrival(character, rank)
  
  			new_slots = GetAvailableAlienPlayerSlots()
  			if(num_old_slots < 1 && new_slots >= 1)
  				for(var/mob/new_player/N in world)
  					N << "\blue A new alien player slot has opened."
  			else if(num_old_slots >= 1 && new_slots < 1)
  				for(var/mob/new_player/N in world)
  					N << "\red New alien players can no longer enter the game."
  
  		else
  			character.Robotize()
  		del(src)
  
  	proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
  		if (ticker.current_state == GAME_STATE_PLAYING)
  