MFO v2.0.9 -- Followers use the spells you gave them, gear follows the perks, and Skyrim 1.5.97 joins
Skyrim AE 1.6.1170 or SE 1.5.97. Pairs with Harbinger (APMF) v0.9.5, which is optional. MFO runs without it.
-
Followers only put a spell in their hands if you gave them that spell as a gambit. Until now MFO stopped a follower casting anything ungambited, but it never stopped them picking it up. So a mage would arm a spell you never asked for, hold it charged in both hands, and stand there doing nothing for most of the fight because every cast was refused. MFO now tells Harbinger exactly which spells that follower is allowed to hold, so the ungambited one is never armed in the first place. The list is built from the same gambits the cast refusal already reads, so the two can never disagree. Staves, scrolls and powers are untouched, exactly as their casts always were. The list lifts the moment the fight ends. Needs Harbinger. There is a toggle if you want the old way.
-
A follower whose spell takes a while to get off the ground keeps his other hand closed. MFO holds the follower's free hand shut so the AI cannot slip its own spell in. That hold used to be dropped after four seconds if no cast had been seen yet, and the deck logs show a real attack spell takes closer to six seconds from the order to the cast, with the weapon swap in front of it. So the hold was being dropped on every single attack spell, and the AI armed its own spell in the freed hand under a second later. MFO now reads the game directly: while the follower is actually charging the spell you asked for, the other hand stays shut no matter how long it takes. The timer behind it was resized from the measured figure as well.
-
The log stopped crying wolf about spells that were firing perfectly well. A warning said the framework's seats might not be firing a cast, after two seconds of no cast. A normal cast takes longer than that to even start charging, so the warning fired on every single one. It now waits longer and stays quiet entirely while the game is visibly charging that spell.
-
A shield a dual wielding follower can never use again gets sold. MFO tells Harbinger not to put a shield back on a follower whose perks vote for two weapons. Nothing ever took the shield off, though, and the shop pass keeps anything a follower is wearing. So it sat on his arm forever, unusable and unsellable. A worn item in a category MFO itself has ruled out now goes through the same sale route that already handles gear MFO wants gone, and the sale takes it off his arm. A follower who has taken up dual wielding will sell the shield he was carrying, including one you gave him. His own signature gear is kept, and so is a shield holding a gem or one on the excluded list.
-
A follower whose forced weapon is released at the end of a fight puts it away instead of losing it. MFO has to unlock a forced weapon when the fight ends, and unlocking it took it off the follower entirely, so he walked around with empty hands and nothing on his back until the next fight armed him again. The weapon now goes straight back on unlocked and he sheathes it. His own AI is free to switch weapons from that point, which is the whole reason the lock comes off.
-
A forced weapon no longer vanishes mid fight when the game loses the follower's target. The equip gambits that read "foe within range" and "foe beyond range" measure the follower's current target. The game drops that target for a few seconds on a lost line of sight or a group retarget. MFO read that as "no foe in range" and after a short wait took the weapon out of the follower's hands while the fight went on around him. Now a dropped target while his group still has foes counts as unknown, not false, and the weapon stays. The weapon still comes off when the group is empty or the fight is over. The log says when a hold is kept this way.
-
The end of a fight is checked twice before anything is let go. The game restarts a follower's combat from scratch at times, which reads as a fight ending and starting again inside a fraction of a second. The forced weapon already waited for two clear ticks before it was released. The rest did not: the cast lock, the spell consent and the weapon stance were dropped on the first tick, so a caster could lose his spell in the middle of a fight. Everything now waits for the same two clear ticks.
-
The previous log is kept. At startup MFO.log becomes MFO.log.1 before the new log opens. A crash or freeze followed by a relaunch no longer wipes the only record of it.
-
Every log line reaches the disk at once, and a crash writes one last line. The log used to be flushed once a second, so a hard crash lost the last second, which is the second that matters. Each line is now written through as it happens. On a crash MFO also writes one line with the fault code, the address as module and offset, and the thread, then hands the crash on untouched. Crash Logger still writes its report exactly as before.
-
Followers join a fight the party is in, even when the game has not flagged them. The game's own "in combat" flag on a follower drops out for stretches of a fight. A lost line of sight to a dragon is enough. MFO used to read that flag alone, so a follower whose flag was off sat out the fight and only his heal rule could act. He looked frozen except for heals. The combat rules now run for every follower while the party is fighting: you, any follower, or a foe in the party's sights. A follower the game has not flagged yet still runs his rules, and his loot and upkeep keep going on the ticks where no combat rule acts. The same flag flap used to make a forced weapon vanish and come back mid fight, since the release keyed on it. Forced weapons now come off when the party's fight ends, not when one follower's flag blinks. The log prints one line when party combat starts and ends.
-
Healing followers no longer freeze in a fight waiting on a heal that never fires. A follower with a heal gambit in combat used to hand the cast to the game's own AI and wait for it. The AI kept picking a different heal, the request was refused, and while the wait stood MFO also kept the other hand shut, so the follower stood there with no heal and no weapon. Heals and other Restoration casts in combat now go straight through MFO's own delivery, the same one that heals the party out of combat. Attack spells still go through the game's AI. When an attack spell request sits for four seconds with no cast, MFO opens the other hand again and says so in the log. If you had the animated heal package switched on, combat heals now land instantly instead of playing the hand cast. That toggle no longer changes anything.
-
Followers' gear is now declared to Harbinger, which keeps the game from putting other things on them. With Harbinger installed, MFO tells it what each follower wears: the weapons in their hands, their ammo, the armor MFO picked and everything else they have on. Harbinger equips that set and refuses any other equip the game tries on that follower. So a dual wielder no longer gets a shield shoved back into the left hand by their own combat AI a second after MFO put the second weapon there, and a follower stops swapping back into the outfit the game wants. The first build only logs what it would have refused, so you can check the log before it is switched on for real. Harbinger also places the weapons in the hands MFO names, so a dual wielder gets the second weapon in the left hand from Harbinger itself. A piece you put on a follower by hand is kept. MFO leaves it on until it owns something strictly better for that slot, and then it stays in the pack instead of being sold. MFO without Harbinger equips gear directly, exactly as before. There is a toggle (on by default) if you want the old way. Harbinger now guards only the gear MFO chose, so followers still switch weapons on their own.
-
Loose gems always go into a free socket on worn gear. A follower with a gem in his pack and an empty socket on something he wears fills it, including the second weapon of a matched pair. The pass only looks at gear MEO can socket and follows MEO's own rules, so a support gem waits for a two socket item and a weapon gem never tries a ring. When a gem stays loose the log says why in one line.
-
Skill points stay where they were placed. All of them. A follower's automatic class skills used to move around every time they picked up or put on something, so a skill could drop a few seconds after it rose. Now every skill point is permanent once placed, whether the class placed it or you did. Each level adds its points by the class weights of that moment and nothing later moves them. Changing a follower's class only steers the levels still to come.
-
Every follower you already had gets one free respec after this update. Their skill points were placed by the old system, which moved them around, and the update freezes them where they stand. The first respec on each of those followers costs no rapport, so points the old system placed in the wrong skill can be moved. Followers who join after the update do not get one.
-
The board tells you when a respec is free. The respec line on the Progression board reads "free (one time)" for a follower who still has their free respec, and the confirm box says no rapport is lost. Once it is spent the line goes back to showing the rapport cost.
-
Respec returns everything. A respec clears the perks as before and also returns every skill point since the follower joined, the automatic ones and yours. With manual points on, the whole pool is yours to place. With manual points off, the class spends it again straight away.
-
Unchecking a follower freezes them as they are. Unchecking a follower in the box turns MFO off for them. Progression stops touching them the moment you do it. Their perks, skills and every point stay exactly as they were, and everything is remembered. Checking them again picks up where it left off and credits the levels they gained meanwhile, in skill points and perk points. No rapport is credited for the time away.
-
List perks come off when a follower joins progression. Perks a follower already had in the trees the Progression board shows are removed when they join, so every tree perk they hold is one you gave them. Nothing outside those trees is touched. They stay off while the follower is enrolled, benched or not. No points are handed out for them. Each removal is written to the log. The removed perks are remembered so they can all be put back in one clean step when the mod is uninstalled. That step is not on the board yet.
-
Fixed a perk you could never finish. A follower who came with the first rank of a perk could never be given the second. The rank they came with is now removed like the rest, so you can give them every rank yourself.
-
Followers fight with what they are perked for. The perks a follower owns now decide their style inside a weapon class. Perks in greatswords make a follower strongly prefer greatswords when looting, keeping and buying weapons. Perks in swords do the same for swords. It is a strong preference, not a rule. A follower with greatsword perks and only a warhammer in the pack still fights with the warhammer. The class itself still goes to the higher skill, one handed against two handed, heavy against light. On an exact tie the perks break it. A follower with no style perks behaves exactly as before. This reads the perks themselves, so it works with any perk overhaul.
-
Followers wear the armor class of their higher skill and swap out of the wrong one. A follower with more Light Armor than Heavy Armor now judges every piece by its rating times a strong bias toward light, and the other way round for a heavy follower. So a leather cuirass beats a steel one for a light follower, and he puts it on even when he is already wearing the steel. The old system only filtered what he looted, and the game itself dresses a follower by raw rating, so a follower who owned or was handed a heavy piece stayed in it forever. Perks nudge the choice inside the class. It is a strong preference, not a rule. A bare slot still takes any armor over nothing, and a real tier up in the other class still wins. The decision is written to the log.
-
Followers stop buying the wrong armor class. Buying used the raw rating too, so a light follower with nothing on his head bought a heavy helmet over a light one. Buying now ranks by the same score as looting and keeping, and the trade line in the log names what was bought and sold.
-
The weapon a follower draws in a fight is the one they are perked for. The perk preference used to steer only what a follower looted, kept and bought. In combat they still drew whatever hit hardest. Now the combat pick uses the same rule as the pack. A follower with sword perks who carries a sword and a slightly stronger mace draws the sword. It is the same strong preference, not a rule, so a big step up in damage still wins. A follower with no style perks draws exactly what they did before.
-
Followers dual wield when their perks say so. A follower whose perks lean toward a weapon in the left hand now fights with two one handed weapons. They draw their best one hander in the right and the next best in the left, judged by the same perk preference. A follower whose perks lean toward a shield draws their best shield instead. No perks either way means nothing changes. The left hand always gives way to a spell, so a follower who casts keeps casting, and the weapon comes back when the cast is done. This reads the perks themselves, so it works with any perk overhaul.
-
Helmets count now. Most vanilla helmets (the Imperial, Elven, Leather and Iron helmets, the Shrouded Cowl) are flagged as hair and circlet in the game data, not as head. MFO only looked for the head flag, so it never bought, kept or looted them, sold them as junk, and read a follower wearing one as bare headed. One follower swapped a Dwemer Helmet over a better Shrouded Cowl because of that. All three flags mean head now, everywhere: looting, wearing, keeping, selling and buying.
-
Dual wielders get and keep a second weapon. A follower whose perks put a weapon in the left hand now loots a second one hander and buys one at a vendor, and keeps the best two instead of selling the spare. The second weapon goes in the pack, and the follower draws it in the left hand at the next fight. A dual wielder no longer picks up or buys a shield either. Two copies of the same weapon count as a pair.
-
Perks that decide gear are never marginal. A perk whose conditions name a weapon type, an armor class or a hand is what MFO reads to decide a follower's weapon, armor and wielding style. Those perks now always count as effective, so a missing or odd verdict in the add on can't switch the style decision off. (The cause in the field was a stale progression add on with no verdicts at all. It is being redeployed.)
-
MEO gem problems are reported instead of retried silently. MFO used to log a gem socket as done the moment it was queued, and one request could be retried every second forever when MEO refused it. MFO now logs what MEO answered, and when the same socket request keeps failing it says so once, points you at the MEO log, and backs off for a minute before trying again.
-
Fixed a follower dropping their only weapon. Every actor carries a hidden "unarmed" weapon. The rule that clears a follower's off role weapons after a fight counted those fists as a weapon in role, so a follower whose one real weapon was off role could drop it and fight bare handed. Fists no longer count. A follower keeps their only weapon even when it is the wrong class for their skills. The exception is a follower with unarmed perks placed through the Progression board. Fists of Steel counts, and so does any perk that only works with empty hands. They can fight with their fists and the shed treats their weapons accordingly. The decision is written to the log.
-
Loot travel, the retreat probe and the cast alias fills now work on Skyrim 1.5.97. The game call that fills a quest alias was only wired up for Skyrim 1.6. On 1.5.97 every feature built on it stayed off: followers never walked to loot, the retreat probe never ran, and the self and foe cast packages declined. The 1.5.97 address for that call is now verified against the game itself and wired in. It is wired for 1.5.97 exactly. Other 1.5 builds and VR still decline, since nothing was checked on them. The 1.6 call is the same one as before.
-
The left hand slot is looked up by its form now, and on 1.6.1170 that changes what your followers do. MFO used to ask the game's default object table for the LeftHand slot through a library call. That call reads the table at the wrong place. On Skyrim 1.5.97 it turns up a bad pointer, so a follower equipping a gambit spell there would have crashed the game. On 1.6.1170 it read a flag off an unrelated form (a form list from Update.esm) and that flag is always zero, so on 1.6.1170 the call has always answered "no slot". That means every spell MFO equipped on 1.6.1170 was handed to the game with no slot, and the game picked the hand itself. It also means the dual wield off hand equip added in the last update could never run on 1.6.1170, and neither could the left hand unequips that go with it. The slot is the LeftHand form in Skyrim.esm on every version, and that is what the game itself fills the table from, so MFO asks for the form directly now. This is the first build where the LeftHand slot actually reaches the game on 1.6.1170. What you should see on 1.6.1170 for the first time: gambit spells land in the left hand, the log prints "GAMBIT equip off-hand" lines for followers whose perks favour a weapon in the left hand, a weapon MFO moved out of the left hand for a cast comes back to the left hand when the fight ends, and the per hand cast claims and left hand debts now get exercised for real. The log also stops claiming an off hand equip that did not happen. The equip line used to print "+ off-hand" whether or not the left hand hold went through, and on 1.6.1170 it never did. Now it says "+ off-hand" only when the hold happened, says "NOT held" and why when it did not, and a refused hold is an error line of its own. Checked against both the 1.5.97 and 1.6.1170 game binaries.
-
Followers cast on Skyrim 1.5.97 the same way they do on 1.6.1170. The whole cast control path (heals, offense, buffs, the AUTO target pick, the animated heal claim) was switched off on 1.5.97 since v1.0.48 because of a crash in the spell equip step. That crash was the default object table read above, and it is gone. Every other address the cast path touches on 1.5.97 has been checked against the 1.5.97 game itself, so the gate is open on 1.5.97 exactly. Other 1.5 builds and VR keep the follower's own AI casting, and the log says so. The log prints one line at load that names your game version and says which paths are live, so a 1.5.97 log proves it. Skyrim 1.7 is not supported yet, there is no address library for it.
-
The log now counts every attack move a follower makes in a fight. One line per follower per fight lists each attack, power attack, bash and swing the follower's own animation played, by name, with how long he stood next to his target with weapons out and did nothing. It also names which attack frameworks are loaded. This is for reading the log after a fight where a follower keeps doing the same move. It changes nothing in the game. Off by default. Turn it on with bAttackObserve = 1 in MFO.ini.
Build provenance
- commit
3d8f9e6· CI run35811709508 MFO.dllsha256c7f71ba127b7d901bae0febcb3acf53b317ea816a7255fdf4612e193874bfa72MFO.espsha256308ee3394165e5964ce1c90bfb70fc86064ff335aa22765c0c0b0b8b951cd0da