DOM Editor 1.0

Jump to: navigation, search


The DOM Editor panel is a tool for viewing and editing DOM definitions visually as an alternative to using the CLI directly.

NOTE: This page refers to a previous version of the DOM Editor. For the current version please refer to DOM Editor.


In HSL, the data object model (classes, fields, enums, etc.) are defined independently of the scripting language (HSL). This is different than most computer languages, but gives HeroEngine it's distinctive power and real-time collaborative flexibility. The DOM can be manipulated with the CLI, but it is much easier to use the DOM Editor.


Using DOM Editor, you may create, view, and modify fields, classes, enums, and associations, for both the client and the server. Changes made by the DOM editor or CLI are immediately available for use in script.


Definition Types


The upper left section of the DOM editor allows selection of which DOM (client or server) and which definition type is currently active. Changing the definition type is done by clicking on entry for the appropriate type. The active mode will also change to match when a new definition is selected by following the "References" links, links to members of a class definition, or by using the history navigation feature.


DOM buttons top.png

Read Only Mode

By default, the DOM Editor opens in read-only mode to prevent accidental modifications of DOM definitions. In order to make any change to the DOM definitions, you must first clear the read-only flag located in the top right section of the DOM editor.

Confirm Changes

If the DOM editor is not in read-only mode, it defaults to prompt the user before it sends a change that can cause DOM modifications. When confirmation is active, a dialog box will pop up displaying the commands which it is about to send to the server, so they can be inspected for errors or unwanted changes. Clearing this checkbox causes the editor to pass all commands directly to the server without prompting for verification.

Definition List

DOM main list.png

This list displays a list of all the definitions of the active type. The default sort is by name ascending. The header columns can be clicked to change which column it is sorted by or to switch between ascending and descending sort.

At the bottom of the list is a filter box, where text can be entered to limit the display to only matching rows. The checkboxes control which columns to match against. The magnifying glass icon can be clicked to clear the search text and enter a new search term.

Definition Display and Editing

DOM edit area.png

Below the definition list is the edit area, which displays information for the currently selected definition. The name, description, and package may be edited, as well as other properties specific to the definition type. Definitions in the required package may not have their package changed.


Additional enum values may be added by entering their information on the last row. To remove an enum value, select the row and press the delete key. To change an enum value, select it and type the updated name for the enum value. See also: MED


Properties for replication are shaded and appear only for definitions in the server DOM. See also: MFD


New fields or parent classes may be added on the last row of the class definition. To remove a field or parent class from a class definition, select the row and press the delete key. Properties for replication are shaded and appear only for definitions in the server DOM. See also: MCD


See also: MAD

Association Group

See also: MAG


DOM references.png

For types which may be used by other classes and fields, this area lists which classes or fields make use of this definition. A definition cannot be deleted if it used by other definitions.

Atomic Sets (Class Only)

DOM atomic sets.png

Classes which have replicated fields may have atomic sets defined for their replicated fields. See also: Replication


DOM buttons bottom.png

Personal tools