Dialog Editor

From Oldunreal-Wiki
Jump to navigation Jump to search
The main screen of the Dialog Editor, in Node mode. The icons show that the conversation is between Aida and the player.

The LEGEND Dialog Editor Version 1.04 is a tool for editing and creating dialogues in Unreal II. It was developed by Legend Entertainment's James A. Montanus using the Microsoft Class Foundation library. It is capable of creating and editing .dlg files that are used by Unreal II to handle in-game dialogues. The tool can be found in the Unreal2\Dialog folder, as DialogEditor.exe. Along with it is a Properties.txt file which is a list of all available parameters for each node of a dialog. The list presents all settings as Parameter=Value or type of value. This file is used to display the usage of all parameters in the property window inside the node editor.

The use of the DialogEditor is not required: dialogs are stored by the game as .dlg files which are simple text files and can be opened with notepad or a text editor. The Dialog Editor is only a convenient interface.


The Dialog Editor has two modes of operation - Nodes and Script. Nodes mode allows you to visualise the dialogue as a tree of nodes, while the Script mode shows slightly more information about each node and optionally allows you to see the lines of selected speakers only. To switch between the modes, either use the View menu or use the toolbar.

Node Mode

The Node Properties window.

In Node mode, the dialog is displayed as a tree-view. A small black dash in a yellow square represents a node. However, if the node uses certain speakers, the symbol will be replaced by a specific icon: a white-on-black P for the player, a white-on-pink A for Aida, a white-on-brown N for Ne'ban, a white-on-green I for Isaac.

The Node mode allows you to use the Goto... feature found in the Edit menu. It lists all of the available nodes in a scrolling list, but is rather buggy, as the list overlaps the OK and Cancel buttons. However, that can be worked around by using the hotkeys Enter and Esc, and the list can be navigated by using the directional arrows. The selected node name is written in the input box above the list. Since the list is in alphabetical order, it may be useful in very large dialogue files. Selecting a node and pressing Enter highlights the selected node in the main window.

If you have the status bar enabled, clicking on a node will make additional information about it appear in the status bar. That includes the node name, speaker, abort node and resume node. If either of the two latter are empty, round brackets appear in their place, showing the node's distance in hierarchy from the root node.

The toolbar contains buttons to add and remove nodes, and a button to edit properties. You can also edit a node's properties by right-clicking on it and choosing "Properties" in the contextual menu, or by double-clicking on it. Either way opens the properties window, where you can rearrange, add or delete parameters of the selected node, as well as rename the node. The button Verify Sound should launch Windows Media Player and play the voice file assigned to the node, but the program can no longer find the player in modern Windows versions. Clicking Add or Edit will take you to the Node Property window.

The Node Property window.

The property window is divided in three parts: on the left-side is the list of all possible parameters which can be added to a node. There is also a [None] parameter which can be used to add comments or notes (with "//", as in UnrealScript, or with "#", as in Bash scripts). This parameter can contain any other data, like commands (if the value is in the form of Property=Value), or comments formatted in any other way. Once a parameter has been added, you can specify the value of this parameter by clicking on the large right-side panel and entering your value. The valid value types are displayed at the bottom of the window for easy reference. If other nodes use the same parameter, the small drop-down menu in the upper-right corner will allow you to quickly reuse these values, which can be useful to quickly select the Speaker in a long conversation, for example, instead of typing the speaker's name for every node.

Script Mode

The Script Mode. The black line under the node shows this is the last node of the current conversation.

The Script mode is mainly focused on ease of voice acting the lines created in the Node mode. It shows the nodes much like in a motion picture script. The main window displays the speaker, node name, sound file and, most importantly, the full long text assigned to the node (as opposed to Node mode, which shows the short text, if available).

The drop-down menu on the right part of the toolbar allows you to choose the Speaker whose nodes you want to see. If "None" is selected, all nodes can be displayed. The Properties button in this mode doesn't allow for modifying any internal options, but rather displays some statistics about the whole script, namely, the amount of words each of the speakers has to say. From the two remaining buttons, the Display All button makes the editor display the nodes from all speakers, even if one is selected - in that case, the nodes belonging to the selected speaker are emphasised by bold text, but the nodes from other speakers are still displayed. The Include Recorded Nodes button makes the editor show nodes for which voice acting lines have already been recorded (off by default).

The two buttons with arrows can be clicked to jump to the next and previous node. When a note is displayed, a black line under the parameters shows that the node currently displayed is the last node of the current conversation (see figure).

Interestingly enough, the Script mode allows you to print the script. In order for anything meaningful to be printed, you must first select a speaker whose script you wish to print, or, if you want the whole script, press the Display All button before printing. The printed document contains some information in the header of each page (copyright, print date, dialogue filename and empty slots for reader, time and date information to fill in by hand). The body of the document consists of all of the displayed nodes, just like they appear in the main window in Script mode, concatenated together.

Note that nodes selection in the Node mode does not transfer to the Script mode, and vice versa. The editor remembers both selections separately and independently.

Known Bugs

  • Never press "Promote" on the Root node. Doing so will crash the editor.
  • Right-clicking on empty space in the main window will produce a Debug Assertion Failed! window. Pressing Ignore will allow the program to continue as normal.
  • Sound files for the dialogue nodes are automatically generated based on node and file names, and it is impossible to change them, so never save the original dialogue files that come with the game, or most of the times you will lose voice acting in-game. To be safe, you can set all of the stock dialogue files and directories read-only.
  • Even though the game itself is case insensitive, the Dialog Editor requires the value of the property NextNode to have the same case as the node name it should link to. If it is not, the editor drops the NextNode property. This holds true for stock dialogue files, too. In case that happens, upon opening the file a confirmation Warning! All nodes are not being displayed in the dialog tree. Would you like to correct this? is displayed. No matter what you choose, the properties will be dropped. If you get this warning, never save the file, or you will lose some data! Instead, use a text editor to correct the mistake.
  • In Script mode, the Print Preview feature is somewhat buggy - the text is displayed when you enter the print preview, but if you try to zoom in, the text disappears until you reenter print preview. You can also go past the last page of the print document, in which case text disappears as well. Exiting print preview makes the Change Speaker drop-down box disappear until you switch to and from Script mode. Printing itself works correctly, however.
  • If a dialogue file contains more than 255 words, pressing the Properties button in Script mode will produce a Debug Assertion Failed! window. Pressing Ignore will allow the program to continue operating, but the displayed word count is incorrect.