Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Properties of a Dialog File

Page: 1 of 1
 tk102
01-24-2005, 10:44 AM
#1
What would an RPG game be without dialogs? Aside from the richness they provide, dialogs are the easiest way to introduce scripts into your mod since every branch contains script fields.

This thread provides some explanation as to the fields within the .dlg file in case you are looking at one with a GFF editor. For more information on the DLG file specification see: Bioware's documentation (http://nwn.bioware.com/developers/Bioware_Aurora_Conversation_Format.pdf). Other tools including KotOR Tool and DLGEditor provide more convenience in constructing dialogs and each have their own readme guides.

Much of this was stolen directly from the documentation I published with the original DLGEdit utility.


---------------------------------
General Dialog Properties
---------------------------------

- AmbientTrack: a Resref to a music file
- CameraModel: (?)a Resref
- ConversationType: 0=Normal, 1=Computer
- ComputerType: 0=Normal Computer 1=Old-style computer (only used if
ConversationType is equal to 1.
- DelayEntry: an integer describing how many seconds of delay before
an NPC will respond to the PC
- DelayReply: an integer describing how many seconds of delay before
the PC will be allowed to give a response
- EndConverAbort: a Resref to a script that will fire if the
conversation is aborted prematurely. I'm not sure how that occurs in
SW:KotOR.
- EndConversation: a Resref to a script that will fire when the
conversation ends normally
- Skippable: A boolean value that means the conversation can be skipped
through.
- UnequipHItem: (?)a boolean
- UnequipItems: (?)a boolean
- VO_ID: Voice-Over Identifier, a Resref (for more info on this one
see the "Adding Lipsync and Voice to a Custom Dialog" (http://www.lucasforums.com/showthread.php?s=&threadid=126746) tutorial)

You can change any of these properties by selecting it from the menu.

----------------
Starting List
----------------
The starting list is the root of the conversation. The game evaluates
each item in order to see where to start the conversation. If an item
has a script associated with it, that script will be run and should
return TRUE or FALSE. If it returns FALSE, the next item will be
evaluated. If the script returns TRUE or if the item does not have a
script associated with it, the conversation will begin at the Entry
pointed to by the item. If no starting point is determined, the
conversation does not take place.

Fields:
- Active: the conditional script reference
- Index: a pointer to the EntryList

-----------------------------
Editing a Dialog: Entry List
-----------------------------
The Entry List contains all NPC responses. The items in this list are
called Entries. Each structure in this list has a Structure Type equal to its position in the list. So Entry 0 is a Structure Type 0, Entry 1 is Type 1, etc.

Each Entry has the following properties available for user editing:

................
Entry Properties
................

- Text: This is the text spoken by the NPC. It may be reference to the dialog.tlk file or may be contained within the .dlg itself. If StringRef is > -1 then the text is in the dialog.tlk file at the StringRef index. If StringRef = -1, then the dialog is contained locally in the .dlg file itself. To specify no text, set the StringRef to -1 and the Text blank. The RepliesList will still be evaluated, thus the PC can have more than one screen of Reply.
- Speaker: Tag of NPC to do the speaking. If blank, it is the NPC that
started the dialog.
- VO_ResRef: name of a voice-over sound file to play during this Entry.
- Script: the Resref of a script to fire when this Entry is spoken.
- Comment: this field is just to hold developer comments
- Sound: name of a sound file to play during this Entry. Sounds are
used instead of VO_ResRef for aliens and droids that just make noise.
- CameraAngle: an integer that specifies the camera angle to use when
this Entry is spoken. (I don't have documentation on what the different
numbers mean yet.)
- AnimList: This is a list of animations that you can impose on the
PCs or NPCs. The list structure contains two elements: Participant and
Animation. The Participant is a tag reference to the character who will
be performing the animation. There are two special values that can be
placed in this field: OWNER and PLAYER. OWNER represents the NPC who
initiated the dialog. PLAYER is, well, the player. The field,
Animation, is actually a numeric word whose values are defined in the nwscript.nss file.

- RepliesList: This a list of possible replies that PC can respond with.
Each item in this list has a pointer to the ReplyList and a script
reference to evaluate whether or not the reply will be available to the
PC for speaking. In this way, it is much like the Starting List and the fields are pretty much the same. If there are no available responses for the PC, the dialog will end.

Each RepliesList item has the following properties available for user
editing:

- Index: Integer. This is the pointer into the Reply List
- Script: This is the name of the script to be evaluated when after the
Entry is spoken and if it returns TRUE, then this RepliesList item will
be available to the PC as a choice of responses. If omitted, it
defaults to TRUE.
- IsChild: Makes the RepliesList item be designated as a Link. (not enforced by KotOR).
- LinkComment: Only available if IsChild field is 1. This is a comment
field for the designer only.


-----------------------------
Editing a Dialog: Reply List
-----------------------------
The Reply List contains all PC responses.

The items in this list are called Replies. Each Reply has the following properties available for user editing:

................
Reply Properties
................
- Text: This is the text spoken by the PC. It may be reference to the dialog.tlk file or may be contained within the .dlg itself. If StringRef is > -1 then the text is in the dialog.tlk file at the StringRef index. If StringRef = -1, then the dialog is contained locally in the .dlg file itself. To specify no text, set the StringRef to -1 and the Text blank. The EntriesList will still be evaluated, thus the NPC can have more than one screen of Entry.
- VO_ResRef: (?)Your PC does not have a voice, so I'm not sure if this field is ever used.
- Script: the Resref of a script to fire when this Reply is spoken.
- Comment: this field is just to hold developer comments
- Sound: (?)name of a sound file to play during this Reply.
- CameraAngle: an integer that specifies the camera angle to use when
this Entry is spoken.
- EntriesList: This a list of possible replies that the NPC can respond
with. Each item in this list has a pointer to the EntryList and a script
reference to evaluate whether or not the Entry will be spoken by the
NPC. If there are no available responses for the NPC, the dialog will
end.

Each EntriesList item has the following properties available for user
editing:

- Index: Integer. This is the pointer into the Entry List
- Script: This is the name of the script to be evaluated when after the
Reply is spoken and if it returns TRUE, then this EntriesList item will
be chosen by the NPC to speak. If omitted, it defaults to TRUE.
- IsChild: (?) Boolean. Makes the EntriesList item be designated as a Link. (Not enforced by KotOR)
- LinkComment: Only available if IsChild field is 1. This is a comment
field for the designer only.
Page: 1 of 1