• The most specific responses should be on top of the list, the "catch all" answers should be lowest! Remember the first one that returns true is the one that gets picked. So you can't have a response for everyone in Vivec above one for a specific NPC in Vivec.
• If you want an NPC to be able to talk with the PC about something special, you must introduce the topic word, e.g. in a greeting or in a "latest rumors" response. Alternatively, you can use a script with the AddTopic function.
• Don’t use normal words as journal topics. Topic, Greeting, Journal are actually all in the same database – that’s why journal topics use a format like A1_dreams. If it were just "dreams" than the journal entry to "dreams" could come up as a dialogue response to the word "dreams".
• Never delete a topic that belongs to the original Bethesda master files. This is very hard to repair and will cause severe errors in peoples save games. (Emma). You should also avoid deleting responses from the original game: the best way to remove a response is simply to add your custom dialogue above the original response, so it still exists unchanged but is never "said"; if this is not possible, you can change the filtering for the response (e.g. filter for ID "dialog placeholder" will remove the response from all NPCs in the game world) - but changes to an original response will be overwritten by any later-loading mod that also changes that response.
• If you are using the 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 these instead. (Emma)
• If at all possible, avoid putting your new responses as the very first or very last entry in an existing topic (this includes greetings). For example, if you want your greeting to be above the first greeting in Greeting 2, put it in Greeting 1. If you want it below the last greeting in Greeting 1 as well, then copy that greeting and put the copy above your new greeting: this will achieve the same effect, as the original line will never be "said".
Dialogue 101
The following summarizes some of the most frequent problems with dialogue. This list was assembled from a forum discussion with contributions by Klinn, Emma and GarryB.
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 (if you open the dialogue window from an NPC's property box, it will be filtered for that NPC by default; but if you open the window from the main toolbar or menu, it will be unfiltered by default).
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. There are some lore topics that are not well-filtered and will appear in certain circumstances regardless (especially with Bloodmoon: many BM NPCs are NoLored to avoid Morrowind lore topics, and most Bloodmoon lore topics are filtered only for cell). If this is a real problem, and your mod design allows for it, you can use a creature instead of an NPC: creatures can only have dialogue filtered for specific ID.
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 PC 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 possibility: 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. Note that since the resultbox scripts are executed after the display has updated, a topic made available by a resultbox script may not appear immediately. Another little trap is that topics won't be added and hyperlinked in dialogue if they don't begin with a letter, so topics like "-follow" won't be hyperlinked in a greeting even if the conditions are met: you will need to use AddTopic.
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. Note that every original entry that is "touched" by your moved dialogue will be marked as changed: you can remove your changes using the details view.
Tip 8) How do I create dialogue for creatures? Any creature can have its specific dialog. You do this exactly as you create 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. Note: This is because creatures can only have dialogue that is filtered for specific ID, and when you create a new response it isn't filtered at all - so the creature can't "know" it.
Tip 9) What are typical uses for the dialogue result box? Emma lists these useful and frequently used commands for the result box:
• 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 (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; requires Tribunal or Bloodmoon)
• 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 instance in order to avoid further small talk with a npc that has already been disabled )
Tip 10) I have created so much dialogue, how can I possibly spell-check it? Checking spelling and grammar can be streamlined by using the export and import functions in the Construction Set. Export "new" dialogue to a file, use your favorite editor for automatic spellchecking and corrections and import the corrected dialogue . Much easier on the brain than jumping around in a myriad of topics, greetings and journal entries. (Forum info / GarryB)