anchor.diff:  		var/spawning_handled = FALSE
   		var/obj/S = null
   		if(HAS_TRAIT(SSstation, STATION_TRAIT_LATE_ARRIVALS) && job.random_spawns_possible)
  -			SendToLateJoin(living_mob)
  +			SendToLateJoin(living_mob, buckle = TRUE, search_empty_chair = FALSE)
   			spawning_handled = TRUE
   		else if(HAS_TRAIT(SSstation, STATION_TRAIT_RANDOM_ARRIVALS) && job.random_spawns_possible)
   			DropLandAtRandomHallwayPoint(living_mob)
  
positive.code: 		return
  	..()
  
  /datum/controller/subsystem/job/proc/SendToLateJoin(mob/M, buckle = TRUE)
  	var/atom/destination
  	if(M.mind && M.mind.assigned_role && length(GLOB.jobspawn_overrides[M.mind.assigned_role])) //We're doing something special today.
  		destination = pick(GLOB.jobspawn_overrides[M.mind.assigned_role])
  
negative.code: 		return TRUE
  
  	//bad mojo
  	var/area/shuttle/arrival/spawnarea = GLOB.areas_by_type[/area/shuttle/arrival]
  	if(spawnarea)
  		if(search_empty_chair) // search carefully for an unoccupied chair for the character can buckle to.
  			var/list/chairs = list()
  			for(var/obj/structure/chair/chair in spawnarea)
  				chairs += chair
  			while(chairs.len)
  				var/obj/structure/chair/chosen_chair = pick_n_take(chairs)
  				if(!chosen_chair.has_buckled_mobs())
  					chosen_chair.JoinPlayerHere(M, buckle)
  					return TRUE
  		//we either couldn't find a free chair or couldn't be bothered to.
  		var/obj/structure/chair/chair = locate() in spawnarea
  		if(chair)
  			chair.JoinPlayerHere(M, buckle)
  			return TRUE
  
  		//last hurrah
  		var/list/avail = list()
  		for(var/turf/T in spawnarea)
  			if(!T.is_blocked_turf(TRUE))
  				avail += T
  		if(avail.len)
  