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.

Using the DLGEditor and its functions

Page: 1 of 1
 Nick Vader
02-28-2010, 10:38 AM
#1
As requested, in this thread I shall cover all the utilites of the DLGEditor. It will help you understand its functions and (probably) make you a more usefull person:p.

Ok, first of all, you should check the ReadMe file of the DLGEditor. It has loads of valuable information in it.

ReadMe File Download (http://www.megaupload.com/?d=2FMV1CE0)

Now, to the utilities and to the things you can do in the DLGEditor:

Overview:
----------
DLGEditor is a GUI based dialog viewer and editor for Star Wars: Knights of the
Old Republic and Star Wars: Knights of the Old Republic II: The Sith Lords.
The editor is divided into two panes. The upper pane contains the treeview
portrayal of the dialog with NPCs speaking in red (Entries) and PC replying in
blue (Replies). Upon highlighting the nodes of the tree, detail widgets appear
in the lower pane containing node-specific information which can be edited.

DLGEditor's Menubar
----------------------

---[FILE]---

File: New - This will create a new dialog with only the root node.

File: Open... - Allows user to browse for a dialog file to open.

File: Revert - This will cause the current dialog to lose all changes since its
last save.

File: Close - Closes the current dialog. Treeview will be cleared.

File: Save - Saves dialog with current name.

File: Save As... - Displays a Save As dialog allowing user to browse and
specify the path name.

File: Change TLK File Paths... - Brings up a popup window containing the
current paths specified for KotOR and TSL
dialog.tlk files. The [...] buttons allow the
user to browse for the dialog.tlk file(s) they
wish to use with DLGEditor.

File: Launch in GFF Editor - If GFFEditor.exe is present in the current
directory, it will be launched with the current
dialog passed as a parameter.

File: Launch in DLGEdit - If DLGEdit.exe is present in the current directory,
it will be launched with the current dialog passed as
a parameter.

File: Exit - Terminates DLGEditor


---[EDIT]---

Edit: Undo - 4 levels of undo are supported.

Edit: Add New Entry - Adds an Entry (red) dialog branch to be spoken by the
NPC. If the Root Node or a Reply is highlighted when
this menu command is selected, the new Entry will appear
directly under the highlighted node and will become
highlighted. If an Entry is highlighted when this menu
command is selected, a new Reply branch will be added and
the new Entry will be attached to it.

Edit: Add New Reply - Adds a Reply (blue) dialog branch to be spoken by the PC.
If an Entry is highlighted when this menu command is
selected, the new Entry will appear directly under the
highlighted node and will become highlighted. If the
Root Node or a Reply is highlighted when this menu
command is selected, a new Entry branch will be added
and the new Reply will be attached to it.

Edit: Break Link With Parent - This will sever the parent-child relationship
between two branches. If there is no other link
to the severed child branch, it will become an
Orphan.

Edit: Delete Node Completely - This will remove the Entry or Reply node
completely from the dialog, severing all parent-
child relationships (which may cause other child
branches to become Orphans.)

Edit: Automatically Apply Changes - Turning this menu option on will cause the
treeview and internal memory representation
of the dialog to be updated each time a
node is selected. Turning this option off
will create an Apply Changes button in the
lower pane that must be pressed to update
the treeview and the memory structure.
This menu option is by default turned on.

Edit: Cut Node - This will cause a Break Link With Parent at the current node,
but will store the broken branch in an internal buffer.

Edit: Copy Node - Similar to Cut Node but without causing the current node to
be broken from its parent.

Edit: Paste Node as Copy - This will paste a symbolic link to the branch that
was previously stored via Cut Node or Copy Node.
The index of the node pasted will be the same as the
index of the copied or cut node.

Edit: Paste Node as Copy - This will create a new branch identical to the
branch that was previously stored via Cut Node or
Copy Node. The index of the node pasted will be
different from that of the copied or cut node.

Edit: Delete All Orphans - This menu item will be enabled if orphans are present
in the current dialog. When clicked, it will turn on
View Orphans and recursively delete each orphan node
including orphans from orphans.

---[MODE]---

Mode: Toggle Mode: KotOR - In KotOR dialog mode, DLGEditor will switch to the
KotOR dialog.tlk file and show only KotOR supported
dialog fields in the lower pane. If no KotOR
dialog.tlk file is available, DLGEditor will generate
an error message and will toggle back to TSL mode.

Mode: Toggle Mode: TSL - In TSL dialog mode, DLGEditor will switch to the TSL
dialog.tlk file and show all KotOR and TSL supported
dialog fields in the lower pane. If no TSL dialog.tlk
file is available, DLGEditor will generate an error
message and will toggle back to KotOR mode.

Mode: Language Settings - This specifies the language ID to be used when
storing localized dialog strings. Upon selecting a
new language, all localized strings will have their
settings changed in memory. KotOR and TSL require the
correct language specification to display dialog text
properly in-game.

Mode: Resolution - Setting the screen resolution will make the fonts and
widgets appear larger or smaller. Changes will not occur,
however, until DLGEditor is closed and reopened. The Use
Default option will revert the scaling back to normal size
upon reopening DLGEditor.


---[VIEW]---

View: Show Conditionals in Tree - This will display conditional scripts in the
Treeview pane. These are the scripts that
are run to determine whether the branch will
be displayed as a dialog option in-game.
Conditional scripts will appear in angle
brackets prepended to the text for each node.
If no conditional is present, empty angle
brackets will appear. Note: TSL has two
possible conditions per node and will
therefore show two sets of angle brackets
prepeneded to each branch.

View: Show Scripts in Tree - This will display conditional scripts in the
Treeview pane. These are the scripts that are run
to when the dialog option is selected in-game.
Scripts will appear in angle brackets appended to
the text for each node. If no script is present,
empty angle brackets will appear. Note: TSL has
two possible scripts per node and will therefore
show two sets of angle brackets appended to each
branch.

View: Show Indices in Tree - This will display each node's index in the
Treeview pane. Indices are listed as E# or R#
depending on whether they are Entries or Replies.
Each # represents a unique branch of the dialog.
The treeview may show the same branch more than
once in case of multiple points of branch entry.
Indices appear in square brackets prepended to
the text of the branch.

View: Show Orphaned Replies/Entries - Orphan nodes will normally not appear in
the Treeview since they have no branch
entry point; that is, they have no parent
and will not appear in-game. When this
option is selected, Orphan nodes will
appear as purple and will be listed
underneath the Root Node. If this value
is turned off and orphans do exist, a
popup box will appear one time to alert
you to that fact.

Expand All: Opens up all branches for viewing. Nodes will appear with the [-]
indicator.

Fold All: Hides all branches except those under the Root Node. Nodes will
appear with the [+] indicator.

Go to Index: This menu option allows the user to jump to a specific index in
the dialog. Indexes must be within the valid range listed and
must be of the syntax E# or R#. If the selected index represents
an Orphaned node and Show Orphaned Replies/Entries is not turned
on, the user will be prompted to do so.

Search by StringRef: A popup box will appear allowing the user to specify a
StringRef number. The dialog will be searched starting
with Entry structures followed by Reply structures in
numerical order. If found, the tree node will be
highlighted and displayed. If more than one instance is
found, a popup box will ask the user whether to display
the next instance. If the search fails, a popup box will
inform the user.

Search by Text: Similar to search by StringRef except a portion of text will
be used as the search term. The search will be applied to both
localized strings and dialog.tlk strings.

---[HELP]---

Help: About DLGEditor... - Displays version and author information.



Using DLGEditor
-----------------------

Upon startup DLGEditor will attempt to locate dialog.tlk files for both KotOR
and TSL. If it detects both files, startup will occur without any message box.
If only one of the two dialog.tlk files is found, a message box will appear
indicating this and suggesting that you choose File: Change TLK File Paths...
(Ctrl+T) to manually select the missing TLK file if necessary. If neither
dialog.tlk file is found, DLGEditor will bring up the
[File: Change TLK File Paths...] dialog box immediately. If the user is not
able to specify the location of at least one dialog.tlk, DLGEditor will exit.
(If you are trying to work completely offline on a fully custom dialog with no
dialog.tlk references, simply fool DLGEditor by renaming any file to dialog.tlk
and pointing DLGEditor at it for both KotOR and TSL paths.) The current
dialog.tlk file is always displayed in the lower left corner of the lower pane.

Begin using DLGEditor by opening an existing .dlg file or by creating a new one
from scratch. The .dlg files from KotOR and TSL can be extracted using KotOR
Tool. When opened, DLGEditor will attempt to determine whether the .dlg is a
KotOR or TSL dialog file and will automatically switch to KotOR or TSL Mode (as
can be seen in the Mode menu). If, however, the mode cannot be switched to due
to lack of that dialog.tlk file, the user will be informed via message box.

Dialogs will appear in the upper pane as a treeview. A node on the tree can be
highlighted by single-clicking on it. Highlighting a node will display the
nodes properties in the lower pane. The user may then edit these properties.
Right clicking on a node will bring up a context menu for quick editing
options. Double-clicking on a tree branch whose text says "(already listed)"
will jump to the original listing of that entry or reply.

The Root Node is a special node that contains the general properties of the
dialog. These properties affect the entire dialog. Branch nodes represent
Entry or Reply instances. NPCs speak the Entry lines (shown in red); the PC
speaks the Reply branches (shown in blue). The properties of Replies and
Entries are very similar.

Properties of the Root Node
-----------------------------

- Ambient Track: a Resref to a music file

- Camera Model: (?)a Resref

- Delay Entry: an integer describing how many seconds of delay before an NPC
will respond to the PC

- Delay Reply: an integer describing how many seconds of delay before the PC
will be allowed to give a response

- Script that fires when conversation ends: a Resref to a script that will fire
when the dialog ends normally.

- Script that fires if conversation aborts: a Resref to a script that will fire
if the conversation is aborted
prematurely (eg. due to a battle).
I'm not sure whether this occurs at
all in KotOR/TSL.

- Skippable: A boolean value that means the dialog can be skipped through.

- UnequipHItem: (?)a boolean

- UnequipItems: (?)a boolean

- Voiceover ID: Voice-Over Identifier, a Resref. For more info on this field
see this tutorial on adding voice and lipsync to a dialog:
http://www.lucasforums.com/showthread.php?s=&threadid=126746)

- Conversation Type: Whether this is a person-to-person or a person-to-computer
conversation

- Computer Type: For Conversation Type=Computer, this is the appearance of the
computer

- AlienRaceOwner: References to rows in alienvo.2da for default droid or alien sounds.
Useful for dialogs that are primarily droid/alien. (TSL only)

- RecordNoVO: When this is 1, it indicates, this dialog uses alien or droid sounds by
in alienvo.2da using AlienRaceOwner as the default row. Useful for
dialogs that are primarily droid/alien. Nodes can vary the sound using
Emotion or the node's own AlienRaceNode value.(TSL only)

- PostProcOwner: ? (integer) (TSL only)



Properties of the Branch Nodes in KotOR Mode
---------------------------------------------

- Speaker/Listener: Tag of NPC to do the speaking/listening. If blank, it is
the NPC that started the dialog.

- Script that Determines Availability: This is a script to be evaluated by the
dialog for this branch. The script must
be declared as
"int StartingConditional()"
and return 0 or 1 upon completion. This
dialog branch will not be spoken or
available if the script returns 0.

- Script that fires when spoken: This script will run when this branch is
spoken.

- VO_ResRef: Used for Voiceover and lipsync during dialog.

- Sound: Used for alien and droids sounds to play during dialog instead of
VO_Resref (KotOR only)

- Sound Exists: Boolean

- Delay: Delay before this branch is spoken (seconds?)

- WaitFlags: ? (integer)

- CameraID: use a predefined camera for this branch. Cameras are defined in
the .git file for each area under the CameraList field.

- CameraAngle: an integer that specifies the camera angle to use when this
Entry is spoken.

- FadeType: an integer that specifies the type of fade in/fade out effect to
use in this branch.

/ for more information on the next 4 fields see: \
\ http://www.lucasforums.com/showthread.php?s=&threadid=143372) /
- Quest: a reference to global.jrl quest

- QuestEntry: a entry in the quest to be added to the player's journal when
this branch is spoken

- PlotIndex: references the global.jrl quest

- PlotXPPercentage: a multiplier for experience point reward upon completion
of the quest

- Comment: this field is just to hold developer comments

- StrRef: If this value is 0 or greater, this value is a pointer to a
dialog.tlk entry. If the value is -1, then the text is stored
within the .dlg file itself (so most custom dialogs will have -1 in
this field).

- Text: The text to be spoken. This will be a read-only field if StrRef is
not -1.

- Animations: You can choose what animations the PC/NPC will perform during
the dialog by dragging an animation from the Available
Animations list to the Current Animations list and choosing the
Participant. The Participant can be the tag of an NPC or can
be OWNER representing the main NPC speaker. To make the PC
animate, specify PLAYER as the Participant.


Properties of the Branch Nodes in TSL Mode
---------------------------------------------
(TSL supports all of the fields listed for KotOR plus the following fields.)

Conditional #1: This is the same as "Script that Determines Availability" above

Conditional #2: A secondary script for determining availability

Script #1: This is the same as "Script that fires when spoken" above

Script #2: A secondary script that fires when spoken.

P1 through P5: TSL supports parameters that can be passed to scripts. P1-P5
represent integer values that the scripts (both normal and
conditional) can receive using the GetScriptParameter function.
String Param: TSL supports parameters that can be passed to scripts. String
Param represents a string value that the scripts (both normal
and conditional) can receive using the GetScriptStringParameter
function.
Not: Inverts the result of the Conditional Script

Logic: (?) Should be 0 if Conditional #2 is not specified. Otherwise a 0 means
the results of both conditionals will be evaluated, inverted as
specified by their Not parameters and the results will be AND-ed
together. A 1 indicates the conditionals should be OR-ed together.
Could be that a 2 indicates XOR operation.

Emotion: Used for Alien/Droid voiceovers, this modifies the sound that is
uttered. References the column in alienvo.2da

FacialAnim: (?) Not sure if this is was a scrapped idea or not, but the guess
here is that certain models contained facial animations that
this parameter would invoke.

AlienRaceNode: When RecordNoVOOverride=1 for this node, this value references
the row in alienvo.2da to use for droid and alien sounds. See also
Emotion property for this node.

PostProcNode: (?) Integer

NodeID: (?) Integer

CamVidEffect: Modifies the camera style during this branch of the dialog. Not
certain how extensive this parameter has been implemented.

RecordNoVOOverride: When this is 1, this node will use droid or alien sounds
rather than VO_Resref. The value of this node's
AlienRaceNode and Emotion properties to look up the sound in
alienvo.2da. Useful for when droids/aliens speak in otherwise
human dialog.

RecordVO: When this is 1, indicates that this node will use VO_Resref, even if
RecordNoVO in General Properties equals 1. Useful for when humans speak
during an otherwise droid/alien dialog.

Node Unskippable: Boolean value that overrides the Dialog-wide parameter of
Skippable (see Properties of the Root Node).

CameraAnimation: (?) WORD performs camera animations

Further Reading
-----------------------
For more information about the DLG file format see:
http://nwn.bioware.com/developers/Bioware_Aurora_Conversation_Format.pdf)

For more information about modding KotOR and TSL visit
http://www.lucasforums.com/forumdisplay.php?s=&forumid=324)

This utility is dedicated to all modders who wish to improve the Star Wars
gaming experience for themselves and others.

That's it.:)
Page: 1 of 1