scorrp10 Posted July 10, 2023 Share Posted July 10, 2023 I just wonder if I am missing something obvious here...So I am making a quest where at one stage I can tell an NPC to either wait around or follow me (Not follower-follow, more like freed captive follow)Wait option engages Sandbox package, follow option engages FollowPlayer package. Now I have a bunch of 'Say Once' Hello topics defined and I want NPC to say them if I am around - whether I talk to her or not. If I tell her to wait (Sandbox) and then hang around, she goes about the place, and will occasionally say one of those topics to me - just as I want it. But if I tell her to follow, she just stays silent. If I do talk to her, she starts conversation with one of those Hello topics. But she will not say them to me on her own.I tried setting up those same topics as Idles - same result, she will not say them. I did go over the FollowPlayer package (which actually includes sandbox while waiting) with a fine toothcomb, and made sure all the proper flags are on. No dice. And when I test this, I do load a save I had before this current mod of mine was added. I finally ended up setting a script on her Alias to engage a 'RegisterForSingleUpdate' loop, which keeps firing about every 8-10 seconds while Follow package is active, and has her say a Hello topic. Which does work just like I want it. But I am pretty sure there's gotta be a way to get NPC to say Hello topics to player during a 'Follow' package... Any insight would be welcome, thanks. Link to comment Share on other sites More sharing options...
maxarturo Posted July 10, 2023 Share Posted July 10, 2023 (edited) I've run into this issue while creating a very talkative droid follower, with around 2500 lines to cover almost all possible circumstances. 'Hello topics' fire only when the player approach the npc after he has been away from the npc for some time. If I remember correctly from my testings, it was after 30 seconds and after a distance of 1024 from the npc. What I did, again if I remember correctly since to check it I must install Skyrim and the mod to see what I actually did back then, was to set those dialogue lines as 'IDLE' and add conditions to the desired lines like: IsWalking - IsRunning - GetDisctance > Player - GetGlobal = Follow Package After this she was able to say all the lines I wanted while she was in 'Follow Player' mode. Also do not use the function 'Say()', this is a recipe for CTDs. Edited July 10, 2023 by maxarturo Link to comment Share on other sites More sharing options...
scorrp10 Posted July 10, 2023 Author Share Posted July 10, 2023 'Hello topics' fire only when the player approach the npc after he has been away from the npc for some time. If I remember correctly from my testings, it was after 30 seconds and after a distance of 1024 from the npc.Most certainly NOT what I observe. If she is sandboxing, and is just sitting in a chair and I stand next to her not going anywhere. she says all her Hellos eventually. I already tried putting those lines into Idle category, and conditions are already, literally, that it is that specific Actor, and current quest stage is the one I am on. I don't see how adding more restrictions (walking/running/distance)would be of help. It is like she is not even evaluating her dialogue stack when in Follow package. And what's wrong with .Say()? It is not even an SKSE function, and is used in plenty of vanilla scripts just fine. Link to comment Share on other sites More sharing options...
maxarturo Posted July 10, 2023 Share Posted July 10, 2023 I'm not telling you to add all those conditions yourself, I was just referring to what I did, for example: There are a few lines that the droid will randomly say while following the player and they are running, like "your butt bounces a lot when you run" They were just some examples of the conditions I used for every different circustance while the droid is following. As for the function 'Say()': If the npc is forced to say a line with 'Say()' and at the same time one of its default dialogue line fires, whatever type of dialogue topic it may be, the game will immediately CTD. * By default I mean any random dialogue line your npc could have, either if it's idle or combat, etc... So, unless you are completely sure that when you use 'Say()' none of the npc's dialogue lines could fire, don't use it Link to comment Share on other sites More sharing options...
scorrp10 Posted July 11, 2023 Author Share Posted July 11, 2023 Well, one thing for sure, Say() definitely has no conflict with player-initiated dialogue. Worst thing happens if I talk to her in mid-sentence is she repeats the line from beginning. .. I guess if it causes problems during combat, I will add a not in combat condition... Link to comment Share on other sites More sharing options...
scorrp10 Posted July 30, 2023 Author Share Posted July 30, 2023 An update - got the perfect solution: a quest scene! Simply created a scene where NPC says the topics I need with 5-second pauses in between, and I start the scene once I tell NPC to follow me. Scene is flagged to pause during combat and during player dialogue. Works precisely as I need it. Link to comment Share on other sites More sharing options...
Recommended Posts