I've also discovered why you can't make Jarls like Elisif followers; there's an explicit exception in the dialogue-handling quests that prevents anyone in the "JobJarlFaction" faction from becoming a follower. This prevents the "Follow me, I need your help" dialogue from appearing. If you simply remove them from the faction, hire them, then put them back in it will work; the exception only prevents them being hired in the first place.
Now, for the technical stuff, note that this ONLY covers making NPCs into followers. Animals use different systems (Animal Trainers, etc.) that make use of the DialogueFollower quests, but via different methods since you can only have one of each type of follower at a time. I have not fully explored this
The quests are divided up into three main "quests" that govern all the dialogue interactions and scripts for hirelings and followers:
DialogueFavorGeneric (ID 5A6DC)
HirelingQuest (ID BCC94)
DialogueFollower (ID 750BA)
In order to make an NPC a follower or hireling using the default methods, the below criteria must be met:
- They must be in the "PotentialFollowerFaction" faction (ID 5C84D) if they are to be a follower.
- They must be in the "PotentialHireling" faction (ID BCC9A) if they are to be a hireling.
- They must NOT be in the "JobJarlFaction" faction (ID 50920).
- If they are to be a follower, their relationship rank towards the player must be at least 1.
For followers, this is all you need. The NPC will have the appropriate dialogue options for being a follower. The criteria for governing the appearance of the "Follow me, I need your help." option (including overarching criteria set by the quest) are governed by the "DialogueFavorGeneric" quest should you decide to add custom hire lines. Once the criteria are met, selecting the option triggers the quest to tell the "DialogueFollower" quest scripts to manage that NPC as your humanoid follower, and they are placed in the "CurrentFollowerFaction" faction to prevent the appearance of the hire option.
For hirelings however, the process is a bit more complicated. They require script editing in the "DialogueFollower" quest to work properly and there is NO generic dialogue for hirelings, so you must make your own hire/rehire/etc. lines under the "HirelingQuest" quest. You will also need a new global variable to determine whether or not they can be rehired for free, and optionally a second global variable to determine whether or not they are familiar the player from traveling with them before. See the papyrus fragments in the other hireling lines for an example of how to set up your custom lines. I will eventually expand on this, but the gist is that the "HirelingQuest" quest handles the recruitment, and "DialogueFollower quest handles the dialogue while they are a follower. The "DialogueFollower" quest also contains the "SetHirelingRehire" script, which is necessary to set the global variable that determines the "free rehire" period afer firing for your hireling that "HirelingQuest" uses, so you will need to edit this script to include your hireling in the "DismissHireling" function.
