Jump to content

3 very silly questions on dialogue and priority


Recommended Posts

There's more than 3 questions but I can't edit the topic title...

 

So during the making of Ivy I ran into many different questions that I am searching for an answer to. Some are very silly, some are very hard to find. Okay here goes:

 

1) If I want to make the priority HIGHER for a quest, does that mean I LOWER the number (e.g. priority 0 is the highest and 100 is the lowest) or is the exact other way around? I get confused because in many systems/programs 0 is the highest prio (e.g. first one on the list).

 

(During my tests, the lower the number the higher the priority seems to be, I'd like confirmation on that!) :smile:

 

2) When I check the 'do all options before repeating' check inside a dialogue GROUP topic:

Does it SKIP any topics that do not have their conditions met before repeating?

 

e.g.:

 

- Line 1 (no conditional)

- Line 2 (no conditional)

- Line 3 (only said after player has reached level (x)

 

I ask this because I've had idle groups like this not repeating... and for the life of me I don't understand why.

 

3) I've added several load screens to my mod, with default priority (e.g. same as many others) yet whenever I load a game, my loadscreens seem to have priority, often showing much more than other load screens. I can add a (lower than random number) condition to them, but other vanilla loadscreens that don't get shown nearly as often do not have this setting.

 

4) How does quest priority, scene priority etc.. work?

 

5) What is the difference between forcing an Actor (by selecting the dropdown) and adding a conditional for 'GetIsID = Actor'

(ANSWER: By using the GetIsID conditional the speaker can be optional in the scene or dialogue topic. If you choose the actor in dropdown it is NOT optional for this dialogue and MUST be spoken by this actor)

 

6) How do I make my custom companion USE JET/CHEMS etc.. with showing animations?

I ask this because I checked the 'idleAnim' for use Jet and it doesn't play. I've tried the 'EquipItem' for Jet and my NPC companion uses it, but does not play the animation (e.g. you hear the 'jet' sound but no anims play).

 

7) What is the Story Manager?

Where can I find it? I need to use it to make Ivy talk to other characters, is that possible without editing or changing the story manager, for maximum mod compatibility?

 

I hope some of these questions can be answered. Should I find the answer myself, then I will update my post with the resolutions. Thanks in advance for any help offered!

Edited by Reginald001
Link to comment
Share on other sites

1.)The lower the number, the higher priority, though 1 may be the actual lowest number, but I'm not sure...

 

3.)Try setting more conditions. Locations, GetStage, etc. to filter them more.

 

4.)Whatever's at the top of the dialouge stack with conditions met fires first.

 

5.)Eventhough you have answered this question, I might make a small suggestion. DON'T USE GETISID for dialogue topics. Use 'GetIsAliasRef'. I've had major issues in the past with GetIsId really screwing things up, but GetIsAliasRef works every single time, and you don't then have to find your Actor in the long list. It will only load Alias' you have defined in the quest.

 

Sorry, I can't answer your other questions. When you say you need Story Manager to make a companion talk to other people, do you just mean idle convo? Because you can make them talk to others just through a new quest and setting a scene just between NPC's with no player interaction.

Edited by akav1r
Link to comment
Share on other sites

1.)The lower the number, the higher priority, though 1 may be the actual lowest number, but I'm not sure...

 

3.)Try setting more conditions. Locations, GetStage, etc. to filter them more.

 

4.)Whatever's at the top of the dialouge stack with conditions met fires first.

 

5.)Eventhough you have answered this question, I might make a small suggestion. DON'T USE GETISID for dialogue topics. Use 'GetIsAliasRef'. I've had major issues in the past with GetIsId really screwing things up, but GetIsAliasRef works every single time, and you don't then have to find your Actor in the long list. It will only load Alias' you have defined in the quest.

 

Sorry, I can't answer your other questions. When you say you need Story Manager to make a companion talk to other people, do you just mean idle convo? Because you can make them talk to others just through a new quest and setting a scene just between NPC's with no player interaction.

1) Thanks for the confirmation. This also helps with answer 4! :smile:

 

3) On 3, what I don't understand is that vanilla load screens don't have these conditionals. Does Fallout somehow keep an internal list of what it displayed to prioritize the random load screens? In fact I've seen the same behavior happen in dialogue. Once I'd added new idles to Ivy she would first repeat those new lines over and over until somehow 'catching up' with the old lines... as if some topics (or loadscreens) get a higher priority based on how often they been said/displayed...

 

(Or is there some kind of list of group somewhere that I'm missing? It would make sense that 10 loose items over 1 group are shown more than that 1 group, in fact it would explain a lot)

 

5) I'll give that a spin. So far though I've had no issues with GetIsID (!)

 

(as for the Story Manager question. I tried to make a quest like Cait's quest, where she chats to other NPC's in the world. I set the quest up as a script event, then I received an error that the quest had not been added to 'The Story Manager'. And I got a bit lost from there. What I want to do is make my companion have random chats with settlers and other benign NPC's, by whatever is the cleanest and most compatible way possible.

Edited by Reginald001
Link to comment
Share on other sites

1) If I want to make the priority HIGHER for a quest, does that mean I LOWER the number (e.g. priority 0 is the highest and 100 is the lowest) or is the exact other way around? I get confused because in many systems/programs 0 is the highest prio (e.g. first one on the list).

 

 

In earlier games 100 was the highest priority. If you sort the vanilla quests in FO4 by priority the ones that are highest (100, 99, etc) will often have "override" in their title which usually requires a higher priority. The lowest priority, 0, in the list is Achievements, which while important, shouldn't take a higher priority over playable quest content.

 

 

2) When I check the 'do all options before repeating' check inside a dialogue GROUP topic:

Does it SKIP any topics that do not have their conditions met before repeating?

 

 

 

I only use that option on generic dialogue with no restrictive conditions. If I have lots of dialogue that has a lot of conditions I don't use it. One way to do that is to group your dialogue and then use that for the most generic dialogue group but not in the groups that contain lots of conditions that restrict when they will play.

 

 

4) How does quest priority, scene priority etc.. work?

 

I'm not sure what info you are looking for here. Can you clarify further?

 

7) What is the Story Manager?

Where can I find it? I need to use it to make Ivy talk to other characters, is that possible without editing or changing the story manager, for maximum mod compatibility?

 

You'll find it in Character > SM Event Node. SM Event Node is the Story Manager.

 

I always add my new nodes at the bottom of the list to avoid any issues.

Link to comment
Share on other sites

 

(as for the Story Manager question. I tried to make a quest like Cait's quest, where she chats to other NPC's in the world. I set the quest up as a script event, then I received an error that the quest had not been added to 'The Story Manager'. And I got a bit lost from there. What I want to do is make my companion have random chats with settlers and other benign NPC's, by whatever is the cleanest and most compatible way possible.

 

If you are planning to use Story Manager, get ready for the ride of a lifetime in learning where there is so little documentation!

 

Basically, if you make a quest a scripted event, you need to create an SM EVENT NODE in the Scripted Events window. And in there, you need to define specific keywords, so the story manager knows when to fire your node/quest. You send those keywords to the story manager via papyrus using SendStoryEvent function.

 

https://www.creationkit.com/fallout4/index.php?title=SendStoryEvent_-_Keyword

 

Story Manager is not for the faint of heart and takes a LOT of trial and error to get working right. If it were location change events, I could help you 100%, but with scripted, I might only have about 50% of the information you'll need to get it working, maybe 80% at the most.

 

If you want, take a look in RSE's SM Event Node for Change Location Event and look for my RSE NEMESIS entries. Perhaps they will shortcut you on how the branches stack and how the conditioning on them work to fire a quest when the right conditions apply.

 

As you can see in the screenshot below, just changing location in the game world is not enough to trigger my Nemesis System. There are conditions that need to be met for the Branch to allow you into the specific nodes.

 

(EDIT: Tried to upload a photo, but apparently, Ive exceeded some invisible allotted disk space for attachments, though I see nowhere to manage this)

 

Just open RSE in the CK and look at SM Event Node Change Location Event (open the branch tree by double clicking on the top item, if the tree is minimized) and you should see Stacked Branch Node: RSE Nemesis Main, this is what I am referencing below...

 

Example, player must be in the commonwealth worldspace, the time must be between 7am and 7pm, the player cannot be in an interior cell, and the new location (being entered) and the old location (being exited) cannot be a settlement location (has the player settlement location keyword). There are other conditions that cannot be seen in the small screen, but you get the point.

 

If those conditions ARE met on location change though, it then allows the SM to go into the individual nodes and look for an appropriate quest node to start. Its really quite simple and intuitive once you get a knack for how it works. Its just scripted events may be trickier due to having to pass in the keywords rather than wait on location change events.

 

Edited by joerqc
Link to comment
Share on other sites

100 = high priority and 0 = low. The priority works so that if you have 2 or more quests running with greetings or other generics dialogues for the same actor , the one with a higher priority will overwrite those with lower priority. The same goes to packages. If you apply 3 different aliases from different quests to the same actor, the one from a higher priority quest will get on the top. Not sure about scene priority, never used it , but it must have the same logic.

 

Do all before repeating is the opposite to random. It should select infos one by one from the top one to the bottom and then repeat all again from the top. I think it should skip those that do not meet conditions but can't remember now.

 

Story Manager allows you to start your quest using different pre-defined events and conditions. if you want to add a new node with your quest, make sure to check "shares event" flag , othewise it can prevent other quests from starting.

Can't tell why you got an error, something was not filled properly and usually the CK gives you some info about the error and what it was caused by. The Script Event trigger means that your quest should be started by some script. You need to make a new keyword to use this option, then you create a new quest node in the Story Manager Script Event tree, add your quest and add this keyword for the condition "GetEventData". You also add it to some script that will trigger the event similar to this :

Event OnActivate(ObjectReference akActionRef)
    StoryEventKeyword.SendStoryEvent(GetCurrentLocation(), self)
EndEvent

It might sound confusing, so it's probably better to check some quests that do the same thing and copy the mechanics. For the Script Event you can check WorkshopSummonedByBell quest + WorkshopBell record. You can also open Script Event node , type "bell" in the search field and find the node to see how it was set.

 

Edit : the SM also allows you to fill some aliases from the event. If you open bell alias in WorkshopSummondedByBell, you can notice that it's set to fill from event data and is defined as "Ref1" and the Location alias also fills from event data "location". The data is sent by the same looking script as I posted above. The script sends the reference of the object and location to the story manager, and it automatically puts them into the proper aliases.

 

Tried to play idle IdleUsePsycho with console commands , it works fine. You only need to hide weapon to play it. it won't play if your weapon is drawn. So you might need to add a check to make sure the weapon is not drawn to play the idle.

Edited by kitcat81
Link to comment
Share on other sites

 

 

(as for the Story Manager question. I tried to make a quest like Cait's quest, where she chats to other NPC's in the world. I set the quest up as a script event, then I received an error that the quest had not been added to 'The Story Manager'. And I got a bit lost from there. What I want to do is make my companion have random chats with settlers and other benign NPC's, by whatever is the cleanest and most compatible way possible.

 

 

 

Story Manager is not for the faint of heart and takes a LOT of trial and error to get working right. If it were location change events, I could help you 100%, but with scripted, I might only have about 50% of the information you'll need to get it working, maybe 80% at the most.

 

 

The SM is great and although the documentation isn't all that good, especially about scripted events, the others aren't so hard to figure out. There are countless examples of how to set them up in the vanilla content. However, like everything else you build in the editors you may have to fiddle with them to get them doing exactly what you want.

 

I used the SM for the convos Heather has with other companions and it works reliably and didn't use a scripted event. The beth devs use the scripted event because of how they control the companion conversations. It doesn't have to be built that way.

 

The one thing you need to know about the ChangeLocation event is that it isn't 100% reliable. You can enter a location and nothing happens. Your quests don't run, etc. This can/will happen under certain situations if you call ChangeLocation() from a script as well. What it means for companion dialogue is that it's best to write generic comments for locations or ones that are very specific to quest stages, etc because if you write a comment that only makes sense when you first enter the location it won't always play when the player first enters and sounds dumb when it plays when the player leaves the location..

Link to comment
Share on other sites

 

 

 

(as for the Story Manager question. I tried to make a quest like Cait's quest, where she chats to other NPC's in the world. I set the quest up as a script event, then I received an error that the quest had not been added to 'The Story Manager'. And I got a bit lost from there. What I want to do is make my companion have random chats with settlers and other benign NPC's, by whatever is the cleanest and most compatible way possible.

 

 

 

Story Manager is not for the faint of heart and takes a LOT of trial and error to get working right. If it were location change events, I could help you 100%, but with scripted, I might only have about 50% of the information you'll need to get it working, maybe 80% at the most.

 

 

The SM is great and although the documentation isn't all that good, especially about scripted events, the others aren't so hard to figure out. There are countless examples of how to set them up in the vanilla content. However, like everything else you build in the editors you may have to fiddle with them to get them doing exactly what you want.

 

I used the SM for the convos Heather has with other companions and it works reliably and didn't use a scripted event. The beth devs use the scripted event because of how they control the companion conversations. It doesn't have to be built that way.

 

The one thing you need to know about the ChangeLocation event is that it isn't 100% reliable. You can enter a location and nothing happens. Your quests don't run, etc. This can/will happen under certain situations if you call ChangeLocation() from a script as well. What it means for companion dialogue is that it's best to write generic comments for locations or ones that are very specific to quest stages, etc because if you write a comment that only makes sense when you first enter the location it won't always play when the player first enters and sounds dumb when it plays when the player leaves the location..

 

 

I can attest to this - specifically with 'Wilderness' cells, as the engine cannot really differentiate between Wilderness (akNewLoc) and Wilderness (akOldLoc) for some strange reason, lol, when you move from one to the other.

 

This is awesome. I finally have enough knowledge to speak (indirectly) with the author of my favorite companion ever. My day is made. My week even... :)

Link to comment
Share on other sites

Thanks for all your info guys. Lots for me to weed through.

 

1) But I am now even more confused on priority.

In my quest, I made 2 scenes, one with prio 50, the other with prio 60. Same conditions, everything the same. But always the one with prio 50 plays, not the one with prio 60. In all my tests it's like the LOWER the number the HIGHER the priority.

 

2) Do all v.s. Random

I don't think the 'do all before repeating' negates the 'random' option. When I click random, it always works randomly (regardless of the do all before repeating option, I don't think 'do all' means 'do all in serial sequence'). But I think that disabling this option will help me in my issue where at one point the dialogue just isn't being repeated. Again, I think this will come down to testing.

 

As for change location, yeah I'm aware... it's finicky at best. I don't use that event for anything other than some deferred checking.

 

4) I guess my question 4 is the same as 1.

I'm unclear on priority and I'm getting a lot of mixed info on it. I'm going to do my own experimentation with test quests. I have a distinct feeling that the LOWER the number, the HIGHER the priority is, not the other way around.

 

5) I'll look into the Story Manager but it seems prone to compatibility issues (Even though just adding things at the bottom should theoretically stack with other mods)

Edited by Reginald001
Link to comment
Share on other sites

I can't tell anything about scenes. Not sure that priority works for them or how to make it work . But for quets those with a higher priority overwrite those with low. You can compare vanilla Followers quest that has 90 priority , WorkshopParent quest that has 41 priority and WorkshopSummonedByBell with 43 priority. The SummonedByBell would not work with a lower priority than WorkshopParent. WorkshopParent tells settlers to go work, sleep or relax. And SummonedByBell tells them to go and stay near the bell.

Just note, that it only overwrites the same type of things they add. If a quest with a lower (i.e. 30) priority has generic greeting infos for some actors and another quest with higher priority(i.e. 40) has idle infos for the same actors, nothing will be overriden . If they both have greetings infos with the same conditions or no conditions, the one with 40 priority will win. If they both have greeting infos but with different conditions that exclude each other , both will work, but in different situations that are defined by the conditions.

 

Well, i guess I used wrong word. If you set it random it works randomly. If you only click do all before repeating, they work one by one from the top to the bottom. If you click both they work randomly but in theory should not repeat until each info in the group has fired.

 

You can read about Story Manager in the Creation Kit wiki (SM Event Node article) . Following the instructions helps to avoid any incompatibility.

Edited by kitcat81
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...