I found the code that teleports them to Taft, but I'm not really sure how to prevent it from happening. The only thing I can think of is:
1) Check every Jefferson, Purity, Jefferson Wasteland cell - if there in one of those - teleport them.
2) Check the players houses (which will break down if they are waiting somewhere else) - if they're not in those - teleport them.
Just wondering if some scripting gurus have a better solution (preferably without FOSE).
Here is the vanilla code that teleports them to Taft:
scn MQ05FollowerCatchupTrigSCRIPT; this script runs on a trigger in TaftTunnel01 that fakes followers moving through a load door ; in case they've been left behind somewhere at Project Purity or Taft Tunnel; Erik may want ot make this more robust later on.short doOncebegin onTriggerEnter player if doOnce == 0 set doOnce to 1 MQ05EnclaveTaftBarrier.enable ; enable Enclave energy field to prevent backtracking in 02 DisableNavmesh TaftMinMesh ; disable navmesh under that energy field to prevent NPC pathing in low? TaftCheckpointDoor.unlock ; unlock door @ Brotherhood checkpoint if getStage MQ05 >= 80 && getStage MQ05 < 100 ;; // Check for here/dead on all the MQ05 tagalong NPCs if DoctorLiRef.getInCell TaftTunnel01 == 0 if DoctorLiRef.getDead == 0 DoctorLiRef.moveto MQ05FollowerCatchupMarker endif endif if GarzaRef.getInCell TaftTunnel01 == 0 if GarzaRef.getDead == 0 GarzaRef.moveto MQ05FollowerCatchupMarker endif endif if DanielAgincourtRef.getInCell TaftTunnel01 == 0 if DanielAgincourtRef.getDead == 0 DanielAgincourtRef.moveto MQ05FollowerCatchupMarker endif endif if AlexDargonRef.getInCell TaftTunnel01 == 0 if AlexDargonRef.getDead == 0 AlexDargonRef.moveto MQ05FollowerCatchupMarker endif endif ;; // Check for hired/here/dead on all the NPC followers the player might have if followers.CharonHired == 1 && CharonREF.getInCell TaftTunnel01 == 0 if CharonREF.getDead == 0 CharonREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.FawkesHired == 1 && MQ08FawkesREF.getInCell TaftTunnel01 == 0 if MQ08FawkesREF.getDead == 0 MQ08FawkesREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.JerichoHired== 1 && JerichoREF.getInCell TaftTunnel01 == 0 if JerichoREF.getDead == 0 JerichoREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.StarPaladinCrossHired== 1 && StarPaladinCrossREF.getInCell TaftTunnel01 == 0 if StarPaladinCrossREF.getDead == 0 StarPaladinCrossREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.ButchHired== 1 && ButchREF.getInCell TaftTunnel01 == 0 if ButchREF.getDead == 0 ButchREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.RL3Hired== 1 && RL3REF.getInCell TaftTunnel01 == 0 if RL3REF.getDead == 0 RL3REF.moveto MQ05FollowerCatchUpMarker endif endif if followers.CloverHired== 1 && CloverREF.getInCell TaftTunnel01 == 0 if CloverREF.getDead == 0 CloverREF.moveto MQ05FollowerCatchUpMarker endif endif if followers.DogmeatHired== 1 && DogmeatREF.getInCell TaftTunnel01 == 0 if DogmeatREF.getDead == 0 DogmeatREF.moveto MQ05FollowerCatchUpMarker endif endif endif endifend
It makes sure they're hired, in Taft, and not dead - but is there an easy way to check if there waiting outside Jefferson? Otherwise I'm probably going with option 1.
TIA