Chesko Posted December 19, 2012 Share Posted December 19, 2012 (edited) Hey, all. Frostfall 2.0 is starting to get wrapped up, so I've been looking ahead at what comes next. Frostfall 2.1's major focus will be Followers and NPCs, and the way that they are affected by cold. However, some things I've already learned from experience from working on Wearable Lanterns: Supporting followers, even in vanilla Skyrim, is a big bag of hurt. Bethesda can't make up their minds about how they would like to handle followers. There are at least 2 different conventions used in the base game ("normal" followers, like Jenassa, and Dark Brotherhood followers). Three if you count Dawnguard, which uses its own system of aliases. There are several major multi-follower mods: Amazing Follower Tweaks, Ultimate Follower Overhaul, and Extensible Follower Framework. There might be more, but those are the ones that come to mind. They all have their own system of managing followers and their own ReferenceAliases. Because of the above difficulties, it's hard to do things like: * Assign generic dialogue topics to followers. * Run scripts against some or all followers currently in service. * Know exactly how many followers you have. * Provide support for all types of multi-follower mods. * etc Because of these problems and the fact that I'm tired of dealing with them, I would like to, after Christmas break, start putting together something called the Universal Follower Framework API that would try to bridge the gap between all of these. In my opinion, I should be able to support all multi-follower mods regardless of implementation, and support all followers from the base Bethesda game, while ensuring the integrity of my script information. This system would essentially be a set of Papyrus global functions call-able by any mod that wants to use them and support followers better. Some ideas for functions would be: Actor function GetNthFollower(int iFollower) int function GetFollowerCount(bool bIncludeAnimals = false) bool function IsFollower() int function GetFollowerIndex() ...and so on. Just very generic functions that enable you to do powerful things regardless of the user environment. WIth the above examples, I could do something like... if Jenassa.IsFollower() if Jenassa.GetFollowerIndex() == UFF.GetFollowerCount() - 1 notification("Jenassa, you are the last follower! Haha!") endif endif Or, imagine that you and all your followers are gearing up for a massive battle with the enemy, and you want to make sure that all of your companions are dressed appropriately. int iFollowerCount = UFF.GetFollowerCount() int i = 0 while i < iFollowerCount Actor myFollower = UFF.GetNthFollower(i) if myFollower.GetItemCount(BattleCape) == 0 myFollower.AddItem(BattleCape, 1) myFollower.EquipItem(BattleCape) endif endWhile Silly, but you get the point. Imagine trying to do that when you don't know if your user is using EFF, or UFO, or AFT, or none of the above. So, the purpose of this thread: what kinds of features would you want in a Follower API such as this? What would make your life easier when trying to support the multitude of followers and follower mods in existence? Thanks! Edited December 19, 2012 by Chesko Link to comment Share on other sites More sharing options...
calfurius Posted December 20, 2012 Share Posted December 20, 2012 i'm not sure what all that scripting means but this looks cool :D Link to comment Share on other sites More sharing options...
Recommended Posts