Jump to content

[LE] Advanced Dialogue


Recommended Posts

So I'm back to working on some unfinished mods of mine, but I have two possibly advanced questions regarding dialogue that I think I need to get help with first.

 

 

Shared Dialogue Topic(s)

First question is whether it's possible for dialogue from different quests to share the same initial topic? Basically what I want to do is add a topic to innkeepers such as "I'm looking for work" which several different quests can then add their own sub-topics to. Normally I'd do this with a quest with all the dialogue under it, but these quests really ought to be in their own plugins which makes this more complicated.

 

So is there more a modular way that I can do this? I tried just having two different quests with the same opening topic, but this gave me two different identical topics when speaking to an innkeeper. I suppose it's possible I did something wrong, so first up, should that have worked? If not, is there a neat way to do this such that multiple plugins can have their options grouped together neatly under one topic, or are there some clever alternatives? I'm hoping to avoid having to maintain an "index" quest supporting every possible mod under it if I can, as I'd love for others to be able to add to it as well (plus make it as easy for me to do so as possible).

 

 

Reusing Dialogue Options

Next up is, can I reuse dialogue options under multiple headings without having to duplicate them? Basically in one dialogue tree I'm going to have a bunch of different options, most of which eventually lead to very similar bribe/persuade/intimidate choices (with similar outcomes). What I'd like to do is maintain just one set of bribe/persuade/intimidate options and somehow reuse them, for example by setting a variable before displaying them, so that I know what on success. To complicate matters I may also need to set different levels of speech check, though I can live with maintaining duplicates for easy/medium/hard variants so long as I don't have to maintain copies for every possible path.

 

Is there a clever way to reuse dialogue for multiple branches? I was thinking perhaps I might have to use mini-quests for this purpose, e.g- player selects a branch, setting some variables and triggering a quest with the bribe/persuade/intimidate options, before triggering some result. Would it need to be that complicated or is there a simpler method?

 

 

Thanks in advance for any help!

Edited by Haravikk
Link to comment
Share on other sites

If I get that right, you have a quest where the headline is spoken. And each possible subtopic should be in an own quest? It is possible to link the topics between quests together, if you are in the dialogue window you have on the right side the option to set links to every quest. I tried that once. It has a bad side effect: Each dialogue tree from other quests will be shown in the dialogue view of your head quest and may cause chaos. It's very difficult to manage. But it works. Save your work before you try.

The other option is to start the dialogue in other quests through a script that has the conditions set to decide which quest dialogue should be spoken. I'm no scripter so I can't help you with such a script.

 

You can reuse dialogue either with a queststage or with setting a global variable, that is checked by a script.

Link to comment
Share on other sites

If I get that right, you have a quest where the headline is spoken. And each possible subtopic should be in an own quest? It is possible to link the topics between quests together, if you are in the dialogue window you have on the right side the option to set links to every quest. I tried that once. It has a bad side effect: Each dialogue tree from other quests will be shown in the dialogue view of your head quest and may cause chaos. It's very difficult to manage. But it works. Save your work before you try.

 

 

Hmm, so if I understand the side-effect right, would it be easier if my head quest was nothing but a placeholder for the head topic? Thanks for the tip though, I've been completely ignoring that sidebar the entire time as none of the tutorials I've found ever mention it!

 

You can reuse dialogue either with a queststage or with setting a global variable, that is checked by a script.

 

 

So if I were to do this via quest stages how would that look? Would it be something like:

 

1. All my basic branching dialogue is in quest stage 1, excluding bribe/persuade/intimidate, instead each branch eventually sets some variables then triggers a later stage.

2. Later quest stage has bribe/persuade/intimidate as head topics, and uses variables to trigger some action (or fail and go back).

 

Something like that? When triggering dialogue with quest stages like that is it still seamless or will I have to dump the player back out to the head topics, do I need to use forced dialogue? I guess I'm a bit unclear on how you continue to give the illusion of drilling down into the dialogue tree when splitting it between stages. Are there are any guides anywhere that show this, or quests that do this that I could refer to?

 

 

Sorry if any of these questions are a bit basic; most of my modding so far has been confined to placing objects or tweaking values, the only dialogue I've done has been extremely basic, and I've found available guides don't into much more detail than that, though I may have missed some. Normally I'd try to just do everything with trial and error but it takes so long to reload Skyrim and the creation kit that it wastes a lot of time just to see what changing a value did!

 

Thanks again!

Link to comment
Share on other sites

I guess you should try a simpler way. I was a little bit confused because you mentioned that the quests should be in different plugins. A plugin is an esp file, but I think you mean you don't want to have all dialogue in one quest.

It's easier to do that. You can make your head player dialogue in a Top-Level branch. There you put in all dialogue you want to have at the first tier. Then make a new branch, a normal branch should do and put in that dialogue for the second tier. Repeat this for every level of dialogue you want to have. Set for each spoken line your conditions. You can combine them in many ways to achieve the result you want to have. If that's not enough, create global variables for certain scenarios and set up a script attached to the spoken line, that leads to that certain dialogue you want to trigger. In the script set the value of the global variable (normally start value is 0, set it to one, or higher, if you use the same variable for different scenarios.) I.e. if player has <=20 speech points set it to one and trigger dialogue that let the player know he has failed. If player has >=50 speech points set variable to two and trigger other dialogue that fits the skill. You can add to the dialogue that should fire the condition Get Global Value and choose your global variable and set it =0, =1 or =2 or whatever.

Link the head player dialogue to the other dialogue topics inside the other branches. To trigger the main dialogue again set the global variable back to 0 i.e.

I hope I have understood you right and this will help you.

Link to comment
Share on other sites

  • 3 weeks later...

I guess you should try a simpler way. I was a little bit confused because you mentioned that the quests should be in different plugins. A plugin is an esp file, but I think you mean you don't want to have all dialogue in one quest.

 

Actually you were right the first time; the quests will indeed be in their own plugins.

 

So I'll have one plugin that contains a quest with the top topic ("I'm looking for work") with some basic starting options.

I'll then have another plugin that contains additional jobs I'd like to add under the same topic.

 

 

On this note I'm bit confused myself; in your first reply you mention using the section to the right of the dialogue window to link my topics to the main quest; I assume you mean the Link to section, but this doesn't appear to be what I need, as it would only allow me to move on to topics from the first plugin, what I really want to do is inside the second plugin, add new topics to the first plugin's top level topic.

 

Put it another way, let's my plugins are "Work Hard.esp" (master plugin) and "Hunt Bandits.esp" (add-on), my combined dialogue tree might look something like:

 

  • "I'm looking for work" [Work Hard.esp]
    • "I'd like to serve drinks" [Work Hard.esp]
    • "I'd like to hunt bandits" [Hunt Badits.esp]

 

i.e- I need to somehow add my new topics into the existing quest without having to overwrite it. The only way I can currently see would require me to add Hunt Bandits.esp as a dependency of Work Hard.esp so that the bandit hunting topic can be added to the top topic, but that's the opposite way around to what I want, as I'd end up with the Work Hard.esp dependent upon every possible add-on.

Link to comment
Share on other sites

I can't imagine why you doing this in more than one plugin; but if you have more than two plugins the master relationship might get quite tricky.

Link to comment
Share on other sites

It's because at least one of the plugins is going to be quite large and complex, but not necessary to the main plugin, so I want to provide it as an add-on without cluttering dialogue with a bunch of similar top-level topics. My hope was also to leave things open so if others want to they could also provide their own add-ons under the same top level topic.

 

But it's looking to me like this simply isn't possible at all, and that I will have to leave some kind of placeholder quests in the main plugin, which my add-ons can then replace to provide their full expanded dialogue. If there's another to do it though then I'd still love to know!

Link to comment
Share on other sites

Well that's a perfectly good reason for having and esp and a master. Bit different from trying to split connected dialogue across quests in different plugin's to save duplicate typing in a few top-level topics, probably more trouble and complexity than its worth. Particularly with a very sensitive CK that likes going tilt if it gets confused!

 

Place holder quests sounds overly complex as well but difficult to comment without the overall context of what you are doing. The only 'rule' would be try to keep your quest structure (and anything else for that matter) as simple as you can to get the job done.

Link to comment
Share on other sites

Naturally, the dependency would be the other way round. You can do it like this:

 

[Work Hard.esp]

 

"I'm looking for work"

  • "I'd like to serve drinks"
  • "Placeholder 1 to be replaced in a mod" condition TRUEGlobal = 0
  • "Placeholder 2 to be replaced in a mod" condition TRUEGlobal = 0
  • "Placeholder 3 to be replaced in a mod" condition TRUEGlobal = 0
  • ...

[Hunt Bandits.esp] - masters: ..., Work Hard.esp

  • [overrides Placeholder 1 from Work Hard.esp] "I'd like to hunt bandits"

 

If you don't want to be limited by the number of placeholders, you can redesign your dialogue so that you won't use LinkTo - all options will be toplevel branches, and all topic infos have precisely the right conditions to be available exactly when they should be. If you do that, as a bonus you won't have to add a master dependency.

Link to comment
Share on other sites

 

If you don't want to be limited by the number of placeholders, you can redesign your dialogue so that you won't use LinkTo - all options will be toplevel branches, and all topic infos have precisely the right conditions to be available exactly when they should be. If you do that, as a bonus you won't have to add a master dependency.

 

 

I'm trying to avoid using top-level topics to prevent clutter, but maybe there's some alternative; could I for example use top-level topics in such a way that they appear and function to the player like sub-topics?

 

What I'm thinking is, all of my "sub-topics" would become top-level, but rely on a condition that's initially false. Then, when the player selects "I'm looking for work", the condition is set to true, causing the top-level topics to appear. Each "sub-topic" would then reset the condition when selected. The questions I have then are:

  1. Can I hide all other top-level topics?
  2. Can I detect when the player exits dialogue, so I can reset the condition then as well?
Edited by Haravikk
Link to comment
Share on other sites

  • Recently Browsing   0 members

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