Jump to content

Home

Using the DLGEditor and its functions


Nick Vader

Recommended Posts

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

 

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.[/Quote]

 

That's it.:)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...