Hey, thanks for your concern.
In cases like the one below (1), it seems AssignActorToObjectPUBLIC fails to assign the settler to the new job:
Function AddFollower(ObjectReference akFollowerRef, ObjectReference akLeaderRef)
(...)
WorkshopScript WorkshopRef=akLeaderRef.GetLinkedRef(IMP.WorkshopItemKeyword) as WorkshopScript
ObjectReference FollowerMarkerRef=akFollowerRef.PlaceAtMe(IMP.IMP_Controller_GuardScoutFollower, abDeleteWhenAble=False)
IMP.WorkshopParent.BuildObjectPUBLIC(FollowerMarkerRef as WorkshopObjectScript, WorkshopRef)
IMP.WorkshopParent.AssignActorToObjectPUBLIC(akFollowerRef as WorkshopNPCScript, FollowerMarkerRef as WorkshopObjectScript)
FollowerMarkerRef.SetLinkedRef(WorkshopRef, IMP.WorkshopItemKeyword)
WorkshopRef.RecalculateWorkshopResources()
(...)
EndFunction
__________
FollowerMarkerRef is an object with WorkshopObjectScript attached
akFollowerRef is the settler (WorkshopNPCScript) I want to assign to FollowerMarkerRef
__________
It's like the UnassignActor function included in AssignActorToObject function code doesn't work properly in WorkshopParentScript.
________
(1) extract from IMPScriptGuardManagerScout.psc, lines 466-499
You can view the entire code of IMP on Github (but I still can't post the repository link here)