I suspect that for reasons of compatibility the best way to do this latter aspect is to create a new quest with the improved follower dialogue, rather than editing the vanilla DialogueFollower quest.
So, I've started to do this. Now, say that I want to use my own topic and info language for the "let's trade" inventory access functionality. I can get my new topic to appear in game just fine, but the problem is that the inventory topic from the DialogueFollower quest also appears. I am now trying to figure out how to prevent this from happening, without actually editing the DialogueFollower quest in any way, and without permanently removing the follower from the CurrentFollowerFaction faction.
My first thought for this, looking over the available functions and events, was that I'd put an OnActivate script on the follower's Actor, that would temporarily remove them from the CurrentFollowerFaction for the duration of the dialogue, like so:
Scriptname DisableDialogueFollowerScript extends ActorFaction Property CurrentFollowerFaction AutoFaction Property CurrentFollowerFactionESF AutoEvent OnActivate(ObjectReference akActionRef) if IsInFaction(CurrentFollowerFaction) RemoveFromFaction(CurrentFollowerFaction) if IsInFaction(CurrentFollowerFactionESF) == false AddToFaction(CurrentFollowerFactionESF) endIf endIfEndEvent
The problem with this is that OnActivate seems only to trigger well after the initial list of topics has already been displayed--there is a noticeable lag, about a full second, between the time the initial list of topics keyed to CurrentFollowerFaction are drawn, and the time my new topics keyed to CurrentFollowerFactionESF are added to the list and the CurrentFollowerFaction topics removed. This makes me wonder if there is some other built-in event that triggers before the dialogue topics are drawn?
If not, I'd welcome alternative suggestions for how to go about this in a way that plays nice with existing vanilla faction checks and anticipated future mods (like other follower mods).
