I tried this mod on a new save, and no matter what I do Auri seems to refuse to summon Thistlefoot. The first horse I rode was the tamed wild horse from the CC mod just outside Whiterun. I can’t imagine those horses are different than vanilla ones, but just in case. (Also, it wouldn’t matter that I didn’t have a horse when I met her the first time but tamed it after?)
Is there anything you’d recommend to sort of “reset” Auri and see if she figures out she has Thistlefoot?
Update: after looking at the code, I saw that she should mount up if I start the game from a save while mounted, and sure enough, that works. But she won't dismount when I do, or mount up when I do.
So, as best I can tell, the listener isn't picking up the mount animation. I'm on VR and using a few animation mods like Steeds of Ultima, so I thought I'd turn off my Pandora output, but that didn't seem to fix it, either. :/
Continuing to debug in this post in case someone comes along after me. It can't be the lack of listening to the animation event. I decompiled the default PapyrusScript and it registers for the same two animations, but she does mount up when I don't use this mod.
Messed around for about an hour with this, at least. Long story short, the original Auri script works fine (although she sometimes goes airborne for a bit before mounting, which is amusing), and the Thistlefoot Should Stay Outdoors mod seems to work as well.
Looking at this mod's code, it looks a good deal more foolproof, but there's something wonky with (at least) Skyrim VR. I even tried adjusting the script to take PlayerRef as a property and passing it in that way, and tried different orders of obtaining the horse vs getting Auri as a follower. Nothing seems to work to convince her to summon Thistlefoot if this mod's installed. :(
Sharing this for those who come after me. In VR, it's possible to listen for MTState and that, in combination with checking IsOnMount() will get you what you need.I updated/recompiled the script with changes to the listen registration and the OnAnimationEvent as follows:
Actor property AuriRef auto Actor property ThistleFootRef auto Faction property CurrentFollowerFaction auto GlobalVariable property AuriShouldRideHorse auto ObjectReference property ThistleFootXMarker auto Spell property ThistleFootSummonSpell auto
function AuriDismount() AuriShouldRideHorse.SetValue(0.0) AuriRef.EvaluatePackage() ; Making her hop off directly is a bit quicker than waiting for EvaluatePackage() to come back AuriRef.Dismount() ; Make sure she has enough time to hop off, so it doesn't look silly when he disappears Utility.Wait(3.0) ; Keeping the spell just for visuals makes it much easier to time things in a way that looks smooth in game ThistleFootSummonSpell.Cast(ThistleFootRef, ThistleFootRef) Utility.Wait(1.0) ThistleFootRef.MoveTo(ThistleFootXMarker) endfunction
function AuriMountUp() float AngleZ = AuriRef.GetAngleZ() ThistleFootRef.MoveTo(AuriRef, 128.0 * Math.Sin(AngleZ), 128.0 * Math.Cos(AngleZ), 0.0, true) Utility.Wait(0.75) ; Keeping the spell just for visuals makes it much easier to time things in a way that looks smooth in game ThistleFootSummonSpell.Cast(ThistleFootRef, ThistleFootRef) AuriShouldRideHorse.SetValue(1.0) AuriRef.EvaluatePackage() endfunction
function Initialize() Actor PlayerRef = Self.GetReference() as Actor if (Game.GetModByName("AmazingFollowerTweaks.esp") != 255) Faction TweakIgnoreFaction = Game.GetFormFromFile(141763, "AmazingFollowerTweaks.esp") as Faction if (TweakIgnoreFaction != none) AuriRef.AddToFaction(TweakIgnoreFaction) endif endif if (Game.GetModByName("nwsFollowerFramework.esp") != 255) Faction NoHorseFaction = Game.GetFormFromFile(0x00153FBE, "nwsFollowerFramework.esp") as Faction if (NoHorseFaction != none) AuriRef.AddToFaction(NoHorseFaction) endif endif if (Game.GetModByName("Convenient Horses.esp") != 255) Faction CHHorseFaction = Game.GetFormFromFile(0x0006FD0C, "Convenient Horses.esp") as Faction if (CHHorseFaction != none) AuriRef.RemoveFromFaction(CHHorseFaction) endif endif RegisterForAnimationEvent(PlayerRef, "MTState") if ((AuriRef.IsInFaction(CurrentFollowerFaction)) && (PlayerRef.IsOnMount()) && (AuriShouldRideHorse.GetValue() == 0.0)) AuriMountUp() endif endfunction
Probably not intended by the mod but it completely disabled the fucker Thistlefoot for my Auri. (no other patch I tried worked to disable Thistlefoot summon) Now she can use Convenient Horses or NFF's horse.
Well... so if that's what you're looking for, give this mod a try.
I know you recommend a new save for this, but do you think it would work out alright in a save where I've never spoken to Auri yet/never had her as a follower? I imagine since she'd never summoned Thistlefoot in my current save it might work out fine..?
Thank you so much for this! I couldn't get my save to load since I was in a house and didn't realize Thistlefoot had followed me in there, and this was the only mod that fixed it.
Thistlefoot is a summonable mount and there are no consequences for "killing" him. He can't follow Auri into interior places if he's temporarily banished. EDIT: Hmmm, well, something in my game is making it so that Thistlefoot is very hard to "kill", semmingly impossible (pretty sure it is this patch), he may as well be eating the arrows I shoot into him... With the way his head/neck moves and how the arrows in his neck disappear quickly it almost looks like he does eat them LOL! We already knew Thistlefoot is a GOD! XD
EDIT: I did not even fully read this mod's description...
SirCadsimar Uh, please re-read the description, very carefully, this patch fundamentally alters how Thistlefoot is set up, there's absolutely nothing vaguely ambiguous or mysterious going on here, I couldn't possibly have been clearer about anything.
This patch is supposed to make the Convenient Horses patch "redundant", but one of the things that the CH patch does is remove the dialogue "You should buy a horse" from Auri's dialogue options (or at least it's supposed to do when it works properly), which this patch unfortunately doesn't do, at least not in my game. Other than that though, this mod works well, thank you.
27 comments
Auri desummons Thistfoot each time you get off your mount
Is there anything you’d recommend to sort of “reset” Auri and see if she figures out she has Thistlefoot?
So, as best I can tell, the listener isn't picking up the mount animation. I'm on VR and using a few animation mods like Steeds of Ultima, so I thought I'd turn off my Pandora output, but that didn't seem to fix it, either. :/
Messed around for about an hour with this, at least. Long story short, the original Auri script works fine (although she sometimes goes airborne for a bit before mounting, which is amusing), and the Thistlefoot Should Stay Outdoors mod seems to work as well.
Looking at this mod's code, it looks a good deal more foolproof, but there's something wonky with (at least) Skyrim VR. I even tried adjusting the script to take PlayerRef as a property and passing it in that way, and tried different orders of obtaining the horse vs getting Auri as a follower. Nothing seems to work to convince her to summon Thistlefoot if this mod's installed. :(
Scriptname AuriPlayerMountScript extends ReferenceAlias
Actor property AuriRef auto
Actor property ThistleFootRef auto
Faction property CurrentFollowerFaction auto
GlobalVariable property AuriShouldRideHorse auto
ObjectReference property ThistleFootXMarker auto
Spell property ThistleFootSummonSpell auto
event OnAnimationEvent(ObjectReference akSource, String asEventName)
if ((asEventName == "MTState") && (akSource == Self.GetReference()) && (AuriRef.IsInFaction(CurrentFollowerFaction)))
Bool isOnMount = (Self.GetReference() as Actor).IsOnMount()
if (isOnMount && (AuriShouldRideHorse.GetValue() == 0.0) )
AuriMountUp()
elseif (!isOnMount && (AuriShouldRideHorse.GetValue() == 1.0))
AuriDismount()
endif
endif
endevent
event OnInit()
Initialize()
endevent
event OnPlayerLoadGame()
Initialize()
endevent
function AuriDismount()
AuriShouldRideHorse.SetValue(0.0)
AuriRef.EvaluatePackage()
; Making her hop off directly is a bit quicker than waiting for EvaluatePackage() to come back
AuriRef.Dismount()
; Make sure she has enough time to hop off, so it doesn't look silly when he disappears
Utility.Wait(3.0)
; Keeping the spell just for visuals makes it much easier to time things in a way that looks smooth in game
ThistleFootSummonSpell.Cast(ThistleFootRef, ThistleFootRef)
Utility.Wait(1.0)
ThistleFootRef.MoveTo(ThistleFootXMarker)
endfunction
function AuriMountUp()
float AngleZ = AuriRef.GetAngleZ()
ThistleFootRef.MoveTo(AuriRef, 128.0 * Math.Sin(AngleZ), 128.0 * Math.Cos(AngleZ), 0.0, true)
Utility.Wait(0.75)
; Keeping the spell just for visuals makes it much easier to time things in a way that looks smooth in game
ThistleFootSummonSpell.Cast(ThistleFootRef, ThistleFootRef)
AuriShouldRideHorse.SetValue(1.0)
AuriRef.EvaluatePackage()
endfunction
function Initialize()
Actor PlayerRef = Self.GetReference() as Actor
if (Game.GetModByName("AmazingFollowerTweaks.esp") != 255)
Faction TweakIgnoreFaction = Game.GetFormFromFile(141763, "AmazingFollowerTweaks.esp") as Faction
if (TweakIgnoreFaction != none)
AuriRef.AddToFaction(TweakIgnoreFaction)
endif
endif
if (Game.GetModByName("nwsFollowerFramework.esp") != 255)
Faction NoHorseFaction = Game.GetFormFromFile(0x00153FBE, "nwsFollowerFramework.esp") as Faction
if (NoHorseFaction != none)
AuriRef.AddToFaction(NoHorseFaction)
endif
endif
if (Game.GetModByName("Convenient Horses.esp") != 255)
Faction CHHorseFaction = Game.GetFormFromFile(0x0006FD0C, "Convenient Horses.esp") as Faction
if (CHHorseFaction != none)
AuriRef.RemoveFromFaction(CHHorseFaction)
endif
endif
RegisterForAnimationEvent(PlayerRef, "MTState")
if ((AuriRef.IsInFaction(CurrentFollowerFaction)) && (PlayerRef.IsOnMount()) && (AuriShouldRideHorse.GetValue() == 0.0))
AuriMountUp()
endif
endfunction
Now she can use Convenient Horses or NFF's horse.
Well... so if that's what you're looking for, give this mod a try.
Thistlefoot is a summonable mount and there are no consequences for "killing" him. He can't follow Auri into interior places if he's temporarily banished.
EDIT: Hmmm, well, something in my game is making it so that Thistlefoot is very hard to "kill", semmingly impossible (pretty sure it is this patch), he may as well be eating the arrows I shoot into him... With the way his head/neck moves and how the arrows in his neck disappear quickly it almost looks like he does eat them LOL! We already knew Thistlefoot is a GOD! XD
EDIT: I did not even fully read this mod's description...