Do you plan to address followers outside of the vanilla system?
Yes, that's a large part of the point of this exercise. The job of UFF will be to handle follower inside and outside of the vanilla system, across disparate multi-follower frameworks.
If so, I'd like to suggest/request that you enable makers of follower mods to opt in or out of your framework's elements in a granular way. Otherwise--well, to use your example, followers like Vilja or my Aela already have systems to switch outfits when entering battle. I think some of the big follower frameworks do, too. If there's some other mod on top of that using the API to do the same thing, it just makes a mess. Likewise mods trying to add new dialogue topics to custom-voiced followers who have their own carefully crafted conversation trees...that sort of thing is as jarring and unaesthetic to me as a spotless tent in a Winterhold snowstorm probably is to you.
I think you're confusing a framework with an implementation. There will be no "opt in" or "opt out" because no follower mods will be directly dependent on UFF. The only things that will be directly dependent on UFF are mods that
affectfollowers, not follower mods themselves. I'm coming at it from the other side.
To address the concern you bring up about switching outfits, that's exactly the kind of thing I'm wanting to solicit feedback on. Say, for instance, we don't want to do what I just did up above because just straight up changing their gear like that might be a bad thing. So, what if I wrote a function called
FollowerEquipItem() that looks at the follower, determines what follower framework you're using, and uses
the framework's implementation of gear switching?
To give a specific Frostfall example of a real problem, say I have a tent with 3 spare bedrolls, and I decide that when the player goes to bed, my followers should too. Any extra followers should just hang out outside. I need to know the following:
- How many followers does the player have?
- Who are they?
- Where are they?
I currently have
no way of answering those questions easily. If you just look at DialogueFollowers aliases, that will lie to you. If you just look at a particular framework's aliases, that will "lie" as well. You have to be good enough to look at (and specifically support) all of these different frameworks just to answer these simple questions.
Using this framework, I'd want you to be able to do something like...
Spoiler function PlayerWentToSleep() if UFF.GetFollowerCount() &--#62; 0 myFirstFollower = UFF.GetNthFollower(0) if myFirstFollower myFirstFollower.Activate(SpareBedroll1) endif mySecondFollower = UFF.GetNthFollower(1) if mySecondFollower mySecondFollower.Activate(SpareBedroll2) endif myThirdFollower = UFF.GetNthFollower(2) if myThirdFollower myThirdFollower.Activate(SpareBedroll3) endif endifendFunction
...without caring about the multi-follower framework, without caring whether or not it's a Dawnguard follower or a Dark Brotherhood follower, and so on.
In other words, I can understand you might want to be able to do certain things like have all followers put on a warm cloak when it gets cold with Frostfall, regardless of how many followers the player has or which framework they're using. Fair enough. But I can equally see the maker of a follower, or a framework, wanting to have followers put on a warm cloak when it gets cold, regardless of whether or not the player is using Frostfall. And as a maker of a follower, the ideal thing for me would be to be able to say in some cases "Chesko's API has already allowed the creation of a mod that does X in a superior way, so if the player has it installed, I'll turn off my custom version of X and let the other mod do its thing" and in some other cases say "my method of offering that functionality suits the character and personality of my follower better than any generic system, so I'm going to opt-out of the API's awareness when it comes to that element and use my own functions." Does that make sense?
Again, framework vs. implementation. I'm just trying to build a set of tools; how I decide to implement how exactly or under what circumstances a follower equips a warm cloak is outside the scope of what I'm trying to build here. I'm trying to build a set of tools that make it easy to manage followers from a script perspective, regardless of the multi-follower framework. I don't want you, the mod author, to have to care about that any more. I want you to be able to execute generic functions, and then have UFF go and do it in the best way possible, using the multi-follower framework's own functions if possible. It will, of course, be up to the mod author to not abuse the framework or not do silly things with it.
The biggest point I guess I'm trying to make is that this goes way beyond Frostfall. I'm trying to think as generically as possible.
Mofakin - This thread isn't intended to provide you with support for your follower mod issues, or to provide me with scripting help. Instead, what I'd like to know is, what sorts of problems would you like to be able to solve with a generic follower framework? What specific challenges have you run into? And, please,
put your code in spoiler tags.