Comprehensive Dialogue for Morrowind - The "How-To, - from the old thread
Emma
Sep 8 2004, 08:01 AM
Post #1


Disciple


Joined: 8-October 02
From: Sweden




I digged up the old dialog-how-to-thread from the old forum and have tried to add valuable information from it here. I have added the name of the original poster at the start of each textblock. Sometimes, the poster is only referred to as "Archived User Content", and then I have written "undefined" instead, but I do suspect that many helpful "undefined" postings come from a certain Srikandi :

Klinn :
Tip 1) My new topics disappear! Go to the Filter box at the bottom of the list of topics. Clear the filter by choosing the top empty line in the drop-down list. Recommend using the button on main toolbar to bring up the dialogue editor rather than from the NPC's properties.

Tip 2) My NPC keeps asking me a question over and over! Be sure to put the replies above the original question. Sounds backwards, but it works.

Tip 3) My NPC talks about everything! To keep an NPC from having the standard topics about Morrowind lore, attach the script "NoLore" to him or her. If you already have a script on the NPC, add the declaration Short NoLore near the top.

Tip 4) My NPC still has extra topics! Some other general topics may appear depending on an NPC's faction or class. For example, members of the Imperial Legion will always automatically have topics about that faction, the Empire, and more.

Tip 5) How do I add topics for just my NPC? After creating the topic and it's Info/Responses, in the Speaker Conditions area, set the ID to your NPC.

Tip 6) I added topics but my NPC doesn't have them! Two possibilities: the NPC must have already heard (read) that topic word or phrase before he can ask about it. Usually this is done by having the an NPC's greeting include the topic. Second posibility: there may be Speaker Conditions that prevent the topic from appearing. Even if it appears when you filter the dialogue for an NPC, some topics depend on the player having reached a certain point in the game, having a specific journal entry, and so on.

Tip 7) How do I change the order of my Responses? Use the left-arrow and right-arrow keys to move an Info/Response up or down in the list.

Scott Fisher created a tutorial on NPCs, quests, and dialogue that may help out. GhanBuriGhan's excellent "Morrowind Scripting for Dummies 5.0" also has a section on dialogue.

-------------------------------------------------------------------

Emma :
Dialog for creatures.

Any creature can have its specific dialog. You make this exactly as you make the dialog for an npc, with one difference.
You have to have the dialog UNFILTERED when making the dialog (i.e. the slot below the topics must be empty). Once you have created the dialog lines, you can filter them for your creature.

---------------------------------------------------------------------

Emma
Useful commands for the resultbox:

Player->AddItem "my item" 1 (a specific item is added to players inventory)

Player->RemoveItem "my item" 1 (a specific item is removed from players inventory)

ModDisposition 5 (npc will like player 5 points better)

cast "my_new_spell" player (the npc will cast a certain spell)

AiFollow Player 0 0 0 0 0 (npc will start follow player)

AiWander 0 0 0 0 0 0 0 0 0 0 0 0 (npc will quit following the player)

SetFight 100 (npc will start attacking the player)

StartCombat->player (npc will start attacking the player)

StopCombat (yep, you've guessed it. Stop combat)

StartScript "my_global_script" (start a certain script)

Set companion to 1 (if you have added a short companion command to your script, this will make the npc share with you)

SetHealth 100 (will set the npc's health to 100 - same command can be used for setting other skills and attributes as well, i.e. SetMagicka, SetLongBlade etc.)

disable (will make the npc instantly disappear)

goodbye (will force the player to end the conversation. Can be useful for in stance in order to avoid further smalltalk with a npc that has already been disabled )

-------------------------------------------------------------------------

Argent :
Things I've found;

1. (Pending Revision) MessageBoxes in results fields makes MW CTD.

2. Clicking 'new' over an existing dialogue entry bumps it down a slot so you can insert entries above existing ones.

3. Dialogue entries have a character limit of about ~530. Use Choice "Continue" to spread a single speech over more than one entry.

4. Message boxes from scripts will output to the dialogue screen if open.

5. Can't use if/else statements in results field. Only single line commands. Use the choice function if a decision needs to be made during dialogue.

6. Using the Latest Rumours is a good alternative to Greetings for introducing a new topic.

--------------------------------------------------------------------------

Emma/Argent :
Emma: I'm constantly using messagebox in the result-box, and I have never ever experienced any CTD's. Just wanted to mention it.
Argent:I think it may have been message boxes with buttons. Can't remember exactly what it was though, I'll recheck.
Emma: Well, I wouldn't know about that. I have simply added:
Messagebox "Blablablabla" directly in the resultbox. And that works fine.

--------------------------------------------------------------------------

Emma :
As for the resultbox:
You can also script OTHER npc's from the resultbox.

Let's say that you have npc1 and npc2 and you are writing the dialog for npc 1.
You can make npc2 do things by writing for instance:

"npc2"->ModDisposition 10
"npc2"->SetFight 10

and so on. So, while writing the dialog for npc1, you can actually "manipulate" every npc in the Morrowind world.

Here's a link to a couple of good tutorials on npc creation: http://66.106.110.151/Morrowind/Thanos_Tower/tutorials.html

--------------------------------------------------------------------------

Argent:
Here's some more;

The forcegreeting function will initiate dialogue regardless of the where the NPC is. The NPC does not even need to be in the same cell as the player. Best to use with a 'getPCCell' or GetDistance function.

To avoid Journal entries being mistaken for dialogue topics, use the two letter prefix convention that the developers used.

Dialogue Functions

Talked To PC: Is zero if the player has talked to NPC, 1 if not. Useful for having a unique greeting for the first greeting.

PC Clothing Modifier: Sum of value of all armor and clothing worn by the player and affects the dispostion of the NPC.

This from SFD5


Rank Requirement (dialogue)
This checks to see if you "qualify" for the next rank in the speaker's faction.
This returns 0 if you do not have enough Faction Reputation and do not meet the skill requirements.
This returns 1 if you meet the skill requirements, but do not have the Faction Reputation.
This returns 2 if you have the Faction Reputation, but do not meet the skill requirements.
This returns 3 if you qualify.

Friend Hit (dialogue)
Used in dialogue for when you attack a member of your group (like a follower)
The return values are:
0 = never been hit
1 = hit by pc 1st time
2 = hit by pc 2nd time
3 = hit by pc 3rd time
4 = hit by pc 4th time and the npc/creature is no in combat with the pc

------------------------------------------------------------------------

Emma:
If you want more than one npc to have the same dialog line:
right-click on the dialog line. Choose copy.
Filter the copy for the next npc that should have that topic line.

-------------------------------------------------------------------------

Emma:
If a newer plugin has the same new topics as your plugin, the newer plugin will "overwrite" your plugin, and the topic in your plugin will never be highlighted and never show up ingame.

In order to avoid this, you should always add an AddTopic command when using a new topic for the first time.

I.e. say that you are going to use the topic "together".

Dialog line: "We really should stick together"

Resultbox: AddTopic "together"

Now, your new topic will always show up. If overwritten by another, newer plugin, it will not be highlighted anymore, but it will still show up among the topics.
Your plugin will be playable but less intiutive.

-------------------------------------------------------------------------

Emma:
A VERY good button to use before releasing your mod is the "Error check results", which will tell you if there is anything wrong with your dialog (like typos in result-box commands).

Please note: SAVE your plugin before hitting the "Error check results"-button. If you find any errors, EXIT TES. Reload your plugin and make the changes.

The reason why you should exit TES is that if you save game after finding errors, the errors will be listed in the details list, causing your plugin to look "dirty".

One other thing: If you are using Tribunal, you will ALWAYS have error messages when running "Error check results". This is caused by errors in Tribunal itself, in the topics "fight your champion", "selling off" and "women".

--------------------------------------------------------------------------

Emma:
Two important DON'Ts:

1. NEVER EVER DELETE A TOPIC that belongs to the original Morrowind/Tribunal game. This is very hard to repair and will cause severe errors in peoples save games.

2. If you are using GREETINGS SECTION 1 - DON'T put your greetings at the very top of it. The top-greeting belongs to a certain quest, and must be left at the very top in order to always show up. You can put your greetings below it instead.

-------------------------------------------------------------------------

Emma:
Greetings sections:

This is how Bethesda has used them:

Greetings 0: Npc is alarmed
Greetings 1: Quests (actually quests where it doesn't matter if the Player is a vampire, is nude, is a criminal, is diseased.
Greetings 2: Player is a vampire/player is nude
Greetings 3: Traitors to Morag Tong
Greetings 4: Crime and disease
Greetings 5: Quests
Greetings 6: Factions
Greetings 7: Classes, Endgame, Slaves
Greetings 8: Clothes (general greetings concerning how player is dressed)
Greetings 9: Locations.

Bethesda points out that this is just a gguide to finding a particular Greetings in Morrowind, and that you are free to use the greetings sections however your want.
Bear in mind, though, that greetings in section 8 or 9 will NOT show up if the player i Nerevarine (instead you will get the standard "Eex..cuse me but are you the one they call Nerevarine...." stuff)

---------------------------------------------------------------------------

GarryB:
Checking spelling and grammar can be streamlined by using the export and import functions in TECS.

Export "new" dialogue to a file, use your favorite editor for corrections and import the corrected dialogue .

Much easier on the brain than jumping around in a myriad of topics, greetings and journal entries.

---------------------------------------------------------------------------

The Other Felix:
The help file's description of the PCRank condition is incorrect. This seems to be more accurate: This will only give dialogue if the player is of a certain rank or higher. If PCFaction is left empty, the player must be of this rank or higher in the speaker's faction.
-
Adding new dialogue entries at the very end of a topic/section whenever possible (so that there is no original entry following) reduces the potential for conflict with other plugins (and future expansions/non-parent master files).

----------------------------------------------------------------------------

Emma:
Trouble-shooting #1:

When you are using your new plugin, not one single person in Morrowind want to talk to you. When you walk up to them and hit the space tab nothing happens:

ANSWER: You have probably accidentally added an EMPTY, unfiltered slot at the top of one of the greetings sections. Remove that slot, and they will start talking to you again.

-----------------------------------------------------------------------------

GarryB:
Here's another interesting thing to include in your dialogue

The Race of the NPC can be used in determining which entry in a particular topic is used to add a little variety to responses on a given topic.

for the topic : Imperial Plumbers
you can have Argonians respond with " Never heard of them"
Altmer respond with " Decadent scoundrels"
Imperials might say " A shining example of our empire"

...and so on.

Probably pretty obvious, but I thought I'd throw it out.

----------------------------------------------------------------------------

Rabbidog??
Emma,
I could use a little help with some of my NPC's dialogue. I guess my main problem is when I have a greeting and corresponding topics, how do I get my NPC's to just say the greetings and topics once. I tried to use "Talked to PC" function but I can't seem to get it right. They either let you keep going through the topic over and over or it doesn't allow all of the topic thread to be accessed. I guess things would be easier if I had decent scripting skills (which I don't). Anyhoo, if you can help me that would be great, however if your too busy then don't worry about it and thanks anyways.

----------------------------------------------------------------------------
-
Emma:
JOURNAL ENTRIES

A very good way to determine what a npc is going to talk about it using Journal entries.

Say that you meet a npc that has got the blight disease and want a cure for it.
First time you meet him he'll say:
"Hello stranger, can you please get me a potion of cure blight disease".

In the resultbox you add:
Journal MY_Journal 10 (the index no. 10 could be ANY number, it's up to you to decide)

Go to the journal section. Create a new journal (it's just like creating a new topic). Write a journal line. Go to the index box (just above the Func/variables section, where you "normally" have the disposition box). Write 10.

Now, back to the greetings section. Next time you meet the npc, you want him to say something different:
"Hey, friend, have you got any potion for me yet?"

In order to get this greeting instead of the previous one, this greeting must be above the previous one, and in the func/variable section you choose: Journal / MY_Journal / >= / 10.

As you can see, the conditions for this greeting will only be fulfilled if you have talked to the npc once, and thereby activated the journal.
(It was pure laziness that made me put the journal entries in the resultbox for the greeting in this example - probably, you would have wanted to create a topic for the potion quest, and then you would probably have preferred to add the journal entry to the topic instead, but you would still have been able to use it as a filter condition for your next greeting).

-----------------------------------------------------------------------

Rabbidog??
Emma, Thank you so very much. I tried using jounal entries before to do what I needed but couldn't get it to work, you however just showed me what I was doing wrong. I was not putting the greetings in the right order therefore I would not get the right responses.

For those that read this I would like to add one thing, You must add one line to the top of your Jounal entry that acts as the journal entry title (just a line with no other functions or variables). Otherwise you get a nasty little dialogue loop and a "Compile and Run" error and then a CTD.

--------------------------------------------------------------------------


Emma:
As for your last comment, I'm not with you on this, and I don't really understand what you mean. I have never ever added any extra journal line at the top, and I have never ever had any such compile and run errors and CTDs????? Haven't seen any such extra lines in the original journals either??

How are you naming you journals? A good rule to follow is to do like Bethesda, then the journal names should look like MY_Journal.

-----------------------------------------------------------------------------

rabbidog?? :
Emma,
I started with one of my NPC's that had a simple dialogue. I created the journal entry

"PI_Telly"

and them added a line to the info section..

"I met the Shipmaster Telly"

I then set the Index to 10. I then Had his greeting "Hello %PCName would you like to go to [name of location]" whereas the name of the location was the name of my Island. I then added a topic [name of location] where he said a line of info about the island. In the topic result box I put "Journal PI_Telly 10". I then went back to greetings and added another greeting above the original that went "So you want yo leave or not?" Set the ID for my NPC, and set the Funtion/Variable to "Journal / PI_Telly / >= /10". At this point I should have ran the "error check results" function but I wasn't thinking this time and didn't. I went into the game loaded, teleported to the location of the shipmaster and initiated conversation, at which point it started a dialogue loop on "so you want to leave or not" and then a "Compile and Run " error popped up and the Bam! CTD. I went back into TESCS and started looking at all the Journal entries for the game (I am looking at them now) and the majority of them are structured like this...

"[Journal entry Title]"
"[Jounal entry] / [Disp/Index]

So I went back into my Journal entry and changed it so it looked like this....

My Island
"I met the Shipmaster Telly." / [Disp/Index]

After changing this and error checking the result with no errors I went back into the game and the dialogue ran fine. There are some that don't have a title but it appears that the majority do. Just to be safe I did all the journal entries for my NPC's (9 so far) the same way and haven't had any problems. At this point I couldn't tell you if that was exactly the cause of my problem, however that is the only thing I changed. I guess this is one for the developers, if they are reading this maybe they can shed some light.

------------------------------------------------------------------------

???
Emma,
While your online maybe you can help me with one more thing. Is there any way to force a greeting from the dialogue menu. I have an NPC that I want to initiate conversation as soon as I get close to him. Thanks.

----------------------------------------------------------------------------

Emma:
I'm not sure about this - as you probably want to relate the forced greeting to something else (probably journal entry + GetDistance), I would assume it is a better option to add a script. There are plenty of similar scripts attached to npc's in the original Morrowind world, for instance there is an invisible guy at St Olms (St Delyn's??) Plaza that has a forced greeting attached to him. Same goes for a married couple outside Ald'ruhn (the woman is slightly north-west from the silt strider, and she will give you the name of her husband). If you have got my Witchgirl Adventure mod, you can check Thingalinguina's script, there's a forced greeting in it.

Perhaps someone else around knows if it works properly to add a forced greeting to the dialog without any scripting?

Your comments on the journal were interesting - I will study it closer, I'm sure you are right and that this is something I should consider and learn more about. (but I still stubbornly claim that for me it works allright writing journals without adding any "head-lines").

-----------------------------------------------------------------------------

Argent
Try this script attached to the NPC you want the force greeting on;

Begin greeting
short hasTalked

if ( hasTalked > 0 )
...if (GetDistance "Player" < 300 )
......ForceGreeting
......set hasTalked to 1
...endIf
endIf

End

An alternative that I haven't tried would be to place the ForceGreeting function in the results box of the NPCs voice response. That way whenever the NPC gives a voice greeting it will forcegreeting. Only problem with this is that it would be dependant on a user's AI distance setting. IMO using a script is a much surer approach.

Hope this helps.

----------------------------------------------------------------------------

Emma:
It might be a good idea to put forced greetings in greetings section 0, because if in other sections, the game will check for other things - as illness, vampirism, nudity - before delivering the correct forced greeting.

----------------------------------------------------------------------------

Argent:
Using the arrow keys left/right moves your info/response up or down the list (this was stated in Klinns post).
However, if you do this, every other response that it -bumps- is marked as changed. This is not good if you're adding a single response to existing dialogue. You end up with a very dirty mod.
Cleaning dialogue with TESAME can be quite touchy too. Quite often the cleaned esp will give dialogue errors upon loading.

I did this with a single added entry to the voice responses. Moved it up about 10 places, resulting in ten * ugly marks next to all the standard responses. Cleaned them all with TESAME, then get the 'String is not the same' or some such error. Had to throw that mod out and start again.

----------------------------------------------------------------------------

Emma:
You don't have to use TESAME to clean up the dialog.
Just go to the detail's list in TES. Hit the delete-button at every dialog entry in the list that don't belong to your plugin (No, no worries, you are not deleting the dialog line, you are just deleting the * thing).
I usually make a safety copy of my plugin before doing this.

Afterwards, you might still get the message about "String has been altered". No worries. Go to the topic where the string has been altered. Check the dialog lines above and below your dialog entries. Those two dialog lines SHOULD have a * (to mark that they are next to the new entries). You will probably find that they haven't.
In order to add the * to them, just move the first and last dialoglines belonging to your plugin upwards and downwards once, using the arrow tabs. Now, the right dialog lines should have a * in front of them.
Reload your plugin. The error message is gone.
Sorry Argent, english is not my first language and I can see that my explanation doesn't sound very good... Hope you can still understand it. If not, tell me what is not clear and I try and rewrite it...
Emma

Hrrm, of course I mean that you should delete the dialog line IN THE DETAILS LIST (DON'T delete in among the topics)...

If you are cleaning *-marks in the voices section, you have to be a bit careful, though, because the voices section often starts with an EMPTY slot (for NoHello, for instance) and marking empty slots with a delete-flag makes them disappear completely. So, make a safety copy of your plugin just to be on the safe side.

---------------------------------------------------------------------------

ed_conn:
I know this may be redundant, but I am really trying to keep my mod clean. I created a special greeting for one new NPC. Everything worked fine, except when I checked the line above and below the new were listed as altered. (*).

Do I understand this correctly? When dialog line have been entered, the line above and below the new entry should have a "*" next to them. What is the alteration? Is it so it can keep its place in line? When I deleted the lines in TESAME, I had errors.

----------------------------------------------------------------------------

Argent
Here's some technical details for you; the dialogue entries are stored as a linked list (I think this is correct). A linked list is essentially an 'object' that contains the string data, a pointer to the previous entry and a pointer to the next entry. So when you 'splice' an entry in between two already existing entries, the previous and next entry have to update their pointers to the new entry. The object data has now changed (even though you didn't change the text string in that object), so you get the altered marker *. Having the error "previous text string is different from..." does not not seem to affect the game, but it does get annoying having to click through them all the time.

EDIT: I think I set a record for the most number of uses of the word 'entry' in a sentence.

------------------------------------------------------------------------

Nog Robin:
Ok - another question.
Can you get variables (other than player name, rank etc) to appear in a dialogue? It's easy with message boxes, but my dialogues don't seem to work. Do they have to be global variables, or will local variables work? How do you note them as variables in the dialogue (% or ^ or something else)?

Ok - I'll answer my own question
Yes - you can use variables in dialogue. But only global variables, not local variables. You need to precede the variable name with %. Works fine

-------------------------------------------------------------------

_Strider_
How do you make one NPC attack another using the dialogue result box?!

---------------------------------------------------------------------

Emma:
Add in the resultbox:

npc1->StartCombat "npc2"

You might also want to add:

npc2->StartCombat "npc1"

If one of them is following (i.e. in AiFollow mode) you might want to put him in wander mode before attacking, because if not the guards will probably accuse the Player for this crime.

-----------------------------------------------------------------------

Emma:
This is probably already said somewhere in this thread, but it's deserved to be repeated again and again:

WARNING!!!!!
Never ever delete a topic that belongs to the original game!!!! You will create LOADS of errors for everyone using your plugin!!!
The existing topics are supposed to be there. If you only want your npc to talk about specific things, add the NoLore Script to him (it already exists, just look among the scripts)

---------------------------------------------------------------------------

Emma:
Specify a default response? You mean like adding one of the original Bethesda dialog lines for your own npc during certain circumstances? Yes, just copy that dialog line and filter it for your npc.
Timeout in dialog entries? Yes, you can use Journal entries to determine under which circumstances your npc should have this dialog line.
For instance, filter like this in the func/variable section:

Journal / my_journal / >= / 25
Journal / my_journal / < / 50

Now, this dialog line will only show up if the journal entries are anything between 25 and 49.

------------------------------------------------------------------------

Nautilus:
An easy way when adding topics is, when you create a new topic, leave the topics name blank. Instead go and make your responses then assign topic to an NPC or Creature's ID. Then go and name the topic. This way you can avoid searching for the topic.

-----------------------------------------------------------------------

Lord ZlennG
i made a choice function for a npc, first i made a topic een there i put these lines in the result box, choice "yes, tell me wats te problem." 1 "No, i don't want to know about it" 2 , then i made the choices with the function choice = 1 and choice = 2. Now i have this problem that when i chouce that topic from the npç that the whole game freezes. And this happens every time i chouce that topic, what am i doing wrong?

-----------------------------------------------------------------------

Emma:
Have you tried to run an "error check results" on your dialog? It's a box for that to the right in the dialog window. An error that causes the game to freeze really should show up when running this, and then you will also get information concerning what kind of error we are talking about.

Please note: SAVE the plugin before running the "error check results". If you get any errors, LEAVE the plugin WITHOUT re-saving. Then, open up the plugin again, and do the corrections (according to Bethesda's recommendations).

Another thing: If you are using Tribunal, you WILL get error messages in the following topics: "fight my champion" "selling off" and "women". This is not your fault - it's caused by bugs in Tribunal. But because of this, you will always have error messages and therefore you will always have to leave the plugin after running the error check.

---------------------------------------------------------------------------

undefined
Emma Said:-

1. NEVER EVER DELETE A TOPIC that belongs to the original Morrowind/Tribunal game. This is very hard to repair and will cause severe errors in peoples save games.

What happens if you`ve already deleted some before finding this out ?
Or How do I Put it right ?

----------------------------------------------------------------------

Emma:
Try the TES details list, look for the dialog entrys that have been removed. Mark each one of them with "deleted" (which will bring up a warning message that you will say yes to). What you are doing now is NOT deleting the dialog line, you are deleting the deleting of that dialog line.
This "should" work, but will possibly mean quite a lot of work to do, and I definitely recommend that you make a safety copy of your plugin before starting out.

--------------------------------------------------------------------------

undefined- DinkumThinkum??
In case you've never used the 'details' to clean a mod before, here's a step-by-step:


NOTE: As Emma said: it's a very good idea to make a backup copy of the .esp file before you try cleaning it, especially if you haven't done this before.


1. Go to the Data Files screen in the Construction Set. Select the required master files and the .esp file you want to clean. Make the .esp file active. Just like you're going to load the .esp for editing, but don't hit the 'OK' button yet.

2. Highlight the .esp file and click the 'Details' button.

3. Select (highlight) the entries you want to remove, and hit the 'Delete' key for each one. Answer yes to the prompt each time. You'll now see an 'I' in the 'Ignored' field for each entry.

4. Once you've marked each entry you want to delete, hit the 'OK' button to load the .esp file.

Edit: close the 'Details' window before you hit the 'OK" button. (I know it's obvious, but I hate leaving out steps. )

5. _Immediately_ save the .esp file. This will rewrite the file, minus all the entries you marked for deletion.

6. To double-check: go back to the Data Files screen again and check the details listing for the .esp file. The entries you marked in step 3 should be gone.

7. Your .esp file should now be clean, and ready for you to redo/repair the dialogue.

The above cleaning process works for most types of entries in .esp files. It removes the changed data stored in the .esp file, so the game will go back to using the original data from the .esm files.

I've been using the above to clean up mistakes in my mods for quite a while, but I'm still pretty new at dialogue; so I can't help much with the details of that yet.

DinkumThinkum?? (only noted as "undefined" in thread, but I think I can recall this....)
I'm starting to get more involved with dialogue. I've been reading a lot, but I have a few questions about avoiding conflicts with other mods and with existing game content.

The tips in this thread have been extremely helpful. Many thanks to all the contributers!


Quote:
--------------------------------------------------------------------------------

If a newer plugin has the same new topics as your plugin, the newer plugin will "overwrite" your plugin, and the topic in your plugin will never be highlighted and never show up ingame.
<br>
<br>In order to avoid this, you should always add an AddTopic command when using a new topic for the first time.
<br>
<br>I.e. say that you are going to use the topic "together".
<br>
<br>Dialog line: "We really should stick together"
<br>
<br>Resultbox: AddTopic "together"
<br>
<br>Now, your new topic will always show up. If overwritten by another, newer plugin, it will not be highlighted anymore, but it will still show up among the topics.
<br>Your plugin will be playable but less intiutive.


--------------------------------------------------------------------------------



Would another way to avoid this problem be to use existing topics (if any fit the new dialogue), rather than adding new ones?

Using your example above:

Would adding new responses (with appropriate speaker conditions) to the topic 'travel together' (which is already in the game) be safer than adding the new topic 'together'? Or would there still be a chance of conflicts or something being overwritten by other mods?



Quote:
--------------------------------------------------------------------------------

2. If you are using GREETINGS SECTION 1 - DON'T put your greetings at the very top of it. The top-greeting belongs to a certain quest, and must be left at the very top in order to always show up. You can put your greetings below it instead.


--------------------------------------------------------------------------------



First:

Is the above a problem even if I'm using a new NPC I've added, with a unique ID, who's not involved in the above mentioned quest? I'll try to remember not to use the top slot in Greetings 1, but I'm concerned that I might break something if I forget and do use that top position.

Second:

Bethesda's help file says the descriptions of the different Greetings sections are just guidelines, and we can use them however we feel like it.

Is there any consensus or advice on the safest Greetings sections to use for new NPC response, other than avoiding the top slot in Greetings section 1?


Third:

Right now, all the dialogue I'm adding is tagged in the speaker condition field to match the ID of NPCs and creatures I've added to the game myself, with unique IDs. I try to be extremely careful not to modify existing NPCs, dialogue, etc., but just to add new content when I make changes to the game.

Does that pretty much eliminate (or at least reduce) the chance of any of my dialogue additions interfering with anything outside my mod (i.e., other mods or the original game content)?

--------------------------------------------------------------------------

Emma:
Concerning existing topics:

This is only my personal point of view, but I would be afraid to generally use the existing topics. Why? Well, if most modders did that, there would be enormous amounts of "broken dialog strings" when loading/using more than one mod. Hopefully mostly harmless, but if every modder uses the same topics, there must in the end be a huge risk that things interfere with each others. Dialog from newer plugins will always be placed above those from older plugins, and if the newer plugin is filtering a dialog condition for a whole group, say all Blades, that will definitely interfere with the dialog for your Blade npc. So, personally, I prefere creating my own topics.

Greetings sections:

Question 1: There is one quest in the main game when you are not supposed to talk to anyone. If you put your dialog above the first dialog line in greetings section 1, you will still be able to talk to "your" npcs. If it's your personal plugin, it probably doesn't matter to you, but it might be frustrating for others if you upload it... But I wouldn't say it's a big deal.

Bethesda claims that you can use the greetings sections as you wish. But it's only partially true. If you for instance put your greetings in section 9 and the player already is Nerevarine, he will never get the right greetings as the "nerevarine greetings" are in a previous greetings section.

These are Bethesda's general conventions on where to put different kinds of greetings:

- Forcegreeting-Greetings: GREETING 0
(No checks here, the Greeting is started by script, and the script might
get problems if this greeting isn't showed, because "Who's There" or
a disease/crime line comes first. Put scripted Greetings always here)

- Greetings that check if the player is seen but ignore whether the
Player is a naked, criminal, diseased vampire: GREETING 1

- Greetings that ignore only diseases and crime: GREETING 3

- Standard-Greetings: GREETING 5 - Generally a GOOD PLACE to put your greetings.
(Here, the Game already made sure, that the player is seen by the NPC
and he isn't naked or a vampire, not diseased and no wanted criminal)

- Generic NPC-Faction-Greetings: GREETING 6

- Generic NPC-Class-Greetings: GREETING 7 (Nerevarine-greeting)

- Generic Player-Outfit-Greetings: GREETING 8

- Generic Location-Greetings: GREETING 9


You last question: It sounds to me (but I'm merely a layman) that your approach to dialog making so far must be very safe.

-------------------------------------------------------------------

DinkumThinkum???
Starting at the end first...


Quote:
--------------------------------------------------------------------------------

You last question: It sounds to me (but I'm merely a layman) that your approach to dialog making so far must be very safe.


--------------------------------------------------------------------------------



"merely a layman"? Hah! I've read enough of your posts in this thread here and elsewhere to know you're a lot more than that!

I tend to be a little paranoid about safe modding: I've had problems with a few buggy mods I've downloaded, and I also wasted a lot of time digging myself out of messes I got myself into when I first tried to make my own mods. So now I try to avoid problems before I cause them, rather than trying to fix them afterwards.



About your suggestions and comments:

"Concerning existing topics:"

I see what you're saying, and it does make sense, so I'll probably start doing my own topics too. I guess it's better to take a chance with somebody overwriting my new topic than a chance of massively breaking something else. As you pointed out, the AddTopic function should help with the problems from being overwritten by other mods.


"Greetings sections:"

Thank you very very much for the tips on which sections to use for what. The help file was rather vague about the sections, and your suggestions really help. I had been using section 0 for general greetings, but I'll switch to using section 5 so I don't risk interfering with anything else in the game.

undefined
Using the Details has restored the deleted topics but I still get (even more) error messages on opening the esp in CS saying

Following string is different for topic "Little Advice" info blah blah "If you`re heading etc.
Latest rumours
Little Secret
Background
are others affected.
Any Ideas on how to lose these error messages ?

--------------------------------------------------------------------

Emma:
No worries!
Go to the topic "Little Advice". If you look at your own dialog lines, they have a * at the very beginning, right?
Now, look at the dialog line BELOW your own dialog lines. It should have a * at the very beginning, as well. After you cleaning up your plugin, it probably hasn't. This is causing the error message
Go to your last dialog line. Move it downwards one step by using the right- arrow-key, then upwards again (by using the left-arrow-key). Now, the dialog line below yours has the wanted * in the beginning.
If there are dialog lines above yours, the one just above yours should have that * as well.

After correcting this, I'm sure all the error messages will be gone.

-----------------------------------------------------------------------------

Miles_Acraeus:
if someone could help me with this problem i would be very grateful;

essentially what i need done is to block travel services until a certain condition is met. specifically, bringing a trapped soul to the NPC that offers the services. now, i've set this up in the greetings with four seperate entries that look like this:

Greeting4

Code:
--------------------------------------------------------------------------------

greeting; the player has completed the quest, and travel services are now available funtion/variable notlocal active 0 function PCLevel >= 1 Journal xx_xxxx >= 20

--------------------------------------------------------------------------------


Greeting3

Code:
--------------------------------------------------------------------------------

greeting; player has soul, quest complete function/variable notlocal active 0 function PCLevel >= 1 Journal xx_xxxx >= 10 notlocal hassoul >= 1 results player-> additem, "xxxxx", 1 journal xx_xxxx 20 startscript StrongSoulRemove

--------------------------------------------------------------------------------


Greeting2

Code:
--------------------------------------------------------------------------------

greeting; player does not have soul function/variable notlocal active 0 function PCLevel >= 1 Journal xx_xxxx >= 10 notlocal hassoul = 0 results goodbye

--------------------------------------------------------------------------------


Greeting1

Code:
--------------------------------------------------------------------------------

greeting; introduces quest function/variable notlocal active 0 function PCLevel >= 1 results player-> additem, "xxxxx", 1 player-> additem, "xxxxx", 1 journal xx_xxxx 10 goodbye

--------------------------------------------------------------------------------


well, greeting 1 works, but when i speak to the NPC again it skips to greeting 4. any idea what i'm doing wrong?

-------------------------------------------------------------------------


Emma:
Why don't you set this up under the "Persuation" tab instead of among the greetings? Look for service refusals. There, you can set up conditions that stops/allows gondoliers, silt stride owners and others from allowing the player to travel.

As for your question:
NotLocal works "the other way around". I.e. NotLocal/HasSoul/=0 actually means that the player HAS the soul. And NotLocal/HasSoul/=1 means that he has NOT got the soul.
That's probably the reason why your dialog won't work.

If using the greetings dialog, I would probably had filtered the func/variable section for the item instead of using a NotLocal variable (I assume the soul should be trapped in a specific soul gem?):

Item / MySoulGem / >= 1

---------------------------------------------------------------------------

Miles_Acraeus:
well, thanks for reminding me about the persuasion tab. so i got that bit working, but the quest giver simply refuses to acknowledge the fact that i have the proper soul. i tried local function with no luck, and went with the notLocal switching the variables as you suggested. i'm using the strongSoulRemove script if that helps in debugging this any.

-----------------------------------------------------------------------------

Emma:
Maybe the problem is connected to the strongSoulRemove-script and not to the dialog? I have never used it, and don't know much about it. But perhaps you could make a special version of it and add a journal entry to it (i.e. the moment you catch the soul, you get the journal entry). If so, you could filter for the journal entry in the dialog.

----------------------------------------------------------------------------

Miles_Acraeus:
i suspected it was the startScript in the results of the "hasSoul" since dialogue just didn't want to play along, and was the only variable i hadn't changed. i worked around it with a unique creature ID instead, which proved less annoying for such an insignificant side quest. three hours of debugging...a kingdom was nearly lost

------------------------------------------------------------------------------

Emma:
How to make a npc NOT TALK AT ALL:

There already exist a pre-made NoHello script in the TESCS. Just add it to your npc, and they will not use their voices.
An EMPTY dialog slot filtered for your npc in the greetings section will make him not respond at all - i.e., the dialog will not show up, and you will have no reaction when clicking on him (I managed to create an unfiltered empty slot in the greetings section once, and it took me an eternity to figure out why suddenly noone spoke to me ingame).

------------------------------------------------------------------------------

Argent:
Something I've just disovered, that I don't think has been mentioned:

Results Box: The CS Help file has this to say :

Quote:
--------------------------------------------------------------------------------


In the results window, you can put in one-line script commands. You cannot use any commands that require more than one line, such as "if" statements.



--------------------------------------------------------------------------------



This is not true and very misleading. 'If' statements CAN be used in the dialogue results box. I have tested this in several different mods and it works.

I find this Help file info very frustrating, because I took it at face value that the help file was gospel. This made some mods of mine overly complex when I could have been doing the same thing from the results box all along.

-----------------------------------------------------------------------

Argent:
Further 'Help File' clarification.

Voice
=====

Quote:
--------------------------------------------------------------------------------


Attack voices are played while the NPC or Creature is attacking. Creatures generally have these tagged in their animations, so this is mainly for NPCs.
...
Hit voices are played when the NPC or Creature takes damage. Again, most Creatures have these embedded in their animations.



--------------------------------------------------------------------------------


While creatures do not seem to respond to Voice|Attack dialogue, even when speaker conditions are met, they will repsond correctly the Voice|Hit dialogue. Useful when targeting scripts from the results window.

--------------------------------------------------------------------------


undefined
I've set up a basic dialogue with a new NPC ok, but I'd like the NPC to take my items off me once the quest complete - eg "ah thanks for these swords" and remove the swords from my inventory? Could someone please help? Thanks a lot

-----------------------------------------------------------------------------

Argent:
In the dialogue section that contains the final quest entry "ah thanks for these swords", in the Results section at the bottom, include as many Player->RemoveItem "item_ID" 1 lines as is required.
You should also make sure that the player actually does have these items in inventory before using the RemoveItem command, otherwise you will mess up the player's encumberance. You could either make sure that last dialogue line is not reached unless the player has the items, or wrap the RemoveItem line with a if(Player->GetItemCount "sword_ID" >1) block.

----------------------------------------------------------------------------

undefined
... or just use the Item function in the function/variable section...

Just thought I'd add to this thread that I've released the first half of my comprehensive dialogue tut. Covers Greetings, Topics, Result, Choice, and all kinds of conditions. Many issues covered in this thread are included. Get it here: http://members.cox.net/srikandi/dialoguetut/DialogueTut.zip

---------------------------------------------------------------------------

undefined
Question: how do I add my own sounds to my plugin?
My peple keep on getting duplicated, how do I fix this?

Answer: If by sounds you mean voices:
- Go to the "voice" tab of the dialogue editor
- pick the section you want (this determines when the sounds get played)
- click the "sound files" button, which allows you to choose your sound file
- type the text in (for anybody using subtitles)
- specify the conditions like any other dialogue topic

Doubling: probably a "dirty save" issue -- search the forum for that term.

----------------------------------------------------------------------------

undefined - DinkumThinkum??
This has come up a couple of times in the last day or two, so I figure it's worth adding here...

(For the life of me, I can't remember where I originally saw this documented. I thought it was in the Construction Set's Help file, but I can't find it there now.)


The short version ...

1. If you delete an NPC or creature with custom dialogue from a mod, be sure to also delete all the dialogue that was assigned to the NPC's or creature's ID. Otherwise, it may show up for other NPCs in the game and possibly cause major problems.

2. If you have dialogue in one mod that's tagged with the ID of an NPC or creature in another mod, loading the dialogue mod without the NPC or creature mod may give that dialogue to other NPCs in the game and cause problems.

----------------------------------------------------------------------------

Details:

If the Speaker Conditions for a dialogue response originally included the ID of a specific NPC or creature, and that NPC or creature ID no longer exists in the game, then the Speaker Conditions ID field will be blank. That means those dialogue responses will now be available to ANY NPC or creature who meets the remaining conditions.


Two possible scenarios I tested:


Scenario 1 - Careless editing of a mod:

A mod has an NPC with a custom greeting (keyed to their ID) at the top of Greetings 5 that they always use: i.e., no other conditions.

For example, they might say "Hello, I'm Test NPC. Pleased to meet you!" everytime you clidk on them.

If you delete that NPC from the mod without deleting that greeting, then the ID field for that greeting will be blank. Which means that greeting will always meet the conditions for ANY NPC in the game.


End result:

Any time the game gets as far as Greetings 5 when searching for an appropriate greeting, it will stop at the above greeting.

So most NPCs in the game will say "Hello, %PCName! I'm Test NPC. Pleased to meet you!" unless they meet the conditions for a greeting in Greetings 1 thru 4. Any greetings further down in Greetings 5 and all the greetings in Greetings 6 thru 9 will never be used.


As a quick test, I deleted an NPC named Tianna from one of my mods. Fargoth, Arille, guards, and other NPCs in Seyda Neen all started introducing themselves as Tianna, because she had a custom greeting (for a quest) at the top of Greetings 5.


Scenario 2 - Failing to load a mod that has an NPC used in another mod:

If mod #2 contains dialogue keyed to an NPC in mod #1, loading mod #2 without mod #1 will have the same effect as deleting the NPC. All the dialogue in mod #2 that was keyed to the NPC will now have a blank ID field.

End result is the same as the first scenario: the custom dialogue will now be available to any NPC in the game.


To test this:

I ran the game with one mod that added some quest dialogue for two NPCs, but without the mod that added those NPCs to the game. End result was that NPCs in Seyda Neen gave me the quest responses, rewards, and journal entries for the two missing NPCs.

----------------------------------------------------------------------------

Avoiding scenario 1 is easy: just be sure to delete any dialogue keyed to an NPC before deleting the NPC from a mod.

For scenario 2, the obvious solution is to make sure all the dialogue for an NPC is in the same mod as the NPC.

If this can't be done, Emma suggested (in an E-mail) something using local variables and scripting to make sure the dialogue wouldn't be used if the NPC it belonged to was missing.

I'm not a scripter, so I'm not quite sure how that works... So ask Emma how to avoid problems if you need to have an NPC and some of the NPC's dialogue in different mods!

----------------------------------------------------------------------------

undefined


Quote:
--------------------------------------------------------------------------------


Quote:
--------------------------------------------------------------------------------

If you delete that NPC from the mod without deleting that greeting, then the ID field for that greeting will be blank. Which means that greeting will always meet the conditions for ANY NPC in the game.


--------------------------------------------------------------------------------



When you say delete them from the mod, do you mean completely deleting them from the NPC list, or just having zero instances of them actually placed in the world?


Also, I have another question:

After the Tribunal/Bloodmoon journal fix, every quest seems to have a "title" that shows up if you haven't completed it yet. I'm assuming that we as mod-makers need to add those titles now? And if so, how do we do that?


--------------------------------------------------------------------------------



For your first question: when I tested this, I deleted the NPC completely. I.e., removed the entry from the list of NPCs on the Objects window.

The problem shows up when the NPC's ID no longer exists in the game, so I would _assume_ that there wouldn't be any problem if the NPC was still listed but not actually in the world anywhere. That would make their ID still valid, so it would still show up in the ID field for their dialogue.


About the titles:

To add a Journal title, just create a Journal entry with the title as the text of the entry and check the 'Quest Name' box. I leave the Index as '0' (blank), but don't know if that matters.

As soon as you use a Journal command to add a journal entry for that quest, then the quest name will be added to the journal's list of quests.


For example, a quest using a journal named 'DT_FindFriends':

I would create a journal entry 'DT_FindFriends 0', with the text "Find my friends", and check the 'Quest Name' check box.

Once a script or dialogue results added one of the other entries to the player's journal, the quest would be listed in the journal's quest list as 'Find my friends'. For example, using 'Journal DT_FindFriends 10' to add entry 10 would put the quest name (from entry 0) into the quest listing.

For the last journal entry in the quest, put a checkmark in the 'Finished' box. Once that entry is added to the player's journal, the quest name will be removed from the list of active quests (but will still be listed under 'all quests').


Also: if a journal entry has the 'Restart' box checked, then adding that entry to the journal will put a 'finished' quest back on the active list.

----------------------------------------------------------------------------

undefined
I have a question of my own, regarding weather linked greetings; I can't find the answer in this thread, in search, or in the various tuts I've read.

I made several creature merchants, and put them in an interior cell in its own region, complete with weather (like Mournhold, in other words: an interior cell with weather. The weather works perfectly!). I put my greetings in 'greetings 5,' at the top. The first greetings are one-time-only initial greetings, and they work fine. Next are my weather-linked greetings; I used function/weather/=/and then the weather number (4 for rain, 5 for thunder, etc.) I modeled the weather-linking after one of Bethesda's NPC's weather-dialogue, so I thought it would work. It doesn't. My creatures skip right over the weather greetings and go to the next ones down the line, which are my randomized greetings - which also work perfectly. What's wrong with my weather-links? I used "function" rather than "global" because that's what Bethesda had the NPC do; they used "global" and "weather" only for the time-of-day weather remarks (pleasant evening/nice day kind of thing.)

Thanks for any pointers you can give me!

P.S. Each greeting is assigned to one of my creature id's (that sounds Freudian, doesn't it? LOL!) and to that particular interior cell.

----------------------------------------------------------------------------

Emma:
Quote:
--------------------------------------------------------------------------------

I made several creature merchants, and put them in an interior cell


--------------------------------------------------------------------------------



Seems to me as if function/weather only works in exterior cells. Have you tried to put one of your creature merchants in an exterior cell just to see if that makes any difference?

-----------------------------------------------------------------------------

undefined
Quote:
--------------------------------------------------------------------------------


I have a BIG problem. i am trying to creat dialog for a creature, i select the filter and drag it to the top. but instead of being blank there is ever topic in the game! i need to know how to fix this.



--------------------------------------------------------------------------------



Assuming this is actually a creature and not an NPC...

Dialogue for creatures works exactly the same as for NPCs, except they won't use any responses that


--------------------
Emma
Sep 8 2004, 08:06 AM
Post #2


Disciple


Joined: 8-October 02
From: Sweden




It turned out that I couldn't post such a long posting, so I'll add the rest in this second section

THE FOLLOWING IS FROM A VERY INTERESTING THREAD BY JOG CONCERNING CLEAN MODS - DIALOG - HOW TO AVOID MOD CONFLICTS IN THE GREETINGS SECTION

JOG:
After spending yesterday evening with fixing Dialogue of some Quest plugins that base on Tribunal.ESM v1.4, I really need to write this...

Dialogue is linked by this Hidden "Info ID" numbers:

If you look at a Dialogue Info/Response in TESAME, you see three entries:

INAM = the ID of this Dialogue Line
PNAM = the ID of the previous Line
NNAM = the ID of the next Line.

As long as the dialogue line has a PNAM and NNAM entry, the game looks for those next and previous lines in the current dialogue chain and places the new line somewhere between them. This works fine even if two plugins make a new line of dialogue at the same place. The two new lines will be placed between the old ones without any troubles.

Even when one of the plugins/Masters has a dialogue line with only a NNAM entry, there is no problem, the game puts this line on the very top of the Dialogue-Chain.


What happens when two plugins/masters try to come on top,
is best described by an example:

Original lines:

---(top)
ABC
DEF
XYZ



Plugin 1: (newer file date)

---(top)
1:A
1:B
1:C
ABC
DEF
XYZ



Plugin 2: (older file date)

---(top)
2:A
2:B
2:C
ABC
DEF
XYZ



Resulting Dialogue chain in Game:

---(top)
2:A
2:B
1:A
1:B
1:C
ABC
2:C
DEF
XYZ


The game exchanges the lowest Line of Plugin2 (the older one), with the next original line, And places the other lines on top of the dialogue chain. So there might be problems, if Plugin2 depends upon the "2:C"-line coming before "ABC".


Even worser when both plugins add bottom-lines:


Original lines:
ABC
DEF
XYZ
---(bottom)

Plugin 1: (newer file date)

ABC
DEF
XYZ
1:A
1:B
1:C
---(bottom)

Plugin 2: (older file date)

ABC
DEF
XYZ
2:A
2:B
2:C
---(bottom)

Resulting Dialogue chain in Game:

ABC
DEF
2:C
XYZ
2:A
2:B
1:A
1:B
1:C
---(bottom)

Again the now undefined "lowest" line of Plugin2 is exchanged with the nearest original line to restore a working dialogue-chain, but now the dialogue sequence of plugin 2 is corrupted.


In the beginning we thought it to be more "clean" if we store only one original dialogue line in our plugins, but this proved to be a mistake.
Tribunal did the same as we, and corrupted most of the Dialogue-intensive plugins.

Bloodmoon hasn`t that many new top/bottom lines, and most of us have learned our lesson, so there were almost no conflicts between Bloodmoon and older plugins.



Another common mistake is using the "copy" command to make a new
dialogue line, and then continuing to change/make copies of the
lower line (the original one, with the original Info ID)

---(top)
ABC (the copy of the ABC line with a new ID, but the old text)
2:A
2:B
2:C (id of original ABC, but text was changed)
DEF
XYZ

For a text-oriented human it looks like a clean plugin, but for the game, that only cares about the ID-Numbers, it`s just another plugin that tries to put its own line on the top of the linked-list...


If you followed me till now, you can figure out what happens when you
load this plugin together with another one with top-dialogue:

---(top)
ABC (the New ABC line)
2:A
1:A
1:B
1:C
2:C (Original ABC-Line)
2:B
DEF
XYZ


The dialogue sequence of plugin2 is destroyed, because the original top-line and the next plugin-added line are exchanged, but this time you ( the author of plugin 2) have a hard time to find the bug, because you first need to find out that you changed the original line instead of your new one.


The best advice I can give, is: Always place your new dialogue-lines in the middle of the topic. never use the top or bottom, and avoid the second line, because you easily can confuse the original top-line and the copy. Confusing is no problem as long as your new lines aren`t at the top or bottom of the linked list...


------------------------------------------------------------------------

Emma:
This is definitely vital information for all modders that work with dialog!


The problem has been very thoroughly explained, but I wonder if you could confirm that this would work to "clean" a dialog:

Say that I have made a mod based on Tribunal, and have only put one "original" dialog line on top of my dialog entries.
To make it worse, I could even be uncertain if I have managed to copy one of my dialog lines and put it above my other dialog entries.

So, in order to fix this, I do as follows:

1) Move a couple of the original Tribunal dialog entries upwards, using the <- and -> arrows, so that my own dialog instead starts on the, say, fourth dialog line.
2) Make a new dialog line at the very top of my own dialog, where I re-write my top dialog line (then delete my previous top dialog line)
3) Clean away the * from the toplines of the Tribunal dialog entries.


If I instead should have placed my dialog at the very bottom, I would instead move a couple of original dialog entries downwards. I would then, just as in the previous case, re-write my top-dialog line (as TESCS reads from to to bottom), and clean away the * at the very bottom.

Now, as far as I can see, the mod "should" not cause any problems. Am I right?

----------------------------------------------------------------------------

JOG:
Addition:

Above I wrote that it doesn't matter when you change the text of the original Dialogue-ID as long as you stay away from top/bottom, but this isn't true. As soon as a plugin with a later file-date also contains this ID (no matter if the second plugin has the original text, or changes the original-ID itself) Your dialogue line will be completely removed from the game...

So as a rule: Hands of the top and bottom lines, and when you use "copy" to create new lines always edit the upper line...



BTW: for those that don't know yet: You can see the "Info-ID" I'm talking of, when you maximize the column between "info" and "Disp/Index"

----------------------------------------------------------------------------

Emma:
Aha!

I remember I ran into something like that long ago.

As far as I can remember the Info-ID was connected to the text in the dialog line and would change if the text in the dialog line was altered. .

I was about to release both first version of Witchgirl Adventure and an early version of Girlfriend Breton mod. In both cases, I had put the greetings in section 5. Now, one of the greetings started the same way in both mods, and was the very same for several words.
When I tried to run both mods at the same time, the greeting in the older one never showed up - it was completely overwritten.
Now, if I remember this correctly (it was almost a year ago), I found a solution that worked in this case:When I somewhat changed the text in the older greeting, the "Info-ID"-number also changed, so, as far as I could understand, the "Info-ID" should be related to the exact letters in the dialog-entry.

Now, this problem of course happened mostly because I was the author of both plugins. Probably, no-one else would have started a greeting in exactly the same way as I (as people think in different directions and use different words). So, if my conclusions are OK, a dialog line would only be overwritten by a newer mod if a dialog line in the newer mod starts with exactly the same words.

Now, I definitely don't claim that my conclusions are right (especially as this happened really long ago) but I would love to hear someone elses (JOG!! ) opinion on this.


In this case, with Girlfriend and Witchgirl, I had initially also used a few topics in BOTH mods. This turned out to cause a similar problem: the topic initially wouldn't show up at all in the older mod. But, when I added the topic also by an "AddTopic" command in the dialog result-box, it would show up even if overwritten. However, in the older mod, the topic wouldn't be highlighted in the dialog. So, I of course rewrote all the topic names. But I learnt how vital it is to always use "AddTopic" in the resultbox.

Oh, and if I'm not mistaken, you can also see the Info-ID in the Details list for the mod in TESCS.

-------------------------------------------------------------------------

JOG:
Sorry, you're wrong

The Info-Id always stays the same, it isn't dependent on the text contents, or a changed Entry would mess up the dialogue-chain for all other plugins, and a copy of an entry would have the same number.

Example:

Morrowind.esm only, Greeting1, top

Code:
--------------------------------------------------------------------------------

[You have failed your Oath of Silence] 204811946427354207051Who's there? 12152275822093636854All is silence.... 1588813549227325295

--------------------------------------------------------------------------------


When I use "copy" on "Who's there" I get a copy of this line with a new random ID-number

Code:
--------------------------------------------------------------------------------

[You have failed your Oath of Silence] 204811946427354207051Who's there? 243027979162761791Who's there? 12152275822093636854All is silence. [...] 1588813549227325295

--------------------------------------------------------------------------------


Changing the text has no effect on the number, but if you make the mistake and change the text from the line with info-ID 12152275822093636854, which is the original number, you're in danger that another mod that contains a line with this number will overwrite your line.


------------------------------------------------------------------------------

Emma:
Quote:
--------------------------------------------------------------------------------

Sorry, you're wrong



--------------------------------------------------------------------------------



Hehe, no need to be sorry about that, I'm often wrong .

Still, what I said about two (almost) identical greetings in two different plugins is a fact - the older greeting will be overwritten by the newer. Same goes for identical topics.

Thank you for the explanation about copying dialog lines in your last posting. It sorted out a number of things that I was uncertain about. For instance, this should mean that there's no harm in copying dialog lines that all belong in my own mod, at least not as long as I make sure that the "original" of my dialog lines is above the copied dialog lines.

I would like to ask one more question, that I believe could be of general importance:

Say that I have made out my mod as below.

[You have failed your Oath of Silence] 204811946427354207051
THIS IS MY DIALOG LINE!!! 243027979162761791
THIS IS MY DIALOG LINE!!! 243487333791627617
Who's there? 12152275822093636854
All is silence. [...] 1588813549227325295

Now, I want to change it in order avoid problems for other users, who might be using several dialog intense mods.

Would it be sufficient just to move the line "Who's there?" and "All is silence" upwards (so that they will once again be number 2 and 3 in the dialog chain). OR should I also click "new" and re-write my first dialog entry so that it will have a new ID-number (as it is now in the 4th row in the chain instead of the 2nd)?

------------------------------------------------------------------------------

JOG:
The numbers are completely random and just there to determine how the dialogue lines link together. So just move the original lines up, and all is fine. As long as you don't change the original lines that have the same Info-IDs on every modder's computer...

Sure, there is a tiny chance that you make a new line, get a random number, and another moder gets the same random number as yourself, but when this happens, it's most likely that the moon will drop down and smash the other ones house and computer before he can release his mod


-------------------------------------------------------------------------------

Wizthis:
First, Thanks Jog & Emma

For those of us (Like me) who came late to class.

1) In "Greetings". If I wished to add a new greeting, is it better to avoid certain "groups" like Greeting 0, Greeting 1...and place the new greeting in 8 or 9? This would ensure not messing with ;ALWAYS LEAVE THIS TOPIC AT THE VERY TOP OF GREETING 1 and things like that-Yes-No??

2) This also include "Topics" , or is this just good practice for "Greetings" editing?

3) In a Dialogue tutorial, it uses extensive "copy" and edit. Is it better practice to just do "New"?

4) And last question for us dense people.
Placing a "new" Greeting in the middle to be safe means:
Scroll to the middle of all the dialogue in a group and place your new dialogue there?

Whoops!... ...one more:
5) Will TES Tool fix any of these problems, or make it worse when dialog merging?

Thanks again.

------------------------------------------------------------------------------

JOG:
1. Greetings 8/9 are a problem 'cause they don't apply very often. Greeting 1 and 5 are safe and most common, just heed the rule that you put your new lines between two old ones, and when making copies alway edit the upper one.

2. Yes, it also applies to topics, you just have a lot more conflict potential with Greetings 'cause every mod uses them.

3. No, I also always use Copy+Edit, just make sure you edit the upper line.

4. Yes. It's okay to have your new line at the 3rd line from top or bottom, just stay away from the top and bottom lines, and be very careful when you edit the 2nd lines.

5. No idea. But it's very unlikely that a tool can solve existing conflicts. (to do so you need to change the IDs) As long as one mod's dialogue is 100% clean, there is no problem with merging (the game does the same when you load the mods together) but two unclean dialogues will cause the problems I described above.


Again:


One mod with "unclean" dialogue will cause absolutely no problems.


Two mods, one "clean" one "unclean" also have no conflicts, as long as the "clean" mod is older than the "unclean" one.


When an "unclean" mod is older than a "clean" one, the clean mod might remove dialogue from the unclean one.


Real problems begin when you have at least two "unclean" mods. Then the dialogue-sequence of the older one will be changed.



The nasty thing about the whole business is that the maker of an "unclean" mod won't notice it as long as he doesn't run any "clean" mods that are newer than his one or other "unclean" mods...

------------------------------------------------------------------------------

undefined
A bit more on Greetings...

I strongly advise against making any Greetings changes that will affect existing NPCs: it's just too easy to break quests or cause other problems in the game.

Filter your Greetings so they will only be used by NPCs added by your mod and ignored by everybody else. One obvious way is to use the IDs for your NPCs as one of the Speaker Conditions. You can also use new factions (created by your mod), new classes, new races, new cells, etc. as Speaker Conditions to restrict new or changed Greetings to just NPCs added by your mod.

.................................................................................................


That's it!
Hope some of you will still find this old material useful

This post has been edited by Emma: Sep 8 2004, 08:16 AM


--------------------
Klinn
Sep 8 2004, 06:31 PM
Post #3


Diviner


Joined: 19-November 02




Thanks for assembling all of this and bringing it over. It would be a shame to lose all those valuable insights and advice that you provided.


--------------------
--- Info: Advice For New Modders
--- Tools: Thumbnail Clothing Catalog (and Terrain Statics Catalog)
--- W.I.P: Quest for Berjon's Blade
Iudas
Sep 9 2004, 09:13 AM
Post #4


Disciple


Joined: 30-October 02




QUOTE(Klinn @ Sep 8 2004, 06:31 PM)
Thanks for assembling all of this and bringing it over. It would be a shame to lose all those valuable insights and advice that you provided.
 


Bump back to page 1




© 2004 Bethesda Softworks LLC, a ZeniMax Media company. All Rights Reserved.
PRIVACY POLICY | TERMS & CONDITIONS | LEGAL INFORMATION | CONTACT US